##// END OF EJS Templates
Task #95: Se modifico funcion "read"...
Fiorella Quino -
r39:7a10a9cdba62
parent child
Show More
@@ -1,254 +1,255
1 from django.shortcuts import redirect, render, get_object_or_404
1 from django.shortcuts import redirect, render, get_object_or_404
2 from django.contrib import messages
2 from django.contrib import messages
3
3
4 from apps.main.models import Experiment, Configuration
4 from apps.main.models import Experiment, Configuration
5 from .models import CGSConfiguration
5 from .models import CGSConfiguration
6
6
7 from .forms import CGSConfigurationForm
7 from .forms import CGSConfigurationForm
8 from apps.main.views import sidebar
8 from apps.main.views import sidebar
9
9
10 import requests
10 import requests
11 import json
11 import json
12 from __builtin__ import None
12 #from __builtin__ import None
13 # Create your views here.
13 # Create your views here.
14
14
15 def cgs_conf(request, id_conf):
15 def cgs_conf(request, id_conf):
16
16
17 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
17 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
18
18
19 ip=conf.device.ip_address
19 ip=conf.device.ip_address
20 port=conf.device.port_address
20 port=conf.device.port_address
21
21
22 kwargs = {}
22 kwargs = {}
23
23
24 if request.method=='GET':
24 if request.method=='GET':
25 #r: response = icon, status
25 #r: response = icon, status
26 try:
26 try:
27 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
27 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
28 r = requests.get(route)
28 r = requests.get(route)
29 response = str(r.text)
29 response = str(r.text)
30 response = response.split(";")
30 response = response.split(";")
31 icon = response[0]
31 icon = response[0]
32 status = response[-1]
32 status = response[-1]
33 #print r.text
33 #print r.text
34 #"icon" could be: "alert" or "okay"
34 #"icon" could be: "alert" or "okay"
35 # Si hay alerta pero esta conectado
35 # Si hay alerta pero esta conectado
36 if "alert" in icon:
36 if "alert" in icon:
37 if "Starting Up" in status: #No Esta conectado
37 if "Starting Up" in status: #No Esta conectado
38 kwargs['connected'] = False
38 kwargs['connected'] = False
39 else:
39 else:
40 kwargs['connected'] = True
40 kwargs['connected'] = True
41 elif "okay" in icon:
41 elif "okay" in icon:
42 kwargs['connected'] = True
42 kwargs['connected'] = True
43 else:
43 else:
44 kwargs['connected'] = False
44 kwargs['connected'] = False
45
45
46 except:
46 except:
47 kwargs['connected'] = False
47 kwargs['connected'] = False
48 status = "The Device is not connected."
48 status = "The Device is not connected."
49
49
50 if not kwargs['connected']:
50 if not kwargs['connected']:
51 messages.error(request, message=status)
51 messages.error(request, message=status)
52
52
53 kwargs['dev_conf'] = conf
53 kwargs['dev_conf'] = conf
54 kwargs['dev_conf_keys'] = ['experiment', 'device',
54 kwargs['dev_conf_keys'] = ['experiment', 'device',
55 'freq0', 'freq1',
55 'freq0', 'freq1',
56 'freq2', 'freq3']
56 'freq2', 'freq3']
57
57
58 kwargs['title'] = 'CGS Configuration'
58 kwargs['title'] = 'CGS Configuration'
59 kwargs['suptitle'] = 'Details'
59 kwargs['suptitle'] = 'Details'
60
60
61 kwargs['button'] = 'Edit Configuration'
61 kwargs['button'] = 'Edit Configuration'
62
62
63 ###### SIDEBAR ######
63 ###### SIDEBAR ######
64 kwargs.update(sidebar(conf))
64 kwargs.update(sidebar(conf))
65
65
66 return render(request, 'cgs_conf.html', kwargs)
66 return render(request, 'cgs_conf.html', kwargs)
67
67
68 def cgs_conf_edit(request, id_conf):
68 def cgs_conf_edit(request, id_conf):
69
69
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
71
71
72 if request.method=='GET':
72 if request.method=='GET':
73 form = CGSConfigurationForm(instance=conf)
73 form = CGSConfigurationForm(instance=conf)
74
74
75 if request.method=='POST':
75 if request.method=='POST':
76 form = CGSConfigurationForm(request.POST, instance=conf)
76 form = CGSConfigurationForm(request.POST, instance=conf)
77
77
78 if form.is_valid():
78 if form.is_valid():
79 conf = form.save(commit=False)
79 conf = form.save(commit=False)
80
80
81 if conf.verify_frequencies():
81 if conf.verify_frequencies():
82
82
83 if conf.freq0 == None: conf.freq0 = 0
83 if conf.freq0 == None: conf.freq0 = 0
84 if conf.freq1 == None: conf.freq0 = 0
84 if conf.freq1 == None: conf.freq0 = 0
85 if conf.freq2 == None: conf.freq0 = 0
85 if conf.freq2 == None: conf.freq0 = 0
86 if conf.freq3 == None: conf.freq0 = 0
86 if conf.freq3 == None: conf.freq0 = 0
87
87
88
88
89 data = {'f0': str(conf.freq0), 'f1': str(conf.freq1),
89 data = {'f0': str(conf.freq0), 'f1': str(conf.freq1),
90 'f2': str(conf.freq2), 'f3': str(conf.freq3)}
90 'f2': str(conf.freq2), 'f3': str(conf.freq3)}
91 json_data = json.dumps(data)
91 json_data = json.dumps(data)
92 conf.parameters = json_data
92 conf.parameters = json_data
93
93
94 conf.save()
94 conf.save()
95 return redirect('url_cgs_conf', id_conf=conf.id)
95 return redirect('url_cgs_conf', id_conf=conf.id)
96
96
97 ##ERRORS
97 ##ERRORS
98
98
99 kwargs = {}
99 kwargs = {}
100 kwargs['id_dev'] = conf.id
100 kwargs['id_dev'] = conf.id
101 kwargs['form'] = form
101 kwargs['form'] = form
102 kwargs['title'] = 'Device Configuration'
102 kwargs['title'] = 'Device Configuration'
103 kwargs['suptitle'] = 'Edit'
103 kwargs['suptitle'] = 'Edit'
104 kwargs['button'] = 'Save'
104 kwargs['button'] = 'Save'
105
105
106
106
107 ###### SIDEBAR ######
107 ###### SIDEBAR ######
108 kwargs.update(sidebar(conf))
108 kwargs.update(sidebar(conf))
109
109
110 return render(request, 'cgs_conf_edit.html', kwargs)
110 return render(request, 'cgs_conf_edit.html', kwargs)
111
111
112 def cgs_conf_write(request, id_conf):
112 def cgs_conf_write(request, id_conf):
113
113
114 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
114 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
115 ip=conf.device.ip_address
115 ip=conf.device.ip_address
116 port=conf.device.port_address
116 port=conf.device.port_address
117
117
118 #Frequencies from form
118 #Frequencies from form
119 if conf.freq0 == None: conf.freq0 = 0
119 if conf.freq0 == None: conf.freq0 = 0
120 if conf.freq1 == None: conf.freq0 = 0
120 if conf.freq1 == None: conf.freq0 = 0
121 if conf.freq2 == None: conf.freq0 = 0
121 if conf.freq2 == None: conf.freq0 = 0
122 if conf.freq3 == None: conf.freq0 = 0
122 if conf.freq3 == None: conf.freq0 = 0
123 f0 = int(conf.freq0)
123 f0 = int(conf.freq0)
124 f1 = int(conf.freq1)
124 f1 = int(conf.freq1)
125 f2 = int(conf.freq2)
125 f2 = int(conf.freq2)
126 f3 = int(conf.freq3)
126 f3 = int(conf.freq3)
127
127
128
128
129 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
129 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
130 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
130 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
131 r = requests.post(route, post_data)
131 r = requests.post(route, post_data)
132 text = r.text
132 text = r.text
133 text = text.split(',')
133 text = text.split(',')
134
134
135 try:
135 try:
136 if len(text)>1:
136 if len(text)>1:
137 title = text[0]
137 title = text[0]
138 status = text[1]
138 status = text[1]
139 status_ok = r.status_code
139 status_ok = r.status_code
140 if title == "okay":
140 if title == "okay":
141 messages.success(request, status)
141 messages.success(request, status)
142 else:
142 else:
143 messages.error(request, status)
143 messages.error(request, status)
144
144
145 else:
145 else:
146 title = text[0]
146 title = text[0]
147 messages.error(request, title)
147 messages.error(request, title)
148
148
149 except:
149 except:
150 messages.error(request, "An hardware error was found")
150 messages.error(request, "An hardware error was found")
151
151
152
152
153
153
154
154
155 return redirect('url_cgs_conf', id_conf=conf.id)
155 return redirect('url_cgs_conf', id_conf=conf.id)
156
156
157 def cgs_conf_read(request, id_conf):
157 def cgs_conf_read(request, id_conf):
158
158
159 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
159 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
160
160
161 ip=conf.device.ip_address
161 ip=conf.device.ip_address
162 port=conf.device.port_address
162 port=conf.device.port_address
163
163
164 if request.method=='POST':
164 if request.method=='POST':
165 form = CGSConfigurationForm(request.POST, instance=conf)
165 form = CGSConfigurationForm(request.POST, instance=conf)
166
166
167 if form.is_valid():
167 if form.is_valid():
168 cgs_model = form.save(commit=False)
168 cgs_model = form.save(commit=False)
169
169
170 if cgs_model.verify_frequencies():
170 if cgs_model.verify_frequencies():
171
171
172 cgs_model.save()
172 cgs_model.save()
173 return redirect('url_cgs_conf', id_conf=conf.id)
173 return redirect('url_cgs_conf', id_conf=conf.id)
174
174
175 messages.error(request, "Parameters could not be saved. Invalid parameters")
175 messages.error(request, "Parameters could not be saved. Invalid parameters")
176
176
177 data = {}
177 data = {}
178
178
179
179
180 if request.method=='GET':
180 if request.method=='GET':
181 #r: response = icon, status
181 #r: response = icon, status
182 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
182 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
183 try:
183 try:
184 r = requests.get(route)
184 r = requests.get(route)
185 response = str(r.text)
185 response = str(r.text)
186 response = response.split(";")
186 response = response.split(";")
187 icon = response[0]
187 icon = response[0]
188 status = response[-1]
188 status = response[-1]
189 print r.text
189 print r.text
190 #"icon" could be: "alert" or "okay"
190 #"icon" could be: "alert" or "okay"
191 if "okay" in icon:
191 if "okay" in icon:
192 messages.success(request, status)
192 messages.success(request, status)
193 else:
193 else:
194 messages.error(request, status)
194 messages.error(request, status)
195 #Get Frequencies
195 #Get Frequencies
196 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
196 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
197 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
197 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
198 frequencies = requests.get(route)
198 frequencies = requests.get(route)
199 frequencies = frequencies.json()
199 frequencies = frequencies.json()
200 frequencies = frequencies.get("Frecuencias")
200 frequencies = frequencies.get("Frecuencias")
201 f0 = frequencies.get("f0")
201 f0 = frequencies.get("f0")
202 f1 = frequencies.get("f1")
202 f1 = frequencies.get("f1")
203 f2 = frequencies.get("f2")
203 f2 = frequencies.get("f2")
204 f3 = frequencies.get("f3")
204 f3 = frequencies.get("f3")
205 print f0,f1,f2,f3
205 print f0,f1,f2,f3
206
206
207
207
208 if not response:
208 if not response:
209 messages.error(request, "Could not read parameters from Device")
209 messages.error(request, "Could not read parameters from Device")
210 return redirect('url_cgs_conf', id_conf=conf.id)
210 return redirect('url_cgs_conf', id_conf=conf.id)
211
211
212 data = {'experiment' : conf.experiment.id,
212 data = {'experiment' : conf.experiment.id,
213 'device' : conf.device.id,
213 'device' : conf.device.id,
214 'freq0' : f0,
214 'freq0' : f0,
215 'freq1' : f1,
215 'freq1' : f1,
216 'freq2' : f2,
216 'freq2' : f2,
217 'freq3' : f3,
217 'freq3' : f3,
218 }
218 }
219 except:
219 except:
220 messages.error(request, "Could not read parameters from Device")
220 messages.error(request, "Could not read parameters from Device")
221 data = {'experiment' : conf.experiment.id,
221 data = {'experiment' : conf.experiment.id,
222 'device' : conf.device.id,
222 'device' : conf.device.id,
223 'freq0' : None,
223 'freq0' : None,
224 'freq1' : None,
224 'freq1' : None,
225 'freq2' : None,
225 'freq2' : None,
226 'freq3' : None,
226 'freq3' : None,
227 }
227 }
228 return redirect('url_cgs_conf', id_conf=conf.id)
228
229
229 form = CGSConfigurationForm(initial = data)
230 form = CGSConfigurationForm(initial = data)
230
231
231 kwargs = {}
232 kwargs = {}
232 kwargs['id_dev'] = conf.id
233 kwargs['id_dev'] = conf.id
233 kwargs['form'] = form
234 kwargs['form'] = form
234 kwargs['title'] = 'Device Configuration'
235 kwargs['title'] = 'Device Configuration'
235 kwargs['suptitle'] = 'Parameters read from device'
236 kwargs['suptitle'] = 'Parameters read from device'
236 kwargs['button'] = 'Save'
237 kwargs['button'] = 'Save'
237
238
238 ###### SIDEBAR ######
239 ###### SIDEBAR ######
239 kwargs.update(sidebar(conf))
240 kwargs.update(sidebar(conf))
240
241
241 return render(request, 'cgs_conf_edit.html', kwargs)
242 return render(request, 'cgs_conf_edit.html', kwargs)
242
243
243 def cgs_conf_export(request, id_conf):
244 def cgs_conf_export(request, id_conf):
244
245
245 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
246 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
246 ip=conf.device.ip_address
247 ip=conf.device.ip_address
247 port=conf.device.port_address
248 port=conf.device.port_address
248
249
249 if request.method=='POST':
250 if request.method=='POST':
250 return HttpResponse(conf.parameters, content_type="application/json")
251 return HttpResponse(conf.parameters, content_type="application/json")
251
252
252 return render(request, 'cgs_conf.html')
253 return render(request, 'cgs_conf.html')
253 #return redirect(conf.get_absolute_url())
254 #return redirect(conf.get_absolute_url())
254
255
General Comments 0
You need to be logged in to leave comments. Login now