##// END OF EJS Templates
First beam is loaded by default after sending the beam file to the control modules.
First beam is loaded by default after sending the beam file to the control modules.

File last commit:

r165:166
r231:232
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)