##// END OF EJS Templates
- Implementando la lectura del archivo ABS.
jsalyrosas -
r151:152
parent child
Show More
@@ -1,275 +1,281
1 1 from django.shortcuts import render_to_response, redirect
2 2 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
3 from util.readABSFile import readABSFile
3 4
4 5 txtAntenna = "[[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
5 6 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
6 7 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
7 8 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
8 9 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
9 10 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]," \
10 11 "[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]," \
11 12 "[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]"
12 13
13 14 txtTxUp = "[[1,1,1,1,1,1,1,1]," \
14 15 "[1,1,1,1,1,1,1,1]," \
15 16 "[1,1,1,1,1,1,1,1]," \
16 17 "[1,1,1,1,1,1,1,1]," \
17 18 "[1,1,1,1,1,1,1,1]," \
18 19 "[1,1,1,1,1,1,1,1]," \
19 20 "[1,1,1,1,1,1,1,1]," \
20 21 "[1,1,1,1,1,1,1,1]]"
21 22
22 23 txtTxDown = "[[1,1,1,1,0,0,0,0]," \
23 24 "[1,1,1,1,0,0,0,0]," \
24 25 "[1,1,1,1,0,0,0,0]," \
25 26 "[1,1,1,1,0,0,0,0]," \
26 27 "[0,0,0,0,1,1,1,1]," \
27 28 "[0,0,0,0,1,1,1,1]," \
28 29 "[0,0,0,0,1,1,1,1]," \
29 30 "[0,0,0,0,1,1,1,1]]"
30 31
31 32 txtRxUp = "[[0,0,0,0,1,1,1,1]," \
32 33 "[0,0,0,0,1,1,1,1]," \
33 34 "[0,0,0,0,1,1,1,1]," \
34 35 "[0,0,0,0,1,1,1,1]," \
35 36 "[1,1,1,1,1,1,1,1]," \
36 37 "[1,1,1,1,1,1,1,1]," \
37 38 "[1,1,1,1,1,1,1,1]," \
38 39 "[1,1,1,1,1,1,1,1]]"
39 40
40 41 txtRxDown = "[[1,1,1,1,1,1,1,1]," \
41 42 "[1,1,1,1,1,1,1,1]," \
42 43 "[1,1,1,1,1,1,1,1]," \
43 44 "[1,1,1,1,1,1,1,1]," \
44 45 "[1,1,1,1,1,1,1,1]," \
45 46 "[1,1,1,1,1,1,1,1]," \
46 47 "[1,1,1,1,1,1,1,1]," \
47 48 "[1,1,1,1,1,1,1,1]]"
48 49
49 50 txtUes = "[0.533333,0.00000,1.06667,0.00000]"
50 51
51 52 def index(request):
52 53 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
53 54 profile_list = Profile.objects.all()
54 55 return render_to_response('abscontrol/index.html', {'profile_list': profile_list})
55 56
56 57 def new(request):
57 58 profile_list = Profile.objects.all()
58 59
59 60 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
60 61 'txtAntenna' : txtAntenna,
61 62 'txtUes' : txtUes, 'txtTxUp' : txtTxUp,
62 63 'txtTxDown' : txtTxDown, 'txtRxUp' : txtRxUp,
63 64 'txtRxDown' : txtRxDown,
64 65 })
65 66
66 67 def save(request):
67 68
68 69 txtProfile = request.POST["txtProfile"]
69 70
70 71 txtAntennaUp = request.POST["txtAntennaUp"]
71 72 txtTxUp = request.POST["txtTxUp"]
72 73 txtRxUp = request.POST["txtRxUp"]
73 74 txtUesUp = request.POST["txtUesUp"]
74 75
75 76 txtAntennaDown = request.POST["txtAntennaDown"]
76 77 txtTxDown = request.POST["txtTxDown"]
77 78 txtRxDown = request.POST["txtRxDown"]
78 79 txtUesDown = request.POST["txtUesDown"]
79 80
80 81 newprofile = Profile(name=txtProfile)
81 82 newprofile.save()
82 83
83 84 newpattern = newprofile.pattern_set.create(value=1)
84 85 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
85 86 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
86 87
87 88 newurl = '/abscontrol/view/%d' % newprofile.id
88 89
89 90 return redirect(newurl)
90 91
91 92 def view(request, profile_id):
92 93 nextPattern = 0
93 94
94 95 if request.method == 'GET' and 'pattern' in request.GET:
95 96 pattern_value = request.GET["pattern"]
96 97 else:
97 98 pattern_value = 1
98 99
99 100 profile_list = Profile.objects.all()
100 101 objProfile = Profile.objects.get(pk=profile_id)
101 102
102 103 lsPatterns = objProfile.pattern_set.all()
103 104 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
104 105 objAntennaUp = patternChoosen.antennaup_set.get()
105 106 objAntennaDown = patternChoosen.antennadown_set.get()
106 107
107 108 if len(lsPatterns) > 1:
108 109 if pattern_value == 1:
109 110 nextValuePattern = pattern_value + 1
110 111 nextPattern = objProfile.pattern_set.get(value=nextValuePattern)
111 112
112 113
113 114 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
114 115 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
115 116 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
116 117 'nextPattern' : nextPattern,
117 118 })
118 119
119 120 def edit(request, profile_id):
120 121 if request.method == 'GET' and 'pattern' in request.GET:
121 122 pattern_value = request.GET["pattern"]
122 123 else:
123 124 pattern_value = 1
124 125
125 126 profile_list = Profile.objects.all()
126 127 objProfile = Profile.objects.get(pk=profile_id)
127 128
128 129 lsPatterns = objProfile.pattern_set.all()
129 130 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
130 131 objAntennaUp = patternChoosen.antennaup_set.get()
131 132 objAntennaDown = patternChoosen.antennadown_set.get()
132 133
133 134 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
134 135 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
135 136 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
136 137 })
137 138
138 139 def addPattern(request, profile_id):
139 140 profile_list = Profile.objects.all()
140 141 objProfile = Profile.objects.get(pk=profile_id)
141 142
142 143 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
143 144 'txtAntenna' : txtAntenna, 'txtUes' : txtUes,
144 145 'txtTxUp' : txtTxUp, 'txtTxDown' : txtTxDown,
145 146 'txtRxUp' : txtRxUp, 'txtRxDown' : txtRxDown,
146 147 })
147 148
148 149 def editPattern(request, profile_id, pattern_id):
149 150 profile_list = Profile.objects.all()
150 151 objProfile = Profile.objects.get(pk=profile_id)
151 152 lsPatterns = objProfile.pattern_set.all()
152 153 patternChoosen = Pattern.objects.get(pk=pattern_id)
153 154 objAntennaUp = patternChoosen.antennaup_set.get()
154 155 objAntennaDown = patternChoosen.antennadown_set.get()
155 156
156 157 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
157 158 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
158 159 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
159 160 })
160 161
161 162 def savePattern(request, profile_id):
162 163 pattern_id = 0
163 164 method = "save"
164 165
165 166 if 'pattern_id' in request.POST:
166 167 pattern_id = request.POST["pattern_id"]
167 168 method = "update"
168 169
169 170 maxValuePattern = 0
170 171 txtAntennaUp = request.POST["txtAntennaUp"]
171 172 txtTxUp = request.POST["txtTxUp"]
172 173 txtRxUp = request.POST["txtRxUp"]
173 174 txtUesUp = request.POST["txtUesUp"]
174 175
175 176 txtAntennaDown = request.POST["txtAntennaDown"]
176 177 txtTxDown = request.POST["txtTxDown"]
177 178 txtRxDown = request.POST["txtRxDown"]
178 179 txtUesDown = request.POST["txtUesDown"]
179 180
180 181 if method == "save":
181 182 objProfile = Profile.objects.get(pk=profile_id)
182 183 lsPatterns = objProfile.pattern_set.all()
183 184 for element in lsPatterns:
184 185 if element.value > maxValuePattern:
185 186 maxPattern = element.value
186 187
187 188 if maxPattern < 10 :
188 189 newValuePattern = maxPattern + 1
189 190 newpattern = objProfile.pattern_set.create(value=newValuePattern)
190 191 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
191 192 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
192 193
193 194 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
194 195 else:
195 196 newurl = '/abscontrol/edit/%d' % (int(profile_id))
196 197 else:
197 198 txtAntennaUpId = request.POST["txtAntennaUpId"]
198 199 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
199 200 objAntennaUp.value = txtAntennaUp
200 201 objAntennaUp.tx = txtTxUp
201 202 objAntennaUp.rx = txtRxUp
202 203 objAntennaUp.ues = txtUesUp
203 204 objAntennaUp.save()
204 205
205 206 txtAntennaDownId = request.POST["txtAntennaDownId"]
206 207 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
207 208 objAntennaDown.value = txtAntennaDown
208 209 objAntennaDown.tx = txtTxDown
209 210 objAntennaDown.rx = txtRxDown
210 211 objAntennaDown.ues = txtUesDown
211 212 objAntennaDown.save()
212 213
213 214 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
214 215
215 216 return redirect(newurl)
216 217
217 218 def viewPattern(request, profile_id, pattern_id):
218 219
219 220 profile_list = Profile.objects.all()
220 221 objProfile = Profile.objects.get(pk=profile_id)
221 222
222 223 patternChoosen = Pattern.objects.get(pk=pattern_id)
223 224
224 225 objAntennaUp = patternChoosen.antennaup_set.get()
225 226 objAntennaDown = patternChoosen.antennadown_set.get()
226 227
227 228 lsPatterns = objProfile.pattern_set.all()
228 229
229 230 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
230 231 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
231 232 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
232 233 })
233 234
234 235 def deletePattern(request, profile_id, pattern_id):
235 236 newurl = '/abscontrol/edit/%d' % int(profile_id)
236 237
237 238 return redirect(newurl)
238 239
239 240 def importProfile(request):
240 241
241 242 return render_to_response('abscontrol/import.html', { })
242 243
243 244 def saveImport(request):
244 245 if request.method == 'POST':
245 246 txtFilename = request.FILES['txtFile']
246 247 if txtFilename:
247 248 destination = open('/tmp/'+txtFilename.name, 'wb+')
248 249 for chunk in txtFilename.chunks():
249 250 destination.write(chunk)
250 251 destination.close()
252 filename = '/tmp/'+txtFilename.name
253 readFile = readABSFile(filename)
254 expName, num_patterns, patterns = readFile.getMetadata()
255
256 '''
251 257 f = open('/tmp/'+txtFilename.name, 'r')
252 258 newContent = f.readlines()
253 259 f.close()
254 260 content = ""
255 261 for i,line in enumerate(newContent):
256 262 if i == 0:
257 263 newLine = line.replace("'","")
258 264 pos = newLine.find("=")
259 265 expName = newLine[pos+1:].strip()
260 266 elif i == 2:
261 267 pos = line.find("=")
262 268 num_patterns = line[pos+1:].strip()
263 269 else:
264 270 content += line
265
271 '''
266 272 else:
267 273 txtFilename = "Error"
268 content = "Error"
274 #content = "Error"
269 275 expName = ""
270 276 num_patterns = 0
271 277
272 return render_to_response('abscontrol/upload.html', {'txtFilename': txtFilename, 'content' : content,
278 return render_to_response('abscontrol/upload.html', {'txtFilename': txtFilename, 'patterns' : patterns,
273 279 'expName' : expName, 'num_patterns' : num_patterns,
274 280 })
275 281
@@ -1,21 +1,36
1 1 {% extends "abscontrol/index.html" %}
2 2 {% block title %}ABS CONTROL:::::IMPORT PROFILE{% endblock %}
3 3
4 4 {% block content %}
5 5 <div id="content">
6 6 <div id="divPattern">
7 7 <div class="divUes">
8 8 <label for="lblFile">File:</label>
9 9 <label for="lblFilename">{{ txtFilename }}</label>
10 10 </div>
11 11 <div class="divUes">
12 12 <label for="lblExperiment">Experiment:</label>
13 13 <p>{{ expName }}</p>
14 14 <label for="lblNumber">Number of patterns:</label>
15 15 <p>{{ num_patterns }}</p>
16 <label for="lblContent">Content:</label>
17 <p>{{ content }}</p>
18 16 </div>
17 {% if patterns %}
18 <div>
19 {% for element in patterns %}
20 <div>
21 <label for="lblNumber">Pattern: {{ element.number }}</label>
22 </div>
23 <div>
24 <label for="lblAntennaUp">Antenna Up:</label>
25 <p>{{ element.up }}</p>
26 </div>
27 <div>
28 <label for="lblAntennaDown">Antenna Down:</label>
29 <p>{{ element.down }}</p>
30 </div>
31 {% endfor %}
32 </div>
33 {% endif %}
19 34 </div>
20 35 </div>
21 36 {% endblock %}
@@ -1,46 +1,50
1 1 '''
2 2 Created on May 2, 2013
3 3
4 4 @author: Jose Antonio Sal y Rosas Celi
5 5 @contact: jose.salyrosas@jro.igp.gob.pe
6 6 '''
7 7
8 8 class readABSFile(object):
9 9
10 10 __scriptName = "readABSFile.py"
11 11
12 12 def __init__(self, filename):
13 13 self.fileName = filename
14 14 self.content = ""
15 15 self.exp_name = ""
16 16 self.number_patterns = 0
17 17 self.patterns = {}
18 18
19 def readFile(self, path):
20 f = open(path, 'r')
19 def readFile(self):
20 f = open(self.fileName, 'r')
21 21 self.content = f.readlines()
22 22 f.close()
23 23
24 24 def getMetadata(self):
25 self.readFile()
26
25 27 newLine = self.content[0].replace("'","")
26 28 pos = newLine.find("=")
27 29 self.exp_name = newLine[pos+1:].strip()
28 30
29 31 pos = self.content[2].find("=")
30 32 self.number_patterns = int(self.content[2][pos+1:].strip())
31 33
32 34 self.patterns = self.getPatterns(self.content[3:])
35
36 return self.exp_name, self.number_patterns, self.patterns
33 37
34 38 def getPatterns(self, content):
35 39 lsPattern = []
36 40 index = 8
37 41
38 42 for i in range(0, self.number_patterns):
39 43 first = i+index
40 44 second = first+index
41 45 antennaUp = content[i:first]
42 46 antennaDown = content[first+1:second]
43 47 dicPattern = {"number" : content[i], "up" : antennaUp, "down" : antennaDown}
44 48 lsPattern.append(dicPattern)
45 49
46 50 return lsPattern No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now