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