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