client2.py
499 lines
| 18.1 KiB
| text/x-python
|
PythonLexer
r62 | # imports needed for the file convertion | ||
import os | |||
import sys | |||
import time | |||
import numpy as np | |||
r92 | import library2 | ||
r62 | |||
class ABSClient: | |||
r92 | def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000): | ||
r62 | |||
self.ipSource = ipSource | |||
self.ipDestino = ipDestino | |||
self.portDestino = portDestino | |||
self.createObjects() | |||
def createObjects(self): | |||
r92 | self.commObj = library2.TCPComm(self.ipSource, self.ipDestino, self.portDestino) | ||
r62 | |||
def sendFile(self, filename): | |||
#From matriz to control module format | |||
self.FuncionMaestra_GeneraFormatoControlCentral(filename) | |||
FileName = "FormatoControlCentral.txt" | |||
F_Obj = open(FileName,"r") | |||
FileList = F_Obj.readlines() | |||
F_Obj.close() | |||
FileStr = "".join(FileList) | |||
data = FileStr | |||
r92 | |||
self.commObj.open_socket() | |||
# self.commObj.sendData(cmd="SNDF", data=data, id = 117) | |||
self.commObj.sendData2(cmd="SNDF", data=data, ipDestino = self.ipDestino) | |||
# self.commObj.waitData() | |||
self.commObj.waitClient() | |||
r63 | self.commObj.close_socket() | ||
r62 | |||
def changeBeam(self, newBeam): | |||
r92 | |||
self.commObj.open_socket() | |||
# self.commObj.sendData(cmd="CHGB", data=newBeam, id = 117) | |||
self.commObj.sendData2(cmd="CHGB", data=newBeam, ipDestino = self.ipDestino) | |||
# self.commObj.waitData() | |||
self.commObj.waitClient() | |||
r63 | self.commObj.close_socket() | ||
r62 | |||
def __writeFile(self, filename, data): | |||
fobj = open(filename,"w") | |||
fobj.writelines(data) | |||
fobj.close() | |||
def getStatus(self, data): | |||
r92 | |||
self.commObj.open_socket() | |||
# self.commObj.sendData(cmd="ANST", data = data, id = 117) | |||
self.commObj.sendData2(cmd="ANST", data = data, ipDestino = self.ipDestino) | |||
# ipSource, ipDestino, cmd, data = self.commObj.waitData() | |||
ipSource, ipDestino, cmd, data = self.commObj.waitClient() | |||
r63 | self.commObj.close_socket() | ||
r62 | self.__writeFile("report.txt", data) | ||
########## | |||
def FuncionMaestra_GeneraFormatoControlCentral(self,archivo): | |||
""" Funcion que genera un archivo para el control central""" | |||
# CarpetaDeTrabajo='/home/redes/ABS_Control_2012_09_24/Control_Module_v1_Client_09_24/' | |||
CarpetaDeTrabajo = os.getcwd() + '/' | |||
#print CarpetaDeTrabajo | |||
#CarpetaDeTrabajo='/home/redes/workspace/ABS_Client_v2/Debug/' | |||
def lst2string(lst): | |||
string='' | |||
for i in lst: | |||
string=string+i | |||
return string | |||
def string2lst(string): | |||
lst = [] | |||
for i in string: | |||
lst.append(i) | |||
return lst | |||
def file1(string, type): | |||
lst = string2lst(archivo) | |||
fin = -1 | |||
t = len(lst) | |||
for i in np.arange(-1,-t,-1): | |||
if lst[i]=='/': | |||
fin=i | |||
break | |||
if type == '1': | |||
nombre2 = lst[fin+1:] | |||
nombre2[-1]='s' | |||
nombre2 = lst2string(nombre2) | |||
return nombre2 | |||
if type == '2': | |||
nombre2 = lst[fin+1:] | |||
nombre2[-1]='1' | |||
nombre2 = lst2string(nombre2) | |||
return nombre2 | |||
def EliminaSaltoDeLinea(cadena): | |||
i = 0 | |||
for elemento in cadena: | |||
if elemento =='\n' or elemento =='\r': | |||
pass | |||
else: | |||
i=i+1 | |||
return cadena [:i] | |||
def NumeroDeExperimentos(path): | |||
fichero1=open(path,'r') | |||
cont=0 | |||
for cadena in fichero1: | |||
cont=cont+1 | |||
if cont==3: | |||
nexp='' | |||
pos=0 | |||
for elemento in cadena: | |||
pos=pos+1 | |||
if elemento=='=': | |||
nexp=int(cadena[pos:]) | |||
return nexp | |||
fichero1.close() | |||
def Paridad(numero): | |||
if numero%2==0: return 'par' | |||
elif numero%2==1: return 'impar' | |||
def EvaluaCadena(cadena): | |||
if len(cadena)>35: | |||
if cadena[-1]=='$': | |||
return cadena[-35:-2] | |||
elif cadena[-1]==']': | |||
return cadena[-34:-1] | |||
else: | |||
return None | |||
def GuardaEnLista(path): | |||
fichero=open(path,'r') | |||
lista=[] | |||
for cadena in fichero: | |||
cadena = EliminaSaltoDeLinea(cadena) | |||
cadena = EvaluaCadena(cadena) | |||
if cadena != None: | |||
lista.append(cadena) | |||
fichero.close() | |||
return lista | |||
def CreaFicherosPrevios(): | |||
vector = GuardaEnLista(archivo) | |||
for i in range(1,NumeroDeExperimentos(archivo)+1): | |||
fichero =open(CarpetaDeTrabajo+str(i)+'.txt','w') | |||
for j in range(0,16): | |||
fichero.write(vector[j+16*(i-1)]+'\n') | |||
fichero.close() | |||
def CapturaValoresEnArchivo(path,polarizacion='up'): | |||
fichero =open(path,'r') | |||
cnt=0 | |||
lstup=[] | |||
lstdw=[] | |||
for cadena in fichero: | |||
cnt=cnt+1 | |||
if cnt==5: | |||
su01=cadena[17:20] | |||
su02=cadena[21:24] | |||
su03=cadena[25:28] | |||
su04=cadena[29:32] | |||
if cnt==6: | |||
su05=cadena[17:20] | |||
su06=cadena[21:24] | |||
su07=cadena[25:28] | |||
su08=cadena[29:32] | |||
if cnt==7: | |||
su09=cadena[17:20] | |||
su10=cadena[21:24] | |||
su11=cadena[25:28] | |||
su12=cadena[29:32] | |||
if cnt==8: | |||
su13=cadena[17:20] | |||
su14=cadena[21:24] | |||
su15=cadena[25:28] | |||
su16=cadena[29:32] | |||
if cnt==13: | |||
sd01=cadena[17:20] | |||
sd02=cadena[21:24] | |||
sd03=cadena[25:28] | |||
sd04=cadena[29:32] | |||
if cnt==14: | |||
sd05=cadena[17:20] | |||
sd06=cadena[21:24] | |||
sd07=cadena[25:28] | |||
sd08=cadena[29:32] | |||
if cnt==15: | |||
sd09=cadena[17:20] | |||
sd10=cadena[21:24] | |||
sd11=cadena[25:28] | |||
sd12=cadena[29:32] | |||
if cnt==16: | |||
sd13=cadena[17:20] | |||
sd14=cadena[21:24] | |||
sd15=cadena[25:28] | |||
sd16=cadena[29:32] | |||
lstup=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16] | |||
lstdw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16] | |||
if polarizacion=='up': | |||
return lstup | |||
elif polarizacion=='dw': | |||
return lstdw | |||
fichero.close() | |||
def CapturaValoresEnArchivo2(path,polarizacion='up'): | |||
fichero =open(path,'r') | |||
cnt=0 | |||
lstup=[] | |||
lstdw=[] | |||
for cadena in fichero: | |||
cnt=cnt+1 | |||
if cnt==1: | |||
nu01=cadena[1:4] | |||
nu02=cadena[5:8] | |||
nu03=cadena[9:12] | |||
nu04=cadena[13:16] | |||
eu01=cadena[17:20] | |||
eu02=cadena[21:24] | |||
eu03=cadena[25:28] | |||
eu04=cadena[29:32] | |||
if cnt==2: | |||
nu05=cadena[1:4] | |||
nu06=cadena[5:8] | |||
nu07=cadena[9:12] | |||
nu08=cadena[13:16] | |||
eu05=cadena[17:20] | |||
eu06=cadena[21:24] | |||
eu07=cadena[25:28] | |||
eu08=cadena[29:32] | |||
if cnt==3: | |||
nu09=cadena[1:4] | |||
nu10=cadena[5:8] | |||
nu11=cadena[9:12] | |||
nu12=cadena[13:16] | |||
eu09=cadena[17:20] | |||
eu10=cadena[21:24] | |||
eu11=cadena[25:28] | |||
eu12=cadena[29:32] | |||
if cnt==4: | |||
nu13=cadena[1:4] | |||
nu14=cadena[5:8] | |||
nu15=cadena[9:12] | |||
nu16=cadena[13:16] | |||
eu13=cadena[17:20] | |||
eu14=cadena[21:24] | |||
eu15=cadena[25:28] | |||
eu16=cadena[29:32] | |||
if cnt==5: | |||
wu01=cadena[1:4] | |||
wu02=cadena[5:8] | |||
wu03=cadena[9:12] | |||
wu04=cadena[13:16] | |||
su01=cadena[17:20] | |||
su02=cadena[21:24] | |||
su03=cadena[25:28] | |||
su04=cadena[29:32] | |||
if cnt==6: | |||
wu05=cadena[1:4] | |||
wu06=cadena[5:8] | |||
wu07=cadena[9:12] | |||
wu08=cadena[13:16] | |||
su05=cadena[17:20] | |||
su06=cadena[21:24] | |||
su07=cadena[25:28] | |||
su08=cadena[29:32] | |||
if cnt==7: | |||
wu09=cadena[1:4] | |||
wu10=cadena[5:8] | |||
wu11=cadena[9:12] | |||
wu12=cadena[13:16] | |||
su09=cadena[17:20] | |||
su10=cadena[21:24] | |||
su11=cadena[25:28] | |||
su12=cadena[29:32] | |||
if cnt==8: | |||
wu13=cadena[1:4] | |||
wu14=cadena[5:8] | |||
wu15=cadena[9:12] | |||
wu16=cadena[13:16] | |||
su13=cadena[17:20] | |||
su14=cadena[21:24] | |||
su15=cadena[25:28] | |||
su16=cadena[29:32] | |||
if cnt==9: | |||
nd01=cadena[1:4] | |||
nd02=cadena[5:8] | |||
nd03=cadena[9:12] | |||
nd04=cadena[13:16] | |||
ed01=cadena[17:20] | |||
ed02=cadena[21:24] | |||
ed03=cadena[25:28] | |||
ed04=cadena[29:32] | |||
if cnt==10: | |||
nd05=cadena[1:4] | |||
nd06=cadena[5:8] | |||
nd07=cadena[9:12] | |||
nd08=cadena[13:16] | |||
ed05=cadena[17:20] | |||
ed06=cadena[21:24] | |||
ed07=cadena[25:28] | |||
ed08=cadena[29:32] | |||
if cnt==11: | |||
nd09=cadena[1:4] | |||
nd10=cadena[5:8] | |||
nd11=cadena[9:12] | |||
nd12=cadena[13:16] | |||
ed09=cadena[17:20] | |||
ed10=cadena[21:24] | |||
ed11=cadena[25:28] | |||
ed12=cadena[29:32] | |||
if cnt==12: | |||
nd13=cadena[1:4] | |||
nd14=cadena[5:8] | |||
nd15=cadena[9:12] | |||
nd16=cadena[13:16] | |||
ed13=cadena[17:20] | |||
ed14=cadena[21:24] | |||
ed15=cadena[25:28] | |||
ed16=cadena[29:32] | |||
if cnt==13: | |||
wd01=cadena[1:4] | |||
wd02=cadena[5:8] | |||
wd03=cadena[9:12] | |||
wd04=cadena[13:16] | |||
sd01=cadena[17:20] | |||
sd02=cadena[21:24] | |||
sd03=cadena[25:28] | |||
sd04=cadena[29:32] | |||
if cnt==14: | |||
wd05=cadena[1:4] | |||
wd06=cadena[5:8] | |||
wd07=cadena[9:12] | |||
wd08=cadena[13:16] | |||
sd05=cadena[17:20] | |||
sd06=cadena[21:24] | |||
sd07=cadena[25:28] | |||
sd08=cadena[29:32] | |||
if cnt==15: | |||
wd09=cadena[1:4] | |||
wd10=cadena[5:8] | |||
wd11=cadena[9:12] | |||
wd12=cadena[13:16] | |||
sd09=cadena[17:20] | |||
sd10=cadena[21:24] | |||
sd11=cadena[25:28] | |||
sd12=cadena[29:32] | |||
if cnt==16: | |||
wd13=cadena[1:4] | |||
wd14=cadena[5:8] | |||
wd15=cadena[9:12] | |||
wd16=cadena[13:16] | |||
sd13=cadena[17:20] | |||
sd14=cadena[21:24] | |||
sd15=cadena[25:28] | |||
sd16=cadena[29:32] | |||
lst_n_up=[nu01,nu02,nu03,nu04,nu05,nu06,nu07,nu08,nu09,nu10,nu11,nu12,nu13,nu14,nu15,nu16] | |||
lst_n_dw=[nd01,nd02,nd03,nd04,nd05,nd06,nd07,nd08,nd09,nd10,nd11,nd12,nd13,nd14,nd15,nd16] | |||
lst_s_up=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16] | |||
lst_s_dw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16] | |||
lst_w_up=[wu01,wu02,wu03,wu04,wu05,wu06,wu07,wu08,wu09,wu10,wu11,wu12,wu13,wu14,wu15,wu16] | |||
lst_w_dw=[wd01,wd02,wd03,wd04,wd05,wd06,wd07,wd08,wd09,wd10,wd11,wd12,wd13,wd14,wd15,wd16] | |||
lst_e_up=[eu01,eu02,eu03,eu04,eu05,eu06,eu07,eu08,eu09,eu10,eu11,eu12,eu13,eu14,eu15,eu16] | |||
lst_e_dw=[ed01,ed02,ed03,ed04,ed05,ed06,ed07,ed08,ed09,ed10,ed11,ed12,ed13,ed14,ed15,ed16] | |||
lstup = lst_s_up + lst_w_up + lst_n_up + lst_e_up | |||
lstdw = lst_s_dw + lst_w_dw + lst_n_up + lst_e_up | |||
if polarizacion=='up': | |||
return lstup | |||
elif polarizacion=='dw': | |||
return lstdw | |||
fichero.close() | |||
def CreaFormatoFinal(): | |||
ne=NumeroDeExperimentos(archivo) | |||
#nombre01 = file1(archivo,'1') | |||
nombre02 = file1(archivo,'2') | |||
fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w') | |||
fichero.write(nombre02+'\n') | |||
fichero.write(str(ne)+'\n') | |||
for i in range(1,17): | |||
if i<10: | |||
nmod = '0'+str(i) | |||
else: nmod = str(i) | |||
fichero.write('S'+nmod+'\n') | |||
for j in range(1,ne+1): | |||
ruta=CarpetaDeTrabajo+str(j)+'.txt' | |||
lu=CapturaValoresEnArchivo(ruta,polarizacion='up') | |||
ld=CapturaValoresEnArchivo(ruta,polarizacion='dw') | |||
part1='' | |||
part2='' | |||
if lu[i-1]=='1.0': part1='000' | |||
if lu[i-1]=='2.0': part1='001' | |||
if lu[i-1]=='3.0': part1='010' | |||
if lu[i-1]=='0.0': part1='011' | |||
if lu[i-1]=='0.5': part1='100' | |||
if lu[i-1]=='1.5': part1='101' | |||
if lu[i-1]=='2.5': part1='110' | |||
if lu[i-1]=='3.5': part1='111' | |||
if ld[i-1]=='1.0': part2='000' | |||
if ld[i-1]=='2.0': part2='001' | |||
if ld[i-1]=='3.0': part2='010' | |||
if ld[i-1]=='0.0': part2='011' | |||
if ld[i-1]=='0.5': part2='100' | |||
if ld[i-1]=='1.5': part2='101' | |||
if ld[i-1]=='2.5': part2='110' | |||
if ld[i-1]=='3.5': part2='111' | |||
fichero.write(part1+part2+'\n') | |||
fichero.write('------'+'\n') | |||
fichero.close() | |||
def CreaFormatoFinal2(): | |||
ne=NumeroDeExperimentos(archivo) | |||
#nombre01 = file1(archivo,'1') | |||
nombre02 = file1(archivo,'2') | |||
fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w') | |||
fichero.write(nombre02+'\n') | |||
fichero.write(str(ne)+'\n') | |||
for i in range(1,65): | |||
if i<10: | |||
nmod = '0'+str(i) | |||
else: nmod = str(i) | |||
fichero.write("ABS_" + nmod+'\n') | |||
for j in range(1,ne+1): | |||
ruta=CarpetaDeTrabajo+str(j)+'.txt' | |||
lu=CapturaValoresEnArchivo2(ruta,polarizacion='up') | |||
ld=CapturaValoresEnArchivo2(ruta,polarizacion='dw') | |||
part1='' | |||
part2='' | |||
if lu[i-1]=='1.0': part1='000' | |||
if lu[i-1]=='2.0': part1='001' | |||
if lu[i-1]=='3.0': part1='010' | |||
if lu[i-1]=='0.0': part1='011' | |||
if lu[i-1]=='0.5': part1='100' | |||
if lu[i-1]=='1.5': part1='101' | |||
if lu[i-1]=='2.5': part1='110' | |||
if lu[i-1]=='3.5': part1='111' | |||
if ld[i-1]=='1.0': part2='000' | |||
if ld[i-1]=='2.0': part2='001' | |||
if ld[i-1]=='3.0': part2='010' | |||
if ld[i-1]=='0.0': part2='011' | |||
if ld[i-1]=='0.5': part2='100' | |||
if ld[i-1]=='1.5': part2='101' | |||
if ld[i-1]=='2.5': part2='110' | |||
if ld[i-1]=='3.5': part2='111' | |||
fichero.write(part1+part2+'\n') | |||
fichero.write('------'+'\n') | |||
fichero.close() | |||
def EliminaArchivosEnLaCarpeta(): | |||
ne=NumeroDeExperimentos(archivo) | |||
for i in range(1,ne+1): | |||
os.remove(CarpetaDeTrabajo+str(i)+'.txt') | |||
CreaFicherosPrevios() | |||
CreaFormatoFinal2() | |||
EliminaArchivosEnLaCarpeta() | |||
########## | |||
if __name__ == '__main__': | |||
filename = "experimento1.abs" | |||
absObj = ABSClient() | |||
r92 | # absObj.sendFile(filename) | ||
r62 | # absObj.changeBeam("0") | ||
r92 | absObj.changeBeam("1") | ||
r62 | # absObj.changeBeam("2") | ||
# absObj.changeBeam("3") | |||
# absObj.changeBeam("4") | |||
# absObj.changeBeam("5") | |||
# absObj.changeBeam("6") | |||
# absObj.changeBeam("7") | |||
# absObj.getStatus(5) |