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