##// END OF EJS Templates
Monitoring test
imanay -
r261:262
parent child
Show More
@@ -1,586 +1,586
1 import os No newline at end of file
1 import os
2 import library3 No newline at end of file
2 import library3
3 import time No newline at end of file
3 import time
4 from threading import Thread No newline at end of file
4 from threading import Thread
5 import threading No newline at end of file
5 import threading
6 import Queue No newline at end of file
6 import Queue
7 No newline at end of file
7
8 class ABSServer: No newline at end of file
8 class ABSServer:
9 No newline at end of file
9
10 def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000, ipDestino2="192.168.1.11", portDestino2=5500, rx_buffer = "default"): No newline at end of file
10 def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000, ipDestino2="192.168.1.11", portDestino2=5500, rx_buffer = "default"):
11 No newline at end of file
11
12 No newline at end of file
12
13 self.ipSource = ipSource No newline at end of file
13 self.ipSource = ipSource
14 self.ipDestino = ipDestino No newline at end of file
14 self.ipDestino = ipDestino
15 self.portDestino = portDestino No newline at end of file
15 self.portDestino = portDestino
16 No newline at end of file
16
17 self.ipDestino2 = ipDestino2 No newline at end of file
17 self.ipDestino2 = ipDestino2
18 self.portDestino2 = portDestino2 No newline at end of file
18 self.portDestino2 = portDestino2
19 No newline at end of file
19
20 self.tx_buffer = "default" No newline at end of file
20 self.tx_buffer = "default"
21 self.rx_buffer = rx_buffer No newline at end of file
21 self.rx_buffer = rx_buffer
22 self.enaModules = [] No newline at end of file
22 self.enaModules = []
23 self.bits = [] No newline at end of file
23 self.bits = []
24 self.phase = [] No newline at end of file
24 self.phase = []
25 self.txFile = [] No newline at end of file
25 self.txFile = []
26 self.rxFile = [] No newline at end of file
26 self.rxFile = []
27 No newline at end of file
27
28 self.createObjects() No newline at end of file
28 self.createObjects()
29 No newline at end of file
29
30 print "Checking control modules, please wait ..." No newline at end of file
30 print "Checking control modules, please wait ..."
31 self.enaModules = self.checkAntenna() No newline at end of file
31 self.enaModules = self.checkAntenna()
32 print '\nThis modules are present : ' + str(self.enaModules) + '\n' No newline at end of file
32 print '\nThis modules are present : ' + str(self.enaModules) + '\n'
33 # print "Starting automatic control module status." No newline at end of file
33 # print "Starting automatic control module status."
34 self.__StartingAutomaticControlModules() No newline at end of file
34 self.__StartingAutomaticControlModules()
35 # self.__AutomaticControlModules() No newline at end of file
35 # self.__AutomaticControlModules()
36 No newline at end of file
36
37 def createObjects(self): No newline at end of file
37 def createObjects(self):
38 No newline at end of file
38
39 asServer = True No newline at end of file
39 asServer = True
40 self.commServerObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino, "CnMod01", self.portDestino, asServer) No newline at end of file
40 self.commServerObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino, "CnMod01", self.portDestino, asServer)
41 self.commClientObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino2, "CnMod01", self.portDestino2) No newline at end of file
41 self.commClientObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino2, "CnMod01", self.portDestino2)
42 self.wFiles = library3.FilesStuff() No newline at end of file
42 self.wFiles = library3.FilesStuff()
43 No newline at end of file
43
44 def waitRequest(self): No newline at end of file
44 def waitRequest(self):
45 No newline at end of file
45
46 #Using rx buffer No newline at end of file
46 #Using rx buffer
47 # ipSource, ipDestino, cmd, self.rx_buffer = self.commServerObj.waitData() No newline at end of file
47 # ipSource, ipDestino, cmd, self.rx_buffer = self.commServerObj.waitData()
48 ipSource, ipDestino, cmd, rx_buffer = self.commServerObj.waitData() No newline at end of file
48 ipSource, ipDestino, cmd, rx_buffer = self.commServerObj.waitData()
49 No newline at end of file
49
50 if cmd == "SNDF": No newline at end of file
50 if cmd == "SNDF":
51 datarpta = self.__sendFile2Modules(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
51 datarpta = self.__sendFile2Modules(cmd = cmd, rx_buffer = rx_buffer)
52 No newline at end of file
52
53 if cmd == "GETF": No newline at end of file
53 if cmd == "GETF":
54 datarpta = self.__getFileFromModules(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
54 datarpta = self.__getFileFromModules(cmd = cmd, rx_buffer = rx_buffer)
55 No newline at end of file
55
56 if cmd == "CHGB": No newline at end of file
56 if cmd == "CHGB":
57 datarpta = self.__changeBeam(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
57 datarpta = self.__changeBeam(cmd = cmd, rx_buffer = rx_buffer)
58 No newline at end of file
58
59 if cmd == "ANST": No newline at end of file
59 if cmd == "ANST":
60 datarpta = self.__getControlModuleStatus_old(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
60 datarpta = self.__getControlModuleStatus_old(cmd = cmd, rx_buffer = rx_buffer)
61 No newline at end of file
61
62 if cmd == "BGPH": No newline at end of file
62 if cmd == "BGPH":
63 datarpta = self.__getControlModuleBigPhase(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
63 datarpta = self.__getControlModuleBigPhase(cmd = cmd, rx_buffer = rx_buffer)
64 No newline at end of file
64
65 if cmd == "LWPH": No newline at end of file
65 if cmd == "LWPH":
66 datarpta = self.__getControlModuleLowPhase(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
66 datarpta = self.__getControlModuleLowPhase(cmd = cmd, rx_buffer = rx_buffer)
67 No newline at end of file
67
68 if cmd == "NTST": No newline at end of file
68 if cmd == "NTST":
69 datarpta = self.__getConnectionStatus(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
69 datarpta = self.__getConnectionStatus(cmd = cmd, rx_buffer = rx_buffer)
70 No newline at end of file
70
71 if cmd == "MNTR": No newline at end of file
71 if cmd == "MNTR":
72 datarpta = self.__getControlModuleStatus_new(cmd = cmd, type = rx_buffer) No newline at end of file
72 datarpta = self.__getControlModuleStatus_new(cmd = cmd, type = rx_buffer)
73 No newline at end of file
73
74 self.commServerObj.sendData(cmd=cmd, data=datarpta, ipDestino = ipSource) No newline at end of file
74 self.commServerObj.sendData(cmd=cmd, data=datarpta, ipDestino = ipSource)
75 No newline at end of file
75
76 def __checkModule(self, address): No newline at end of file
76 def __checkModule(self, address):
77 No newline at end of file
77
78 cmd = "ping -c 1 -w 1 192.168.1."+ str(address) + " >> /dev/null" No newline at end of file
78 cmd = "ping -c 1 -w 1 192.168.1."+ str(address) + " >> /dev/null"
79 status = os.system(cmd) No newline at end of file
79 status = os.system(cmd)
80 No newline at end of file
80
81 if status == 256: No newline at end of file
81 if status == 256:
82 return False No newline at end of file
82 return False
83 No newline at end of file
83
84 return True No newline at end of file
84 return True
85 No newline at end of file
85
86 def __writeReport(self, enaModules): No newline at end of file
86 def __writeReport(self, enaModules):
87 No newline at end of file
87
88 status_array = ["Status of modules\n"] No newline at end of file
88 status_array = ["Status of modules\n"]
89 status_array.append("----------------\n") No newline at end of file
89 status_array.append("----------------\n")
90 No newline at end of file
90
91 for address in range(1,65): No newline at end of file
91 for address in range(1,65):
92 if address in enaModules: No newline at end of file
92 if address in enaModules:
93 status_array.append("192.168.1." + str(address) + " [1 1]\n") No newline at end of file
93 status_array.append("192.168.1." + str(address) + " [1 1]\n")
94 else: No newline at end of file
94 else:
95 status_array.append("192.168.1." + str(address) + " [0 0]\n") No newline at end of file
95 status_array.append("192.168.1." + str(address) + " [0 0]\n")
96 No newline at end of file
96
97 filename = "module_status.txt" No newline at end of file
97 filename = "module_status.txt"
98 self.__writeFile(filename,status_array) No newline at end of file
98 self.__writeFile(filename,status_array)
99 # f = open("module_status.txt","w") No newline at end of file
99 # f = open("module_status.txt","w")
100 # f.writelines(status_array) No newline at end of file
100 # f.writelines(status_array)
101 # f.close() No newline at end of file
101 # f.close()
102 No newline at end of file
102
103 No newline at end of file
103
104 def __CreateFile(self, filename): No newline at end of file
104 def __CreateFile(self, filename):
105 No newline at end of file
105
106 fobj = open(filename,"w") No newline at end of file
106 fobj = open(filename,"w")
107 fobj.close() No newline at end of file
107 fobj.close()
108 No newline at end of file
108
109 def __writeNewFile(self, filename, data): No newline at end of file
109 def __writeNewFile(self, filename, data):
110 No newline at end of file
110
111 fobj = open(filename,"w") No newline at end of file
111 fobj = open(filename,"w")
112 fobj.writelines(data) No newline at end of file
112 fobj.writelines(data)
113 fobj.close() No newline at end of file
113 fobj.close()
114 No newline at end of file
114
115 def __writeFile(self, filename, data): No newline at end of file
115 def __writeFile(self, filename, data):
116 No newline at end of file
116
117 fobj = open(filename,"a") No newline at end of file
117 fobj = open(filename,"a")
118 fobj.writelines(data) No newline at end of file
118 fobj.writelines(data)
119 fobj.close() No newline at end of file
119 fobj.close()
120 No newline at end of file
120
121 def __checkAntenna(self): No newline at end of file
121 def __checkAntenna(self):
122 No newline at end of file
122
123 """ No newline at end of file
123 """
124 Direccion de los modulos de las antenas: No newline at end of file
124 Direccion de los modulos de las antenas:
125 No newline at end of file
125
126 Norte : 01-16 No newline at end of file
126 Norte : 01-16
127 Este : 17-32 No newline at end of file
127 Este : 17-32
128 Oeste: : 33-48 No newline at end of file
128 Oeste: : 33-48
129 Sur : 49-64 No newline at end of file
129 Sur : 49-64
130 No newline at end of file
130
131 """ No newline at end of file
131 """
132 No newline at end of file
132
133 enaModules2 = [] No newline at end of file
133 enaModules2 = []
134 No newline at end of file
134
135 for address in range(1,65): No newline at end of file
135 for address in range(1,65):
136 if self.checkModule(address): No newline at end of file
136 if self.checkModule(address):
137 enaModules2.append(address) No newline at end of file
137 enaModules2.append(address)
138 No newline at end of file
138
139 self.__writeReport(enaModules2) No newline at end of file
139 self.__writeReport(enaModules2)
140 return enaModules2 No newline at end of file
140 return enaModules2
141 No newline at end of file
141
142 def checkModule(self, arg, queue): No newline at end of file
142 def checkModule(self, arg, queue):
143 cmd = "ping -c 1 -w 1 192.168.1."+ str(arg) + " >> /dev/null" No newline at end of file
143 cmd = "ping -c 1 -w 1 192.168.1."+ str(arg) + " >> /dev/null"
144 status = os.system(cmd) No newline at end of file
144 status = os.system(cmd)
145 if status == 256: No newline at end of file
145 if status == 256:
146 result = "failed" No newline at end of file
146 result = "failed"
147 else: No newline at end of file
147 else:
148 result = "ok" No newline at end of file
148 result = "ok"
149 queue.put({arg: result}) No newline at end of file
149 queue.put({arg: result})
150 No newline at end of file
150
151 def checkAntenna(self): No newline at end of file
151 def checkAntenna(self):
152 No newline at end of file
152
153 iD = range(1,65) No newline at end of file
153 iD = range(1,65)
154 q = Queue.Queue() No newline at end of file
154 q = Queue.Queue()
155 threads = [] No newline at end of file
155 threads = []
156 tOut = [] No newline at end of file
156 tOut = []
157 modules = [] No newline at end of file
157 modules = []
158 No newline at end of file
158
159 for argument in iD: No newline at end of file
159 for argument in iD:
160 t = Thread(target=self.checkModule, args=(argument, q)) No newline at end of file
160 t = Thread(target=self.checkModule, args=(argument, q))
161 t.start() No newline at end of file
161 t.start()
162 threads.append(t) No newline at end of file
162 threads.append(t)
163 No newline at end of file
163
164 for t in threads: No newline at end of file
164 for t in threads:
165 t.join() No newline at end of file
165 t.join()
166 No newline at end of file
166
167 for _ in range(len(iD)): No newline at end of file
167 for _ in range(len(iD)):
168 tOut.append(q.get()) No newline at end of file
168 tOut.append(q.get())
169 No newline at end of file
169
170 for i in tOut: No newline at end of file
170 for i in tOut:
171 if i.values()[0] == 'ok': No newline at end of file
171 if i.values()[0] == 'ok':
172 modules.append(i.keys()[0]) No newline at end of file
172 modules.append(i.keys()[0])
173 No newline at end of file
173
174 return modules No newline at end of file
174 return modules
175 No newline at end of file
175
176 def __ConnectionWithControlModules(self,data,cmd,id): No newline at end of file
176 def __ConnectionWithControlModules(self,data,cmd,id):
177 No newline at end of file
177
178 self.commClientObj.open_socket() No newline at end of file
178 self.commClientObj.open_socket()
179 ip = "192.168.1." + str(id) No newline at end of file
179 ip = "192.168.1." + str(id)
180 self.commClientObj.sendData(cmd, data, ip) No newline at end of file
180 self.commClientObj.sendData(cmd, data, ip)
181 ipSource, ipDestino, cmd, tmp = self.commClientObj.waitData() No newline at end of file
181 ipSource, ipDestino, cmd, tmp = self.commClientObj.waitData()
182 self.commClientObj.close_socket() No newline at end of file
182 self.commClientObj.close_socket()
183 No newline at end of file
183
184 return tmp No newline at end of file
184 return tmp
185 No newline at end of file
185
186 def abs2ControlModuleFormatFile(self, filename): No newline at end of file
186 def abs2ControlModuleFormatFile(self, filename):
187 No newline at end of file
187
188 #From matriz to control module format No newline at end of file
188 #From matriz to control module format
189 self.wFiles.toCentralControlFormat(filename) No newline at end of file
189 self.wFiles.toCentralControlFormat(filename)
190 FileName = "CentralControlFormat.txt" No newline at end of file
190 FileName = "CentralControlFormat.txt"
191 F_Obj = open(FileName,"r") No newline at end of file
191 F_Obj = open(FileName,"r")
192 FileList = F_Obj.readlines() No newline at end of file
192 FileList = F_Obj.readlines()
193 F_Obj.close() No newline at end of file
193 F_Obj.close()
194 FileStr = "".join(FileList) No newline at end of file
194 FileStr = "".join(FileList)
195 No newline at end of file
195
196 return FileStr No newline at end of file
196 return FileStr
197 No newline at end of file
197
198 def __All2Blocks(self,input): No newline at end of file
198 def __All2Blocks(self,input):
199 No newline at end of file
199
200 rx_frame_lst = input.split('\n',2) No newline at end of file
200 rx_frame_lst = input.split('\n',2)
201 No newline at end of file
201
202 header = rx_frame_lst[0] + "\n" No newline at end of file
202 header = rx_frame_lst[0] + "\n"
203 control_modules_str = rx_frame_lst[2] No newline at end of file
203 control_modules_str = rx_frame_lst[2]
204 control_modules_lst = control_modules_str.split("------\n") No newline at end of file
204 control_modules_lst = control_modules_str.split("------\n")
205 No newline at end of file
205
206 return header, control_modules_lst No newline at end of file
206 return header, control_modules_lst
207 No newline at end of file
207
208 No newline at end of file
208
209 def __sendFile2Modules(self,cmd, rx_buffer): No newline at end of file
209 def __sendFile2Modules(self,cmd, rx_buffer):
210 No newline at end of file
210
211 # rx_buffer_lst = self.rx_buffer.split('\n',1) No newline at end of file
211 # rx_buffer_lst = self.rx_buffer.split('\n',1)
212 rx_buffer_lst = rx_buffer.split('\n',1) No newline at end of file
212 rx_buffer_lst = rx_buffer.split('\n',1)
213 #Getting the filename from the begining of data No newline at end of file
213 #Getting the filename from the begining of data
214 filename = rx_buffer_lst[0] No newline at end of file
214 filename = rx_buffer_lst[0]
215 tmp = rx_buffer_lst[1]
215 tmp = rx_buffer_lst[1]
No newline at end of file
216 self.__writeNewFile(filename,tmp) No newline at end of file
216 self.__writeFile(filename,tmp) No newline at end of file
217 data = self.abs2ControlModuleFormatFile(filename) No newline at end of file
217 data = self.abs2ControlModuleFormatFile(filename)
218 No newline at end of file
218
219 print data No newline at end of file
219 print data
220 #Needed for the loop No newline at end of file
220 #Needed for the loop
221 header, control_modules_lst = self.__All2Blocks(data) No newline at end of file
221 header, control_modules_lst = self.__All2Blocks(data)
222 correct = 0 No newline at end of file
222 correct = 0
223 No newline at end of file
223
224 for id in range(1,65): No newline at end of file
224 for id in range(1,65):
225 No newline at end of file
225
226 if id not in self.enaModules: No newline at end of file
226 if id not in self.enaModules:
227 continue No newline at end of file
227 continue
228 No newline at end of file
228
229 if self.__ConnectionWithControlModules(header + control_modules_lst[id-1], cmd, id) == "OK": No newline at end of file
229 if self.__ConnectionWithControlModules(header + control_modules_lst[id-1], cmd, id) == "OK":
230 correct = correct + 1 No newline at end of file
230 correct = correct + 1
231 No newline at end of file
231
232 if correct == len(self.enaModules): No newline at end of file
232 if correct == len(self.enaModules):
233 rpta = "OK" No newline at end of file
233 rpta = "OK"
234 else: No newline at end of file
234 else:
235 rpta = "Failure" No newline at end of file
235 rpta = "Failure"
236 No newline at end of file
236
237 return rpta No newline at end of file
237 return rpta
238 No newline at end of file
238
239 def __getFileFromModules(self, cmd, rx_buffer): No newline at end of file
239 def __getFileFromModules(self, cmd, rx_buffer):
240 No newline at end of file
240
241 for id in range(1,65): No newline at end of file
241 for id in range(1,65):
242 if id not in self.enaModules: No newline at end of file
242 if id not in self.enaModules:
243 continue No newline at end of file
243 continue
244 No newline at end of file
244
245 file = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
245 file = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
246 del self.rxFile[id-1] No newline at end of file
246 del self.rxFile[id-1]
247 self.rxFile.insert(id-1, file) No newline at end of file
247 self.rxFile.insert(id-1, file)
248 No newline at end of file
248
249 return self.rxFile No newline at end of file
249 return self.rxFile
250 No newline at end of file
250
251 def __changeBeam(self, cmd, rx_buffer): No newline at end of file
251 def __changeBeam(self, cmd, rx_buffer):
252 No newline at end of file
252
253 correct = 0 No newline at end of file
253 correct = 0
254 # enaModules = self.checkAntenna() No newline at end of file
254 # enaModules = self.checkAntenna()
255 # enaModules = [11,12,13,14] No newline at end of file
255 # enaModules = [11,12,13,14]
256 No newline at end of file
256
257 for id in range(1,65): No newline at end of file
257 for id in range(1,65):
258 if id not in self.enaModules: No newline at end of file
258 if id not in self.enaModules:
259 continue No newline at end of file
259 continue
260 No newline at end of file
260
261 if self.__ConnectionWithControlModules(rx_buffer,cmd,id) == "OK": No newline at end of file
261 if self.__ConnectionWithControlModules(rx_buffer,cmd,id) == "OK":
262 correct = correct + 1 No newline at end of file
262 correct = correct + 1
263 No newline at end of file
263
264 if correct == len(self.enaModules): No newline at end of file
264 if correct == len(self.enaModules):
265 rpta = "OK" No newline at end of file
265 rpta = "OK"
266 else: No newline at end of file
266 else:
267 rpta = "Failure" No newline at end of file
267 rpta = "Failure"
268 No newline at end of file
268
269 return rpta No newline at end of file
269 return rpta
270 No newline at end of file
270
271 def __getControlModuleStatus(self, cmd, rx_buffer): No newline at end of file
271 def __getControlModuleStatus(self, cmd, rx_buffer):
272 No newline at end of file
272
273 # all_blocks = "" No newline at end of file
273 # all_blocks = ""
274 # all_blocks = [] No newline at end of file
274 # all_blocks = []
275 # enaModules = self.checkAntenna() No newline at end of file
275 # enaModules = self.checkAntenna()
276 # enaModules = [11,12,13,14] No newline at end of file
276 # enaModules = [11,12,13,14]
277 No newline at end of file
277
278 for id in range(1,65): No newline at end of file
278 for id in range(1,65):
279 if id not in self.enaModules: No newline at end of file
279 if id not in self.enaModules:
280 continue No newline at end of file
280 continue
281 No newline at end of file
281
282 bits = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
282 bits = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
283 del self.bits[id-1] No newline at end of file
283 del self.bits[id-1]
284 self.bits.insert(id-1, bits) No newline at end of file
284 self.bits.insert(id-1, bits)
285 No newline at end of file
285
286 # all_blocks.append(one_block) No newline at end of file
286 # all_blocks.append(one_block)
287 #Using tx buffer No newline at end of file
287 #Using tx buffer
288 No newline at end of file
288
289 return self.bits No newline at end of file
289 return self.bits
290 No newline at end of file
290
291 def __getControlModuleStatus_new(self, cmd, type): No newline at end of file
291 def __getControlModuleStatus_new(self, cmd, type):
292 No newline at end of file
292
293 cm_lst = self.__gettingDataFromControlModules(cmd = cmd, rx_buffer = type) No newline at end of file
293 cm_lst = self.__gettingDataFromControlModules(cmd = cmd, rx_buffer = type)
294 out_str = self.__processingCMdata(in_data = cm_lst, type = type) No newline at end of file
294 out_str = self.__processingCMdata(in_data = cm_lst, type = type)
295 No newline at end of file
295
296 return out_str No newline at end of file
296 return out_str
297 No newline at end of file
297
298 def __gettingDataFromControlModules(self, cmd, rx_buffer): No newline at end of file
298 def __gettingDataFromControlModules(self, cmd, rx_buffer):
299 No newline at end of file
299
300 for id in range(1,65): No newline at end of file
300 for id in range(1,65):
301 if id not in self.enaModules: No newline at end of file
301 if id not in self.enaModules:
302 continue No newline at end of file
302 continue
303 No newline at end of file
303
304 cm = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
304 cm = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
305 del self.test[id-1] No newline at end of file
305 del self.test[id-1]
306 self.test.insert(id-1, cm) No newline at end of file
306 self.test.insert(id-1, cm)
307 No newline at end of file
307
308 return self.test No newline at end of file
308 return self.test
309 No newline at end of file
309
310 def __processingCMdata(self,in_data, type): No newline at end of file
310 def __processingCMdata(self,in_data, type):
311 No newline at end of file
311
312 if (type == "0") or (type == "1") or (type == "2"): No newline at end of file
312 if (type == "0") or (type == "1") or (type == "2"):
313 out_str = "".join(in_data) No newline at end of file
313 out_str = "".join(in_data)
314 elif type == "3": No newline at end of file
314 elif type == "3":
315 out_str = self.__TwoComparation(in_lst = in_data) No newline at end of file
315 out_str = self.__TwoComparation(in_lst = in_data)
316 else: No newline at end of file
316 else:
317 out_str = self.__ThreeComparation(in_lst = in_data) No newline at end of file
317 out_str = self.__ThreeComparation(in_lst = in_data)
318 No newline at end of file
318
319 return out_str No newline at end of file
319 return out_str
320 No newline at end of file
320
321 def __TwoComparation(self, in_lst): No newline at end of file
321 def __TwoComparation(self, in_lst):
322 No newline at end of file
322
323 No newline at end of file
323
324 file = [] No newline at end of file
324 file = []
325 relay = [] No newline at end of file
325 relay = []
326 status = [] No newline at end of file
326 status = []
327 mode = '0' No newline at end of file
327 mode = '0'
328 cnt = 0 No newline at end of file
328 cnt = 0
329 No newline at end of file
329
330 if mode == '0': No newline at end of file
330 if mode == '0':
331 No newline at end of file
331
332 for i in in_lst: No newline at end of file
332 for i in in_lst:
333 if len(i) == 7: No newline at end of file
333 if len(i) == 7:
334 file.append("xxxxxx") No newline at end of file
334 file.append("xxxxxx")
335 relay.append("xxxxxx") No newline at end of file
335 relay.append("xxxxxx")
336 else: No newline at end of file
336 else:
337 file.append(i[16:22]) No newline at end of file
337 file.append(i[16:22])
338 relay.append(i[23:29]) No newline at end of file
338 relay.append(i[23:29])
339 #Loop to generate a status No newline at end of file
339 #Loop to generate a status
340 for i in range(64): No newline at end of file
340 for i in range(64):
341 if file[i] == "xxxxxx": No newline at end of file
341 if file[i] == "xxxxxx":
342 status.append("xx") No newline at end of file
342 status.append("xx")
343 continue No newline at end of file
343 continue
344 No newline at end of file
344
345 if cmp(file[i],relay[i]) == 0: No newline at end of file
345 if cmp(file[i],relay[i]) == 0:
346 cnt = cnt + 1 No newline at end of file
346 cnt = cnt + 1
347 No newline at end of file
347
348 if cmp(file[i][0:3],relay[i][0:3]) == 0: No newline at end of file
348 if cmp(file[i][0:3],relay[i][0:3]) == 0:
349 cnt = cnt + 1 No newline at end of file
349 cnt = cnt + 1
350 No newline at end of file
350
351 if cmp(file[i][3:6],relay[i][3:6]) == 0: No newline at end of file
351 if cmp(file[i][3:6],relay[i][3:6]) == 0:
352 cnt = cnt + 2 No newline at end of file
352 cnt = cnt + 2
353 No newline at end of file
353
354 if cnt == 4: No newline at end of file
354 if cnt == 4:
355 status.append("00") No newline at end of file
355 status.append("00")
356 elif cnt == 0: No newline at end of file
356 elif cnt == 0:
357 status.append("11") No newline at end of file
357 status.append("11")
358 elif cnt == 1: No newline at end of file
358 elif cnt == 1:
359 status.append("11") No newline at end of file
359 status.append("11")
360 else: No newline at end of file
360 else:
361 status.append("01") No newline at end of file
361 status.append("01")
362 No newline at end of file
362
363 else: No newline at end of file
363 else:
364 No newline at end of file
364
365 cm_up =[] No newline at end of file
365 cm_up =[]
366 cm_dw =[] No newline at end of file
366 cm_dw =[]
367 relay_up =[] No newline at end of file
367 relay_up =[]
368 relay_dw =[] No newline at end of file
368 relay_dw =[]
369 No newline at end of file
369
370 for i in in_lst: No newline at end of file
370 for i in in_lst:
371 if len(i) == 8: No newline at end of file
371 if len(i) == 8:
372 relay_up.append("-") No newline at end of file
372 relay_up.append("-")
373 relay_dw.append("-") No newline at end of file
373 relay_dw.append("-")
374 cm_up.append("-") No newline at end of file
374 cm_up.append("-")
375 cm_dw.append("-") No newline at end of file
375 cm_dw.append("-")
376 continue No newline at end of file
376 continue
377 relay_up.append(i[14:17]) No newline at end of file
377 relay_up.append(i[14:17])
378 relay_dw.append(i[17:20]) No newline at end of file
378 relay_dw.append(i[17:20])
379 cm_up.append(i[21:24]) No newline at end of file
379 cm_up.append(i[21:24])
380 cm_dw.append(i[24:27]) No newline at end of file
380 cm_dw.append(i[24:27])
381 No newline at end of file
381
382 comp_up = [] No newline at end of file
382 comp_up = []
383 comp_dw = [] No newline at end of file
383 comp_dw = []
384 No newline at end of file
384
385 for i in range(64): No newline at end of file
385 for i in range(64):
386 if len(relay_up == 1): No newline at end of file
386 if len(relay_up == 1):
387 comp_up.append('x') No newline at end of file
387 comp_up.append('x')
388 else: No newline at end of file
388 else:
389 if cmp(relay_up[i], cm_up[i]) == 0: No newline at end of file
389 if cmp(relay_up[i], cm_up[i]) == 0:
390 comp_up.append('0') No newline at end of file
390 comp_up.append('0')
391 else: No newline at end of file
391 else:
392 comp_up.append('1') No newline at end of file
392 comp_up.append('1')
393 No newline at end of file
393
394 for i in range(64): No newline at end of file
394 for i in range(64):
395 if len(relay_dw == 1): No newline at end of file
395 if len(relay_dw == 1):
396 comp_dw.append('x') No newline at end of file
396 comp_dw.append('x')
397 else: No newline at end of file
397 else:
398 if cmp(relay_dw[i], cm_dw[i]) == 0: No newline at end of file
398 if cmp(relay_dw[i], cm_dw[i]) == 0:
399 comp_dw.append('0') No newline at end of file
399 comp_dw.append('0')
400 else: No newline at end of file
400 else:
401 comp_dw.append('1') No newline at end of file
401 comp_dw.append('1')
402 No newline at end of file
402
403 # Example: No newline at end of file
403 # Example:
404 # comp_up = [1,0,x,1,1,1 ..,1,0,1,x] No newline at end of file
404 # comp_up = [1,0,x,1,1,1 ..,1,0,1,x]
405 # No newline at end of file
405 #
406 print comp_up No newline at end of file
406 print comp_up
407 print comp_dw No newline at end of file
407 print comp_dw
408 No newline at end of file
408
409 #Doing final format No newline at end of file
409 #Doing final format
410 return self.__FinalFormat(data1 = file, data2 = relay, data3 = status) No newline at end of file
410 return self.__FinalFormat(data1 = file, data2 = relay, data3 = status)
411 No newline at end of file
411
412 def __FinalFormat(self,data1,data2,data3): No newline at end of file
412 def __FinalFormat(self,data1,data2,data3):
413 No newline at end of file
413
414 header = "Device\tFile\tRelay\tStatus\n" No newline at end of file
414 header = "Device\tFile\tRelay\tStatus\n"
415 body = "" No newline at end of file
415 body = ""
416 for i in range(64): No newline at end of file
416 for i in range(64):
417 if i<9: No newline at end of file
417 if i<9:
418 device = "CM0" + str(i+1) No newline at end of file
418 device = "CM0" + str(i+1)
419 else: No newline at end of file
419 else:
420 device = "CM" + str(i+1) No newline at end of file
420 device = "CM" + str(i+1)
421 No newline at end of file
421
422 line = device + '\t' + data1[i] + '\t' + data2[i] + '\t' + data3[i] + '\n' No newline at end of file
422 line = device + '\t' + data1[i] + '\t' + data2[i] + '\t' + data3[i] + '\n'
423 body = body + line No newline at end of file
423 body = body + line
424 No newline at end of file
424
425 report = header + body No newline at end of file
425 report = header + body
426 No newline at end of file
426
427 return report No newline at end of file
427 return report
428 No newline at end of file
428
429 def __ThreeComparation(self, in_lst): No newline at end of file
429 def __ThreeComparation(self, in_lst):
430 pass No newline at end of file
430 pass
431 No newline at end of file
431
432 def __getControlModuleBigPhase(self, cmd, rx_buffer): No newline at end of file
432 def __getControlModuleBigPhase(self, cmd, rx_buffer):
433 No newline at end of file
433
434 # all_blocks = "" No newline at end of file
434 # all_blocks = ""
435 all_blocks = [] No newline at end of file
435 all_blocks = []
436 # enaModules = self.checkAntenna() No newline at end of file
436 # enaModules = self.checkAntenna()
437 # enaModules = [11,12,13,14] No newline at end of file
437 # enaModules = [11,12,13,14]
438 No newline at end of file
438
439 for id in range(1,65): No newline at end of file
439 for id in range(1,65):
440 if id not in self.enaModules: No newline at end of file
440 if id not in self.enaModules:
441 continue No newline at end of file
441 continue
442 No newline at end of file
442
443 one_block = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
443 one_block = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
444 No newline at end of file
444
445 # all_blocks = all_blocks + one_block No newline at end of file
445 # all_blocks = all_blocks + one_block
446 all_blocks.append(one_block) No newline at end of file
446 all_blocks.append(one_block)
447 #Using tx buffer No newline at end of file
447 #Using tx buffer
448 return all_blocks No newline at end of file
448 return all_blocks
449 No newline at end of file
449
450 def __getControlModuleLowPhase(self, cmd, rx_buffer): No newline at end of file
450 def __getControlModuleLowPhase(self, cmd, rx_buffer):
451 No newline at end of file
451
452 # all_blocks = "" No newline at end of file
452 # all_blocks = ""
453 # all_blocks = [] No newline at end of file
453 # all_blocks = []
454 # enaModules = self.checkAntenna() No newline at end of file
454 # enaModules = self.checkAntenna()
455 # enaModules = [11,12,13,14] No newline at end of file
455 # enaModules = [11,12,13,14]
456 No newline at end of file
456
457 for id in range(1,65): No newline at end of file
457 for id in range(1,65):
458 if id not in self.enaModules: No newline at end of file
458 if id not in self.enaModules:
459 continue No newline at end of file
459 continue
460 No newline at end of file
460
461 phase = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
461 phase = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
462 del self.phase[id-1] No newline at end of file
462 del self.phase[id-1]
463 self.phase.insert(id-1, phase) No newline at end of file
463 self.phase.insert(id-1, phase)
464 # all_blocks = all_blocks + one_block No newline at end of file
464 # all_blocks = all_blocks + one_block
465 # all_blocks.append(one_block) No newline at end of file
465 # all_blocks.append(one_block)
466 #Using tx buffer No newline at end of file
466 #Using tx buffer
467 # return all_blocks No newline at end of file
467 # return all_blocks
468 No newline at end of file
468
469 def __getConnectionStatus(self, cmd, rx_buffer): No newline at end of file
469 def __getConnectionStatus(self, cmd, rx_buffer):
470 No newline at end of file
470
471 ena = self.checkAntenna() No newline at end of file
471 ena = self.checkAntenna()
472 print ena No newline at end of file
472 print ena
473 self.enaModules = ena No newline at end of file
473 self.enaModules = ena
474 No newline at end of file
474
475 blockLst = [] No newline at end of file
475 blockLst = []
476 No newline at end of file
476
477 for id in range(1,65): No newline at end of file
477 for id in range(1,65):
478 if id not in self.enaModules: No newline at end of file
478 if id not in self.enaModules:
479 continue No newline at end of file
479 continue
480 No newline at end of file
480
481 blockStr = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
481 blockStr = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
482 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n") No newline at end of file
482 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n")
483 #Using tx buffer No newline at end of file
483 #Using tx buffer
484 all_blocks = "".join(blockLst) No newline at end of file
484 all_blocks = "".join(blockLst)
485 No newline at end of file
485
486 return all_blocks No newline at end of file
486 return all_blocks
487 No newline at end of file
487
488 def getConnectionStatus(self, cmd): No newline at end of file
488 def getConnectionStatus(self, cmd):
489 No newline at end of file
489
490 ena = self.checkAntenna() No newline at end of file
490 ena = self.checkAntenna()
491 self.enaModules = ena No newline at end of file
491 self.enaModules = ena
492 No newline at end of file
492
493 blockLst = [] No newline at end of file
493 blockLst = []
494 No newline at end of file
494
495 for id in range(1,65): No newline at end of file
495 for id in range(1,65):
496 if id not in self.enaModules: No newline at end of file
496 if id not in self.enaModules:
497 continue No newline at end of file
497 continue
498 No newline at end of file
498
499 blockStr = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id) No newline at end of file
499 blockStr = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
500 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n") No newline at end of file
500 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n")
501 #Using tx buffer No newline at end of file
501 #Using tx buffer
502 self.tx_buffer = "".join(blockLst) No newline at end of file
502 self.tx_buffer = "".join(blockLst)
503 print self.tx_buffer No newline at end of file
503 print self.tx_buffer
504 No newline at end of file
504
505 return self.tx_buffer No newline at end of file
505 return self.tx_buffer
506 No newline at end of file
506
507 def __getControlModuleStatus_old(self, cmd, rx_buffer): No newline at end of file
507 def __getControlModuleStatus_old(self, cmd, rx_buffer):
508 No newline at end of file
508
509 all_blocks = "" No newline at end of file
509 all_blocks = ""
510 # enaModules = self.checkAntenna() No newline at end of file
510 # enaModules = self.checkAntenna()
511 # enaModules = [11,12,13,14] No newline at end of file
511 # enaModules = [11,12,13,14]
512 No newline at end of file
512
513 for id in range(1,65): No newline at end of file
513 for id in range(1,65):
514 if id not in self.enaModules: No newline at end of file
514 if id not in self.enaModules:
515 continue No newline at end of file
515 continue
516 No newline at end of file
516
517 one_block = self.__ConnectionWithControlModules(rx_buffer,cmd,id) No newline at end of file
517 one_block = self.__ConnectionWithControlModules(rx_buffer,cmd,id)
518 No newline at end of file
518
519 all_blocks = all_blocks + one_block No newline at end of file
519 all_blocks = all_blocks + one_block
520 #Using tx buffer No newline at end of file
520 #Using tx buffer
521 print all_blocks No newline at end of file
521 print all_blocks
522 self.tx_buffer = all_blocks No newline at end of file
522 self.tx_buffer = all_blocks
523 No newline at end of file
523
524 return all_blocks No newline at end of file
524 return all_blocks
525 No newline at end of file
525
526 def __StartingAutomaticControlModules(self): No newline at end of file
526 def __StartingAutomaticControlModules(self):
527 No newline at end of file
527
528 #Starting file No newline at end of file
528 #Starting file
529 self.__CreateFile("Monitoring.txt") No newline at end of file
529 self.__CreateFile("Monitoring.txt")
530 # data = "MOD.\t BITS\t\t PHASE\n" No newline at end of file
530 # data = "MOD.\t BITS\t\t PHASE\n"
531 # self.__writeFile("Monitoring.txt", data) No newline at end of file
531 # self.__writeFile("Monitoring.txt", data)
532 #Starting lists No newline at end of file
532 #Starting lists
533 self.txFile = list("------\n------\n------\n" for i in range(64)) No newline at end of file
533 self.txFile = list("------\n------\n------\n" for i in range(64))
534 self.rxFile = list("------\n------\n------\n" for i in range(64)) No newline at end of file
534 self.rxFile = list("------\n------\n------\n" for i in range(64))
535 self.bits = list("------\n------\n------\n" for i in range(64)) No newline at end of file
535 self.bits = list("------\n------\n------\n" for i in range(64))
536 self.phase = list("----- -----\n----- -----\n----- -----\n" for i in range(64)) No newline at end of file
536 self.phase = list("----- -----\n----- -----\n----- -----\n" for i in range(64))
537 self.test = list("------\n" for i in range(64)) No newline at end of file
537 self.test = list("------\n" for i in range(64))
538 No newline at end of file
538
539 def __AutomaticControlModules(self): No newline at end of file
539 def __AutomaticControlModules(self):
540 No newline at end of file
540
541 # cmd = "GETF" No newline at end of file
541 # cmd = "GETF"
542 # rx_buffer = "experimento1.ab1" + "\n" No newline at end of file
542 # rx_buffer = "experimento1.ab1" + "\n"
543 # self.__getFileFromModules(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
543 # self.__getFileFromModules(cmd = cmd, rx_buffer = rx_buffer)
544 # No newline at end of file
544 #
545 # print self.rxFile No newline at end of file
545 # print self.rxFile
546 No newline at end of file
546
547 cmd = "ANST" No newline at end of file
547 cmd = "ANST"
548 rx_buffer = "1" No newline at end of file
548 rx_buffer = "1"
549 self.__getControlModuleStatus(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
549 self.__getControlModuleStatus(cmd = cmd, rx_buffer = rx_buffer)
550 No newline at end of file
550
551 cmd = "LWPH" No newline at end of file
551 cmd = "LWPH"
552 rx_buffer = "0" No newline at end of file
552 rx_buffer = "0"
553 self.__getControlModuleLowPhase(cmd = cmd, rx_buffer = rx_buffer) No newline at end of file
553 self.__getControlModuleLowPhase(cmd = cmd, rx_buffer = rx_buffer)
554 print "Saving file..." No newline at end of file
554 print "Saving file..."
555 No newline at end of file
555
556 No newline at end of file
556
557 print self.bits No newline at end of file
557 print self.bits
558 print self.phase No newline at end of file
558 print self.phase
559 No newline at end of file
559
560 self.__WritingMonitoringFile() No newline at end of file
560 self.__WritingMonitoringFile()
561 No newline at end of file
561
562 threading.Timer(60, self.__AutomaticControlModules).start() No newline at end of file
562 threading.Timer(60, self.__AutomaticControlModules).start()
563 No newline at end of file
563
564 def __WritingMonitoringFile(self): No newline at end of file
564 def __WritingMonitoringFile(self):
565 filename = "Monitoring.txt" No newline at end of file
565 filename = "Monitoring.txt"
566 data = '===============================' + '\n' No newline at end of file
566 data = '===============================' + '\n'
567 self.__writeFile(filename, data) No newline at end of file
567 self.__writeFile(filename, data)
568 data = time.strftime('\t' + "%d%b%Y %I:%M:%S %p" + '\n', time.localtime()) No newline at end of file
568 data = time.strftime('\t' + "%d%b%Y %I:%M:%S %p" + '\n', time.localtime())
569 self.__writeFile(filename, data) No newline at end of file
569 self.__writeFile(filename, data)
570 data = "MOD.\t BITS\t\t PHASE\n" No newline at end of file
570 data = "MOD.\t BITS\t\t PHASE\n"
571 self.__writeFile(filename, data) No newline at end of file
571 self.__writeFile(filename, data)
572 data = '===============================' + '\n' No newline at end of file
572 data = '===============================' + '\n'
573 self.__writeFile(filename, data) No newline at end of file
573 self.__writeFile(filename, data)
574 for i in range(64): No newline at end of file
574 for i in range(64):
575 tmp = self.bits[i].split('\n',3) No newline at end of file
575 tmp = self.bits[i].split('\n',3)
576 self.__writeFile(filename, ' ' + str(i + 1) + '\t\t' + tmp[2]) No newline at end of file
576 self.__writeFile(filename, ' ' + str(i + 1) + '\t\t' + tmp[2])
577 tmp = self.phase[i].split('\n',3) No newline at end of file
577 tmp = self.phase[i].split('\n',3)
578 self.__writeFile(filename, '\t\t' + tmp[2] + '\n') No newline at end of file
578 self.__writeFile(filename, '\t\t' + tmp[2] + '\n')
579 No newline at end of file
579
580 No newline at end of file
580
581 if __name__ == '__main__': No newline at end of file
581 if __name__ == '__main__':
582 No newline at end of file
582
583 absObj = ABSServer() No newline at end of file
583 absObj = ABSServer()
584 No newline at end of file
584
585 while 1: No newline at end of file
585 while 1:
586 absObj.waitRequest() No newline at end of file
586 absObj.waitRequest()
General Comments 0
You need to be logged in to leave comments. Login now