##// END OF EJS Templates
imanay -
r48:49
parent child
Show More
@@ -1,268 +1,268
1 # imports needed for the file convertion
1 # imports needed for the file convertion
2 import os
2 import os
3 import sys
3 import sys
4 import time
4 import time
5 import numpy as np
5 import numpy as np
6
6
7 import library
7 import library
8
8
9 class ABSClient:
9 class ABSClient:
10
10
11 def __init__(self,ipSource="localhost", ipDestino="192.168.1.255", portDestino=7000):
11 def __init__(self,ipSource="localhost", ipDestino="192.168.1.255", portDestino=7000):
12
12
13 self.ipSource = ipSource
13 self.ipSource = ipSource
14 self.ipDestino = ipDestino
14 self.ipDestino = ipDestino
15 self.portDestino = portDestino
15 self.portDestino = portDestino
16
16
17 self.createObjects()
17 self.createObjects()
18
18
19 def createObjects(self):
19 def createObjects(self):
20
20
21 self.commObj = library.UDPComm(self.ipSource, self.ipDestino, self.portDestino)
21 self.commObj = library.UDPComm(self.ipSource, self.ipDestino, self.portDestino)
22
22
23 def sendFile(self, filename):
23 def sendFile(self, filename):
24
24
25 #From matriz to control module format
25 #From matriz to control module format
26 self.FuncionMaestra_GeneraFormatoControlCentral(filename)
26 self.FuncionMaestra_GeneraFormatoControlCentral(filename)
27 FileName = "FormatoControlCentral.txt"
27 FileName = "FormatoControlCentral.txt"
28 F_Obj = open(FileName,"r")
28 F_Obj = open(FileName,"r")
29 FileList = F_Obj.readlines()
29 FileList = F_Obj.readlines()
30 F_Obj.close()
30 F_Obj.close()
31 FileStr = "".join(FileList)
31 FileStr = "".join(FileList)
32 data = FileStr
32 data = FileStr
33
33
34 self.commObj.sendData(cmd="SNDF", data=data)
34 self.commObj.sendData(cmd="SNDF", data=data)
35 self.commObj.waitData()
35 self.commObj.waitData()
36
36
37 def changeBeam(self, newBeam):
37 def changeBeam(self, newBeam):
38
38
39 self.commObj.sendData(cmd="CHGB", data=newBeam)
39 self.commObj.sendData(cmd="CHGB", data=newBeam)
40 self.commObj.waitData()
40 self.commObj.waitData()
41
41
42 def getStatus(self, data):
42 def getStatus(self, data):
43
43
44 self.commObj.sendData(cmd="ANST", data = data)
44 self.commObj.sendData(cmd="ANST", data = data)
45 self.commObj.waitData2()
45 self.commObj.waitData2()
46
46
47 ##########
47 ##########
48
48
49 def FuncionMaestra_GeneraFormatoControlCentral(self,archivo):
49 def FuncionMaestra_GeneraFormatoControlCentral(self,archivo):
50 """ Funcion que genera un archivo para el control central"""
50 """ Funcion que genera un archivo para el control central"""
51
51
52 # CarpetaDeTrabajo='/home/redes/ABS_Control_2012_09_24/Control_Module_v1_Client_09_24/'
52 # CarpetaDeTrabajo='/home/redes/ABS_Control_2012_09_24/Control_Module_v1_Client_09_24/'
53 CarpetaDeTrabajo = os.getcwd() + '/'
53 CarpetaDeTrabajo = os.getcwd() + '/'
54 #print CarpetaDeTrabajo
54 #print CarpetaDeTrabajo
55 #CarpetaDeTrabajo='/home/redes/workspace/ABS_Client_v2/Debug/'
55 #CarpetaDeTrabajo='/home/redes/workspace/ABS_Client_v2/Debug/'
56
56
57 def lst2string(lst):
57 def lst2string(lst):
58 string=''
58 string=''
59 for i in lst:
59 for i in lst:
60 string=string+i
60 string=string+i
61 return string
61 return string
62
62
63 def string2lst(string):
63 def string2lst(string):
64 lst = []
64 lst = []
65 for i in string:
65 for i in string:
66 lst.append(i)
66 lst.append(i)
67 return lst
67 return lst
68
68
69
69
70 def file1(string, type):
70 def file1(string, type):
71 lst = string2lst(archivo)
71 lst = string2lst(archivo)
72 fin = -1
72 fin = -1
73 t = len(lst)
73 t = len(lst)
74 for i in np.arange(-1,-t,-1):
74 for i in np.arange(-1,-t,-1):
75 if lst[i]=='/':
75 if lst[i]=='/':
76 fin=i
76 fin=i
77 break
77 break
78 if type == '1':
78 if type == '1':
79 nombre2 = lst[fin+1:]
79 nombre2 = lst[fin+1:]
80 nombre2[-1]='s'
80 nombre2[-1]='s'
81 nombre2 = lst2string(nombre2)
81 nombre2 = lst2string(nombre2)
82 return nombre2
82 return nombre2
83 if type == '2':
83 if type == '2':
84 nombre2 = lst[fin+1:]
84 nombre2 = lst[fin+1:]
85 nombre2[-1]='1'
85 nombre2[-1]='1'
86 nombre2 = lst2string(nombre2)
86 nombre2 = lst2string(nombre2)
87 return nombre2
87 return nombre2
88
88
89
89
90 def EliminaSaltoDeLinea(cadena):
90 def EliminaSaltoDeLinea(cadena):
91 i = 0
91 i = 0
92 for elemento in cadena:
92 for elemento in cadena:
93 if elemento =='\n' or elemento =='\r':
93 if elemento =='\n' or elemento =='\r':
94 pass
94 pass
95 else:
95 else:
96 i=i+1
96 i=i+1
97 return cadena [:i]
97 return cadena [:i]
98
98
99 def NumeroDeExperimentos(path):
99 def NumeroDeExperimentos(path):
100 fichero1=open(path,'r')
100 fichero1=open(path,'r')
101 cont=0
101 cont=0
102 for cadena in fichero1:
102 for cadena in fichero1:
103 cont=cont+1
103 cont=cont+1
104 if cont==3:
104 if cont==3:
105 nexp=''
105 nexp=''
106 pos=0
106 pos=0
107 for elemento in cadena:
107 for elemento in cadena:
108 pos=pos+1
108 pos=pos+1
109 if elemento=='=':
109 if elemento=='=':
110 nexp=int(cadena[pos:])
110 nexp=int(cadena[pos:])
111 return nexp
111 return nexp
112 fichero1.close()
112 fichero1.close()
113
113
114 def Paridad(numero):
114 def Paridad(numero):
115 if numero%2==0: return 'par'
115 if numero%2==0: return 'par'
116 elif numero%2==1: return 'impar'
116 elif numero%2==1: return 'impar'
117
117
118 def EvaluaCadena(cadena):
118 def EvaluaCadena(cadena):
119 if len(cadena)>35:
119 if len(cadena)>35:
120 if cadena[-1]=='$':
120 if cadena[-1]=='$':
121 return cadena[-35:-2]
121 return cadena[-35:-2]
122 elif cadena[-1]==']':
122 elif cadena[-1]==']':
123 return cadena[-34:-1]
123 return cadena[-34:-1]
124 else:
124 else:
125 return None
125 return None
126
126
127 def GuardaEnLista(path):
127 def GuardaEnLista(path):
128 fichero=open(path,'r')
128 fichero=open(path,'r')
129 lista=[]
129 lista=[]
130 for cadena in fichero:
130 for cadena in fichero:
131 cadena = EliminaSaltoDeLinea(cadena)
131 cadena = EliminaSaltoDeLinea(cadena)
132 cadena = EvaluaCadena(cadena)
132 cadena = EvaluaCadena(cadena)
133 if cadena != None:
133 if cadena != None:
134 lista.append(cadena)
134 lista.append(cadena)
135 fichero.close()
135 fichero.close()
136 return lista
136 return lista
137
137
138 def CreaFicherosPrevios():
138 def CreaFicherosPrevios():
139 vector = GuardaEnLista(archivo)
139 vector = GuardaEnLista(archivo)
140 for i in range(1,NumeroDeExperimentos(archivo)+1):
140 for i in range(1,NumeroDeExperimentos(archivo)+1):
141 fichero =open(CarpetaDeTrabajo+str(i)+'.txt','w')
141 fichero =open(CarpetaDeTrabajo+str(i)+'.txt','w')
142 for j in range(0,16):
142 for j in range(0,16):
143 fichero.write(vector[j+16*(i-1)]+'\n')
143 fichero.write(vector[j+16*(i-1)]+'\n')
144 fichero.close()
144 fichero.close()
145
145
146 def CapturaValoresEnArchivo(path,polarizacion='up'):
146 def CapturaValoresEnArchivo(path,polarizacion='up'):
147 fichero =open(path,'r')
147 fichero =open(path,'r')
148 cnt=0
148 cnt=0
149 lstup=[]
149 lstup=[]
150 lstdw=[]
150 lstdw=[]
151 for cadena in fichero:
151 for cadena in fichero:
152 cnt=cnt+1
152 cnt=cnt+1
153 if cnt==5:
153 if cnt==5:
154 su01=cadena[17:20]
154 su01=cadena[17:20]
155 su02=cadena[21:24]
155 su02=cadena[21:24]
156 su03=cadena[25:28]
156 su03=cadena[25:28]
157 su04=cadena[29:32]
157 su04=cadena[29:32]
158 if cnt==6:
158 if cnt==6:
159 su05=cadena[17:20]
159 su05=cadena[17:20]
160 su06=cadena[21:24]
160 su06=cadena[21:24]
161 su07=cadena[25:28]
161 su07=cadena[25:28]
162 su08=cadena[29:32]
162 su08=cadena[29:32]
163 if cnt==7:
163 if cnt==7:
164 su09=cadena[17:20]
164 su09=cadena[17:20]
165 su10=cadena[21:24]
165 su10=cadena[21:24]
166 su11=cadena[25:28]
166 su11=cadena[25:28]
167 su12=cadena[29:32]
167 su12=cadena[29:32]
168 if cnt==8:
168 if cnt==8:
169 su13=cadena[17:20]
169 su13=cadena[17:20]
170 su14=cadena[21:24]
170 su14=cadena[21:24]
171 su15=cadena[25:28]
171 su15=cadena[25:28]
172 su16=cadena[29:32]
172 su16=cadena[29:32]
173 if cnt==13:
173 if cnt==13:
174 sd01=cadena[17:20]
174 sd01=cadena[17:20]
175 sd02=cadena[21:24]
175 sd02=cadena[21:24]
176 sd03=cadena[25:28]
176 sd03=cadena[25:28]
177 sd04=cadena[29:32]
177 sd04=cadena[29:32]
178 if cnt==14:
178 if cnt==14:
179 sd05=cadena[17:20]
179 sd05=cadena[17:20]
180 sd06=cadena[21:24]
180 sd06=cadena[21:24]
181 sd07=cadena[25:28]
181 sd07=cadena[25:28]
182 sd08=cadena[29:32]
182 sd08=cadena[29:32]
183 if cnt==15:
183 if cnt==15:
184 sd09=cadena[17:20]
184 sd09=cadena[17:20]
185 sd10=cadena[21:24]
185 sd10=cadena[21:24]
186 sd11=cadena[25:28]
186 sd11=cadena[25:28]
187 sd12=cadena[29:32]
187 sd12=cadena[29:32]
188 if cnt==16:
188 if cnt==16:
189 sd13=cadena[17:20]
189 sd13=cadena[17:20]
190 sd14=cadena[21:24]
190 sd14=cadena[21:24]
191 sd15=cadena[25:28]
191 sd15=cadena[25:28]
192 sd16=cadena[29:32]
192 sd16=cadena[29:32]
193 lstup=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16]
193 lstup=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16]
194 lstdw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16]
194 lstdw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16]
195 if polarizacion=='up':
195 if polarizacion=='up':
196 return lstup
196 return lstup
197 elif polarizacion=='dw':
197 elif polarizacion=='dw':
198 return lstdw
198 return lstdw
199 fichero.close()
199 fichero.close()
200
200
201 def CreaFormatoFinal():
201 def CreaFormatoFinal():
202 ne=NumeroDeExperimentos(archivo)
202 ne=NumeroDeExperimentos(archivo)
203
203
204 #nombre01 = file1(archivo,'1')
204 #nombre01 = file1(archivo,'1')
205 nombre02 = file1(archivo,'2')
205 nombre02 = file1(archivo,'2')
206 fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w')
206 fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w')
207 fichero.write(nombre02+'\n')
207 fichero.write(nombre02+'\n')
208 fichero.write(str(ne)+'\n')
208 fichero.write(str(ne)+'\n')
209 for i in range(1,17):
209 for i in range(1,17):
210
210
211 if i<10:
211 if i<10:
212 nmod = '0'+str(i)
212 nmod = '0'+str(i)
213 else: nmod = str(i)
213 else: nmod = str(i)
214
214
215
215
216 fichero.write('S'+nmod+'\n')
216 fichero.write('S'+nmod+'\n')
217 for j in range(1,ne+1):
217 for j in range(1,ne+1):
218 ruta=CarpetaDeTrabajo+str(j)+'.txt'
218 ruta=CarpetaDeTrabajo+str(j)+'.txt'
219 lu=CapturaValoresEnArchivo(ruta,polarizacion='up')
219 lu=CapturaValoresEnArchivo(ruta,polarizacion='up')
220 ld=CapturaValoresEnArchivo(ruta,polarizacion='dw')
220 ld=CapturaValoresEnArchivo(ruta,polarizacion='dw')
221 part1=''
221 part1=''
222 part2=''
222 part2=''
223 if lu[i-1]=='1.0': part1='000'
223 if lu[i-1]=='1.0': part1='000'
224 if lu[i-1]=='2.0': part1='001'
224 if lu[i-1]=='2.0': part1='001'
225 if lu[i-1]=='3.0': part1='010'
225 if lu[i-1]=='3.0': part1='010'
226 if lu[i-1]=='0.0': part1='011'
226 if lu[i-1]=='0.0': part1='011'
227 if lu[i-1]=='0.5': part1='100'
227 if lu[i-1]=='0.5': part1='100'
228 if lu[i-1]=='1.5': part1='101'
228 if lu[i-1]=='1.5': part1='101'
229 if lu[i-1]=='2.5': part1='110'
229 if lu[i-1]=='2.5': part1='110'
230 if lu[i-1]=='3.5': part1='111'
230 if lu[i-1]=='3.5': part1='111'
231 if ld[i-1]=='1.0': part2='000'
231 if ld[i-1]=='1.0': part2='000'
232 if ld[i-1]=='2.0': part2='001'
232 if ld[i-1]=='2.0': part2='001'
233 if ld[i-1]=='3.0': part2='010'
233 if ld[i-1]=='3.0': part2='010'
234 if ld[i-1]=='0.0': part2='011'
234 if ld[i-1]=='0.0': part2='011'
235 if ld[i-1]=='0.5': part2='100'
235 if ld[i-1]=='0.5': part2='100'
236 if ld[i-1]=='1.5': part2='101'
236 if ld[i-1]=='1.5': part2='101'
237 if ld[i-1]=='2.5': part2='110'
237 if ld[i-1]=='2.5': part2='110'
238 if ld[i-1]=='3.5': part2='111'
238 if ld[i-1]=='3.5': part2='111'
239 fichero.write(part1+part2+'\n')
239 fichero.write(part1+part2+'\n')
240 fichero.write('------'+'\n')
240 fichero.write('------'+'\n')
241 fichero.close()
241 fichero.close()
242
242
243 def EliminaArchivosEnLaCarpeta():
243 def EliminaArchivosEnLaCarpeta():
244 ne=NumeroDeExperimentos(archivo)
244 ne=NumeroDeExperimentos(archivo)
245 for i in range(1,ne+1):
245 for i in range(1,ne+1):
246 os.remove(CarpetaDeTrabajo+str(i)+'.txt')
246 os.remove(CarpetaDeTrabajo+str(i)+'.txt')
247
247
248 CreaFicherosPrevios()
248 CreaFicherosPrevios()
249 CreaFormatoFinal()
249 CreaFormatoFinal()
250 EliminaArchivosEnLaCarpeta()
250 EliminaArchivosEnLaCarpeta()
251
251
252 ##########
252 ##########
253
253
254 if __name__ == '__main__':
254 if __name__ == '__main__':
255
255
256 filename = "experimento1.abs"
256 filename = "experimento1.abs"
257
257
258 absObj = ABSClient()
258 absObj = ABSClient()
259 # absObj.sendFile(filename)
259 absObj.sendFile(filename)
260 # absObj.changeBeam("0")
260 # absObj.changeBeam("0")
261 # absObj.changeBeam("1")
261 # absObj.changeBeam("1")
262 absObj.changeBeam("2")
262 # absObj.changeBeam("2")
263 # absObj.changeBeam("3")
263 # absObj.changeBeam("3")
264 # absObj.changeBeam("4")
264 # absObj.changeBeam("4")
265 # absObj.changeBeam("5")
265 # absObj.changeBeam("5")
266 # absObj.changeBeam("6")
266 # absObj.changeBeam("6")
267 # absObj.changeBeam("7")
267 # absObj.changeBeam("7")
268 # absObj.getStatus(5) No newline at end of file
268 # absObj.getStatus(5)
General Comments 0
You need to be logged in to leave comments. Login now