##// END OF EJS Templates
Client changes to return answer to the web page.
Client changes to return answer to the web page.

File last commit:

r165:166
r168:169
Show More
client2.py
499 lines | 18.1 KiB | text/x-python | PythonLexer
# imports needed for the file convertion
import os
import sys
import time
import numpy as np
import library2
class ABSClient:
def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000):
self.ipSource = ipSource
self.ipDestino = ipDestino
self.portDestino = portDestino
self.createObjects()
def createObjects(self):
self.commObj = library2.TCPComm(self.ipSource, self.ipDestino, self.portDestino)
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
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()
self.commObj.close_socket()
def changeBeam(self, newBeam):
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()
self.commObj.close_socket()
def __writeFile(self, filename, data):
fobj = open(filename,"w")
fobj.writelines(data)
fobj.close()
def getStatus(self, data):
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()
self.commObj.close_socket()
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()
# absObj.sendFile(filename)
# absObj.changeBeam("0")
absObj.changeBeam("1")
# absObj.changeBeam("2")
# absObj.changeBeam("3")
# absObj.changeBeam("4")
# absObj.changeBeam("5")
# absObj.changeBeam("6")
# absObj.changeBeam("7")
# absObj.getStatus(5)