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