##// 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
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)