##// END OF EJS Templates
- Corregido el error que duplicaba el numero de patron activo o varios perfiles activos.
jsalyrosas -
r206:207
parent child
Show More
@@ -1,525 +1,531
1 from django.shortcuts import render_to_response, redirect
1 from django.shortcuts import render_to_response, redirect
2 from django.http import HttpResponse
2 from django.http import HttpResponse
3 from django.conf import settings
3 from django.conf import settings
4 from django.utils.encoding import smart_str
4 from django.utils.encoding import smart_str
5 from django.core.servers.basehttp import FileWrapper
5 from django.core.servers.basehttp import FileWrapper
6 import mimetypes
6 import mimetypes
7 from django.contrib.auth.decorators import login_required
7 from django.contrib.auth.decorators import login_required
8 from django.template import RequestContext
8 from django.template import RequestContext
9
9
10 from datetime import datetime
10 from datetime import datetime
11 import os
11 import os
12 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
12 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
13
13
14 from util.readABSFile import readABSFile
14 from util.readABSFile import readABSFile
15 from util.saveABSFile import saveABSFile
15 from util.saveABSFile import saveABSFile
16 from util.ABSData import ABSData
16 from util.ABSData import ABSData
17 from util.OverJRO import OverJRO
17 from util.OverJRO import OverJRO
18 from scripts.sendFile import sendFile
18 from scripts.sendFile import sendFile
19 from scripts.changeBeam import changeBeam
19 from scripts.changeBeam import changeBeam
20 from overJroShow import overJroShow
20 from overJroShow import overJroShow
21
21
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
23 ["0","0","0","0","0","0","0","0"],\
23 ["0","0","0","0","0","0","0","0"],\
24 ["0","0","0","0","0","0","0","0"],\
24 ["0","0","0","0","0","0","0","0"],\
25 ["0","0","0","0","0","0","0","0"],\
25 ["0","0","0","0","0","0","0","0"],\
26 ["0","0","0","0","0","0","0","0"],\
26 ["0","0","0","0","0","0","0","0"],\
27 ["0","0","0","0","0","0","0","0"],\
27 ["0","0","0","0","0","0","0","0"],\
28 ["0","0","0","0","0","0","0","0"],\
28 ["0","0","0","0","0","0","0","0"],\
29 ["0","0","0","0","0","0","0","0"]]
29 ["0","0","0","0","0","0","0","0"]]
30
30
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
32
32
33 @login_required(login_url='/accounts/login/')
33 @login_required(login_url='/accounts/login/')
34 def index(request):
34 def index(request):
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
36 profile_list = Profile.objects.filter(state=1)
36 profile_list = Profile.objects.filter(state=1)
37 return render_to_response('abscontrol/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
37 return render_to_response('abscontrol/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
38
38
39 def new(request):
39 def new(request):
40 profile_list = Profile.objects.filter(state=1)
40 profile_list = Profile.objects.filter(state=1)
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
42 newprofile = Profile(name=txtProfile)
42 newprofile = Profile(name=txtProfile)
43 newprofile.save()
43 newprofile.save()
44
44
45 lsPatterns = None
45 lsPatterns = None
46
46
47 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
47 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
48 'profile_name' : newprofile.name,
48 'profile_name' : newprofile.name,
49 'profile_id' : newprofile.id,
49 'profile_id' : newprofile.id,
50 'lsPatterns' : lsPatterns,
50 'lsPatterns' : lsPatterns,
51 'range' : range(8), 'arrayUes' : arrayUes,
51 'range' : range(8), 'arrayUes' : arrayUes,
52 }, context_instance=RequestContext(request))
52 }, context_instance=RequestContext(request))
53
53
54 def save(request):
54 def save(request):
55
55
56 txtProfile = request.POST["txtProfile"]
56 txtProfile = request.POST["txtProfile"]
57
57
58 txtAntennaUp = request.POST["txtAntennaUp"]
58 txtAntennaUp = request.POST["txtAntennaUp"]
59 txtTxUp = request.POST["txtTxUp"]
59 txtTxUp = request.POST["txtTxUp"]
60 txtRxUp = request.POST["txtRxUp"]
60 txtRxUp = request.POST["txtRxUp"]
61 txtUesUp = request.POST["txtUesUp"]
61 txtUesUp = request.POST["txtUesUp"]
62
62
63 txtAntennaDown = request.POST["txtAntennaDown"]
63 txtAntennaDown = request.POST["txtAntennaDown"]
64 txtTxDown = request.POST["txtTxDown"]
64 txtTxDown = request.POST["txtTxDown"]
65 txtRxDown = request.POST["txtRxDown"]
65 txtRxDown = request.POST["txtRxDown"]
66 txtUesDown = request.POST["txtUesDown"]
66 txtUesDown = request.POST["txtUesDown"]
67
67
68 newprofile = Profile(name=txtProfile)
68 newprofile = Profile(name=txtProfile)
69 newprofile.save()
69 newprofile.save()
70
70
71 newpattern = newprofile.pattern_set.create(value=1)
71 newpattern = newprofile.pattern_set.create(value=1)
72 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
72 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
73 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
73 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
74
74
75 newurl = '/abscontrol/view/%d' % newprofile.id
75 newurl = '/abscontrol/view/%d' % newprofile.id
76
76
77 return redirect(newurl)
77 return redirect(newurl)
78
78
79 # Update temporal experiment
79 # Update temporal experiment
80 def upgrade(request, profile_id):
80 def upgrade(request, profile_id):
81 txtAntennaUp = request.POST["txtAntennaUp"]
81 txtAntennaUp = request.POST["txtAntennaUp"]
82 txtTxUp = request.POST["txtTxUp"]
82 txtTxUp = request.POST["txtTxUp"]
83 txtRxUp = request.POST["txtRxUp"]
83 txtRxUp = request.POST["txtRxUp"]
84 txtUesUp = request.POST["txtUesUp"]
84 txtUesUp = request.POST["txtUesUp"]
85
85
86 txtAntennaDown = request.POST["txtAntennaDown"]
86 txtAntennaDown = request.POST["txtAntennaDown"]
87 txtTxDown = request.POST["txtTxDown"]
87 txtTxDown = request.POST["txtTxDown"]
88 txtRxDown = request.POST["txtRxDown"]
88 txtRxDown = request.POST["txtRxDown"]
89 txtUesDown = request.POST["txtUesDown"]
89 txtUesDown = request.POST["txtUesDown"]
90
90
91 objProfile = Profile.objects.get(pk=profile_id)
91 objProfile = Profile.objects.get(pk=profile_id)
92 newpattern = objProfile.pattern_set.create(value=1)
92 newpattern = objProfile.pattern_set.create(value=1)
93 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
93 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
94 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
94 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
95
95
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
97 return redirect(newurl)
97 return redirect(newurl)
98
98
99 def update(request, profile_id):
99 def update(request, profile_id):
100 txtProfile = request.POST["txtProfile"]
100 txtProfile = request.POST["txtProfile"]
101
101
102 objProfile = Profile.objects.get(pk=profile_id)
102 objProfile = Profile.objects.get(pk=profile_id)
103 objProfile.name = txtProfile
103 objProfile.name = txtProfile
104 objProfile.state = 1
104 objProfile.state = 1
105 objProfile.save()
105 objProfile.save()
106
106
107 newurl = '/abscontrol/view/%d' % objProfile.id
107 newurl = '/abscontrol/view/%d' % objProfile.id
108 return redirect(newurl)
108 return redirect(newurl)
109
109
110 def changeName(request, profile_id):
110 def changeName(request, profile_id):
111 profile_list = Profile.objects.filter(state=1)
111 profile_list = Profile.objects.filter(state=1)
112 objProfile = Profile.objects.get(pk=profile_id)
112 objProfile = Profile.objects.get(pk=profile_id)
113 lsPatterns = objProfile.pattern_set.all()
113 lsPatterns = objProfile.pattern_set.all()
114
114
115 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
115 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
116 'objProfile': objProfile,
116 'objProfile': objProfile,
117 'lsPatterns' : lsPatterns,
117 'lsPatterns' : lsPatterns,
118 }, context_instance=RequestContext(request))
118 }, context_instance=RequestContext(request))
119
119
120 def view(request, profile_id):
120 def view(request, profile_id):
121 if request.method == 'GET' and 'pattern' in request.GET:
121 if request.method == 'GET' and 'pattern' in request.GET:
122 pattern_value = request.GET["pattern"]
122 pattern_value = request.GET["pattern"]
123 else:
123 else:
124 pattern_value = 1
124 pattern_value = 1
125
125
126 profile_list = Profile.objects.filter(state=1)
126 profile_list = Profile.objects.filter(state=1)
127 objProfile = Profile.objects.get(pk=profile_id)
127 objProfile = Profile.objects.get(pk=profile_id)
128
128
129 lsPatterns = objProfile.pattern_set.all()
129 lsPatterns = objProfile.pattern_set.all()
130 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
130 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
131 objAntennaUp = patternChoosen.antennaup_set.get()
131 objAntennaUp = patternChoosen.antennaup_set.get()
132 objAntennaDown = patternChoosen.antennadown_set.get()
132 objAntennaDown = patternChoosen.antennadown_set.get()
133
133
134 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
134 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
135 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
135 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
136 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
136 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
137 }, context_instance=RequestContext(request))
137 }, context_instance=RequestContext(request))
138
138
139 def edit(request, profile_id):
139 def edit(request, profile_id):
140 if request.method == 'GET' and 'pattern' in request.GET:
140 if request.method == 'GET' and 'pattern' in request.GET:
141 pattern_value = request.GET["pattern"]
141 pattern_value = request.GET["pattern"]
142 else:
142 else:
143 pattern_value = 1
143 pattern_value = 1
144
144
145 absData = ABSData()
145 absData = ABSData()
146 profile_list = Profile.objects.filter(state=1)
146 profile_list = Profile.objects.filter(state=1)
147 objProfile = Profile.objects.get(pk=profile_id)
147 objProfile = Profile.objects.get(pk=profile_id)
148
148
149 lsPatterns = objProfile.pattern_set.all()
149 lsPatterns = objProfile.pattern_set.all()
150 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
150 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
151 objAntennaUp = patternChoosen.antennaup_set.get()
151 objAntennaUp = patternChoosen.antennaup_set.get()
152 objAntennaDown = patternChoosen.antennadown_set.get()
152 objAntennaDown = patternChoosen.antennadown_set.get()
153
153
154 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
154 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
155 if objAntennaUp.tx != None:
155 if objAntennaUp.tx != None:
156 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
156 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
157 else:
157 else:
158 arrayTxUp = arrayTx
158 arrayTxUp = arrayTx
159 if objAntennaUp.rx != None:
159 if objAntennaUp.rx != None:
160 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
160 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
161 else:
161 else:
162 arrayRxUp = arrayTx
162 arrayRxUp = arrayTx
163 if objAntennaUp.ues != None:
163 if objAntennaUp.ues != None:
164 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
164 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
165 else:
165 else:
166 arrayUesUp = arrayUes
166 arrayUesUp = arrayUes
167
167
168 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
168 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
169 if objAntennaDown.tx != None:
169 if objAntennaDown.tx != None:
170 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
170 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
171 else:
171 else:
172 arrayTxDown = arrayTx
172 arrayTxDown = arrayTx
173 if objAntennaDown.rx != None:
173 if objAntennaDown.rx != None:
174 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
174 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
175 else:
175 else:
176 arrayRxDown = arrayTx
176 arrayRxDown = arrayTx
177 if objAntennaDown.ues != None:
177 if objAntennaDown.ues != None:
178 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
178 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
179 else:
179 else:
180 arrayUesDown = arrayUes
180 arrayUesDown = arrayUes
181
181
182 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
182 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
183 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
183 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
184 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
184 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
185 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
185 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
186 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
186 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
187 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
187 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
188 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
188 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
189 }, context_instance=RequestContext(request))
189 }, context_instance=RequestContext(request))
190
190
191 def addPattern(request, profile_id):
191 def addPattern(request, profile_id):
192 profile_list = Profile.objects.filter(state=1)
192 profile_list = Profile.objects.filter(state=1)
193 objProfile = Profile.objects.get(pk=profile_id)
193 objProfile = Profile.objects.get(pk=profile_id)
194
194
195 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
195 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
196 'range' : range(8), 'arrayUes' : arrayUes,
196 'range' : range(8), 'arrayUes' : arrayUes,
197 }, context_instance=RequestContext(request))
197 }, context_instance=RequestContext(request))
198
198
199 def editPattern(request, profile_id, pattern_id):
199 def editPattern(request, profile_id, pattern_id):
200 absData = ABSData()
200 absData = ABSData()
201 profile_list = Profile.objects.filter(state=1)
201 profile_list = Profile.objects.filter(state=1)
202 objProfile = Profile.objects.get(pk=profile_id)
202 objProfile = Profile.objects.get(pk=profile_id)
203 lsPatterns = objProfile.pattern_set.all()
203 lsPatterns = objProfile.pattern_set.all()
204 patternChoosen = Pattern.objects.get(pk=pattern_id)
204 patternChoosen = Pattern.objects.get(pk=pattern_id)
205 objAntennaUp = patternChoosen.antennaup_set.get()
205 objAntennaUp = patternChoosen.antennaup_set.get()
206 objAntennaDown = patternChoosen.antennadown_set.get()
206 objAntennaDown = patternChoosen.antennadown_set.get()
207
207
208 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
208 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
209 if objAntennaUp.tx != None:
209 if objAntennaUp.tx != None:
210 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
210 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
211 else:
211 else:
212 arrayTxUp = arrayTx
212 arrayTxUp = arrayTx
213 if objAntennaUp.rx != None:
213 if objAntennaUp.rx != None:
214 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
214 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
215 else:
215 else:
216 arrayRxUp = arrayTx
216 arrayRxUp = arrayTx
217 if objAntennaUp.ues != None:
217 if objAntennaUp.ues != None:
218 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
218 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
219 else:
219 else:
220 arrayUesUp = arrayUes
220 arrayUesUp = arrayUes
221
221
222 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
222 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
223 if objAntennaDown.tx != None:
223 if objAntennaDown.tx != None:
224 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
224 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
225 else:
225 else:
226 arrayTxDown = arrayTx
226 arrayTxDown = arrayTx
227 if objAntennaDown.rx != None:
227 if objAntennaDown.rx != None:
228 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
228 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
229 else:
229 else:
230 arrayRxDown = arrayTx
230 arrayRxDown = arrayTx
231 if objAntennaDown.ues != None:
231 if objAntennaDown.ues != None:
232 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
232 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
233 else:
233 else:
234 arrayUesDown = arrayUes
234 arrayUesDown = arrayUes
235
235
236 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
236 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
237 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
237 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
238 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
238 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
239 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
239 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
240 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
240 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
241 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
241 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
242 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
242 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
243 }, context_instance=RequestContext(request))
243 }, context_instance=RequestContext(request))
244
244
245 def savePattern(request, profile_id):
245 def savePattern(request, profile_id):
246 pattern_id = 0
246 pattern_id = 0
247 method = "save"
247 method = "save"
248
248
249 if 'pattern_id' in request.POST:
249 if 'pattern_id' in request.POST:
250 pattern_id = request.POST["pattern_id"]
250 pattern_id = request.POST["pattern_id"]
251 method = "update"
251 method = "update"
252
252
253 maxValuePattern = 0
253 maxValuePattern = 0
254 txtAntennaUp = request.POST["txtAntennaUp"]
254 txtAntennaUp = request.POST["txtAntennaUp"]
255 txtTxUp = request.POST["txtTxUp"]
255 txtTxUp = request.POST["txtTxUp"]
256 txtRxUp = request.POST["txtRxUp"]
256 txtRxUp = request.POST["txtRxUp"]
257 txtUesUp = request.POST["txtUesUp"]
257 txtUesUp = request.POST["txtUesUp"]
258
258
259 txtAntennaDown = request.POST["txtAntennaDown"]
259 txtAntennaDown = request.POST["txtAntennaDown"]
260 txtTxDown = request.POST["txtTxDown"]
260 txtTxDown = request.POST["txtTxDown"]
261 txtRxDown = request.POST["txtRxDown"]
261 txtRxDown = request.POST["txtRxDown"]
262 txtUesDown = request.POST["txtUesDown"]
262 txtUesDown = request.POST["txtUesDown"]
263
263
264 mode = request.POST["mode"]
264 mode = request.POST["mode"]
265
265
266 if method == "save":
266 if method == "save":
267 objProfile = Profile.objects.get(pk=profile_id)
267 objProfile = Profile.objects.get(pk=profile_id)
268 lsPatterns = objProfile.pattern_set.all()
268 lsPatterns = objProfile.pattern_set.all()
269 if len(lsPatterns) > 0:
269 if len(lsPatterns) > 0:
270 for element in lsPatterns:
270 for element in lsPatterns:
271 if element.value > maxValuePattern:
271 if element.value > maxValuePattern:
272 maxPattern = element.value
272 maxPattern = element.value
273 else:
273 else:
274 maxPattern = 0
274 maxPattern = 0
275
275
276 if maxPattern < 10 :
276 if maxPattern < 10 :
277 newValuePattern = maxPattern + 1
277 newValuePattern = maxPattern + 1
278 newpattern = objProfile.pattern_set.create(value=newValuePattern)
278 newpattern = objProfile.pattern_set.create(value=newValuePattern)
279 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
279 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
280 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
280 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
281 error = 0
281 error = 0
282 else:
282 else:
283 error = 1 # Can not add more patterns
283 error = 1 # Can not add more patterns
284
284
285 if mode == "e":
285 if mode == "e":
286 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
286 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
287 else:
287 else:
288 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
288 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
289 else:
289 else:
290 txtAntennaUpId = request.POST["txtAntennaUpId"]
290 txtAntennaUpId = request.POST["txtAntennaUpId"]
291 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
291 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
292 objAntennaUp.value = txtAntennaUp
292 objAntennaUp.value = txtAntennaUp
293 objAntennaUp.tx = txtTxUp
293 objAntennaUp.tx = txtTxUp
294 objAntennaUp.rx = txtRxUp
294 objAntennaUp.rx = txtRxUp
295 objAntennaUp.ues = txtUesUp
295 objAntennaUp.ues = txtUesUp
296 objAntennaUp.save()
296 objAntennaUp.save()
297
297
298 txtAntennaDownId = request.POST["txtAntennaDownId"]
298 txtAntennaDownId = request.POST["txtAntennaDownId"]
299 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
299 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
300 objAntennaDown.value = txtAntennaDown
300 objAntennaDown.value = txtAntennaDown
301 objAntennaDown.tx = txtTxDown
301 objAntennaDown.tx = txtTxDown
302 objAntennaDown.rx = txtRxDown
302 objAntennaDown.rx = txtRxDown
303 objAntennaDown.ues = txtUesDown
303 objAntennaDown.ues = txtUesDown
304 objAntennaDown.save()
304 objAntennaDown.save()
305
305
306 if mode == "e":
306 if mode == "e":
307 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
307 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
308 else:
308 else:
309 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
309 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
310
310
311 return redirect(newurl)
311 return redirect(newurl)
312
312
313 def viewPattern(request, profile_id, pattern_id):
313 def viewPattern(request, profile_id, pattern_id):
314
314
315 profile_list = Profile.objects.filter(state=1)
315 profile_list = Profile.objects.filter(state=1)
316 objProfile = Profile.objects.get(pk=profile_id)
316 objProfile = Profile.objects.get(pk=profile_id)
317
317
318 patternChoosen = Pattern.objects.get(pk=pattern_id)
318 patternChoosen = Pattern.objects.get(pk=pattern_id)
319
319
320 objAntennaUp = patternChoosen.antennaup_set.get()
320 objAntennaUp = patternChoosen.antennaup_set.get()
321 objAntennaDown = patternChoosen.antennadown_set.get()
321 objAntennaDown = patternChoosen.antennadown_set.get()
322
322
323 lsPatterns = objProfile.pattern_set.all()
323 lsPatterns = objProfile.pattern_set.all()
324
324
325 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
325 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
326 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
326 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
327 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
327 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
328 }, context_instance=RequestContext(request))
328 }, context_instance=RequestContext(request))
329
329
330 def deletePattern(request, profile_id, pattern_id):
330 def deletePattern(request, profile_id, pattern_id):
331 newurl = '/abscontrol/edit/%d' % int(profile_id)
331 newurl = '/abscontrol/edit/%d' % int(profile_id)
332
332
333 return redirect(newurl)
333 return redirect(newurl)
334
334
335 def importProfile(request):
335 def importProfile(request):
336 profile_list = Profile.objects.filter(state=1)
336 profile_list = Profile.objects.filter(state=1)
337 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
337 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
338
338
339 def upload(request):
339 def upload(request):
340 profile_list = Profile.objects.filter(state=1)
340 profile_list = Profile.objects.filter(state=1)
341 if request.method == 'POST':
341 if request.method == 'POST':
342 txtFilename = request.FILES['txtFile']
342 txtFilename = request.FILES['txtFile']
343 if txtFilename:
343 if txtFilename:
344 destination = open('/tmp/'+txtFilename.name, 'wb+')
344 destination = open('/tmp/'+txtFilename.name, 'wb+')
345 for chunk in txtFilename.chunks():
345 for chunk in txtFilename.chunks():
346 destination.write(chunk)
346 destination.write(chunk)
347 destination.close()
347 destination.close()
348 filename = '/tmp/'+txtFilename.name
348 filename = '/tmp/'+txtFilename.name
349 readFile = readABSFile(filename)
349 readFile = readABSFile(filename)
350 expName, num_patterns, patterns = readFile.getMetadata()
350 expName, num_patterns, patterns = readFile.getMetadata()
351
351
352 if expName != "" and num_patterns > 0:
352 if expName != "" and num_patterns > 0:
353 if len(Profile.objects.filter(name__iexact=expName)) > 0:
353 if len(Profile.objects.filter(name__iexact=expName)) > 0:
354 txtError = "Experiment's name found."
354 txtError = "Experiment's name found."
355 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
355 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
356 'txtError' : txtError, },
356 'txtError' : txtError, },
357 context_instance=RequestContext(request))
357 context_instance=RequestContext(request))
358 else:
358 else:
359 newprofile = Profile(name=expName)
359 newprofile = Profile(name=expName)
360 newprofile.save()
360 newprofile.save()
361 newprofile.state = 1
361 newprofile.state = 1
362
362
363 for element in patterns:
363 for element in patterns:
364 newpattern = newprofile.pattern_set.create(value=element["number"])
364 newpattern = newprofile.pattern_set.create(value=element["number"])
365 newpattern.antennaup_set.create(value=element["up"])
365 newpattern.antennaup_set.create(value=element["up"])
366 newpattern.antennadown_set.create(value=element["down"])
366 newpattern.antennadown_set.create(value=element["down"])
367
367
368 newprofile.save()
368 newprofile.save()
369
369
370 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
370 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
371 return redirect(newurl)
371 return redirect(newurl)
372 else:
372 else:
373 txtError = "Experiment's name not found or the number of patterns is 0."
373 txtError = "Experiment's name not found or the number of patterns is 0."
374 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
374 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
375 'txtError' : txtError, },
375 'txtError' : txtError, },
376 context_instance=RequestContext(request))
376 context_instance=RequestContext(request))
377 else:
377 else:
378 txtError = "No file."
378 txtError = "No file."
379
379
380 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
380 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
381 context_instance=RequestContext(request))
381 context_instance=RequestContext(request))
382
382
383 def getImgfromOverJRO(profile_id, objAntenna):
383 def getImgfromOverJRO(profile_id, objAntenna):
384 objProfile = Profile.objects.get(pk=profile_id)
384 objProfile = Profile.objects.get(pk=profile_id)
385 exp_name = objProfile.name
385 exp_name = objProfile.name
386 phase_tx = objAntenna.value
386 phase_tx = objAntenna.value
387 gain_tx = objAntenna.tx
387 gain_tx = objAntenna.tx
388 gain_rx = objAntenna.rx
388 gain_rx = objAntenna.rx
389 ues_tx = objAntenna.ues
389 ues_tx = objAntenna.ues
390 just_rx = objAntenna.only_rx
390 just_rx = objAntenna.only_rx
391
391
392 overjro = OverJRO()
392 overjro = OverJRO()
393 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
393 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
394 contentFile = overjro.setTextContent()
394 contentFile = overjro.setTextContent()
395 finalpath = overjro.saveFile(contentFile)
395 finalpath = overjro.saveFile(contentFile)
396
396
397 currentdate = datetime.today()
397 currentdate = datetime.today()
398 newOverJro = overJroShow()
398 newOverJro = overJroShow()
399 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
399 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
400 newOverJro.setupParameters()
400 newOverJro.setupParameters()
401 newOverJro.execute()
401 newOverJro.execute()
402 path = newOverJro.getPlot()
402 path = newOverJro.getPlot()
403
403
404 return path
404 return path
405
405
406 def overJROUp(request, profile_id, pattern_id, antenna_id):
406 def overJROUp(request, profile_id, pattern_id, antenna_id):
407 objAntenna = AntennaUp.objects.get(pk=antenna_id)
407 objAntenna = AntennaUp.objects.get(pk=antenna_id)
408 img_path = getImgfromOverJRO(profile_id, objAntenna)
408 img_path = getImgfromOverJRO(profile_id, objAntenna)
409 filename = os.path.split(img_path)[1]
409 filename = os.path.split(img_path)[1]
410 return render_to_response('abscontrol/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
410 return render_to_response('abscontrol/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
411 context_instance=RequestContext(request))
411 context_instance=RequestContext(request))
412
412
413 def overJRODown(request, profile_id, pattern_id, antenna_id):
413 def overJRODown(request, profile_id, pattern_id, antenna_id):
414 objAntenna = AntennaDown.objects.get(pk=antenna_id)
414 objAntenna = AntennaDown.objects.get(pk=antenna_id)
415 img_path = getImgfromOverJRO(profile_id, objAntenna)
415 img_path = getImgfromOverJRO(profile_id, objAntenna)
416 filename = os.path.split(img_path)[1]
416 filename = os.path.split(img_path)[1]
417 return render_to_response('abscontrol/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
417 return render_to_response('abscontrol/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
418 context_instance=RequestContext(request))
418 context_instance=RequestContext(request))
419
419
420 def export(request, profile_id):
420 def export(request, profile_id):
421 listPatterns = []
421 listPatterns = []
422 objProfile = Profile.objects.get(pk=profile_id)
422 objProfile = Profile.objects.get(pk=profile_id)
423 exp_name = objProfile.name
423 exp_name = objProfile.name
424 lsPatterns = objProfile.pattern_set.all()
424 lsPatterns = objProfile.pattern_set.all()
425 for element in lsPatterns:
425 for element in lsPatterns:
426 objAntennaUp = element.antennaup_set.get()
426 objAntennaUp = element.antennaup_set.get()
427 objAntennaDown = element.antennadown_set.get()
427 objAntennaDown = element.antennadown_set.get()
428 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
428 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
429 listPatterns.append(dicPatterns)
429 listPatterns.append(dicPatterns)
430
430
431 absFile = saveABSFile()
431 absFile = saveABSFile()
432 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
432 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
433 filename, filesize = absFile.save()
433 filename, filesize = absFile.save()
434
434
435 wrapper = FileWrapper( open( filename, "r" ) )
435 wrapper = FileWrapper( open( filename, "r" ) )
436 content_type = mimetypes.guess_type( filename )[0]
436 content_type = mimetypes.guess_type( filename )[0]
437
437
438 response = HttpResponse(wrapper, content_type = content_type)
438 response = HttpResponse(wrapper, content_type = content_type)
439 response['Content-Description'] = 'File Transfer'
439 response['Content-Description'] = 'File Transfer'
440 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
440 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
441 response['Content-Transfer-Encoding'] = 'binary'
441 response['Content-Transfer-Encoding'] = 'binary'
442 response['Expires'] = '0'
442 response['Expires'] = '0'
443 response['Cache-Control'] = 'must-revalidate'
443 response['Cache-Control'] = 'must-revalidate'
444 response['Pragma'] = 'public'
444 response['Pragma'] = 'public'
445 response['Content-Length'] = '%s' % str(filesize)
445 response['Content-Length'] = '%s' % str(filesize)
446 response['X-Sendfile'] = '%s' % smart_str(filename)
446 response['X-Sendfile'] = '%s' % smart_str(filename)
447
447
448 return response
448 return response
449
449
450 def send(request, profile_id):
450 def send(request, profile_id):
451 listPatterns = []
451 listPatterns = []
452 objProfile = Profile.objects.get(pk=profile_id)
452 objProfile = Profile.objects.get(pk=profile_id)
453 exp_name = objProfile.name
453 exp_name = objProfile.name
454
454
455 lsPatterns = objProfile.pattern_set.all()
455 lsPatterns = objProfile.pattern_set.all()
456 for element in lsPatterns:
456 for element in lsPatterns:
457 objAntennaUp = element.antennaup_set.get()
457 objAntennaUp = element.antennaup_set.get()
458 objAntennaDown = element.antennadown_set.get()
458 objAntennaDown = element.antennadown_set.get()
459 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
459 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
460 listPatterns.append(dicPatterns)
460 listPatterns.append(dicPatterns)
461
461
462 absFile = saveABSFile()
462 absFile = saveABSFile()
463 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
463 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
464 filename, filesize = absFile.save()
464 filename, filesize = absFile.save()
465
465
466 apiclient = sendFile()
466 apiclient = sendFile()
467 apiclient.execute(filename)
467 apiclient.execute(filename)
468 output = apiclient.getOutput()
468 output = apiclient.getOutput()
469
469
470 if output == "OK":
470 if output == "OK":
471 message = "File sent successfully."
471 message = "File sent successfully."
472 lsProfilesActive = Profile.objects.filter(is_active=1)
472 lsProfilesActive = Profile.objects.filter(is_active=1)
473 if len(lsProfilesActive) > 0:
473 if len(lsProfilesActive) > 0:
474 objProfileActive = Profile.objects.get(is_active=1)
474 objProfileActive = Profile.objects.get(is_active=1)
475 objProfileActive.is_active = 0
475 objProfileActive.is_active = 0
476 objProfileActive.save()
476 objProfileActive.save()
477
477
478 lsPatternsActive = Pattern.objects.filter(is_active=1)
479 if len(lsPatternsActive) > 0:
480 objPatternActive = Pattern.objects.get(is_active=1)
481 objPatternActive.is_active = 0
482 objPatternActive.save()
483
478 objProfile.hits += 1
484 objProfile.hits += 1
479 objProfile.is_active = 1
485 objProfile.is_active = 1
480 objProfile.save()
486 objProfile.save()
481
487
482 pattern_value = 1
488 pattern_value = 1
483 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
489 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
484 patternChoosen.is_active = 1
490 patternChoosen.is_active = 1
485 patternChoosen.save()
491 patternChoosen.save()
486
492
487 newurl = '/abscontrol/view/%d' % int(profile_id)
493 newurl = '/abscontrol/view/%d' % int(profile_id)
488
494
489 return redirect(newurl)
495 return redirect(newurl)
490 else:
496 else:
491 message = "Error sending file."
497 message = "Error sending file."
492
498
493 profile_list = Profile.objects.all()
499 profile_list = Profile.objects.all()
494
500
495 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
501 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
496 'objProfile': objProfile,
502 'objProfile': objProfile,
497 }, context_instance=RequestContext(request))
503 }, context_instance=RequestContext(request))
498
504
499 def changePattern(request, profile_id, pattern_id):
505 def changePattern(request, profile_id, pattern_id):
500 patternChoosen = Pattern.objects.get(id=pattern_id)
506 patternChoosen = Pattern.objects.get(id=pattern_id)
501 beam = int(patternChoosen.value)-1
507 beam = int(patternChoosen.value)-1
502
508
503 apiclient = changeBeam()
509 apiclient = changeBeam()
504 apiclient.execute(str(beam))
510 apiclient.execute(str(beam))
505 output = apiclient.getOutput()
511 output = apiclient.getOutput()
506
512
507 if output == "OK":
513 if output == "OK":
508 lsPatternsActive = Pattern.objects.filter(is_active=1)
514 lsPatternsActive = Pattern.objects.filter(is_active=1)
509 if len(lsPatternsActive) > 0:
515 if len(lsPatternsActive) > 0:
510 objPatternActive = Pattern.objects.get(is_active=1)
516 objPatternActive = Pattern.objects.get(is_active=1)
511 objPatternActive.is_active = 0
517 objPatternActive.is_active = 0
512 objPatternActive.save()
518 objPatternActive.save()
513
519
514 patternChoosen.hits += 1
520 patternChoosen.hits += 1
515 patternChoosen.is_active = 1
521 patternChoosen.is_active = 1
516 patternChoosen.save()
522 patternChoosen.save()
517
523
518 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
524 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
519 return redirect(newurl)
525 return redirect(newurl)
520 else:
526 else:
521 message = "Error sending file."
527 message = "Error sending file."
522 profile_list = Profile.objects.all()
528 profile_list = Profile.objects.all()
523 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
529 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
524 }, context_instance=RequestContext(request))
530 }, context_instance=RequestContext(request))
525 No newline at end of file
531
General Comments 0
You need to be logged in to leave comments. Login now