@@ -10,34 +10,110 class ATRADData(models.Model): | |||||
10 | datetime = models.DateTimeField() |
|
10 | datetime = models.DateTimeField() | |
11 |
|
11 | |||
12 | nstx = models.SmallIntegerField() |
|
12 | nstx = models.SmallIntegerField() | |
13 | status = models.SmallIntegerField() |
|
|||
14 | temp_cll = models.SmallIntegerField() |
|
|||
15 | nboards = models.SmallIntegerField() |
|
|||
16 |
|
13 | |||
17 |
|
|
14 | status_1 = models.SmallIntegerField() | |
18 |
|
|
15 | temp_cll_1 = models.SmallIntegerField() | |
19 |
|
|
16 | nboards_1 = models.SmallIntegerField() | |
|
17 | tempdvr_1 = models.SmallIntegerField() | |||
|
18 | potincdvr_1 = models.SmallIntegerField() | |||
|
19 | potretdvr_1 = models.SmallIntegerField() | |||
20 |
|
20 | |||
21 | temp1 = models.SmallIntegerField() |
|
21 | temp1_1 = models.SmallIntegerField() | |
22 | potinc1 = models.SmallIntegerField() |
|
22 | potinc1_1 = models.SmallIntegerField() | |
23 | potret1 = models.SmallIntegerField() |
|
23 | potret1_1 = models.SmallIntegerField() | |
24 | temp2 = models.SmallIntegerField() |
|
24 | temp2_1 = models.SmallIntegerField() | |
25 | potinc2 = models.SmallIntegerField() |
|
25 | potinc2_1 = models.SmallIntegerField() | |
26 | potret2 = models.SmallIntegerField() |
|
26 | potret2_1 = models.SmallIntegerField() | |
27 | temp3 = models.SmallIntegerField() |
|
27 | temp3_1 = models.SmallIntegerField() | |
28 | potinc3 = models.SmallIntegerField() |
|
28 | potinc3_1 = models.SmallIntegerField() | |
29 | potret3 = models.SmallIntegerField() |
|
29 | potret3_1 = models.SmallIntegerField() | |
30 | temp4 = models.SmallIntegerField() |
|
30 | temp4_1 = models.SmallIntegerField() | |
31 | potinc4 = models.SmallIntegerField() |
|
31 | potinc4_1 = models.SmallIntegerField() | |
32 | potret4 = models.SmallIntegerField() |
|
32 | potret4_1 = models.SmallIntegerField() | |
33 | temp5 = models.SmallIntegerField() |
|
33 | temp5_1 = models.SmallIntegerField() | |
34 | potinc5 = models.SmallIntegerField() |
|
34 | potinc5_1 = models.SmallIntegerField() | |
35 | potret5 = models.SmallIntegerField() |
|
35 | potret5_1 = models.SmallIntegerField() | |
36 | temp6 = models.SmallIntegerField() |
|
36 | temp6_1 = models.SmallIntegerField() | |
37 | potinc6 = models.SmallIntegerField() |
|
37 | potinc6_1 = models.SmallIntegerField() | |
38 | potret6 = models.SmallIntegerField() |
|
38 | potret6_1 = models.SmallIntegerField() | |
39 |
|
39 | |||
40 |
|
40 | status_2 = models.SmallIntegerField() | ||
|
41 | temp_cll_2 = models.SmallIntegerField() | |||
|
42 | nboards_2 = models.SmallIntegerField() | |||
|
43 | tempdvr_2 = models.SmallIntegerField() | |||
|
44 | potincdvr_2 = models.SmallIntegerField() | |||
|
45 | potretdvr_2 = models.SmallIntegerField() | |||
|
46 | ||||
|
47 | temp1_2 = models.SmallIntegerField() | |||
|
48 | potinc1_2 = models.SmallIntegerField() | |||
|
49 | potret1_2 = models.SmallIntegerField() | |||
|
50 | temp2_2 = models.SmallIntegerField() | |||
|
51 | potinc2_2 = models.SmallIntegerField() | |||
|
52 | potret2_2 = models.SmallIntegerField() | |||
|
53 | temp3_2 = models.SmallIntegerField() | |||
|
54 | potinc3_2 = models.SmallIntegerField() | |||
|
55 | potret3_2 = models.SmallIntegerField() | |||
|
56 | temp4_2 = models.SmallIntegerField() | |||
|
57 | potinc4_2 = models.SmallIntegerField() | |||
|
58 | potret4_2 = models.SmallIntegerField() | |||
|
59 | temp5_2 = models.SmallIntegerField() | |||
|
60 | potinc5_2 = models.SmallIntegerField() | |||
|
61 | potret5_2 = models.SmallIntegerField() | |||
|
62 | temp6_2 = models.SmallIntegerField() | |||
|
63 | potinc6_2 = models.SmallIntegerField() | |||
|
64 | potret6_2 = models.SmallIntegerField() | |||
|
65 | ||||
|
66 | status_3 = models.SmallIntegerField() | |||
|
67 | temp_cll_3 = models.SmallIntegerField() | |||
|
68 | nboards_3 = models.SmallIntegerField() | |||
|
69 | tempdvr_3 = models.SmallIntegerField() | |||
|
70 | potincdvr_3 = models.SmallIntegerField() | |||
|
71 | potretdvr_3 = models.SmallIntegerField() | |||
|
72 | ||||
|
73 | temp1_3 = models.SmallIntegerField() | |||
|
74 | potinc1_3 = models.SmallIntegerField() | |||
|
75 | potret1_3 = models.SmallIntegerField() | |||
|
76 | temp2_3 = models.SmallIntegerField() | |||
|
77 | potinc2_3 = models.SmallIntegerField() | |||
|
78 | potret2_3 = models.SmallIntegerField() | |||
|
79 | temp3_3 = models.SmallIntegerField() | |||
|
80 | potinc3_3 = models.SmallIntegerField() | |||
|
81 | potret3_3 = models.SmallIntegerField() | |||
|
82 | temp4_3 = models.SmallIntegerField() | |||
|
83 | potinc4_3 = models.SmallIntegerField() | |||
|
84 | potret4_3 = models.SmallIntegerField() | |||
|
85 | temp5_3 = models.SmallIntegerField() | |||
|
86 | potinc5_3 = models.SmallIntegerField() | |||
|
87 | potret5_3 = models.SmallIntegerField() | |||
|
88 | temp6_3 = models.SmallIntegerField() | |||
|
89 | potinc6_3 = models.SmallIntegerField() | |||
|
90 | potret6_3 = models.SmallIntegerField() | |||
|
91 | ||||
|
92 | status_4 = models.SmallIntegerField() | |||
|
93 | temp_cll_4 = models.SmallIntegerField() | |||
|
94 | nboards_4 = models.SmallIntegerField() | |||
|
95 | tempdvr_4 = models.SmallIntegerField() | |||
|
96 | potincdvr_4 = models.SmallIntegerField() | |||
|
97 | potretdvr_4 = models.SmallIntegerField() | |||
|
98 | ||||
|
99 | temp1_4 = models.SmallIntegerField() | |||
|
100 | potinc1_4 = models.SmallIntegerField() | |||
|
101 | potret1_4 = models.SmallIntegerField() | |||
|
102 | temp2_4 = models.SmallIntegerField() | |||
|
103 | potinc2_4 = models.SmallIntegerField() | |||
|
104 | potret2_4 = models.SmallIntegerField() | |||
|
105 | temp3_4 = models.SmallIntegerField() | |||
|
106 | potinc3_4 = models.SmallIntegerField() | |||
|
107 | potret3_4 = models.SmallIntegerField() | |||
|
108 | temp4_4 = models.SmallIntegerField() | |||
|
109 | potinc4_4 = models.SmallIntegerField() | |||
|
110 | potret4_4 = models.SmallIntegerField() | |||
|
111 | temp5_4 = models.SmallIntegerField() | |||
|
112 | potinc5_4 = models.SmallIntegerField() | |||
|
113 | potret5_4 = models.SmallIntegerField() | |||
|
114 | temp6_4 = models.SmallIntegerField() | |||
|
115 | potinc6_4 = models.SmallIntegerField() | |||
|
116 | potret6_4 = models.SmallIntegerField() | |||
41 |
|
117 | |||
42 | class Meta: |
|
118 | class Meta: | |
43 | db_table = 'atrad_datas' |
|
119 | db_table = 'atrad_datas' | |
@@ -115,11 +191,6 class ATRADConfiguration(Configuration): | |||||
115 | if self.device.status == 2: #Configured |
|
191 | if self.device.status == 2: #Configured | |
116 | self.message = 'TX device is already stopped.' |
|
192 | self.message = 'TX device is already stopped.' | |
117 | return False |
|
193 | return False | |
118 |
|
||||
119 | # Se crea el modo ocupado para una vez inicia el STOP |
|
|||
120 | self.device.status = 5 |
|
|||
121 | self.device.save() |
|
|||
122 | # Por si se demora deteniendo, que su estado sea busy |
|
|||
123 |
|
194 | |||
124 | post_data = {"topic":0} |
|
195 | post_data = {"topic":0} | |
125 | route = "http://" + str(ip) + ":" + str(port) + "/write/" |
|
196 | route = "http://" + str(ip) + ":" + str(port) + "/write/" |
@@ -7,11 +7,29 import os | |||||
7 |
|
7 | |||
8 | def insert(time,data): |
|
8 | def insert(time,data): | |
9 | sql = """INSERT INTO atrad_datas( |
|
9 | sql = """INSERT INTO atrad_datas( | |
10 | datetime,nstx,status,temp_cll,nboards,tempdvr,potincdvr,potretdvr, |
|
10 | datetime,nstx,status_1,temp_cll_1,nboards_1,tempdvr_1,potincdvr_1,potretdvr_1, | |
11 | temp1,potinc1,potret1,temp2,potinc2,potret2,temp3,potinc3,potret3, |
|
11 | temp1_1,potinc1_1,potret1_1,temp2_1,potinc2_1,potret2_1,temp3_1,potinc3_1,potret3_1, | |
12 |
temp4,potinc4,potret4,temp5,potinc5,potret5,temp6,potinc6,potret6 |
|
12 | temp4_1,potinc4_1,potret4_1,temp5_1,potinc5_1,potret5_1,temp6_1,potinc6_1,potret6_1, | |
|
13 | status_2,temp_cll_2,nboards_2,tempdvr_2,potincdvr_2,potretdvr_2, | |||
|
14 | temp1_2,potinc1_2,potret1_2,temp2_2,potinc2_2,potret2_2,temp3_2,potinc3_2,potret3_2, | |||
|
15 | temp4_2,potinc4_2,potret4_2,temp5_2,potinc5_2,potret5_2,temp6_2,potinc6_2,potret6_2, | |||
|
16 | status_3,temp_cll_3,nboards_3,tempdvr_3,potincdvr_3,potretdvr_3, | |||
|
17 | temp1_3,potinc1_3,potret1_3,temp2_3,potinc2_3,potret2_3,temp3_3,potinc3_3,potret3_3, | |||
|
18 | temp4_3,potinc4_3,potret4_3,temp5_3,potinc5_3,potret5_3,temp6_3,potinc6_3,potret6_3, | |||
|
19 | status_4,temp_cll_4,nboards_4,tempdvr_4,potincdvr_4,potretdvr_4, | |||
|
20 | temp1_4,potinc1_4,potret1_4,temp2_4,potinc2_4,potret2_4,temp3_4,potinc3_4,potret3_4, | |||
|
21 | temp4_4,potinc4_4,potret4_4,temp5_4,potinc5_4,potret5_4,temp6_4,potinc6_4,potret6_4) | |||
13 | VALUES(%s,%s,%s,%s,%s,%s,%s,%s, |
|
22 | VALUES(%s,%s,%s,%s,%s,%s,%s,%s, | |
14 | %s,%s,%s,%s,%s,%s,%s,%s,%s, |
|
23 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |
|
24 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |||
|
25 | %s,%s,%s,%s,%s,%s, | |||
|
26 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |||
|
27 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |||
|
28 | %s,%s,%s,%s,%s,%s, | |||
|
29 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |||
|
30 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |||
|
31 | %s,%s,%s,%s,%s,%s, | |||
|
32 | %s,%s,%s,%s,%s,%s,%s,%s,%s, | |||
15 | %s,%s,%s,%s,%s,%s,%s,%s,%s);""" |
|
33 | %s,%s,%s,%s,%s,%s,%s,%s,%s);""" | |
16 | try: |
|
34 | try: | |
17 | # connect to the PostgreSQL database |
|
35 | # connect to the PostgreSQL database | |
@@ -20,7 +38,7 def insert(time,data): | |||||
20 | cur = conn.cursor() |
|
38 | cur = conn.cursor() | |
21 | # execute the INSERT statement |
|
39 | # execute the INSERT statement | |
22 | #data_tuple = [tuple(i[:]) for i in a] |
|
40 | #data_tuple = [tuple(i[:]) for i in a] | |
23 | values = (time,) + tuple(data[0][:25]) |
|
41 | values = (time,) + tuple(data[0][:25])+tuple(data[1][1:25])+tuple(data[2][1:25])+tuple(data[3][1:25]) | |
24 | cur.execute(sql, values) |
|
42 | cur.execute(sql, values) | |
25 |
|
43 | |||
26 | # get the generated id back |
|
44 | # get the generated id back | |
@@ -46,8 +64,10 def maxTemperature(trs): | |||||
46 |
|
64 | |||
47 | if STXloc == 0: |
|
65 | if STXloc == 0: | |
48 | maxT_loc = maxT_loc + " Controller" |
|
66 | maxT_loc = maxT_loc + " Controller" | |
49 |
elif STXloc |
|
67 | elif STXloc == 1: | |
50 |
maxT_loc = maxT_loc + " |
|
68 | maxT_loc = maxT_loc + " Driver" | |
|
69 | elif STXloc<8: | |||
|
70 | maxT_loc = maxT_loc + " PA " + str(STXloc-1) | |||
51 | else: |
|
71 | else: | |
52 | maxT_loc = maxT_loc + " Combiners" |
|
72 | maxT_loc = maxT_loc + " Combiners" | |
53 |
|
73 | |||
@@ -64,7 +84,12 def dataConvert(msg): | |||||
64 | # Data to send by socket |
|
84 | # Data to send by socket | |
65 | id_STX = dataSTX[0][0] // 4 |
|
85 | id_STX = dataSTX[0][0] // 4 | |
66 | status = ''.join([msgClean[i][3] for i in [0,1,2,3]]) |
|
86 | status = ''.join([msgClean[i][3] for i in [0,1,2,3]]) | |
67 | powers = [dataSTX[0][34],dataSTX[0][36],dataSTX[2][32],dataSTX[2][34]] |
|
87 | powers = [dataSTX[0][34],dataSTX[0][36],dataSTX[2][32],dataSTX[2][34],0,0,0,0] | |
|
88 | # alerta | |||
|
89 | for i in range(4): | |||
|
90 | if powers[i] < 10000 and status == '1111': | |||
|
91 | power[4+i] = 1 | |||
|
92 | ||||
68 | tmax,index,tempData = maxTemperature(dataSTX) |
|
93 | tmax,index,tempData = maxTemperature(dataSTX) | |
69 | #Json to send |
|
94 | #Json to send | |
70 | data = {'time':msgStr[2:21],'num':id_STX,'pow':powers,'tmax':[str(tmax),index],'status':status} |
|
95 | data = {'time':msgStr[2:21],'num':id_STX,'pow':powers,'tmax':[str(tmax),index],'status':status} | |
@@ -78,18 +103,16 def GetTemperatures(data): | |||||
78 |
|
103 | |||
79 | def on_connect(mqtt_client, userdata, flags, rc): |
|
104 | def on_connect(mqtt_client, userdata, flags, rc): | |
80 | if rc == 0: |
|
105 | if rc == 0: | |
81 |
|
|
106 | print('Connected successfullyasdss') | |
82 | mqtt_client.subscribe("atrad/test4") |
|
107 | mqtt_client.subscribe("atrad/test4") | |
|
108 | print("Exito") | |||
83 | else: |
|
109 | else: | |
84 | print('Bad connection. Code:', rc) |
|
110 | print('Bad connection. Code:', rc) | |
85 |
|
111 | |||
86 | def on_message(mqtt_client, userdata, msg): |
|
112 | def on_message(mqtt_client, userdata, msg): | |
87 | print('Received message on topic: {} with payload: {}'.format(msg.topic,msg.payload), flush=True) |
|
113 | print('Received message on topic: {} with payload: {}'.format(msg.topic,msg.payload), flush=True) | |
88 | mainData, tempData = dataConvert(msg) |
|
114 | mainData, tempData = dataConvert(msg) | |
89 | # print("Recibi : {}".format(msg.payload),flush=True) |
|
|||
90 | #socket fot general data |
|
|||
91 | sio.emit('test',data = mainData) |
|
115 | sio.emit('test',data = mainData) | |
92 | print(mainData) |
|
|||
93 | #socket for temperature details |
|
116 | #socket for temperature details | |
94 | sio.emit('temptx'+str(mainData['num'] + 1),data = tempData) |
|
117 | sio.emit('temptx'+str(mainData['num'] + 1),data = tempData) | |
95 |
|
118 |
@@ -56,7 +56,7 | |||||
56 |
|
56 | |||
57 | <!-- Second row : Status and alerts --> |
|
57 | <!-- Second row : Status and alerts --> | |
58 | <div class="row"> |
|
58 | <div class="row"> | |
59 | <div class="card-deck"> |
|
59 | <div class="card-deck" style="width: 90%;"> | |
60 | <div class="card border-light"> |
|
60 | <div class="card border-light"> | |
61 | <div class="card-body"> |
|
61 | <div class="card-body"> | |
62 | <h4 class="card-title">Status</h4> |
|
62 | <h4 class="card-title">Status</h4> | |
@@ -82,14 +82,14 | |||||
82 | <table class="table table-borderless"> |
|
82 | <table class="table table-borderless"> | |
83 | <tbody> |
|
83 | <tbody> | |
84 | <tr> |
|
84 | <tr> | |
85 | <th scope="row"><p id="alert-time1" class="font-weight-bold"></p></th> |
|
85 | <th scope="row"><p id="alerttemp-time1" class="font-weight-bold"></p></th> | |
86 |
<td><p id="alert |
|
86 | <td><p id="alerttemp-1" class="font-weight-bold"></p></td> | |
87 | <td><p id="alert-loc1" class="font-weight-bold"></p></td> |
|
87 | <td><p id="alerttemp-loc1" class="font-weight-bold"></p></td> | |
88 | </tr> |
|
88 | </tr> | |
89 | <tr> |
|
89 | <tr> | |
90 | <th scope="row"><p id="alert-time2" class="font-weight-bold"></p></th> |
|
90 | <th scope="row"><p id="alerttemp-time2" class="font-weight-bold"></p></th> | |
91 |
<td><p id="alert |
|
91 | <td><p id="alerttemp-2" class="font-weight-bold"></p></td> | |
92 | <td><p id="alert-loc2" class="font-weight-bold"></p></td> |
|
92 | <td><p id="alerttemp-loc2" class="font-weight-bold"></p></td> | |
93 | </tr> |
|
93 | </tr> | |
94 | </tbody> |
|
94 | </tbody> | |
95 | </table> |
|
95 | </table> | |
@@ -98,7 +98,20 | |||||
98 | <div class="card border-light"> |
|
98 | <div class="card border-light"> | |
99 | <div class="card-body"> |
|
99 | <div class="card-body"> | |
100 | <h4 class="card-title">Power Alerts</h4> |
|
100 | <h4 class="card-title">Power Alerts</h4> | |
101 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora quisquam cupiditate sunt eaque distinctio explicabo aliquam blanditiis illo eligendi eveniet culpa, vel laboriosam! Facilis dolores assumenda autem. Maiores, quibusdam eum. |
|
101 | <table class="table table-borderless"> | |
|
102 | <tbody> | |||
|
103 | <tr> | |||
|
104 | <th scope="row"><p id="alertpot-time1" class="font-weight-bold"></p></th> | |||
|
105 | <td><p id="alertpot-1" class="font-weight-bold"></p></td> | |||
|
106 | <td><p id="alertpot-loc1" class="font-weight-bold"></p></td> | |||
|
107 | </tr> | |||
|
108 | <tr> | |||
|
109 | <th scope="row"><p id="alertpot-time2" class="font-weight-bold"></p></th> | |||
|
110 | <td><p id="alertpot-2" class="font-weight-bold"></p></td> | |||
|
111 | <td><p id="alertpot-loc2" class="font-weight-bold"></p></td> | |||
|
112 | </tr> | |||
|
113 | </tbody> | |||
|
114 | </table> | |||
102 | </div> |
|
115 | </div> | |
103 | </div> |
|
116 | </div> | |
104 | </div> |
|
117 | </div> |
@@ -69,21 +69,21 | |||||
69 | var socket = io.connect('http://' + document.domain + ':' + location.port); |
|
69 | var socket = io.connect('http://' + document.domain + ':' + location.port); | |
70 | socket.on('connect', function(data) { |
|
70 | socket.on('connect', function(data) { | |
71 | console.log('Connecting... OK'); |
|
71 | console.log('Connecting... OK'); | |
72 |
var data = '{{data|safe}}' |
|
72 | var basedata = JSON.parse('{{data|safe}}') | |
73 | console.log(data); |
|
73 | console.log(basedata); | |
74 | makePlot("plot-temp-0",4,["PC1","PC2","PC3","PC4"],[0,40]); |
|
74 | makePlot("plot-temp-0",4,["PC1","PC2","PC3","PC4"],[10,40]); | |
75 | makePlot("plot-temp-1",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[0,40]) |
|
75 | makePlot2("plot-temp-1",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[10,40],basedata) | |
76 | makePlot("plot-temp-2",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[0,40]) |
|
76 | makePlot2("plot-temp-2",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[10,40],basedata) | |
77 | makePlot("plot-temp-3",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[0,40]) |
|
77 | makePlot2("plot-temp-3",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[10,40],basedata) | |
78 | makePlot("plot-temp-4",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[0,40]) |
|
78 | makePlot2("plot-temp-4",6,["PA1","PA2","PA3","PA4","PA5","PA6"],[10,40],basedata) | |
79 | }) |
|
79 | }) | |
80 | socket.on("temptx"+"{{id_tx}}", function(data) { |
|
80 | socket.on("temptx"+"{{id_tx}}", function(data) { | |
81 | var controllers = [data.temp[0][1],data.temp[1][1],data.temp[2][1],data.temp[3][1]] |
|
81 | var controllers = [data.temp[0][1],data.temp[1][1],data.temp[2][1],data.temp[3][1]] | |
82 | streamPlot2("plot-temp-0",data.time,controllers,4); |
|
82 | streamPlot2("plot-temp-0",data.time,controllers,4); | |
83 |
streamPlot2("plot-temp-1",data.time,data.temp[0].slice( |
|
83 | streamPlot2("plot-temp-1",data.time,data.temp[0].slice(2,8),6); | |
84 |
streamPlot2("plot-temp-2",data.time,data.temp[1].slice( |
|
84 | streamPlot2("plot-temp-2",data.time,data.temp[1].slice(2,8),6); | |
85 |
streamPlot2("plot-temp-3",data.time,data.temp[2].slice( |
|
85 | streamPlot2("plot-temp-3",data.time,data.temp[2].slice(2,8),6); | |
86 |
streamPlot2("plot-temp-4",data.time,data.temp[3].slice( |
|
86 | streamPlot2("plot-temp-4",data.time,data.temp[3].slice(2,8),6); | |
87 | }) |
|
87 | }) | |
88 | }); |
|
88 | }); | |
89 |
|
89 | |||
@@ -97,6 +97,38 | |||||
97 | var yrange = ranges; |
|
97 | var yrange = ranges; | |
98 | var layout = { |
|
98 | var layout = { | |
99 | width: 505, |
|
99 | width: 505, | |
|
100 | height: 300, | |||
|
101 | font: {size: 12}, | |||
|
102 | margin: { t: 10, b:50, r:15 ,l:15}, | |||
|
103 | xaxis: { | |||
|
104 | type: 'date' | |||
|
105 | }, | |||
|
106 | yaxis: { | |||
|
107 | range: yrange, | |||
|
108 | }, | |||
|
109 | legend: {"orientation": "h"}, | |||
|
110 | }; | |||
|
111 | var config = {responsive: true} | |||
|
112 | Plotly.newPlot(plotDiv, traces, layout,config); | |||
|
113 | }; | |||
|
114 | ||||
|
115 | function makePlot2(div, n=1, names=["", ""],ranges,data){ | |||
|
116 | var plotDiv = document.getElementById(div); | |||
|
117 | var traces = []; | |||
|
118 | var keys = ['temp1','temp2','temp3','temp4','temp5','temp6'] | |||
|
119 | ||||
|
120 | for (let i = 0; i < n; i++) { | |||
|
121 | var x = []; | |||
|
122 | var y = []; | |||
|
123 | for(let j = 0;j < data.length; j++){ | |||
|
124 | x[j] = data[j].datetime; | |||
|
125 | y[j] = data[j][keys[i]+'_'+div.charAt(10)]; | |||
|
126 | } | |||
|
127 | traces.push({x:x, y:y,mode: 'lines', name: names[i]}); | |||
|
128 | } | |||
|
129 | var yrange = ranges; | |||
|
130 | var layout = { | |||
|
131 | width: 505, | |||
100 | height: 400, |
|
132 | height: 400, | |
101 | font: {size: 12}, |
|
133 | font: {size: 12}, | |
102 | margin: { t: 10, b:50, r:15 ,l:15}, |
|
134 | margin: { t: 10, b:50, r:15 ,l:15}, |
@@ -47,12 +47,14 def atrad_conf(request, id_conf): | |||||
47 | def atrad_tx(request, id_conf, id_tx): |
|
47 | def atrad_tx(request, id_conf, id_tx): | |
48 | kwargs = {} |
|
48 | kwargs = {} | |
49 | kwargs['id_tx'] = id_tx[-1] |
|
49 | kwargs['id_tx'] = id_tx[-1] | |
50 | kwargs['keys'] = ['id','temp1','temp2','temp3','temp4','temp5','temp6'] |
|
|||
51 | kwargs['title'] = 'Temperature Details' |
|
50 | kwargs['title'] = 'Temperature Details' | |
52 | kwargs['button'] = 'Edit Configuration' |
|
51 | kwargs['button'] = 'Edit Configuration' | |
53 | time = ATRADData.objects.last().datetime |
|
52 | time = ATRADData.objects.last().datetime | |
54 | mydata = ATRADData.objects.filter(datetime__gte = (time-timedelta(minutes=20)),nstx=1).values_list('datetime','temp1','temp2','temp3','temp4','temp5','temp6') |
|
53 | id_stx = (int(id_tx[-1])-1)*4+1 | |
55 | kwargs['data'] = QuerytoStr(mydata) |
|
54 | mydata = ATRADData.objects.filter(datetime__gte = (time-timedelta(hours=1)),nstx = id_stx).values('datetime','temp1_1','temp2_1','temp3_1','temp4_1','temp5_1','temp6_1', | |
|
55 | 'temp1_2','temp2_2','temp3_2','temp4_2','temp5_2','temp6_2','temp1_3','temp2_3','temp3_3','temp4_3','temp5_3','temp6_3', | |||
|
56 | 'temp1_4','temp2_4','temp3_4','temp4_4','temp5_4','temp6_4') | |||
|
57 | kwargs['data'] = json.dumps(list(mydata),default=str) | |||
56 | return render(request, 'atrad_tx.html', kwargs) |
|
58 | return render(request, 'atrad_tx.html', kwargs) | |
57 |
|
59 | |||
58 | def QuerytoStr(data): |
|
60 | def QuerytoStr(data): | |
@@ -99,7 +101,9 def monitor(request): | |||||
99 | def atrad_prueba(request): |
|
101 | def atrad_prueba(request): | |
100 | keys = ['id','temp1','temp2','temp3','temp4','temp5','temp6'] |
|
102 | keys = ['id','temp1','temp2','temp3','temp4','temp5','temp6'] | |
101 | time = ATRADData.objects.last().datetime |
|
103 | time = ATRADData.objects.last().datetime | |
102 |
mydata = ATRADData.objects.filter(datetime__gte = (time-timedelta(hours=1))).values('id','temp1','temp2','temp3','temp4','temp5','temp6' |
|
104 | mydata = ATRADData.objects.filter(datetime__gte = (time-timedelta(hours=1))).values('id','temp1_1','temp2_1','temp3_1','temp4_1','temp5_1','temp6_1', | |
|
105 | 'temp1_2','temp2_2','temp3_2','temp4_2','temp5_2','temp6_2','temp1_3','temp2_3','temp3_3','temp4_3','temp5_3','temp6_3', | |||
|
106 | 'temp1_4','temp2_4','temp3_4','temp4_4','temp5_4','temp6_4') | |||
103 | template = get_template('prueba.html') |
|
107 | template = get_template('prueba.html') | |
104 | context = { |
|
108 | context = { | |
105 | 'last' : time, |
|
109 | 'last' : time, | |
@@ -118,4 +122,4 def atrad_disconnect(sid): | |||||
118 |
|
122 | |||
119 | @sio.event |
|
123 | @sio.event | |
120 | def atrad_control_event(sid,message): |
|
124 | def atrad_control_event(sid,message): | |
121 |
mqtt_client.publish('test/data2', json.dumps(message)) |
|
125 | mqtt_client.publish('test/data2', json.dumps(message)) No newline at end of file |
@@ -45,7 +45,7 services: | |||||
45 | restart: always |
|
45 | restart: always | |
46 | build: ./nginx/ |
|
46 | build: ./nginx/ | |
47 | ports: |
|
47 | ports: | |
48 | - '0.0.0.0:80:80' |
|
48 | - '0.0.0.0:8086:80' | |
49 | volumes_from: |
|
49 | volumes_from: | |
50 | - radarsys |
|
50 | - radarsys | |
51 | links: |
|
51 | links: |
@@ -34,12 +34,12 function UpdateData(id,data){ | |||||
34 | streamPlot("plot-temp",data.time,data.tmax[0],id,40); |
|
34 | streamPlot("plot-temp",data.time,data.tmax[0],id,40); | |
35 | streamPlot2("plot-pot-t"+(id+1),data.time,data.pow); |
|
35 | streamPlot2("plot-pot-t"+(id+1),data.time,data.pow); | |
36 | ligthStatus(id,data.status); |
|
36 | ligthStatus(id,data.status); | |
37 | PotenciaAmplificador(id,data.pow,total); |
|
37 | PotenciaAmplificador(id,data.pow,total,data.time); | |
38 | $('#temp'+(id+1)).text(data.tmax[0]); |
|
38 | $('#temp'+(id+1)).text(data.tmax[0]); | |
39 | if(eval(data.tmax[0])>20){ |
|
39 | if(eval(data.tmax[0])>20){ | |
40 | $('#alert-time'+(id+1)).text(data.time.slice(-8,)); |
|
40 | $('#alerttemp-time'+(id+1)).text(data.time.slice(-8,)); | |
41 |
$('#alert |
|
41 | $('#alerttemp-'+(id+1)).text(data.tmax[0]); | |
42 | $('#alert-loc'+(id+1)).text('Tx'+(id+1)+' '+data.tmax[1]); |
|
42 | $('#alerttemp-loc'+(id+1)).text('Tx'+(id+1)+' '+data.tmax[1]); | |
43 | } |
|
43 | } | |
44 | } |
|
44 | } | |
45 |
|
45 | |||
@@ -115,13 +115,20 function ligthStatus(id,status){ | |||||
115 | } |
|
115 | } | |
116 | }; |
|
116 | }; | |
117 |
|
117 | |||
118 | function PotenciaAmplificador(id,data1,data2){ |
|
118 | function PotenciaAmplificador(id,data1,data2,time){ | |
119 |
|
|
119 | id_tx = (id+1) | |
|
120 | let div = '#pot'+id_tx; | |||
120 | for(let i=1; i<5; i++){ |
|
121 | for(let i=1; i<5; i++){ | |
121 |
|
|
122 | var pot = (data1[i-1]/1000.0).toFixed(1) | |
122 | } |
|
123 | $(div+'-'+i).text(pot); | |
123 | $(div).text(data2); |
|
124 | if (data1[i-1]<23000){ | |
|
125 | $("#alertpot-time"+id_tx).text(time.slice(-8,)); | |||
|
126 | $("#alertpot-"+id_tx).text(pot); | |||
|
127 | $("#alertpot-loc"+id_tx).text('Tx'+ id_tx+ ' Amp '+i); | |||
|
128 | } | |||
124 | } |
|
129 | } | |
125 | $(".clickable-row").click(function() { |
|
130 | $(div).text(data2.toFixed(1)); | |
|
131 | } | |||
|
132 | $(".clickable-row").click(function() { | |||
126 | window.open($(this).data("href"),); |
|
133 | window.open($(this).data("href"),); | |
127 | }); No newline at end of file |
|
134 | }); |
General Comments 0
You need to be logged in to leave comments.
Login now