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