##// END OF EJS Templates
cgs status function updated...
Fiorella Quino -
r245:9397f7e8a431
parent child
Show More
@@ -1,263 +1,260
1 from django.db import models
1 from django.db import models
2 from apps.main.models import Configuration
2 from apps.main.models import Configuration
3 from django.core.validators import MinValueValidator, MaxValueValidator
3 from django.core.validators import MinValueValidator, MaxValueValidator
4
4
5 from .files import read_json_file
5 from .files import read_json_file
6 import requests
6 import requests
7 # Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)]
7 # Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)]
8
8
9 class CGSConfiguration(Configuration):
9 class CGSConfiguration(Configuration):
10
10
11 freq0 = models.PositiveIntegerField(verbose_name='Frequency 0',validators=[MaxValueValidator(450e6)], default = 60)
11 freq0 = models.PositiveIntegerField(verbose_name='Frequency 0 (Hz)',validators=[MaxValueValidator(450e6)], default = 60)
12 freq1 = models.PositiveIntegerField(verbose_name='Frequency 1',validators=[MaxValueValidator(450e6)], default = 60)
12 freq1 = models.PositiveIntegerField(verbose_name='Frequency 1 (Hz)',validators=[MaxValueValidator(450e6)], default = 60)
13 freq2 = models.PositiveIntegerField(verbose_name='Frequency 2',validators=[MaxValueValidator(450e6)], default = 60)
13 freq2 = models.PositiveIntegerField(verbose_name='Frequency 2 (Hz)',validators=[MaxValueValidator(450e6)], default = 60)
14 freq3 = models.PositiveIntegerField(verbose_name='Frequency 3',validators=[MaxValueValidator(450e6)], default = 60)
14 freq3 = models.PositiveIntegerField(verbose_name='Frequency 3 (Hz)',validators=[MaxValueValidator(450e6)], default = 60)
15
15
16 def verify_frequencies(self):
16 def verify_frequencies(self):
17
17
18 return True
18 return True
19
19
20
20
21 def update_from_file(self, fp):
21 def update_from_file(self, fp):
22
22
23 kwargs = read_json_file(fp)
23 kwargs = read_json_file(fp)
24
24
25 if not kwargs:
25 if not kwargs:
26 return False
26 return False
27
27
28 self.freq0 = kwargs['freq0']
28 self.freq0 = kwargs['freq0']
29 self.freq1 = kwargs['freq1']
29 self.freq1 = kwargs['freq1']
30 self.freq2 = kwargs['freq2']
30 self.freq2 = kwargs['freq2']
31 self.freq3 = kwargs['freq3']
31 self.freq3 = kwargs['freq3']
32
32
33 return True
33 return True
34
34
35 def parms_to_dict(self):
35 def parms_to_dict(self):
36
36
37 parameters = {}
37 parameters = {}
38
38
39 parameters['device_id'] = self.device.id
39 parameters['device_id'] = self.device.id
40 parameters['device_type'] = self.device.device_type.name
40 parameters['device_type'] = self.device.device_type.name
41
41
42 if self.freq0 == None or self.freq0 == '':
42 if self.freq0 == None or self.freq0 == '':
43 parameters['freq0'] = 0
43 parameters['freq0'] = 0
44 else:
44 else:
45 parameters['freq0'] = self.freq0
45 parameters['freq0'] = self.freq0
46
46
47 if self.freq1 == None or self.freq1 == '':
47 if self.freq1 == None or self.freq1 == '':
48 parameters['freq1'] = 0
48 parameters['freq1'] = 0
49 else:
49 else:
50 parameters['freq1'] = self.freq1
50 parameters['freq1'] = self.freq1
51
51
52 if self.freq2 == None or self.freq2 == '':
52 if self.freq2 == None or self.freq2 == '':
53 parameters['freq2'] = 0
53 parameters['freq2'] = 0
54 else:
54 else:
55 parameters['freq2'] = self.freq2
55 parameters['freq2'] = self.freq2
56
56
57 if self.freq3 == None or self.freq3 == '':
57 if self.freq3 == None or self.freq3 == '':
58 parameters['freq3'] = 0
58 parameters['freq3'] = 0
59 else:
59 else:
60 parameters['freq3'] = self.freq3
60 parameters['freq3'] = self.freq3
61
61
62 return parameters
62 return parameters
63
63
64
64
65 def dict_to_parms(self, parameters):
65 def dict_to_parms(self, parameters):
66
66
67 self.freq0 = parameters['freq0']
67 self.freq0 = parameters['freq0']
68 self.freq1 = parameters['freq1']
68 self.freq1 = parameters['freq1']
69 self.freq2 = parameters['freq2']
69 self.freq2 = parameters['freq2']
70 self.freq3 = parameters['freq3']
70 self.freq3 = parameters['freq3']
71
71
72
72
73 def status_device(self):
73 def status_device(self):
74
74
75 import requests
75 import requests
76
76
77 ip=self.device.ip_address
77 ip=self.device.ip_address
78 port=self.device.port_address
78 port=self.device.port_address
79
79
80 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
80 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
81 try:
81 try:
82 r = requests.get(route,timeout=0.7)
82 r = requests.get(route, timeout=0.8)
83 except Exception as e:
83 except Exception as e:
84 self.device.status = 0
84 self.device.status = 0
85 self.device.save()
85 self.device.save()
86 self.message = 'Could not read CGS status: ' + str(e)
86 self.message = 'Could not read CGS status: ' + str(e)
87 return False
87 return False
88
88
89 response = str(r.text)
89 response = str(r.text)
90 response = response.split(";")
90 response = response.split(";")
91 icon = response[0]
91 icon = response[0]
92 status = response[-1]
92 status = response[-1]
93
93
94 #print(icon, status)
95 #"icon" could be: "alert" or "okay"
94 #"icon" could be: "alert" or "okay"
96 if "alert" in icon:
95 if "alert" in icon:
97 #if "Starting Up" in status: #No Esta conectado
98 # self.device.status = 1
99 #else:
100 self.device.status = 1
96 self.device.status = 1
97 self.device.save()
98 self.message = status
101 return False
99 return False
102 elif "okay" in icon:
100 elif "okay" in icon:
103 self.device.status = 3
101 self.device.status = 3
104 else:
102 else:
105 self.device.status = 1
103 self.device.status = 1
106
104
107 self.message = status
105 self.message = status
108 self.device.save()
106 self.device.save()
109
107
110
111 return True
108 return True
112
109
113
110
114 def start_device(self):
111 def start_device(self):
115
112
116 ip=self.device.ip_address
113 ip=self.device.ip_address
117 port=self.device.port_address
114 port=self.device.port_address
118
115
119 #---Frequencies from form
116 #---Frequencies from form
120 f0 = self.freq0
117 f0 = self.freq0
121 f1 = self.freq1
118 f1 = self.freq1
122 f2 = self.freq2
119 f2 = self.freq2
123 f3 = self.freq3
120 f3 = self.freq3
124 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
121 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
125 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
122 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
126
123
127 try:
124 try:
128 r = requests.post(route, post_data, timeout=0.7)
125 r = requests.post(route, post_data, timeout=0.7)
129 except:
126 except:
130 self.message = "Could not start CGS device"
127 self.message = "Could not start CGS device"
131 return False
128 return False
132
129
133 text = r.text
130 text = r.text
134 text = text.split(',')
131 text = text.split(',')
135
132
136 if len(text)>1:
133 if len(text)>1:
137 title = text[0]
134 title = text[0]
138 status = text[1]
135 status = text[1]
139 if title == "okay":
136 if title == "okay":
140 self.message = status
137 self.message = status
141 self.device.status = 3
138 self.device.status = 3
142 self.device.save()
139 self.device.save()
143 return True
140 return True
144 else:
141 else:
145 self.message = title + ", " + status
142 self.message = title + ", " + status
146 self.device.status = 1
143 self.device.status = 1
147 self.device.save()
144 self.device.save()
148 return False
145 return False
149
146
150 return False
147 return False
151
148
152
149
153 def stop_device(self):
150 def stop_device(self):
154
151
155 ip=self.device.ip_address
152 ip=self.device.ip_address
156 port=self.device.port_address
153 port=self.device.port_address
157
154
158 f0 = 0
155 f0 = 0
159 f1 = 0
156 f1 = 0
160 f2 = 0
157 f2 = 0
161 f3 = 0
158 f3 = 0
162 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
159 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
163 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
160 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
164
161
165 try:
162 try:
166 r = requests.post(route, post_data, timeout=0.7)
163 r = requests.post(route, post_data, timeout=0.7)
167 except:
164 except:
168 self.message = "Could not stop CGS device"
165 self.message = "Could not stop CGS device"
169 return False
166 return False
170
167
171 text = r.text
168 text = r.text
172 text = text.split(',')
169 text = text.split(',')
173
170
174 if len(text)>1:
171 if len(text)>1:
175 title = text[0]
172 title = text[0]
176 status = text[1]
173 status = text[1]
177 if title == "okay":
174 if title == "okay":
178 self.message = status
175 self.message = status
179 self.device.status = 1
176 self.device.status = 1
180 self.device.save()
177 self.device.save()
181 self.message = "CGS device has been stopped"
178 self.message = "CGS device has been stopped"
182 return True
179 return True
183 else:
180 else:
184 self.message = title + ", " + status
181 self.message = title + ", " + status
185 self.device.status = 0
182 self.device.status = 0
186 self.device.save()
183 self.device.save()
187 return False
184 return False
188
185
189 return False
186 return False
190
187
191
188
192 def read_device(self):
189 def read_device(self):
193
190
194 import requests
191 import requests
195
192
196 ip=self.device.ip_address
193 ip=self.device.ip_address
197 port=self.device.port_address
194 port=self.device.port_address
198
195
199 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
196 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
200 try:
197 try:
201 frequencies = requests.get(route,timeout=0.7)
198 frequencies = requests.get(route,timeout=0.7)
202
199
203 except:
200 except:
204 self.message = "Could not read CGS parameters from this device"
201 self.message = "Could not read CGS parameters from this device"
205 return None
202 return None
206
203
207 frequencies = frequencies.json()
204 frequencies = frequencies.json()
208 frequencies = frequencies.get("Frecuencias")
205 frequencies = frequencies.get("Frecuencias")
209 f0 = frequencies.get("f0")
206 f0 = frequencies.get("f0")
210 f1 = frequencies.get("f1")
207 f1 = frequencies.get("f1")
211 f2 = frequencies.get("f2")
208 f2 = frequencies.get("f2")
212 f3 = frequencies.get("f3")
209 f3 = frequencies.get("f3")
213
210
214 parms = {'freq0': f0,
211 parms = {'freq0': f0,
215 'freq1': f1,
212 'freq1': f1,
216 'freq2': f2,
213 'freq2': f2,
217 'freq3': f3}
214 'freq3': f3}
218
215
219 self.message = ""
216 self.message = ""
220 return parms
217 return parms
221
218
222
219
223 def write_device(self):
220 def write_device(self):
224
221
225 ip=self.device.ip_address
222 ip=self.device.ip_address
226 port=self.device.port_address
223 port=self.device.port_address
227
224
228 #---Frequencies from form
225 #---Frequencies from form
229 f0 = self.freq0
226 f0 = self.freq0
230 f1 = self.freq1
227 f1 = self.freq1
231 f2 = self.freq2
228 f2 = self.freq2
232 f3 = self.freq3
229 f3 = self.freq3
233 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
230 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
234 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
231 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
235
232
236 try:
233 try:
237 r = requests.post(route, post_data, timeout=0.7)
234 r = requests.post(route, post_data, timeout=0.7)
238 except:
235 except:
239 self.message = "Could not write CGS parameters"
236 self.message = "Could not write CGS parameters"
240 return False
237 return False
241
238
242 text = r.text
239 text = r.text
243 text = text.split(',')
240 text = text.split(',')
244
241
245 if len(text)>1:
242 if len(text)>1:
246 title = text[0]
243 title = text[0]
247 status = text[1]
244 status = text[1]
248 if title == "okay":
245 if title == "okay":
249 self.message = status
246 self.message = status
250 self.device.status = 3
247 self.device.status = 3
251 self.device.save()
248 self.device.save()
252 return True
249 return True
253 else:
250 else:
254 self.message = title + ", " + status
251 self.message = title + ", " + status
255 self.device.status = 1
252 self.device.status = 1
256 self.device.save()
253 self.device.save()
257 return False
254 return False
258
255
259 return False
256 return False
260
257
261
258
262 class Meta:
259 class Meta:
263 db_table = 'cgs_configurations'
260 db_table = 'cgs_configurations'
General Comments 0
You need to be logged in to leave comments. Login now