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