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