diff --git a/apps/abs/models.py b/apps/abs/models.py index 41351b9..d656fa8 100644 --- a/apps/abs/models.py +++ b/apps/abs/models.py @@ -353,7 +353,7 @@ class ABSConfiguration(Configuration): def stop_device(self): - + print("estoy en ABS models") self.device.status = 2 self.device.save() self.message = 'ABS has been stopped.' diff --git a/apps/abs/mqtt.py b/apps/abs/mqtt.py index c0de75d..5d0743b 100644 --- a/apps/abs/mqtt.py +++ b/apps/abs/mqtt.py @@ -13,7 +13,7 @@ lista_ack_dismatching=[ def on_connect(mqtt_client, userdata, flags, rc): if rc == 0: - print('Connected successfully') + # print('Connected successfully') mqtt_client.subscribe(os.environ.get('TOPIC_ABS_ACK','abs/beams_ack')) else: print('Bad connection. Code:', rc) diff --git a/apps/atrad/mqtt.py b/apps/atrad/mqtt.py index e2d5bf1..050242e 100644 --- a/apps/atrad/mqtt.py +++ b/apps/atrad/mqtt.py @@ -6,7 +6,7 @@ import numpy as np def on_connect(mqtt_client, userdata, flags, rc): if rc == 0: - print('Connected successfully') + # print('Connected successfully') mqtt_client.subscribe('atrad/test3') else: print('Bad connection. Code:', rc) diff --git a/apps/main/management/commands/hello.py b/apps/main/management/commands/hello.py index a4aa5bd..d3be837 100644 --- a/apps/main/management/commands/hello.py +++ b/apps/main/management/commands/hello.py @@ -1,5 +1,14 @@ from django.core.management.base import BaseCommand - +from apps.main.models import Campaign, Location +from datetime import datetime,timedelta +from apps.main.views import radar_start +from django.shortcuts import render, redirect,get_object_or_404, HttpResponse +from django.urls import reverse +from django.utils.timezone import is_aware +from django.contrib import messages +from django.http import HttpResponseRedirect +from apps.main.views import experiment_start +from apps.main.models import Experiment, Configuration class Command(BaseCommand): """ @@ -8,12 +17,87 @@ class Command(BaseCommand): manage.py restart_experiment """ def handle(self, *args, **options): - print("Hola") + print("") + campaigns = Campaign.objects.filter(start_date__lte=datetime.now(), + end_date__gte=datetime.now()).order_by('-start_date') + + if campaigns: + + for campaign in campaigns: + print(campaign.name) + print(campaign.start_date) + print(campaign.end_date) + print(campaign.experiments.all()[0].id) + print("STATUS: ",campaign.experiments.all()[0].status) + + radar=campaign.get_experiments_by_radar(radar=None) + radar_id=radar[0]["id"] + print(radar_id) + + now = datetime.now() + if nowcampaign.start_date: + print("La campaƱa",campaign.name ,"se ejecuta!",flush=True) + radar_start_scheduler(campaign.id,radar_id) + + else: + copy_campaigns=Campaign.objects.all() + print("-------------Deteniendo procesos-------------") + for campaign in copy_campaigns: + print(campaign.name) + print(campaign.start_date) + print(campaign.end_date) + print("ID: ",campaign.experiments.all()[0].id) + print("STATUS: ",campaign.experiments.all()[0].status) + print("----,,,---") + radar=campaign.get_experiments_by_radar(radar=None) + radar_id=radar[0]["id"] + + if campaign.experiments.all()[0].status !=1: + print("Estoy en :",campaign.experiments.all()[0].status) + print("Con ID: ",campaign.experiments.all()[0].id) + print("\n\n") + a=radar_stop_scheduler(campaign.id,radar_id,campaign.experiments.all()[0].id) + print("RETURN", a) + + +def radar_start_scheduler(id_camp,id_radar): + print("-------------------") + campaign = get_object_or_404(Campaign, pk=id_camp) + experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments'] + now = datetime.now() + + for exp in experiments: + exp = get_object_or_404(Experiment, pk=exp.id) -# def main(): -# print("Hola") + if exp.status == 2: + print('Experiment {} already runnnig'.format(exp)) + else: + exp.status = exp.start() + if exp.status == 0: + print('Experiment {} not start'.format(exp)) + if exp.status == 2: + print('Experiment {} started'.format(exp)) + exp.save() -# if __name__=='__main__': -# main() +def radar_stop_scheduler(id_camp,id_radar,id_experiment): + print("-------------------") + ''' + Stop experiments's devices + DDS-JARS-RC-CGS-ABS + ''' + exp=get_object_or_404(Experiment,pk=id_experiment) + if exp.status == 2: + confs = Configuration.objects.filter(experiment=id_experiment,type = 0).order_by('device__device_type__sequence') + confs = confs.exclude(device__device_type__name='cgs') + try: + for conf in confs: + print("Estoy en conf_scheduler") + print(conf) + conf.stop_device() + exp.status= 1 + except: + exp.status= 0 + exp.save() + return exp.status \ No newline at end of file diff --git a/apps/main/models.py b/apps/main/models.py index d699b51..f35726e 100644 --- a/apps/main/models.py +++ b/apps/main/models.py @@ -334,7 +334,6 @@ class Campaign(models.Model): dum['id'] = loc.pk dum['experiments'] = [e for e in self.experiments.all() if e.location==loc] ret.append(dum) - return ret def get_absolute_url(self): diff --git a/apps/main/mqtt.py b/apps/main/mqtt.py index 347d338..ac2cac2 100644 --- a/apps/main/mqtt.py +++ b/apps/main/mqtt.py @@ -12,7 +12,7 @@ lista_ack=[ def on_connect(mqtt_client, userdata, flags, rc): if rc == 0: - print('Connected successfully') + #print('Connected successfully') mqtt_client.subscribe(os.environ.get('TOPIC_ABS_ACK','abs/beams_ack')) else: print('Bad connection. Code:', rc) diff --git a/apps/main/views.py b/apps/main/views.py index 7f43484..4679a4a 100644 --- a/apps/main/views.py +++ b/apps/main/views.py @@ -1927,7 +1927,7 @@ def operation(request, id_camp=None): @login_required def radar_start(request, id_camp, id_radar): - + print("Boton presionados",flush=True) campaign = get_object_or_404(Campaign, pk=id_camp) experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments'] now = datetime.now() @@ -1935,18 +1935,18 @@ def radar_start(request, id_camp, id_radar): for exp in experiments: #app.control.revoke(exp.task) print("----------------------") - print("status:->", exp.status) + print("status:->", exp.status,flush=True) start = datetime.combine(datetime.now().date(), exp.start_time) end = datetime.combine(datetime.now().date(), exp.end_time) - print("start exp: ",exp.start_time) - print("end exp: ",exp.end_time) + print("start exp: ",exp.start_time,flush=True) + print("end exp: ",exp.end_time,flush=True) - print("start comb: ",start) - print("end comb: ",end) - print(is_aware(start)) - print("start camp",campaign.start_date) - print("end camp",campaign.end_date) - print(is_aware(campaign.start_date)) + print("start comb: ",start,flush=True) + print("end comb: ",end,flush=True) + print(is_aware(start),flush=True) + print("start camp",campaign.start_date,flush=True) + print("end camp",campaign.end_date,flush=True) + print(is_aware(campaign.start_date),flush=True) if end < start: end += timedelta(1) @@ -1970,10 +1970,10 @@ def radar_start(request, id_camp, id_radar): request, 'Experiment {} out of date'.format(exp)) #app.control.revoke(exp.task) - print("Llego luego del revoke") + print("Llego luego del revoke",flush=True) if now >= start and now <= end: - print("Caso now > start and < end -- (1)") + print("Caso now > start and < end -- (1)",flush=True) # -------------------------------------------