##// END OF EJS Templates
Task #716: Vista ABS (urls.py for plot beams patterns)...
Fiorella Quino -
r177:ad2e7677ed4e
parent child
Show More
@@ -1,327 +1,482
1 from django.shortcuts import render_to_response
1 from django.shortcuts import render_to_response
2 from django.template import RequestContext
2 from django.template import RequestContext
3 from django.shortcuts import redirect, render, get_object_or_404
3 from django.shortcuts import redirect, render, get_object_or_404
4 from django.contrib import messages
4 from django.contrib import messages
5 from django.conf import settings
6 from django.http import HttpResponse
7
8 from datetime import datetime
9 from time import sleep
10 import os
5
11
6 from apps.main.models import Device, Configuration
12 from apps.main.models import Device, Configuration
7 from apps.main.views import sidebar
13 from apps.main.views import sidebar
8
14
9 from .models import ABSConfiguration, ABSBeam
15 from .models import ABSConfiguration, ABSBeam
10 from .forms import ABSConfigurationForm, ABSBeamEditForm, ABSBeamAddForm
16 from .forms import ABSConfigurationForm, ABSBeamEditForm, ABSBeamAddForm
17
18 from .utils.overJroShow import overJroShow
19 from .utils.OverJRO import OverJRO
11 # Create your views here.
20 # Create your views here.
12 import json, ast
21 import json, ast
13
22
14
23
15 def get_values_from_form(form_data):
24 def get_values_from_form(form_data):
16
25
17 sublistup = []
26 sublistup = []
18 sublistdown = []
27 sublistdown = []
19 subtxlistup = []
28 subtxlistup = []
20 subtxlistdown = []
29 subtxlistdown = []
21 subrxlistup = []
30 subrxlistup = []
22 subrxlistdown = []
31 subrxlistdown = []
23
32
24 up_values_list = []
33 up_values_list = []
25 down_values_list = []
34 down_values_list = []
26 up_txvalues_list = []
35 up_txvalues_list = []
27 down_txvalues_list = []
36 down_txvalues_list = []
28 up_rxvalues_list = []
37 up_rxvalues_list = []
29 down_rxvalues_list = []
38 down_rxvalues_list = []
30
39
31 values_list = {}
40 values_list = {}
32 cont = 1
41 cont = 1
33
42
34 for i in range(1,65):
43 for i in range(1,65):
35 x = float(form_data['abs_up'+str(i)])
44 x = float(form_data['abs_up'+str(i)])
36 y = float(form_data['abs_down'+str(i)])
45 y = float(form_data['abs_down'+str(i)])
37 sublistup.append(x)
46 sublistup.append(x)
38 sublistdown.append(y)
47 sublistdown.append(y)
39
48
40 if str(i) in form_data.getlist('uptx_checks'):
49 if str(i) in form_data.getlist('uptx_checks'):
41 subtxlistup.append(1)
50 subtxlistup.append(1)
42 else:
51 else:
43 subtxlistup.append(0)
52 subtxlistup.append(0)
44 if str(i) in form_data.getlist('downtx_checks'):
53 if str(i) in form_data.getlist('downtx_checks'):
45 subtxlistdown.append(1)
54 subtxlistdown.append(1)
46 else:
55 else:
47 subtxlistdown.append(0)
56 subtxlistdown.append(0)
48
57
49 if str(i) in form_data.getlist('uprx_checks'):
58 if str(i) in form_data.getlist('uprx_checks'):
50 subrxlistup.append(1)
59 subrxlistup.append(1)
51 else:
60 else:
52 subrxlistup.append(0)
61 subrxlistup.append(0)
53 if str(i) in form_data.getlist('downrx_checks'):
62 if str(i) in form_data.getlist('downrx_checks'):
54 subrxlistdown.append(1)
63 subrxlistdown.append(1)
55 else:
64 else:
56 subrxlistdown.append(0)
65 subrxlistdown.append(0)
57
66
58 cont = cont+1
67 cont = cont+1
59
68
60 if cont == 9:
69 if cont == 9:
61 up_values_list.append(sublistup)
70 up_values_list.append(sublistup)
62 down_values_list.append(sublistdown)
71 down_values_list.append(sublistdown)
63 sublistup = []
72 sublistup = []
64 sublistdown = []
73 sublistdown = []
65
74
66 up_txvalues_list.append(subtxlistup)
75 up_txvalues_list.append(subtxlistup)
67 down_txvalues_list.append(subtxlistdown)
76 down_txvalues_list.append(subtxlistdown)
68 subtxlistup = []
77 subtxlistup = []
69 subtxlistdown = []
78 subtxlistdown = []
70 up_rxvalues_list.append(subrxlistup)
79 up_rxvalues_list.append(subrxlistup)
71 down_rxvalues_list.append(subrxlistdown)
80 down_rxvalues_list.append(subrxlistdown)
72 subrxlistup = []
81 subrxlistup = []
73 subrxlistdown = []
82 subrxlistdown = []
74 cont = 1
83 cont = 1
75
84
76
85
77 list_uesup = []
86 list_uesup = []
78 list_uesdown = []
87 list_uesdown = []
79 for i in range(1,5):
88 for i in range(1,5):
80 if form_data['ues_up'+str(i)] == '':
89 if form_data['ues_up'+str(i)] == '':
81 list_uesup.append(0.0)
90 list_uesup.append(0.0)
82 else:
91 else:
83 list_uesup.append(float(form_data['ues_up'+str(i)]))
92 list_uesup.append(float(form_data['ues_up'+str(i)]))
84
93
85 if form_data['ues_down'+str(i)] == '':
94 if form_data['ues_down'+str(i)] == '':
86 list_uesdown.append(0.0)
95 list_uesdown.append(0.0)
87 else:
96 else:
88 list_uesdown.append(float(form_data['ues_down'+str(i)]))
97 list_uesdown.append(float(form_data['ues_down'+str(i)]))
89
98
90 onlyrx_list = form_data.getlist('onlyrx')
99 onlyrx_list = form_data.getlist('onlyrx')
91 only_rx = {}
100 only_rx = {}
92 if '1' in onlyrx_list:
101 if '1' in onlyrx_list:
93 only_rx['up'] = True
102 only_rx['up'] = True
94 else:
103 else:
95 only_rx['up'] = False
104 only_rx['up'] = False
96 if '2' in onlyrx_list:
105 if '2' in onlyrx_list:
97 only_rx['down'] = True
106 only_rx['down'] = True
98 else:
107 else:
99 only_rx['down'] = False
108 only_rx['down'] = False
100
109
101 antenna = {'antenna_up': up_values_list, 'antenna_down': down_values_list}
110 antenna = {'antenna_up': up_values_list, 'antenna_down': down_values_list}
102 tx = {'up': up_txvalues_list, 'down': down_txvalues_list}
111 tx = {'up': up_txvalues_list, 'down': down_txvalues_list}
103 rx = {'up': up_rxvalues_list, 'down': down_rxvalues_list}
112 rx = {'up': up_rxvalues_list, 'down': down_rxvalues_list}
104 ues = {'up': list_uesup, 'down': list_uesdown}
113 ues = {'up': list_uesup, 'down': list_uesdown}
105 name = str(form_data['beam_name'])
114 name = str(form_data['beam_name'])
106
115
107 beam_data = {'name': name, 'antenna': antenna, 'tx': tx, 'rx': rx, 'ues': ues, 'only_rx': only_rx}
116 beam_data = {'name': name, 'antenna': antenna, 'tx': tx, 'rx': rx, 'ues': ues, 'only_rx': only_rx}
108
117
109 return beam_data
118 return beam_data
110
119
111
120
112
121
113 def abs_conf(request, id_conf):
122 def abs_conf(request, id_conf):
114
123
115 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
124 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
116
125
117 beams_dict = ast.literal_eval(conf.beams)
126 beams_dict = ast.literal_eval(conf.beams)
118 beams = []
127 beams = []
119 for beam_id in range(1,len(beams_dict)+1):
128 for beam_id in range(1,len(beams_dict)+1):
120 beam = ABSBeam.objects.get(pk=beams_dict['beam'+str(beam_id)])
129 beam = ABSBeam.objects.get(pk=beams_dict['beam'+str(beam_id)])
121 beams.append(beam)
130 beams.append(beam)
122
131
123 beams_id = ast.literal_eval(conf.beams)
132 beams_id = ast.literal_eval(conf.beams)
124
133
125 ip=conf.device.ip_address
134 ip=conf.device.ip_address
126 port=conf.device.port_address
135 port=conf.device.port_address
127
136
128 kwargs = {}
137 kwargs = {}
129 kwargs['status'] = conf.device.get_status_display()
138 kwargs['status'] = conf.device.get_status_display()
130
139
131
140
132 kwargs['dev_conf'] = conf
141 kwargs['dev_conf'] = conf
133 kwargs['dev_conf_keys'] = ['name',]
142 kwargs['dev_conf_keys'] = ['name',]
134
143
135 kwargs['title'] = 'ABS Configuration'
144 kwargs['title'] = 'ABS Configuration'
136 kwargs['suptitle'] = 'Details'
145 kwargs['suptitle'] = 'Details'
137 kwargs['no_play'] = True
146 kwargs['no_play'] = True
138
147
139 kwargs['button'] = 'Edit Configuration'
148 kwargs['button'] = 'Edit Configuration'
140
149
141 #kwargs['no_play'] = True
150 #kwargs['no_play'] = True
142 kwargs['beams_id'] = beams_id
151 kwargs['beams_id'] = beams_id
143 kwargs['beams'] = beams
152 kwargs['beams'] = beams
144 kwargs['beam_selector'] = 0
153 kwargs['beam_selector'] = 0
145 #kwargs['my_data'] = simplejson.dumps(beams)
154 #kwargs['my_data'] = simplejson.dumps(beams)
146
155
147 kwargs['only_stop'] = True
156 kwargs['only_stop'] = True
148
157
149 ###### SIDEBAR ######
158 ###### SIDEBAR ######
150 kwargs.update(sidebar(conf=conf))
159 kwargs.update(sidebar(conf=conf))
151
160
152 return render(request, 'abs_conf.html', kwargs)
161 return render(request, 'abs_conf.html', kwargs)
153
162
154 def abs_conf_edit(request, id_conf):
163 def abs_conf_edit(request, id_conf):
155
164
156 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
165 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
157 beams_list = ast.literal_eval(conf.beams)
166 beams_list = ast.literal_eval(conf.beams)
158 i = 1
167 i = 1
159 beams = []
168 beams = []
160 for b in beams_list:
169 for b in beams_list:
161 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
170 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
162 beams.append(beam)
171 beams.append(beam)
163 i=i+1
172 i=i+1
164
173
165 if request.method=='GET':
174 if request.method=='GET':
166 form = ABSConfigurationForm(instance=conf)
175 form = ABSConfigurationForm(instance=conf)
167
176
168 if request.method=='POST':
177 if request.method=='POST':
169 form = ABSConfigurationForm(request.POST, instance=conf)
178 form = ABSConfigurationForm(request.POST, instance=conf)
170
179
171 if form.is_valid():
180 if form.is_valid():
172 conf = form.save(commit=False)
181 conf = form.save(commit=False)
173 conf.save()
182 conf.save()
174 return redirect('url_abs_conf', id_conf=conf.id)
183 return redirect('url_abs_conf', id_conf=conf.id)
175
184
176 ###### SIDEBAR ######
185 ###### SIDEBAR ######
177 kwargs = {}
186 kwargs = {}
178
187
179 kwargs['dev_conf'] = conf
188 kwargs['dev_conf'] = conf
180 #kwargs['id_dev'] = conf.id
189 #kwargs['id_dev'] = conf.id
181 kwargs['id_conf'] = conf.id
190 kwargs['id_conf'] = conf.id
182 kwargs['form'] = form
191 kwargs['form'] = form
183 kwargs['abs_beams'] = beams
192 kwargs['abs_beams'] = beams
184 kwargs['title'] = 'Device Configuration'
193 kwargs['title'] = 'Device Configuration'
185 kwargs['suptitle'] = 'Edit'
194 kwargs['suptitle'] = 'Edit'
186 kwargs['button'] = 'Save'
195 kwargs['button'] = 'Save'
187
196
188 kwargs['edit'] = True
197 kwargs['edit'] = True
189
198
190 return render(request, 'abs_conf_edit.html', kwargs)
199 return render(request, 'abs_conf_edit.html', kwargs)
191
200
192
201
193 def plot_patterns(request, id_conf):
194
195 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
196 beams_list = ast.literal_eval(conf.beams)
197 i = 1
198 beams = []
199 for b in beams_list:
200 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
201 beams.append(beam)
202 i=i+1
203
204 ###### SIDEBAR ######
205 kwargs = {}
206
207 kwargs['dev_conf'] = conf.device
208 kwargs['id_dev'] = conf.device
209 kwargs['id_conf'] = conf.id
210 kwargs['abs_beams'] = beams
211 kwargs['title'] = 'ABS Patterns'
212 kwargs['suptitle'] = conf.name
213 kwargs['no_sidebar'] = True
214
202
215 return render(request, 'abs_patterns.html', kwargs)
216
203
217 def add_beam(request, id_conf):
204 def add_beam(request, id_conf):
218
205
219 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
206 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
220 confs = Configuration.objects.all()
207 confs = Configuration.objects.all()
221
208
222 if request.method=='GET':
209 if request.method=='GET':
223 #form = ABSBeamEditForm()
210 #form = ABSBeamEditForm()
224 form = ABSBeamAddForm()
211 form = ABSBeamAddForm()
225
212
226 if request.method=='POST':
213 if request.method=='POST':
227 form = ABSBeamAddForm(request.POST)
214 form = ABSBeamAddForm(request.POST)
228
215
229 beam_data = get_values_from_form(request.POST)
216 beam_data = get_values_from_form(request.POST)
230
217
231 new_beam = ABSBeam(
218 new_beam = ABSBeam(
232 name =beam_data['name'],
219 name =beam_data['name'],
233 antenna =json.dumps(beam_data['antenna']),
220 antenna =json.dumps(beam_data['antenna']),
234 abs_conf=conf,
221 abs_conf=conf,
235 tx =json.dumps(beam_data['tx']),
222 tx =json.dumps(beam_data['tx']),
236 rx =json.dumps(beam_data['rx']),
223 rx =json.dumps(beam_data['rx']),
237 ues =json.dumps(beam_data['ues']),
224 ues =json.dumps(beam_data['ues']),
238 only_rx =json.dumps(beam_data['only_rx'])
225 only_rx =json.dumps(beam_data['only_rx'])
239 )
226 )
240 new_beam.save()
227 new_beam.save()
241 #---Update 6bits configuration and add beam to abs configuration beams list.
228 #---Update 6bits configuration and add beam to abs configuration beams list.
242 new_beam.modules_6bits()
229 new_beam.modules_6bits()
243 new_beam.add_beam2list()
230 new_beam.add_beam2list()
244 messages.success(request, 'Beam: "%s" has been added.' % new_beam.name)
231 messages.success(request, 'Beam: "%s" has been added.' % new_beam.name)
245
232
246 return redirect('url_edit_abs_conf', conf.id)
233 return redirect('url_edit_abs_conf', conf.id)
247
234
248 ###### SIDEBAR ######
235 ###### SIDEBAR ######
249 kwargs = {}
236 kwargs = {}
250
237
251 #kwargs['dev_conf'] = conf.device
238 #kwargs['dev_conf'] = conf.device
252 #kwargs['id_dev'] = conf.device
239 #kwargs['id_dev'] = conf.device
253 kwargs['id_conf'] = conf.id
240 kwargs['id_conf'] = conf.id
254 kwargs['form'] = form
241 kwargs['form'] = form
255 kwargs['title'] = 'ABS Beams'
242 kwargs['title'] = 'ABS Beams'
256 kwargs['suptitle'] = 'Add Beam'
243 kwargs['suptitle'] = 'Add Beam'
257 kwargs['button'] = 'Add'
244 kwargs['button'] = 'Add'
258 kwargs['no_sidebar'] = True
245 kwargs['no_sidebar'] = True
259
246
260 #kwargs['previous'] = conf.get_absolute_url_edit()
247 #kwargs['previous'] = conf.get_absolute_url_edit()
261 kwargs['edit'] = True
248 kwargs['edit'] = True
262
249
263 return render(request, 'abs_add_beam.html', kwargs)
250 return render(request, 'abs_add_beam.html', kwargs)
264
251
265
252
266 def edit_beam(request, id_conf, id_beam):
253 def edit_beam(request, id_conf, id_beam):
267
254
268 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
255 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
269 beam = get_object_or_404(ABSBeam, pk=id_beam)
256 beam = get_object_or_404(ABSBeam, pk=id_beam)
270
257
271 if request.method=='GET':
258 if request.method=='GET':
272 form = ABSBeamEditForm(initial={'beam': beam})
259 form = ABSBeamEditForm(initial={'beam': beam})
273
260
274 if request.method=='POST':
261 if request.method=='POST':
275 form = ABSBeamEditForm(request.POST)
262 form = ABSBeamEditForm(request.POST)
276
263
277 beam_data = get_values_from_form(request.POST)
264 beam_data = get_values_from_form(request.POST)
278
265
279 beam.dict_to_parms(beam_data)
266 beam.dict_to_parms(beam_data)
280 beam.save()
267 beam.save()
281
268
282 messages.success(request, 'Beam: "%s" has been updated.' % beam.name)
269 messages.success(request, 'Beam: "%s" has been updated.' % beam.name)
283
270
284 return redirect('url_edit_abs_conf', conf.id)
271 return redirect('url_edit_abs_conf', conf.id)
285
272
286 ###### SIDEBAR ######
273 ###### SIDEBAR ######
287 kwargs = {}
274 kwargs = {}
288
275
289 kwargs['id_conf'] = conf.id
276 kwargs['id_conf'] = conf.id
290 kwargs['form'] = form
277 kwargs['form'] = form
291 kwargs['title'] = 'ABS Beams'
278 kwargs['title'] = 'ABS Beams'
292 kwargs['suptitle'] = 'Edit Beam'
279 kwargs['suptitle'] = 'Edit Beam'
293 kwargs['button'] = 'Save'
280 kwargs['button'] = 'Save'
294 kwargs['no_sidebar'] = True
281 kwargs['no_sidebar'] = True
295
282
296 #kwargs['previous'] = conf.get_absolute_url_edit()
283 #kwargs['previous'] = conf.get_absolute_url_edit()
297 kwargs['edit'] = True
284 kwargs['edit'] = True
298
285
299 return render(request, 'abs_edit_beam.html', kwargs)
286 return render(request, 'abs_edit_beam.html', kwargs)
300
287
301
288
302
289
303 def remove_beam(request, id_conf, id_beam):
290 def remove_beam(request, id_conf, id_beam):
304
291
305 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
292 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
306 beam = get_object_or_404(ABSBeam, pk=id_beam)
293 beam = get_object_or_404(ABSBeam, pk=id_beam)
307
294
308 if request.method=='POST':
295 if request.method=='POST':
309 if beam:
296 if beam:
310 try:
297 try:
311 beam.remove_beamfromlist()
298 beam.remove_beamfromlist()
312 beam.delete()
299 beam.delete()
313 messages.success(request, 'Beam: "%s" has been deleted.' % beam)
300 messages.success(request, 'Beam: "%s" has been deleted.' % beam)
314 except:
301 except:
315 messages.error(request, 'Unable to delete beam: "%s".' % beam)
302 messages.error(request, 'Unable to delete beam: "%s".' % beam)
316
303
317 return redirect('url_edit_abs_conf', conf.id)
304 return redirect('url_edit_abs_conf', conf.id)
318
305
319 ###### SIDEBAR ######
306 ###### SIDEBAR ######
320 kwargs = {}
307 kwargs = {}
321
308
322 kwargs['object'] = beam
309 kwargs['object'] = beam
323 kwargs['delete'] = True
310 kwargs['delete'] = True
324 kwargs['title'] = 'Delete'
311 kwargs['title'] = 'Delete'
325 kwargs['suptitle'] = 'Beam'
312 kwargs['suptitle'] = 'Beam'
326 kwargs['previous'] = conf.get_absolute_url_edit()
313 kwargs['previous'] = conf.get_absolute_url_edit()
327 return render(request, 'confirm.html', kwargs)
314 return render(request, 'confirm.html', kwargs)
315
316
317
318 def plot_patterns(request, id_conf):
319
320 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
321 beams_list = ast.literal_eval(conf.beams)
322 i = 1
323 beams = []
324 for b in beams_list:
325 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
326 beams.append(beam)
327 i=i+1
328
329 ###### SIDEBAR ######
330 kwargs = {}
331
332 kwargs['dev_conf'] = conf.device
333 kwargs['id_dev'] = conf.device
334 kwargs['id_conf'] = conf.id
335 kwargs['abs_beams'] = beams
336 kwargs['title'] = 'ABS Patterns'
337 kwargs['suptitle'] = conf.name
338 kwargs['no_sidebar'] = True
339
340 return render(request, 'abs_patterns.html', kwargs)
341
342
343 def plot_pattern(request, id_conf, id_beam):
344
345 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
346 beam = get_object_or_404(ABSBeam, pk=id_beam)
347
348 #Lista de Beams de la configuracion con su respectivo ID
349 beams_list = ast.literal_eval(conf.beams)
350 i = 1
351 #Lista de Objetos ABSBeams en el 0rden de su respectiva configuracion
352 beams = []
353 for b in beams_list:
354 beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
355 beams.append(beam)
356 i=i+1
357
358 ###### SIDEBAR ######
359 beam = get_object_or_404(ABSBeam, pk=id_beam)
360 kwargs = {}
361
362 kwargs['dev_conf'] = conf.device
363 kwargs['id_dev'] = conf.device
364 kwargs['id_conf'] = conf.id
365 kwargs['abs_beams'] = beams
366 kwargs['beam'] = beam
367 kwargs['title'] = 'ABS Patterns'
368 kwargs['suptitle'] = conf.name
369 kwargs['no_sidebar'] = True
370
371 return render(request, 'abs_patterns.html', kwargs)
372
373
374
375 def plot_uppattern(request, id_conf, id_beam):
376
377 from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
378
379 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
380 beam = get_object_or_404(ABSBeam, pk=id_beam)
381
382 exp_name = conf.experiment.name
383
384 just_rx = 0
385
386 only_rx = json.loads(beam.only_rx)
387 if only_rx['up'] == True:
388 just_rx = 1
389
390 antenna = ast.literal_eval(beam.antenna)
391 objAntenna = json.dumps(antenna['antenna_up'])
392 antenna_up = ''.join(str(i) for i in objAntenna)
393 phase_tx = antenna_up.replace(' ','')
394
395 tx = ast.literal_eval(beam.tx)
396 tx = json.dumps(tx['up'])
397 tx = ''.join(str(i) for i in tx)
398 gain_tx = tx.replace(' ','')
399
400 rx = ast.literal_eval(beam.rx)
401 rx = json.dumps(rx['up'])
402 rx = ''.join(str(i) for i in rx)
403 gain_rx = rx.replace(' ','')
404
405 ues = json.dumps(beam.get_up_ues)
406 ues = ''.join(str(i) for i in ues)
407 ues_tx = ues.replace(' ','')
408
409 #sleep(1)
410
411 overjro = OverJRO()
412 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
413 contentFile = overjro.setTextContent()
414 finalpath = overjro.saveFile(contentFile)
415
416 currentdate = datetime.today()
417 newOverJro = overJroShow()
418 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
419 newOverJro.setupParameters()
420 newOverJro.execute()
421 path = newOverJro.getPlot()
422 path= "apps/abs/media/"+path
423
424
425 canvas=FigureCanvas(newOverJro.figure)
426 response=HttpResponse(content_type='image/png')
427 canvas.print_png(response)
428 return response
429
430 def plot_downpattern(request, id_conf, id_beam):
431
432 sleep(4)
433 from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
434
435 conf = get_object_or_404(ABSConfiguration, pk=id_conf)
436 beam = get_object_or_404(ABSBeam, pk=id_beam)
437
438 exp_name = conf.experiment.name
439
440 just_rx = 0
441
442 only_rx = json.loads(beam.only_rx)
443 if only_rx['down'] == True:
444 just_rx = 1
445
446 antenna = ast.literal_eval(beam.antenna)
447 objAntenna = json.dumps(antenna['antenna_down'])
448 antenna_down = ''.join(str(i) for i in objAntenna)
449 phase_tx = antenna_down.replace(' ','')
450
451 tx = ast.literal_eval(beam.tx)
452 tx = json.dumps(tx['down'])
453 tx = ''.join(str(i) for i in tx)
454 gain_tx = tx.replace(' ','')
455
456 rx = ast.literal_eval(beam.rx)
457 rx = json.dumps(rx['down'])
458 rx = ''.join(str(i) for i in rx)
459 gain_rx = rx.replace(' ','')
460
461 ues = json.dumps(beam.get_down_ues)
462 ues = ''.join(str(i) for i in ues)
463 ues_tx = ues.replace(' ','')
464
465 overjro = OverJRO()
466 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
467 contentFile = overjro.setTextContent()
468 finalpath = overjro.saveFile(contentFile)
469
470 currentdate = datetime.today()
471 newOverJro = overJroShow()
472 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
473 newOverJro.setupParameters()
474 newOverJro.execute()
475 path = newOverJro.getPlot()
476 path= "apps/abs/media/"+path
477
478
479 canvas=FigureCanvas(newOverJro.figure)
480 response=HttpResponse(content_type='image/png')
481 canvas.print_png(response)
482 return response
General Comments 0
You need to be logged in to leave comments. Login now