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