##// 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
client.py
487 lines | 17.5 KiB | text/x-python | PythonLexer
Modificaciones a scripts python de cliente y servidor UDP
r27 # imports needed for the file convertion
import os
import sys
import time
import numpy as np
murco
-Se organizó la estructura de directorios....
r19 import library
class ABSClient:
r58 def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000):
murco
-Se organizó la estructura de directorios....
r19
self.ipSource = ipSource
self.ipDestino = ipDestino
self.portDestino = portDestino
self.createObjects()
def createObjects(self):
self.commObj = library.UDPComm(self.ipSource, self.ipDestino, self.portDestino)
Modificaciones a scripts python de cliente y servidor UDP
r27
murco
-Se organizó la estructura de directorios....
r19 def sendFile(self, filename):
Modificaciones a scripts python de cliente y servidor UDP
r27 #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
murco
-Se organizó la estructura de directorios....
r19
r46 self.commObj.sendData(cmd="SNDF", data=data)
self.commObj.waitData()
murco
-Se organizó la estructura de directorios....
r19
def changeBeam(self, newBeam):
r46 self.commObj.sendData(cmd="CHGB", data=newBeam)
self.commObj.waitData()
murco
-Se organizó la estructura de directorios....
r19
r54 def __writeFile(self, filename, data):
fobj = open(filename,"w")
fobj.writelines(data)
fobj.close()
Implementacion funcion generacion de estado de modulos de control hacia control central
r43 def getStatus(self, data):
murco
-Se organizó la estructura de directorios....
r19
r46 self.commObj.sendData(cmd="ANST", data = data)
r54 ipSource, ipDestino, cmd, data = self.commObj.waitData()
self.__writeFile("report.txt", data)
Modificaciones a scripts python de cliente y servidor UDP
r27
##########
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
Cambio de archivo ab1 a abs
r39 if type == '1':
nombre2 = lst[fin+1:]
nombre2[-1]='s'
nombre2 = lst2string(nombre2)
return nombre2
Modificaciones a scripts python de cliente y servidor UDP
r27 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()
r49
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]
Modificaciones a scripts python de cliente y servidor UDP
r27
r49 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()
Modificaciones a scripts python de cliente y servidor UDP
r27 def CreaFormatoFinal():
ne=NumeroDeExperimentos(archivo)
#nombre01 = file1(archivo,'1')
Implementacion funcion generacion de estado de modulos de control hacia control central
r43 nombre02 = file1(archivo,'2')
Modificaciones a scripts python de cliente y servidor UDP
r27 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()
r49 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()
Modificaciones a scripts python de cliente y servidor UDP
r27 def EliminaArchivosEnLaCarpeta():
ne=NumeroDeExperimentos(archivo)
for i in range(1,ne+1):
os.remove(CarpetaDeTrabajo+str(i)+'.txt')
CreaFicherosPrevios()
r49 CreaFormatoFinal2()
Modificaciones a scripts python de cliente y servidor UDP
r27 EliminaArchivosEnLaCarpeta()
##########
Actualizacion del directorio
r25
if __name__ == '__main__':
Modificaciones a scripts python de cliente y servidor UDP
r27 filename = "experimento1.abs"
Actualizacion del directorio
r25
absObj = ABSClient()
r58 absObj.sendFile(filename)
Cambio de archivo ab1 a abs
r39 # absObj.changeBeam("0")
Implementacion funcion generacion de estado de modulos de control hacia control central
r43 # absObj.changeBeam("1")
r48 # absObj.changeBeam("2")
Implementacion funcion generacion de estado de modulos de control hacia control central
r43 # absObj.changeBeam("3")
r58 # absObj.changeBeam("4")
Implementacion funcion generacion de estado de modulos de control hacia control central
r43 # absObj.changeBeam("5")
# absObj.changeBeam("6")
# absObj.changeBeam("7")
r51 # absObj.getStatus(5)