##// END OF EJS Templates
Changes in the generation of the control modules files.
imanay -
r81:82
parent child
Show More
@@ -1,496 +1,496
1 1 # imports needed for the file convertion
2 2 import os
3 3 import sys
4 4 import time
5 5 import numpy as np
6 6
7 7 import library3
8 8
9 9 class ABSClient:
10 10
11 11 def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000):
12 12
13 13 self.ipSource = ipSource
14 14 self.ipDestino = ipDestino
15 15 self.portDestino = portDestino
16 16
17 17 self.createObjects()
18 18
19 19 def createObjects(self):
20 20
21 21 self.commObj = library3.TCPComm(self.ipSource, self.ipDestino, self.portDestino)
22 22
23 23 def sendFile(self, filename):
24 24
25 25 #From matriz to control module format
26 26 self.FuncionMaestra_GeneraFormatoControlCentral(filename)
27 27 FileName = "FormatoControlCentral.txt"
28 28 F_Obj = open(FileName,"r")
29 29 FileList = F_Obj.readlines()
30 30 F_Obj.close()
31 31 FileStr = "".join(FileList)
32 32 data = FileStr
33 33
34 34 self.commObj.open_socket()
35 35 # self.commObj.sendData(cmd="SNDF", data=data, id = 117)
36 36 self.commObj.sendData2(cmd="SNDF", data=data, ipDestino = self.ipDestino)
37 37 # self.commObj.waitData()
38 38 self.commObj.waitClient()
39 39 self.commObj.close_socket()
40 40
41 41 def changeBeam(self, newBeam):
42 42
43 43 self.commObj.open_socket()
44 44 # self.commObj.sendData(cmd="CHGB", data=newBeam, id = 117)
45 45 self.commObj.sendData2(cmd="CHGB", data=newBeam, ipDestino = self.ipDestino)
46 46 # self.commObj.waitData()
47 47 self.commObj.waitClient()
48 48 self.commObj.close_socket()
49 49
50 50 def __writeFile(self, filename, data):
51 51
52 52 fobj = open(filename,"w")
53 53 fobj.writelines(data)
54 54 fobj.close()
55 55
56 56 def getControlModuleStatus(self, data):
57 57
58 58 self.commObj.open_socket()
59 59 # self.commObj.sendData(cmd="ANST", data = data, id = 117)
60 60 self.commObj.sendData2(cmd="ANST", data = data, ipDestino = self.ipDestino)
61 61 # ipSource, ipDestino, cmd, data = self.commObj.waitData()
62 62 ipSource, ipDestino, cmd, data = self.commObj.waitClient()
63 63 self.commObj.close_socket()
64 64 self.__writeFile("report.txt", data)
65 65
66 66 def getConnectionStatus(self):
67 67
68 68 self.commObj.open_socket()
69 69 self.commObj.sendData2(cmd="NTST", data = "none", ipDestino = "192.168.1.117")
70 70 ipSource, ipDestino, cmd, data = self.commObj.waitClient()
71 71 self.commObj.close_socket()
72 72 self.__writeFile("connection_status.txt", data)
73 73
74 74 ##########
75 75
76 76 def FuncionMaestra_GeneraFormatoControlCentral(self,archivo):
77 77 """ Funcion que genera un archivo para el control central"""
78 78
79 79 CarpetaDeTrabajo = os.getcwd() + '/'
80 80
81 81 def lst2string(lst):
82 82 string=''
83 83 for i in lst:
84 84 string=string+i
85 85 return string
86 86
87 87 def string2lst(string):
88 88 lst = []
89 89 for i in string:
90 90 lst.append(i)
91 91 return lst
92 92
93 93
94 94 def file1(string, type):
95 95 lst = string2lst(archivo)
96 96 fin = -1
97 97 t = len(lst)
98 98 for i in np.arange(-1,-t,-1):
99 99 if lst[i]=='/':
100 100 fin=i
101 101 break
102 102 if type == '1':
103 103 nombre2 = lst[fin+1:]
104 104 nombre2[-1]='s'
105 105 nombre2 = lst2string(nombre2)
106 106 return nombre2
107 107 if type == '2':
108 108 nombre2 = lst[fin+1:]
109 109 nombre2[-1]='1'
110 110 nombre2 = lst2string(nombre2)
111 111 return nombre2
112 112
113 113
114 114 def EliminaSaltoDeLinea(cadena):
115 115 i = 0
116 116 for elemento in cadena:
117 117 if elemento =='\n' or elemento =='\r':
118 118 pass
119 119 else:
120 120 i=i+1
121 121 return cadena [:i]
122 122
123 123 def NumeroDeExperimentos(path):
124 124 fichero1=open(path,'r')
125 125 cont=0
126 126 for cadena in fichero1:
127 127 cont=cont+1
128 128 if cont==3:
129 129 nexp=''
130 130 pos=0
131 131 for elemento in cadena:
132 132 pos=pos+1
133 133 if elemento=='=':
134 134 nexp=int(cadena[pos:])
135 135 return nexp
136 136 fichero1.close()
137 137
138 138 def Paridad(numero):
139 139 if numero%2==0: return 'par'
140 140 elif numero%2==1: return 'impar'
141 141
142 142 def EvaluaCadena(cadena):
143 143 if len(cadena)>35:
144 144 if cadena[-1]=='$':
145 145 return cadena[-35:-2]
146 146 elif cadena[-1]==']':
147 147 return cadena[-34:-1]
148 148 else:
149 149 return None
150 150
151 151 def GuardaEnLista(path):
152 152 fichero=open(path,'r')
153 153 lista=[]
154 154 for cadena in fichero:
155 155 cadena = EliminaSaltoDeLinea(cadena)
156 156 cadena = EvaluaCadena(cadena)
157 157 if cadena != None:
158 158 lista.append(cadena)
159 159 fichero.close()
160 160 return lista
161 161
162 162 def CreaFicherosPrevios():
163 163 vector = GuardaEnLista(archivo)
164 164 for i in range(1,NumeroDeExperimentos(archivo)+1):
165 165 fichero =open(CarpetaDeTrabajo+str(i)+'.txt','w')
166 166 for j in range(0,16):
167 167 fichero.write(vector[j+16*(i-1)]+'\n')
168 168 fichero.close()
169 169
170 170 def CapturaValoresEnArchivo(path,polarizacion='up'):
171 171 fichero =open(path,'r')
172 172 cnt=0
173 173 lstup=[]
174 174 lstdw=[]
175 175 for cadena in fichero:
176 176 cnt=cnt+1
177 177 if cnt==5:
178 178 su01=cadena[17:20]
179 179 su02=cadena[21:24]
180 180 su03=cadena[25:28]
181 181 su04=cadena[29:32]
182 182 if cnt==6:
183 183 su05=cadena[17:20]
184 184 su06=cadena[21:24]
185 185 su07=cadena[25:28]
186 186 su08=cadena[29:32]
187 187 if cnt==7:
188 188 su09=cadena[17:20]
189 189 su10=cadena[21:24]
190 190 su11=cadena[25:28]
191 191 su12=cadena[29:32]
192 192 if cnt==8:
193 193 su13=cadena[17:20]
194 194 su14=cadena[21:24]
195 195 su15=cadena[25:28]
196 196 su16=cadena[29:32]
197 197 if cnt==13:
198 198 sd01=cadena[17:20]
199 199 sd02=cadena[21:24]
200 200 sd03=cadena[25:28]
201 201 sd04=cadena[29:32]
202 202 if cnt==14:
203 203 sd05=cadena[17:20]
204 204 sd06=cadena[21:24]
205 205 sd07=cadena[25:28]
206 206 sd08=cadena[29:32]
207 207 if cnt==15:
208 208 sd09=cadena[17:20]
209 209 sd10=cadena[21:24]
210 210 sd11=cadena[25:28]
211 211 sd12=cadena[29:32]
212 212 if cnt==16:
213 213 sd13=cadena[17:20]
214 214 sd14=cadena[21:24]
215 215 sd15=cadena[25:28]
216 216 sd16=cadena[29:32]
217 217 lstup=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16]
218 218 lstdw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16]
219 219 if polarizacion=='up':
220 220 return lstup
221 221 elif polarizacion=='dw':
222 222 return lstdw
223 223 fichero.close()
224 224
225 225 def CapturaValoresEnArchivo2(path,polarizacion='up'):
226 226 fichero =open(path,'r')
227 227 cnt=0
228 228 lstup=[]
229 229 lstdw=[]
230 230 for cadena in fichero:
231 231 cnt=cnt+1
232 232 if cnt==1:
233 233 nu01=cadena[1:4]
234 234 nu02=cadena[5:8]
235 235 nu03=cadena[9:12]
236 236 nu04=cadena[13:16]
237 237 eu01=cadena[17:20]
238 238 eu02=cadena[21:24]
239 239 eu03=cadena[25:28]
240 240 eu04=cadena[29:32]
241 241 if cnt==2:
242 242 nu05=cadena[1:4]
243 243 nu06=cadena[5:8]
244 244 nu07=cadena[9:12]
245 245 nu08=cadena[13:16]
246 246 eu05=cadena[17:20]
247 247 eu06=cadena[21:24]
248 248 eu07=cadena[25:28]
249 249 eu08=cadena[29:32]
250 250 if cnt==3:
251 251 nu09=cadena[1:4]
252 252 nu10=cadena[5:8]
253 253 nu11=cadena[9:12]
254 254 nu12=cadena[13:16]
255 255 eu09=cadena[17:20]
256 256 eu10=cadena[21:24]
257 257 eu11=cadena[25:28]
258 258 eu12=cadena[29:32]
259 259 if cnt==4:
260 260 nu13=cadena[1:4]
261 261 nu14=cadena[5:8]
262 262 nu15=cadena[9:12]
263 263 nu16=cadena[13:16]
264 264 eu13=cadena[17:20]
265 265 eu14=cadena[21:24]
266 266 eu15=cadena[25:28]
267 267 eu16=cadena[29:32]
268 268 if cnt==5:
269 269 wu01=cadena[1:4]
270 270 wu02=cadena[5:8]
271 271 wu03=cadena[9:12]
272 272 wu04=cadena[13:16]
273 273 su01=cadena[17:20]
274 274 su02=cadena[21:24]
275 275 su03=cadena[25:28]
276 276 su04=cadena[29:32]
277 277 if cnt==6:
278 278 wu05=cadena[1:4]
279 279 wu06=cadena[5:8]
280 280 wu07=cadena[9:12]
281 281 wu08=cadena[13:16]
282 282 su05=cadena[17:20]
283 283 su06=cadena[21:24]
284 284 su07=cadena[25:28]
285 285 su08=cadena[29:32]
286 286 if cnt==7:
287 287 wu09=cadena[1:4]
288 288 wu10=cadena[5:8]
289 289 wu11=cadena[9:12]
290 290 wu12=cadena[13:16]
291 291 su09=cadena[17:20]
292 292 su10=cadena[21:24]
293 293 su11=cadena[25:28]
294 294 su12=cadena[29:32]
295 295 if cnt==8:
296 296 wu13=cadena[1:4]
297 297 wu14=cadena[5:8]
298 298 wu15=cadena[9:12]
299 299 wu16=cadena[13:16]
300 300 su13=cadena[17:20]
301 301 su14=cadena[21:24]
302 302 su15=cadena[25:28]
303 303 su16=cadena[29:32]
304 304 if cnt==9:
305 305 nd01=cadena[1:4]
306 306 nd02=cadena[5:8]
307 307 nd03=cadena[9:12]
308 308 nd04=cadena[13:16]
309 309 ed01=cadena[17:20]
310 310 ed02=cadena[21:24]
311 311 ed03=cadena[25:28]
312 312 ed04=cadena[29:32]
313 313 if cnt==10:
314 314 nd05=cadena[1:4]
315 315 nd06=cadena[5:8]
316 316 nd07=cadena[9:12]
317 317 nd08=cadena[13:16]
318 318 ed05=cadena[17:20]
319 319 ed06=cadena[21:24]
320 320 ed07=cadena[25:28]
321 321 ed08=cadena[29:32]
322 322 if cnt==11:
323 323 nd09=cadena[1:4]
324 324 nd10=cadena[5:8]
325 325 nd11=cadena[9:12]
326 326 nd12=cadena[13:16]
327 327 ed09=cadena[17:20]
328 328 ed10=cadena[21:24]
329 329 ed11=cadena[25:28]
330 330 ed12=cadena[29:32]
331 331 if cnt==12:
332 332 nd13=cadena[1:4]
333 333 nd14=cadena[5:8]
334 334 nd15=cadena[9:12]
335 335 nd16=cadena[13:16]
336 336 ed13=cadena[17:20]
337 337 ed14=cadena[21:24]
338 338 ed15=cadena[25:28]
339 339 ed16=cadena[29:32]
340 340 if cnt==13:
341 341 wd01=cadena[1:4]
342 342 wd02=cadena[5:8]
343 343 wd03=cadena[9:12]
344 344 wd04=cadena[13:16]
345 345 sd01=cadena[17:20]
346 346 sd02=cadena[21:24]
347 347 sd03=cadena[25:28]
348 348 sd04=cadena[29:32]
349 349 if cnt==14:
350 350 wd05=cadena[1:4]
351 351 wd06=cadena[5:8]
352 352 wd07=cadena[9:12]
353 353 wd08=cadena[13:16]
354 354 sd05=cadena[17:20]
355 355 sd06=cadena[21:24]
356 356 sd07=cadena[25:28]
357 357 sd08=cadena[29:32]
358 358 if cnt==15:
359 359 wd09=cadena[1:4]
360 360 wd10=cadena[5:8]
361 361 wd11=cadena[9:12]
362 362 wd12=cadena[13:16]
363 363 sd09=cadena[17:20]
364 364 sd10=cadena[21:24]
365 365 sd11=cadena[25:28]
366 366 sd12=cadena[29:32]
367 367 if cnt==16:
368 368 wd13=cadena[1:4]
369 369 wd14=cadena[5:8]
370 370 wd15=cadena[9:12]
371 371 wd16=cadena[13:16]
372 372 sd13=cadena[17:20]
373 373 sd14=cadena[21:24]
374 374 sd15=cadena[25:28]
375 375 sd16=cadena[29:32]
376 376 lst_n_up=[nu01,nu02,nu03,nu04,nu05,nu06,nu07,nu08,nu09,nu10,nu11,nu12,nu13,nu14,nu15,nu16]
377 377 lst_n_dw=[nd01,nd02,nd03,nd04,nd05,nd06,nd07,nd08,nd09,nd10,nd11,nd12,nd13,nd14,nd15,nd16]
378 378 lst_s_up=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16]
379 379 lst_s_dw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16]
380 380 lst_w_up=[wu01,wu02,wu03,wu04,wu05,wu06,wu07,wu08,wu09,wu10,wu11,wu12,wu13,wu14,wu15,wu16]
381 381 lst_w_dw=[wd01,wd02,wd03,wd04,wd05,wd06,wd07,wd08,wd09,wd10,wd11,wd12,wd13,wd14,wd15,wd16]
382 382 lst_e_up=[eu01,eu02,eu03,eu04,eu05,eu06,eu07,eu08,eu09,eu10,eu11,eu12,eu13,eu14,eu15,eu16]
383 383 lst_e_dw=[ed01,ed02,ed03,ed04,ed05,ed06,ed07,ed08,ed09,ed10,ed11,ed12,ed13,ed14,ed15,ed16]
384 384
385 lstup = lst_s_up + lst_w_up + lst_n_up + lst_e_up
386 lstdw = lst_s_dw + lst_w_dw + lst_n_up + lst_e_up
385 lstup = lst_n_up + lst_e_up + lst_w_up + lst_s_up
386 lstdw = lst_n_dw + lst_e_dw + lst_w_up + lst_s_up
387 387
388 388 if polarizacion=='up':
389 389 return lstup
390 390 elif polarizacion=='dw':
391 391 return lstdw
392 392 fichero.close()
393 393
394 394
395 395 def CreaFormatoFinal():
396 396 ne=NumeroDeExperimentos(archivo)
397 397
398 398 #nombre01 = file1(archivo,'1')
399 399 nombre02 = file1(archivo,'2')
400 400 fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w')
401 401 fichero.write(nombre02+'\n')
402 402 fichero.write(str(ne)+'\n')
403 403 for i in range(1,17):
404 404
405 405 if i<10:
406 406 nmod = '0'+str(i)
407 407 else: nmod = str(i)
408 408
409 409
410 410 fichero.write('S'+nmod+'\n')
411 411 for j in range(1,ne+1):
412 412 ruta=CarpetaDeTrabajo+str(j)+'.txt'
413 413 lu=CapturaValoresEnArchivo(ruta,polarizacion='up')
414 414 ld=CapturaValoresEnArchivo(ruta,polarizacion='dw')
415 415 part1=''
416 416 part2=''
417 417 if lu[i-1]=='1.0': part1='000'
418 418 if lu[i-1]=='2.0': part1='001'
419 419 if lu[i-1]=='3.0': part1='010'
420 420 if lu[i-1]=='0.0': part1='011'
421 421 if lu[i-1]=='0.5': part1='100'
422 422 if lu[i-1]=='1.5': part1='101'
423 423 if lu[i-1]=='2.5': part1='110'
424 424 if lu[i-1]=='3.5': part1='111'
425 425 if ld[i-1]=='1.0': part2='000'
426 426 if ld[i-1]=='2.0': part2='001'
427 427 if ld[i-1]=='3.0': part2='010'
428 428 if ld[i-1]=='0.0': part2='011'
429 429 if ld[i-1]=='0.5': part2='100'
430 430 if ld[i-1]=='1.5': part2='101'
431 431 if ld[i-1]=='2.5': part2='110'
432 432 if ld[i-1]=='3.5': part2='111'
433 433 fichero.write(part1+part2+'\n')
434 434 fichero.write('------'+'\n')
435 435 fichero.close()
436 436
437 437 def CreaFormatoFinal2():
438 438 ne=NumeroDeExperimentos(archivo)
439 439
440 440 #nombre01 = file1(archivo,'1')
441 441 nombre02 = file1(archivo,'2')
442 442 fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w')
443 443 fichero.write(nombre02+'\n')
444 444 fichero.write(str(ne)+'\n')
445 445
446 446 for i in range(1,65):
447 447
448 448 if i<10:
449 449 nmod = '0'+str(i)
450 450 else: nmod = str(i)
451 451
452 452 fichero.write("ABS_" + nmod+'\n')
453 453
454 454 for j in range(1,ne+1):
455 455 ruta=CarpetaDeTrabajo+str(j)+'.txt'
456 456 lu=CapturaValoresEnArchivo2(ruta,polarizacion='up')
457 457 ld=CapturaValoresEnArchivo2(ruta,polarizacion='dw')
458 458 part1=''
459 459 part2=''
460 460 if lu[i-1]=='1.0': part1='000'
461 461 if lu[i-1]=='2.0': part1='001'
462 462 if lu[i-1]=='3.0': part1='010'
463 463 if lu[i-1]=='0.0': part1='011'
464 464 if lu[i-1]=='0.5': part1='100'
465 465 if lu[i-1]=='1.5': part1='101'
466 466 if lu[i-1]=='2.5': part1='110'
467 467 if lu[i-1]=='3.5': part1='111'
468 468 if ld[i-1]=='1.0': part2='000'
469 469 if ld[i-1]=='2.0': part2='001'
470 470 if ld[i-1]=='3.0': part2='010'
471 471 if ld[i-1]=='0.0': part2='011'
472 472 if ld[i-1]=='0.5': part2='100'
473 473 if ld[i-1]=='1.5': part2='101'
474 474 if ld[i-1]=='2.5': part2='110'
475 475 if ld[i-1]=='3.5': part2='111'
476 476 fichero.write(part1+part2+'\n')
477 477 fichero.write('------'+'\n')
478 478 fichero.close()
479 479
480 480 def EliminaArchivosEnLaCarpeta():
481 481 ne=NumeroDeExperimentos(archivo)
482 482 for i in range(1,ne+1):
483 483 os.remove(CarpetaDeTrabajo+str(i)+'.txt')
484 484
485 485 CreaFicherosPrevios()
486 486 CreaFormatoFinal2()
487 487 EliminaArchivosEnLaCarpeta()
488 488
489 489 ##########
490 490
491 491 if __name__ == '__main__':
492 492
493 493 filename = "experimento1.abs"
494 494
495 495 absObj = ABSClient()
496 496 absObj.sendFile(filename)
General Comments 0
You need to be logged in to leave comments. Login now