##// END OF EJS Templates
Implementacion funcion generacion de estado de modulos de control hacia control central
imanay -
r43:44
parent child
Show More
@@ -1,259 +1,265
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 def getStatus(self):
41
42 self.commObj.sendTxRxCommand(cmd="ANST", data="ABS")
40 def getStatus(self, data):
41
42 self.commObj.sendTxRxCommand(cmd="ANST", data = data)
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 75 if type == '1':
76 76 nombre2 = lst[fin+1:]
77 77 nombre2[-1]='s'
78 78 nombre2 = lst2string(nombre2)
79 79 return nombre2
80 80 if type == '2':
81 81 nombre2 = lst[fin+1:]
82 82 nombre2[-1]='1'
83 83 nombre2 = lst2string(nombre2)
84 84 return nombre2
85 85
86 86
87 87 def EliminaSaltoDeLinea(cadena):
88 88 i = 0
89 89 for elemento in cadena:
90 90 if elemento =='\n' or elemento =='\r':
91 91 pass
92 92 else:
93 93 i=i+1
94 94 return cadena [:i]
95 95
96 96 def NumeroDeExperimentos(path):
97 97 fichero1=open(path,'r')
98 98 cont=0
99 99 for cadena in fichero1:
100 100 cont=cont+1
101 101 if cont==3:
102 102 nexp=''
103 103 pos=0
104 104 for elemento in cadena:
105 105 pos=pos+1
106 106 if elemento=='=':
107 107 nexp=int(cadena[pos:])
108 108 return nexp
109 109 fichero1.close()
110 110
111 111 def Paridad(numero):
112 112 if numero%2==0: return 'par'
113 113 elif numero%2==1: return 'impar'
114 114
115 115 def EvaluaCadena(cadena):
116 116 if len(cadena)>35:
117 117 if cadena[-1]=='$':
118 118 return cadena[-35:-2]
119 119 elif cadena[-1]==']':
120 120 return cadena[-34:-1]
121 121 else:
122 122 return None
123 123
124 124 def GuardaEnLista(path):
125 125 fichero=open(path,'r')
126 126 lista=[]
127 127 for cadena in fichero:
128 128 cadena = EliminaSaltoDeLinea(cadena)
129 129 cadena = EvaluaCadena(cadena)
130 130 if cadena != None:
131 131 lista.append(cadena)
132 132 fichero.close()
133 133 return lista
134 134
135 135 def CreaFicherosPrevios():
136 136 vector = GuardaEnLista(archivo)
137 137 for i in range(1,NumeroDeExperimentos(archivo)+1):
138 138 fichero =open(CarpetaDeTrabajo+str(i)+'.txt','w')
139 139 for j in range(0,16):
140 140 fichero.write(vector[j+16*(i-1)]+'\n')
141 141 fichero.close()
142 142
143 143 def CapturaValoresEnArchivo(path,polarizacion='up'):
144 144 fichero =open(path,'r')
145 145 cnt=0
146 146 lstup=[]
147 147 lstdw=[]
148 148 for cadena in fichero:
149 149 cnt=cnt+1
150 150 if cnt==5:
151 151 su01=cadena[17:20]
152 152 su02=cadena[21:24]
153 153 su03=cadena[25:28]
154 154 su04=cadena[29:32]
155 155 if cnt==6:
156 156 su05=cadena[17:20]
157 157 su06=cadena[21:24]
158 158 su07=cadena[25:28]
159 159 su08=cadena[29:32]
160 160 if cnt==7:
161 161 su09=cadena[17:20]
162 162 su10=cadena[21:24]
163 163 su11=cadena[25:28]
164 164 su12=cadena[29:32]
165 165 if cnt==8:
166 166 su13=cadena[17:20]
167 167 su14=cadena[21:24]
168 168 su15=cadena[25:28]
169 169 su16=cadena[29:32]
170 170 if cnt==13:
171 171 sd01=cadena[17:20]
172 172 sd02=cadena[21:24]
173 173 sd03=cadena[25:28]
174 174 sd04=cadena[29:32]
175 175 if cnt==14:
176 176 sd05=cadena[17:20]
177 177 sd06=cadena[21:24]
178 178 sd07=cadena[25:28]
179 179 sd08=cadena[29:32]
180 180 if cnt==15:
181 181 sd09=cadena[17:20]
182 182 sd10=cadena[21:24]
183 183 sd11=cadena[25:28]
184 184 sd12=cadena[29:32]
185 185 if cnt==16:
186 186 sd13=cadena[17:20]
187 187 sd14=cadena[21:24]
188 188 sd15=cadena[25:28]
189 189 sd16=cadena[29:32]
190 190 lstup=[su01,su02,su03,su04,su05,su06,su07,su08,su09,su10,su11,su12,su13,su14,su15,su16]
191 191 lstdw=[sd01,sd02,sd03,sd04,sd05,sd06,sd07,sd08,sd09,sd10,sd11,sd12,sd13,sd14,sd15,sd16]
192 192 if polarizacion=='up':
193 193 return lstup
194 194 elif polarizacion=='dw':
195 195 return lstdw
196 196 fichero.close()
197 197
198 198 def CreaFormatoFinal():
199 199 ne=NumeroDeExperimentos(archivo)
200 200
201 201 #nombre01 = file1(archivo,'1')
202 nombre02 = file1(archivo,'1')
202 nombre02 = file1(archivo,'2')
203 203 fichero=open(CarpetaDeTrabajo+'FormatoControlCentral.txt','w')
204 204 fichero.write(nombre02+'\n')
205 205 fichero.write(str(ne)+'\n')
206 206 for i in range(1,17):
207 207
208 208 if i<10:
209 209 nmod = '0'+str(i)
210 210 else: nmod = str(i)
211 211
212 212
213 213 fichero.write('S'+nmod+'\n')
214 214 for j in range(1,ne+1):
215 215 ruta=CarpetaDeTrabajo+str(j)+'.txt'
216 216 lu=CapturaValoresEnArchivo(ruta,polarizacion='up')
217 217 ld=CapturaValoresEnArchivo(ruta,polarizacion='dw')
218 218 part1=''
219 219 part2=''
220 220 if lu[i-1]=='1.0': part1='000'
221 221 if lu[i-1]=='2.0': part1='001'
222 222 if lu[i-1]=='3.0': part1='010'
223 223 if lu[i-1]=='0.0': part1='011'
224 224 if lu[i-1]=='0.5': part1='100'
225 225 if lu[i-1]=='1.5': part1='101'
226 226 if lu[i-1]=='2.5': part1='110'
227 227 if lu[i-1]=='3.5': part1='111'
228 228 if ld[i-1]=='1.0': part2='000'
229 229 if ld[i-1]=='2.0': part2='001'
230 230 if ld[i-1]=='3.0': part2='010'
231 231 if ld[i-1]=='0.0': part2='011'
232 232 if ld[i-1]=='0.5': part2='100'
233 233 if ld[i-1]=='1.5': part2='101'
234 234 if ld[i-1]=='2.5': part2='110'
235 235 if ld[i-1]=='3.5': part2='111'
236 236 fichero.write(part1+part2+'\n')
237 237 fichero.write('------'+'\n')
238 238 fichero.close()
239 239
240 240 def EliminaArchivosEnLaCarpeta():
241 241 ne=NumeroDeExperimentos(archivo)
242 242 for i in range(1,ne+1):
243 243 os.remove(CarpetaDeTrabajo+str(i)+'.txt')
244 244
245 245 CreaFicherosPrevios()
246 246 CreaFormatoFinal()
247 247 EliminaArchivosEnLaCarpeta()
248 248
249 249 ##########
250 250
251 251 if __name__ == '__main__':
252 252
253 253 filename = "experimento1.abs"
254 254
255 255 absObj = ABSClient()
256 absObj.sendFile(filename)
256 # absObj.sendFile(filename)
257 257 # absObj.changeBeam("0")
258 # absObj.changeBeam("1")
258 259 # absObj.changeBeam("2")
259 # absObj.changeBeam("7") No newline at end of file
260 # absObj.changeBeam("3")
261 # absObj.changeBeam("4")
262 # absObj.changeBeam("5")
263 # absObj.changeBeam("6")
264 # absObj.changeBeam("7")
265 absObj.getStatus(5) No newline at end of file
@@ -1,231 +1,231
1 1 title ='MST-ISR 2009 (NS-Up)'
2 2
3 3 #Experiments = 12
4 4
5 5 1 =
6 6 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
7 7 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
8 8 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
9 9 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
10 [1.0,1.0,1.0,1.0,1.0,2.0,3.0,0.0],$
11 [0.5,0.5,0.5,1.0,3.0,2.0,1.0,0.0],$
12 [1.0,1.0,1.0,1.0,0.5,1.5,2.5,3.5],$
13 [0.5,0.5,0.5,0.5,2.5,1.5,0.5,0.0]]
10 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
11 [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
12 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
13 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
14 14
15 15 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
16 16 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
17 17 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
18 18 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
19 19 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
20 20 [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
21 21 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
22 22 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
23 23
24 24 2 =
25 25 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
26 26 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
27 27 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
28 28 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
29 29 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
30 30 [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
31 31 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
32 32 [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
33 33
34 34 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
35 35 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
36 36 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
37 37 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
38 38 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
39 39 [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
40 40 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
41 41 [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
42 42
43 43 3 =
44 44 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
45 45 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
46 46 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
47 47 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
48 48 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
49 49 [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
50 50 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
51 51 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
52 52
53 53 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
54 54 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
55 55 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
56 56 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
57 57 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
58 58 [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
59 59 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
60 60 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
61 61
62 62 4 =
63 63 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
64 64 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
65 65 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
66 66 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
67 67 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
68 68 [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
69 69 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
70 70 [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
71 71
72 72 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
73 73 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
74 74 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
75 75 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
76 76 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
77 77 [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
78 78 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
79 79 [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
80 80
81 81 5 =
82 82 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
83 83 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
84 84 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
85 85 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
86 86 [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
87 87 [0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5],$
88 88 [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
89 89 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]
90 90
91 91 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
92 92 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
93 93 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
94 94 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
95 95 [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
96 96 [0.5,0.5,0.5,1.0,0.5,0.5,0.5,0.5],$
97 97 [1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5],$
98 98 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]]
99 99
100 100 6=
101 101 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
102 102 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
103 103 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
104 104 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
105 105 [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
106 106 [0.5,0.5,0.5,1.0,1.5,1.5,1.5,1.5],$
107 107 [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
108 108 [0.5,0.5,0.5,0.5,1.5,1.5,1.5,1.5]]
109 109
110 110 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
111 111 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
112 112 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
113 113 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
114 114 [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
115 115 [0.5,0.5,0.5,1.0,1.5,1.5,1.5,1.5],$
116 116 [1.0,1.0,1.0,1.0,1.5,1.5,1.5,1.5],$
117 117 [0.5,0.5,0.5,0.5,1.5,1.5,1.5,1.5]]
118 118
119 119 7 =
120 120 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
121 121 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
122 122 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
123 123 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
124 124 [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
125 125 [0.5,0.5,0.5,1.0,2.5,2.5,2.5,2.5],$
126 126 [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
127 127 [0.5,0.5,0.5,0.5,2.5,2.5,2.5,2.5]]
128 128
129 129 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
130 130 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
131 131 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
132 132 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
133 133 [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
134 134 [0.5,0.5,0.5,1.0,2.5,2.5,2.5,2.5],$
135 135 [1.0,1.0,1.0,1.0,2.5,2.5,2.5,2.5],$
136 136 [0.5,0.5,0.5,0.5,2.5,2.5,2.5,2.5]]
137 137 8 = No newline at end of file
138 138 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
139 139 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
140 140 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
141 141 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
142 142 [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
143 143 [0.5,0.5,0.5,1.0,3.5,3.5,3.5,3.5],$
144 144 [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
145 145 [0.5,0.5,0.5,0.5,3.5,3.5,3.5,3.5]]
146 146
147 147 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
148 148 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
149 149 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
150 150 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
151 151 [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
152 152 [0.5,0.5,0.5,1.0,3.5,3.5,3.5,3.5],$
153 153 [1.0,1.0,1.0,1.0,3.5,3.5,3.5,3.5],$
154 154 [0.5,0.5,0.5,0.5,3.5,3.5,3.5,3.5]]
155 155
156 156 9 =
157 157 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
158 158 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
159 159 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
160 160 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
161 161 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
162 162 [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
163 163 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
164 164 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
165 165
166 166 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
167 167 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
168 168 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
169 169 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
170 170 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
171 171 [0.5,0.5,0.5,1.0,1.0,1.0,1.0,1.0],$
172 172 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
173 173 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]]
174 174
175 175 10 =
176 176 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
177 177 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
178 178 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
179 179 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
180 180 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
181 181 [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
182 182 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
183 183 [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
184 184
185 185 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
186 186 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
187 187 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
188 188 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
189 189 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
190 190 [0.5,0.5,0.5,1.0,2.0,2.0,2.0,2.0],$
191 191 [1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0],$
192 192 [0.5,0.5,0.5,0.5,2.0,2.0,2.0,2.0]]
193 193
194 194 11 =
195 195 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
196 196 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
197 197 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
198 198 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
199 199 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
200 200 [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
201 201 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
202 202 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
203 203
204 204 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
205 205 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
206 206 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
207 207 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
208 208 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
209 209 [0.5,0.5,0.5,1.0,3.0,3.0,3.0,3.0],$
210 210 [1.0,1.0,1.0,1.0,3.0,3.0,3.0,3.0],$
211 211 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]]
212 212
213 213 12 =
214 214 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
215 215 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
216 216 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
217 217 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
218 218 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
219 219 [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
220 220 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
221 221 [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
222 222
223 223 [[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
224 224 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],$
225 225 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
226 226 [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],$
227 227 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
228 228 [0.5,0.5,0.5,1.0,0.0,0.0,0.0,0.0],$
229 229 [1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0],$
230 230 [0.5,0.5,0.5,0.5,0.0,0.0,0.0,0.0]]
231 231
@@ -1,136 +1,183
1 1 import os
2 2 import library
3 import time
3 4
4 5 class ABSServer:
5 6
6 7 def __init__(self,ipSource="localhost", ipDestino="192.168.1.255", portDestino=7000, ipDestino2="192.168.1.255", portDestino2=5500, ftpPortDestino=None):
7 8
8 9 self.ipSource = ipSource
9 10 self.ipDestino = ipDestino
10 11 self.portDestino = portDestino
11 12
12 13 self.ipDestino2 = ipDestino2
13 14 self.portDestino2 = portDestino2
14 15
15 16 self.ftpPortDestino = ftpPortDestino
16 17
17 18 self.createObjects()
18 19
19 20 def createObjects(self):
20 21
21 22 asServer = True
22 23 self.commServerObj = library.UDPComm(self.ipSource, self.ipDestino, self.portDestino, asServer)
23 24 self.commClientObj = library.UDPComm(self.ipSource, self.ipDestino2, self.portDestino2)
24 25 #self.ftpCommObj = library.FTPComm(self.ipSource, self.ipDestino, self.ftpPortDestino)
25 26
26 27 def waitRequest(self,nbytes = 16384):
27 28
28 29 ipSource, ipDestino, cmd, self.datarx = self.commServerObj.waitRequest(nbytes)
29 30
30 31 if cmd == "SNDF":
31 32 self.sendFile(10)
32 33
33 34 if cmd == "CHGB":
34 35 self.changeBeam()
35 36
36 37 if cmd == "ANST":
37 self.getStatus()
38 self.getStatus(10)
39
40 def sendAnswer(self,nbytes = 16384):
41
42 # ipSource, ipDestino, cmd, self.datarx = self.commServerObj.sendData(nbytes)
43
44 pass
38 45
39 46 def EliminaSaltoDeLinea(cadena):
40 47 i = 0
41 48 for elemento in cadena:
42 49 if elemento =='\n' or elemento =='\r':
43 50 pass
44 51 else:
45 52 i=i+1
46 53 return cadena [:i]
47 54
48 55 def connection_status(self,base):
49 56 #File creation is neccesary?
50 57 number_of_modules = 16
51 58 #base = 10
52 59 # Variables for the report
53 60 status_array = ["Status of modules\n"]
54 61 status_array.append("----------------\n")
55 62 # Variables for the program
56 63 module_list = []
57 64
58 65 for i in range(number_of_modules):
59 66 cmd = "ping -c 1 -w 1 192.168.1."+ str(base + i + 1) + " >> /dev/null"
60 67 status = os.system(cmd)
61 68 if status == 256:
62 69 status_array.append("192.168.1." + str(base + i + 1) + " [0 0]\n") #Un-connected
63 70 module_list.append("0")
64 71 else:
65 72 status_array.append("192.168.1." + str(base + i + 1) + " [1 1]\n")
66 73 module_list.append("1")
67 74 # Generating a file report
68 75 if base == 10:
69 76 fobj = open("module_status_S.txt","w")
70 77 else:
71 78 fobj = open("module_status_N.txt","w")
72 79 fobj.writelines(status_array)
73 80 fobj.close()
74 81 # For the program
75 82 return module_list
76 83
77 84 def sendFile(self, base):
78 85
79 86 #Needed for the file creation
80 87 # file_str = self.datarx
81 88 #Needed for the loop
82 89 rx_frame_list = self.datarx.split('\n',2)
83 90
84 91 experiment_name = rx_frame_list[0]
85 92 experiment_number = rx_frame_list[1]
86 93 str_control_modules = rx_frame_list[2]
87 94 lst_control_modules = str_control_modules.split("------\n")
88 95 #Setting variables of the loop
89 96 i =3
90 97 module = 1
91 98 number_of_modules = 16
92 99 number_of_beams = int (experiment_number)
93 100 module_list = self.connection_status(10)
94 101 #Loop for creating and sending the control module files
95 102 while module <= number_of_modules:
96 103 #Generating the control modules files
97 104 fobj = open(experiment_name,"w")
98 105 fobj.write(experiment_name + "\n")
99 106 fobj.write("------\n")
100 107 # tmp_list = rx_frame_list[i:i + number_of_beams + 1]
101 108 fobj.write(lst_control_modules[module-1])
102 109 fobj.write("------\n")
103 110 fobj.close()
104 111 if module_list[module -1] == "1":
105 112 #Preparing and doing the tftp command
106 113 cmd = "tftp -m binary 192.168.1."+ str(base + module) +" 69 -c put " + experiment_name
107 114 print cmd
108 115 os.system(cmd)
109 116 #Updating variables of the loop
110 117 i = i + number_of_beams + 2
111 118 module += 1
112 119 #Working with the UDP socket
113 120 #self.commClientObj.sendData("CARGA:experimento1.ab1:")
114 121 self.commClientObj.sendData("CARGA:" + experiment_name + ":")
115 122 self.commClientObj.sendData("CAMBIA:0:")
116 123 #
117 124 # self.ftpCommObj.sendFile(filename)
118 125 # rpta = self.commClientObj.sendTxRxCommand(cmd='CARGA', data=filename)
119 126
120 127
121 128 def changeBeam(self):
122 129
123 130 #rpta = self.commClientObj.sendTxRxCommand(cmd='CAMBIA', data="0")
124 131 self.commClientObj.sendData("CAMBIA:" + self.datarx + ":")
125 132
126 def getStatus(self):
133 def getStatus(self, base):
127 134
128 135 #rpta = self.commClientObj.sendTxRxCommand(cmd='CHEQUEO', data="0")
129 136 self.commClientObj.sendData("CHEQUEO:" + self.datarx + ":")
137 seconds = int (self.datarx)
138 # Give 5 seconds to the control modules
139 time.sleep(seconds)
140 # Checking the module connection
141 module_list = self.connection_status(10)
142 #Generating the complete report
143 module = 1
144 number_of_modules = 16
145 filename1 = "Verificacion"
146 filename2 = "report.txt"
147 fobj2 = open(filename2,"w")
148 fobj2.write("Verification_file\n")
149 fobj2.write("-----------------\n")
150 fobj2.close()
151 while module <= number_of_modules:
152 if module_list[module -1] == "1":
153 #Preparing and doing the tftp command
154 cmd = "tftp -m binary 192.168.1."+ str(base + module) +" 69 -c get " + filename1
155 print cmd
156 os.system(cmd)
157 # Getting data from the control module file
158 fobj1 = open(filename1,"r")
159 file_list_1 = fobj1.readlines()
160 fobj1.close()
161 content = file_list_1[2:-1]
162 #
163 fobj2 = open(filename2,"a")
164 if base == 10:
165 fobj2.write("S" + str(module) + "\n")
166 else:
167 fobj2.write("N" + str(module) + "\n")
168 fobj2.writelines(content)
169 fobj2.write("------\n")
170 fobj2.close()
171 module = module + 1
172 # print "\nFinalizado"
173
174
175
130 176
131 177 if __name__ == '__main__':
132 178
133 179 absObj = ABSServer()
134 180
135 181 while 1:
136 absObj.waitRequest() No newline at end of file
182 absObj.waitRequest()
183 # absObj.sendAnswer(nbytes) No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now