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