##// END OF EJS Templates
Task #95: se modifico funcion "write" del cgs...
Fiorella Quino -
r40:a1637aa791d2
parent child
Show More
@@ -1,16 +1,16
1 from django.conf.urls import url
1 from django.conf.urls import url
2
2
3 urlpatterns = (
3 urlpatterns = (
4 url(r'^(?P<id_conf>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
4 url(r'^(?P<id_conf>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
5 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
5 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
6 #url(r'^(?P<id_conf>-?\d+)/(?P<message>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
6 #url(r'^(?P<id_conf>-?\d+)/(?P<message>-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
7 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
7 url(r'^(?P<id_conf>-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
8 url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.cgs.views.cgs_conf_write', name='url_write_cgs_conf'),
8 url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.cgs.views.cgs_conf_write', name='url_write_cgs_conf'),
9 url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.cgs.views.cgs_conf_read', name='url_read_cgs_conf'),
9 url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.cgs.views.cgs_conf_read', name='url_read_cgs_conf'),
10 #url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.main.views.dev_conf_write', name='url_write_cgs_conf'),
10 #url(r'^(?P<id_conf>-?\d+)/write/$', 'apps.main.views.dev_conf_write', name='url_write_cgs_conf'),
11 #url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
11 #url(r'^(?P<id_conf>-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
12 url(r'^(?P<id_conf>-?\d+)/import/$', 'apps.main.views.dev_conf_import', name='url_import_cgs_conf'),
12 url(r'^(?P<id_conf>-?\d+)/import/$', 'apps.main.views.dev_conf_import', name='url_import_cgs_conf'),
13 #url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.cgs.views.cgs_conf_export', name='url_export_cgs_conf'),
13 url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.cgs.views.cgs_conf_export', name='url_export_cgs_conf'),
14 url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
14 #url(r'^(?P<id_conf>-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
15 )
15 )
16
16
@@ -1,255 +1,258
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 try:
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:
143 messages.error(request, status)
144
142 else:
145 else:
143 messages.error(request, status)
146 title = text[0]
144
147 messages.error(request, title)
145 else:
148
146 title = text[0]
149 except:
147 messages.error(request, title)
150 messages.error(request, "An hardware error was found.")
148
151
149 except:
152 except:
150 messages.error(request, "An hardware error was found")
153 messages.error(request, "Could not write parameters.")
151
154
152
155
153
156
154
157
155 return redirect('url_cgs_conf', id_conf=conf.id)
158 return redirect('url_cgs_conf', id_conf=conf.id)
156
159
157 def cgs_conf_read(request, id_conf):
160 def cgs_conf_read(request, id_conf):
158
161
159 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
162 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
160
163
161 ip=conf.device.ip_address
164 ip=conf.device.ip_address
162 port=conf.device.port_address
165 port=conf.device.port_address
163
166
164 if request.method=='POST':
167 if request.method=='POST':
165 form = CGSConfigurationForm(request.POST, instance=conf)
168 form = CGSConfigurationForm(request.POST, instance=conf)
166
169
167 if form.is_valid():
170 if form.is_valid():
168 cgs_model = form.save(commit=False)
171 cgs_model = form.save(commit=False)
169
172
170 if cgs_model.verify_frequencies():
173 if cgs_model.verify_frequencies():
171
174
172 cgs_model.save()
175 cgs_model.save()
173 return redirect('url_cgs_conf', id_conf=conf.id)
176 return redirect('url_cgs_conf', id_conf=conf.id)
174
177
175 messages.error(request, "Parameters could not be saved. Invalid parameters")
178 messages.error(request, "Parameters could not be saved. Invalid parameters")
176
179
177 data = {}
180 data = {}
178
181
179
182
180 if request.method=='GET':
183 if request.method=='GET':
181 #r: response = icon, status
184 #r: response = icon, status
182 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
185 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
183 try:
186 try:
184 r = requests.get(route)
187 r = requests.get(route)
185 response = str(r.text)
188 response = str(r.text)
186 response = response.split(";")
189 response = response.split(";")
187 icon = response[0]
190 icon = response[0]
188 status = response[-1]
191 status = response[-1]
189 print r.text
192 print r.text
190 #"icon" could be: "alert" or "okay"
193 #"icon" could be: "alert" or "okay"
191 if "okay" in icon:
194 if "okay" in icon:
192 messages.success(request, status)
195 messages.success(request, status)
193 else:
196 else:
194 messages.error(request, status)
197 messages.error(request, status)
195 #Get Frequencies
198 #Get Frequencies
196 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
199 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
197 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
200 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
198 frequencies = requests.get(route)
201 frequencies = requests.get(route)
199 frequencies = frequencies.json()
202 frequencies = frequencies.json()
200 frequencies = frequencies.get("Frecuencias")
203 frequencies = frequencies.get("Frecuencias")
201 f0 = frequencies.get("f0")
204 f0 = frequencies.get("f0")
202 f1 = frequencies.get("f1")
205 f1 = frequencies.get("f1")
203 f2 = frequencies.get("f2")
206 f2 = frequencies.get("f2")
204 f3 = frequencies.get("f3")
207 f3 = frequencies.get("f3")
205 print f0,f1,f2,f3
208 print f0,f1,f2,f3
206
209
207
210
208 if not response:
211 if not response:
209 messages.error(request, "Could not read parameters from Device")
212 messages.error(request, "Could not read parameters from Device")
210 return redirect('url_cgs_conf', id_conf=conf.id)
213 return redirect('url_cgs_conf', id_conf=conf.id)
211
214
212 data = {'experiment' : conf.experiment.id,
215 data = {'experiment' : conf.experiment.id,
213 'device' : conf.device.id,
216 'device' : conf.device.id,
214 'freq0' : f0,
217 'freq0' : f0,
215 'freq1' : f1,
218 'freq1' : f1,
216 'freq2' : f2,
219 'freq2' : f2,
217 'freq3' : f3,
220 'freq3' : f3,
218 }
221 }
219 except:
222 except:
220 messages.error(request, "Could not read parameters from Device")
223 messages.error(request, "Could not read parameters from Device")
221 data = {'experiment' : conf.experiment.id,
224 data = {'experiment' : conf.experiment.id,
222 'device' : conf.device.id,
225 'device' : conf.device.id,
223 'freq0' : None,
226 'freq0' : None,
224 'freq1' : None,
227 'freq1' : None,
225 'freq2' : None,
228 'freq2' : None,
226 'freq3' : None,
229 'freq3' : None,
227 }
230 }
228 return redirect('url_cgs_conf', id_conf=conf.id)
231 return redirect('url_cgs_conf', id_conf=conf.id)
229
232
230 form = CGSConfigurationForm(initial = data)
233 form = CGSConfigurationForm(initial = data)
231
234
232 kwargs = {}
235 kwargs = {}
233 kwargs['id_dev'] = conf.id
236 kwargs['id_dev'] = conf.id
234 kwargs['form'] = form
237 kwargs['form'] = form
235 kwargs['title'] = 'Device Configuration'
238 kwargs['title'] = 'Device Configuration'
236 kwargs['suptitle'] = 'Parameters read from device'
239 kwargs['suptitle'] = 'Parameters read from device'
237 kwargs['button'] = 'Save'
240 kwargs['button'] = 'Save'
238
241
239 ###### SIDEBAR ######
242 ###### SIDEBAR ######
240 kwargs.update(sidebar(conf))
243 kwargs.update(sidebar(conf))
241
244
242 return render(request, 'cgs_conf_edit.html', kwargs)
245 return render(request, 'cgs_conf_edit.html', kwargs)
243
246
244 def cgs_conf_export(request, id_conf):
247 def cgs_conf_export(request, id_conf):
245
248
246 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
249 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
247 ip=conf.device.ip_address
250 ip=conf.device.ip_address
248 port=conf.device.port_address
251 port=conf.device.port_address
249
252
250 if request.method=='POST':
253 if request.method=='POST':
251 return HttpResponse(conf.parameters, content_type="application/json")
254 return HttpResponse(conf.parameters, content_type="application/json")
252
255
253 return render(request, 'cgs_conf.html')
256 return render(request, 'cgs_conf.html')
254 #return redirect(conf.get_absolute_url())
257 #return redirect(conf.get_absolute_url())
255
258
General Comments 0
You need to be logged in to leave comments. Login now