##// END OF EJS Templates
Task #95: Modulo CGS. request with timeout=1...
Fiorella Quino -
r86:97503d63b013
parent child
Show More
@@ -1,174 +1,173
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 json_field import JSONField
4 from django.core.validators import MinValueValidator, MaxValueValidator
3 from django.core.validators import MinValueValidator, MaxValueValidator
5
4
6
5
7 from apps.main.models import Device, Experiment
6 from apps.main.models import Device, Experiment
8
7
9 from files import read_json_file
8 from files import read_json_file
10 # Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)]
9 # Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)]
11
10
12 class CGSConfiguration(Configuration):
11 class CGSConfiguration(Configuration):
13
12
14 freq0 = models.IntegerField(verbose_name='Frequency 0',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
13 freq0 = models.IntegerField(verbose_name='Frequency 0',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
15 freq1 = models.IntegerField(verbose_name='Frequency 1',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
14 freq1 = models.IntegerField(verbose_name='Frequency 1',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
16 freq2 = models.IntegerField(verbose_name='Frequency 2',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
15 freq2 = models.IntegerField(verbose_name='Frequency 2',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
17 freq3 = models.IntegerField(verbose_name='Frequency 3',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
16 freq3 = models.IntegerField(verbose_name='Frequency 3',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
18
17
19 def verify_frequencies(self):
18 def verify_frequencies(self):
20
19
21 return True
20 return True
22
21
23
22
24 def update_from_file(self, fp):
23 def update_from_file(self, fp):
25
24
26 kwargs = read_json_file(fp)
25 kwargs = read_json_file(fp)
27
26
28 if not kwargs:
27 if not kwargs:
29 return False
28 return False
30
29
31 self.freq0 = kwargs['freq0']
30 self.freq0 = kwargs['freq0']
32 self.freq1 = kwargs['freq1']
31 self.freq1 = kwargs['freq1']
33 self.freq2 = kwargs['freq2']
32 self.freq2 = kwargs['freq2']
34 self.freq3 = kwargs['freq3']
33 self.freq3 = kwargs['freq3']
35
34
36 return True
35 return True
37
36
38 def parms_to_dict(self):
37 def parms_to_dict(self):
39
38
40 parameters = {}
39 parameters = {}
41
40
42 if self.freq0 == None or self.freq0 == '':
41 if self.freq0 == None or self.freq0 == '':
43 parameters['freq0'] = 0
42 parameters['freq0'] = 0
44 else:
43 else:
45 parameters['freq0'] = self.freq0
44 parameters['freq0'] = self.freq0
46
45
47 if self.freq1 == None or self.freq1 == '':
46 if self.freq1 == None or self.freq1 == '':
48 parameters['freq1'] = 0
47 parameters['freq1'] = 0
49 else:
48 else:
50 parameters['freq1'] = self.freq1
49 parameters['freq1'] = self.freq1
51
50
52 if self.freq2 == None or self.freq2 == '':
51 if self.freq2 == None or self.freq2 == '':
53 parameters['freq2'] = 0
52 parameters['freq2'] = 0
54 else:
53 else:
55 parameters['freq2'] = self.freq2
54 parameters['freq2'] = self.freq2
56
55
57 if self.freq3 == None or self.freq3 == '':
56 if self.freq3 == None or self.freq3 == '':
58 parameters['freq3'] = 0
57 parameters['freq3'] = 0
59 else:
58 else:
60 parameters['freq3'] = self.freq3
59 parameters['freq3'] = self.freq3
61
60
62
61
63 return parameters
62 return parameters
64
63
65
64
66 def status_device(self):
65 def status_device(self):
67
66
68 import requests
67 import requests
69
68
70 ip=self.device.ip_address
69 ip=self.device.ip_address
71 port=self.device.port_address
70 port=self.device.port_address
72
71
73 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
72 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
74 try:
73 try:
75 r = requests.get(route)
74 r = requests.get(route,timeout=1)
76 except:
75 except:
77 self.device.status = 0
76 self.device.status = 0
78 self.device.save()
77 self.device.save()
79 return self.device.status
78 return self.device.status
80
79
81 response = str(r.text)
80 response = str(r.text)
82 response = response.split(";")
81 response = response.split(";")
83 icon = response[0]
82 icon = response[0]
84 status = response[-1]
83 status = response[-1]
85
84
86 print icon, status
85 print icon, status
87 #"icon" could be: "alert" or "okay"
86 #"icon" could be: "alert" or "okay"
88 if "alert" in icon:
87 if "alert" in icon:
89 if "Starting Up" in status: #No Esta conectado
88 if "Starting Up" in status: #No Esta conectado
90 self.device.status = 0
89 self.device.status = 0
91 else:
90 else:
92 self.device.status = 1
91 self.device.status = 1
93 elif "okay" in icon:
92 elif "okay" in icon:
94 self.device.status = 3
93 self.device.status = 3
95 else:
94 else:
96 self.device.status = 1
95 self.device.status = 1
97
96
98 self.message = status
97 self.message = status
99 self.device.save()
98 self.device.save()
100
99
101
100
102 return self.device.status
101 return self.device.status
103
102
104
103
105 def read_device(self):
104 def read_device(self):
106
105
107 import requests
106 import requests
108
107
109 ip=self.device.ip_address
108 ip=self.device.ip_address
110 port=self.device.port_address
109 port=self.device.port_address
111
110
112 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
111 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
113 try:
112 try:
114 frequencies = requests.get(route)
113 frequencies = requests.get(route,timeout=1)
115
114
116 except:
115 except:
117 self.message = "Could not read CGS parameters from this device"
116 self.message = "Could not read CGS parameters from this device"
118 return None
117 return None
119
118
120 frequencies = frequencies.json()
119 frequencies = frequencies.json()
121 frequencies = frequencies.get("Frecuencias")
120 frequencies = frequencies.get("Frecuencias")
122 f0 = frequencies.get("f0")
121 f0 = frequencies.get("f0")
123 f1 = frequencies.get("f1")
122 f1 = frequencies.get("f1")
124 f2 = frequencies.get("f2")
123 f2 = frequencies.get("f2")
125 f3 = frequencies.get("f3")
124 f3 = frequencies.get("f3")
126
125
127 parms = {'freq0': f0,
126 parms = {'freq0': f0,
128 'freq1': f1,
127 'freq1': f1,
129 'freq2': f2,
128 'freq2': f2,
130 'freq3': f3}
129 'freq3': f3}
131
130
132 self.message = ""
131 self.message = ""
133 return parms
132 return parms
134
133
135
134
136 def write_device(self):
135 def write_device(self):
137
136
138 import requests
137 import requests
139
138
140 ip=self.device.ip_address
139 ip=self.device.ip_address
141 port=self.device.port_address
140 port=self.device.port_address
142
141
143 #---Frequencies from form
142 #---Frequencies from form
144 f0 = self.freq0
143 f0 = self.freq0
145 f1 = self.freq1
144 f1 = self.freq1
146 f2 = self.freq2
145 f2 = self.freq2
147 f3 = self.freq3
146 f3 = self.freq3
148 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
147 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
149 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
148 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
150
149
151 try:
150 try:
152 r = requests.post(route, post_data)
151 r = requests.post(route, post_data, timeout=1)
153 except:
152 except:
154 self.message = "Could not write CGS parameters"
153 self.message = "Could not write CGS parameters"
155 return None
154 return None
156
155
157 text = r.text
156 text = r.text
158 text = text.split(',')
157 text = text.split(',')
159
158
160 if len(text)>1:
159 if len(text)>1:
161 title = text[0]
160 title = text[0]
162 status = text[1]
161 status = text[1]
163 if title == "okay":
162 if title == "okay":
164 self.message = status
163 self.message = status
165 return 3
164 return 3
166 else:
165 else:
167 self.message = title + ", " + status
166 self.message = title + ", " + status
168 return 1
167 return 1
169
168
170 return 1
169 return 1
171
170
172
171
173 class Meta:
172 class Meta:
174 db_table = 'cgs_configurations'
173 db_table = 'cgs_configurations'
General Comments 0
You need to be logged in to leave comments. Login now