##// END OF EJS Templates
changes to integrate to the web interface
imanay -
r138:139
parent child
Show More
@@ -1,77 +1,86
1 import library3
1 import library3
2
2
3 class ABSClient:
3 class ABSClient:
4
4
5 def __init__(self,ipSource="192.168.1.117", iDSource="Clnt_01", ipDestino="192.168.1.117", iDDestino = "CeCnMod", portDestino=7000):
5 def __init__(self,ipSource="192.168.1.117", iDSource="Clnt_01", ipDestino="192.168.1.117", iDDestino = "CeCnMod", portDestino=7000):
6
6
7 self.ipSource = ipSource
7 self.ipSource = ipSource
8 self.iDSource = iDSource
8 self.iDSource = iDSource
9 self.ipDestino = ipDestino
9 self.ipDestino = ipDestino
10 self.iDDestino = iDDestino
10 self.iDDestino = iDDestino
11 self.portDestino = portDestino
11 self.portDestino = portDestino
12
12
13 self.createObjects()
13 self.createObjects()
14
14
15 def createObjects(self):
15 def createObjects(self):
16
16
17 self.commObj = library3.TCPComm(self.ipSource, self.iDSource, self.ipDestino, self.iDDestino, self.portDestino)
17 self.commObj = library3.TCPComm(self.ipSource, self.iDSource, self.ipDestino, self.iDDestino, self.portDestino)
18 self.wFiles = library3.FilesStuff()
18 # self.wFiles = library3.FilesStuff()
19
19
20 def __ConnectionWithCentralControl(self, cmd, data):
20 def __ConnectionWithCentralControl(self, cmd, data):
21
21
22 self.commObj.open_socket()
22 self.commObj.open_socket()
23 self.commObj.sendData(cmd = cmd, data = data, ipDestino = self.ipDestino)
23 self.commObj.sendData(cmd = cmd, data = data, ipDestino = self.ipDestino)
24 ipSource, ipDestino, cmd, output = self.commObj.waitData()
24 ipSource, ipDestino, cmd, output = self.commObj.waitData()
25 self.commObj.close_socket()
25 self.commObj.close_socket()
26
26
27 return output
27 return output
28
28
29 def abs2ControlModuleFormatFile(self, filename):
29 # def abs2ControlModuleFormatFile(self, filename):
30
30 #
31 #From matriz to control module format
31 # #From matriz to control module format
32 self.wFiles.toCentralControlFormat(filename)
32 # self.wFiles.toCentralControlFormat(filename)
33 FileName = "CentralControlFormat.txt"
33 # FileName = "CentralControlFormat.txt"
34 F_Obj = open(FileName,"r")
34 # F_Obj = open(FileName,"r")
35 FileList = F_Obj.readlines()
35 # FileList = F_Obj.readlines()
36 F_Obj.close()
36 # F_Obj.close()
37 FileStr = "".join(FileList)
37 # FileStr = "".join(FileList)
38
38 #
39 return FileStr
39 # return FileStr
40
40
41 def sendFile(self, filename):
41 def sendFile(self, filename):
42
42
43 data = self.abs2ControlModuleFormatFile(filename)
43 # data = self.abs2ControlModuleFormatFile(filename)
44
44 data = self.__readFile(filename)
45 self.__ConnectionWithCentralControl(cmd = "SNDF", data = data)
45 self.__ConnectionWithCentralControl(cmd = "SNDF", data = data)
46
46
47 def changeBeam(self, newBeam):
47 def changeBeam(self, newBeam):
48
48
49 self.__ConnectionWithCentralControl(cmd = "CHGB", data = newBeam)
49 self.__ConnectionWithCentralControl(cmd = "CHGB", data = newBeam)
50
50
51 def __writeFile(self, filename, data):
51 def __writeFile(self, filename, data):
52
52
53 fobj = open(filename,"w")
53 fobj = open(filename,"w")
54 fobj.writelines(data)
54 fobj.writelines(data)
55 fobj.close()
55 fobj.close()
56
57 def __readFile(self, filename):
58
59 fobj = open(filename,"r")
60 listData = fobj.readlines()
61 fobj.close()
62 data = "".join(listData)
63 return data
64
56
65
57 def getControlModuleStatus(self, data):
66 def getControlModuleStatus(self, data):
58
67
59 data = self.__ConnectionWithCentralControl(cmd = "ANST", data = data)
68 data = self.__ConnectionWithCentralControl(cmd = "ANST", data = data)
60 self.__writeFile("report.txt", data)
69 self.__writeFile("report.txt", data)
61
70
62 def getControlModulePhase(self, data):
71 def getControlModulePhase(self, data):
63
72
64 data = self.__ConnectionWithCentralControl(cmd = "ANPH", data = data)
73 data = self.__ConnectionWithCentralControl(cmd = "ANPH", data = data)
65 # self.__writeFile("report.txt", data)
74 # self.__writeFile("report.txt", data)
66
75
67 def getConnectionStatus(self):
76 def getConnectionStatus(self):
68
77
69 data = self.__ConnectionWithCentralControl(cmd = "NTST", data = "none")
78 data = self.__ConnectionWithCentralControl(cmd = "NTST", data = "none")
70 self.__writeFile("connection_status.txt", data)
79 self.__writeFile("connection_status.txt", data)
71
80
72 if __name__ == '__main__':
81 if __name__ == '__main__':
73
82
74 filename = "experimento1.abs"
83 filename = "experimento1.abs"
75
84
76 absObj = ABSClient()
85 absObj = ABSClient()
77 absObj.sendFile(filename)
86 absObj.sendFile(filename)
@@ -1,262 +1,287
1 import os
1 import os
2 import library3
2 import library3
3 import time
3 import time
4
4
5 class ABSServer:
5 class ABSServer:
6
6
7 def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000, ipDestino2="192.168.1.11", portDestino2=5500, rx_buffer = "default"):
7 def __init__(self,ipSource="localhost", ipDestino="192.168.1.117", portDestino=7000, ipDestino2="192.168.1.11", portDestino2=5500, rx_buffer = "default"):
8
8
9 self.ipSource = ipSource
9 self.ipSource = ipSource
10 self.ipDestino = ipDestino
10 self.ipDestino = ipDestino
11 self.portDestino = portDestino
11 self.portDestino = portDestino
12
12
13 self.ipDestino2 = ipDestino2
13 self.ipDestino2 = ipDestino2
14 self.portDestino2 = portDestino2
14 self.portDestino2 = portDestino2
15
15
16 self.tx_buffer = "default"
16 self.tx_buffer = "default"
17 # self.rx_buffer = "default"
17 # self.rx_buffer = "default"
18 self.rx_buffer = rx_buffer
18 self.rx_buffer = rx_buffer
19 self.enaModules = []
19 self.enaModules = []
20
20
21 self.createObjects()
21 self.createObjects()
22
22
23 def createObjects(self):
23 def createObjects(self):
24
24
25 asServer = True
25 asServer = True
26 self.commServerObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino, "CnMod01", self.portDestino, asServer)
26 self.commServerObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino, "CnMod01", self.portDestino, asServer)
27 self.commClientObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino2, "CnMod01", self.portDestino2)
27 self.commClientObj = library3.TCPComm("Central_Control", "CeCnMod", self.ipDestino2, "CnMod01", self.portDestino2)
28 self.wFiles = library3.FilesStuff()
28
29
29 def waitRequest(self):
30 def waitRequest(self):
30
31
31 #Using rx buffer
32 #Using rx buffer
32 ipSource, ipDestino, cmd, self.rx_buffer = self.commServerObj.waitData()
33 ipSource, ipDestino, cmd, self.rx_buffer = self.commServerObj.waitData()
33
34
34 if cmd == "SNDF":
35 if cmd == "SNDF":
35 datarpta = self.__sendFile2Modules(cmd = cmd)
36 datarpta = self.__sendFile2Modules(cmd = cmd)
36
37
37 if cmd == "CHGB":
38 if cmd == "CHGB":
38 datarpta = self.__changeBeam(cmd = cmd)
39 datarpta = self.__changeBeam(cmd = cmd)
39
40
40 if cmd == "ANST":
41 if cmd == "ANST":
41 self.__getControlModuleStatus(cmd = cmd)
42 self.__getControlModuleStatus(cmd = cmd)
42 #Using tx buffer
43 #Using tx buffer
43 datarpta = self.tx_buffer
44 datarpta = self.tx_buffer
44
45
45 if cmd == "ANPH":
46 if cmd == "ANPH":
46 self.__getControlModulePhase(cmd = cmd)
47 self.__getControlModulePhase(cmd = cmd)
47 #Using tx buffer
48 #Using tx buffer
48 datarpta = self.tx_buffer
49 datarpta = self.tx_buffer
49
50
50 if cmd == "NTST":
51 if cmd == "NTST":
51 #Using tx buffer
52 #Using tx buffer
52 datarpta = self.__getConnectionStatus(cmd = cmd)
53 datarpta = self.__getConnectionStatus(cmd = cmd)
53
54
54 self.commServerObj.sendData(cmd=cmd, data=datarpta, ipDestino = ipSource)
55 self.commServerObj.sendData(cmd=cmd, data=datarpta, ipDestino = ipSource)
55
56
56 def checkModule(self, address):
57 def checkModule(self, address):
57
58
58 cmd = "ping -c 1 -w 1 192.168.1."+ str(address) + " >> /dev/null"
59 cmd = "ping -c 1 -w 1 192.168.1."+ str(address) + " >> /dev/null"
59 status = os.system(cmd)
60 status = os.system(cmd)
60
61
61 if status == 256:
62 if status == 256:
62 return False
63 return False
63
64
64 return True
65 return True
65
66
66 def __writeReport(self, enaModules):
67 def __writeReport(self, enaModules):
67
68
68 status_array = ["Status of modules\n"]
69 status_array = ["Status of modules\n"]
69 status_array.append("----------------\n")
70 status_array.append("----------------\n")
70
71
71 for address in range(1,65):
72 for address in range(1,65):
72 if address in enaModules:
73 if address in enaModules:
73 status_array.append("192.168.1." + str(address) + " [1 1]\n")
74 status_array.append("192.168.1." + str(address) + " [1 1]\n")
74 else:
75 else:
75 status_array.append("192.168.1." + str(address) + " [0 0]\n")
76 status_array.append("192.168.1." + str(address) + " [0 0]\n")
76
77
77 f = open("module_status.txt","w")
78 filename = "module_status.txt"
78 f.writelines(status_array)
79 self.__writeFile(filename,status_array)
79 f.close()
80 # f = open("module_status.txt","w")
80
81 # f.writelines(status_array)
82 # f.close()
83
84
85 def __writeFile(self, filename, data):
86
87 fobj = open(filename,"w")
88 fobj.writelines(data)
89 fobj.close()
90
81 def checkAntenna(self):
91 def checkAntenna(self):
82
92
83 """
93 """
84 Direccion de los modulos de las antenas:
94 Direccion de los modulos de las antenas:
85
95
86 Norte : 01-16
96 Norte : 01-16
87 Este : 17-32
97 Este : 17-32
88 Oeste: : 33-48
98 Oeste: : 33-48
89 Sur : 49-64
99 Sur : 49-64
90
100
91 """
101 """
92
102
93 enaModules2 = []
103 enaModules2 = []
94
104
95 for address in range(1,65):
105 for address in range(1,65):
96 if self.checkModule(address):
106 if self.checkModule(address):
97 enaModules2.append(address)
107 enaModules2.append(address)
98
108
99 self.__writeReport(enaModules2)
109 self.__writeReport(enaModules2)
100 return enaModules2
110 return enaModules2
101
111
102 def __ConnectionWithControlModules(self,data,cmd,id):
112 def __ConnectionWithControlModules(self,data,cmd,id):
103
113
104 self.commClientObj.open_socket()
114 self.commClientObj.open_socket()
105 ip = "192.168.1." + str(id)
115 ip = "192.168.1." + str(id)
106 self.commClientObj.sendData(cmd, data, ip)
116 self.commClientObj.sendData(cmd, data, ip)
107 ipSource, ipDestino, cmd, tmp = self.commClientObj.waitData()
117 ipSource, ipDestino, cmd, tmp = self.commClientObj.waitData()
108 self.commClientObj.close_socket()
118 self.commClientObj.close_socket()
109
119
110 return tmp
120 return tmp
121
122 def abs2ControlModuleFormatFile(self, filename):
123
124 #From matriz to control module format
125 self.wFiles.toCentralControlFormat(filename)
126 FileName = "CentralControlFormat.txt"
127 F_Obj = open(FileName,"r")
128 FileList = F_Obj.readlines()
129 F_Obj.close()
130 FileStr = "".join(FileList)
131
132 return FileStr
111
133
112 def __All2Blocks(self,input):
134 def __All2Blocks(self,input):
113
135
114 rx_frame_lst = input.split('\n',2)
136 rx_frame_lst = input.split('\n',2)
115
137
116 header = rx_frame_lst[0] + "\n"
138 header = rx_frame_lst[0] + "\n"
117 control_modules_str = rx_frame_lst[2]
139 control_modules_str = rx_frame_lst[2]
118 control_modules_lst = control_modules_str.split("------\n")
140 control_modules_lst = control_modules_str.split("------\n")
119
141
120 return header, control_modules_lst
142 return header, control_modules_lst
121
143
122
144
123 def __sendFile2Modules(self,cmd):
145 def __sendFile2Modules(self,cmd):
124
146
147 filename = "tmp.txt"
148 self.__writeFile(filename,self.rx_buffer)
149 data = self.abs2ControlModuleFormatFile(filename)
125 #Needed for the loop
150 #Needed for the loop
126 header, control_modules_lst = self.__All2Blocks(self.rx_buffer)
151 header, control_modules_lst = self.__All2Blocks(data)
127 correct = 0
152 correct = 0
128
153
129 for id in range(1,65):
154 for id in range(1,65):
130
155
131 if id not in self.enaModules:
156 if id not in self.enaModules:
132 continue
157 continue
133
158
134 if self.__ConnectionWithControlModules(header + control_modules_lst[id-1], cmd, id) == "OK":
159 if self.__ConnectionWithControlModules(header + control_modules_lst[id-1], cmd, id) == "OK":
135 correct = correct + 1
160 correct = correct + 1
136
161
137 if correct == len(self.enaModules):
162 if correct == len(self.enaModules):
138 rpta = "OK"
163 rpta = "OK"
139 else:
164 else:
140 rpta = "Failure"
165 rpta = "Failure"
141
166
142 return rpta
167 return rpta
143
168
144 def __changeBeam(self, cmd):
169 def __changeBeam(self, cmd):
145
170
146 correct = 0
171 correct = 0
147 # enaModules = self.checkAntenna()
172 # enaModules = self.checkAntenna()
148 # enaModules = [11,12,13,14]
173 # enaModules = [11,12,13,14]
149
174
150 for id in range(1,65):
175 for id in range(1,65):
151 if id not in self.enaModules:
176 if id not in self.enaModules:
152 continue
177 continue
153
178
154 if self.__ConnectionWithControlModules(self.rx_buffer,cmd,id) == "OK":
179 if self.__ConnectionWithControlModules(self.rx_buffer,cmd,id) == "OK":
155 correct = correct + 1
180 correct = correct + 1
156
181
157 if correct == len(self.enaModules):
182 if correct == len(self.enaModules):
158 rpta = "OK"
183 rpta = "OK"
159 else:
184 else:
160 rpta = "Failure"
185 rpta = "Failure"
161
186
162 return rpta
187 return rpta
163
188
164 def __getControlModuleStatus(self, cmd):
189 def __getControlModuleStatus(self, cmd):
165
190
166 all_blocks = ""
191 all_blocks = ""
167 # enaModules = self.checkAntenna()
192 # enaModules = self.checkAntenna()
168 # enaModules = [11,12,13,14]
193 # enaModules = [11,12,13,14]
169
194
170 for id in range(1,65):
195 for id in range(1,65):
171 if id not in self.enaModules:
196 if id not in self.enaModules:
172 continue
197 continue
173
198
174 one_block = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
199 one_block = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
175
200
176 all_blocks = all_blocks + one_block
201 all_blocks = all_blocks + one_block
177 #Using tx buffer
202 #Using tx buffer
178 print all_blocks
203 print all_blocks
179 self.tx_buffer = all_blocks
204 self.tx_buffer = all_blocks
180
205
181 def __getControlModulePhase(self, cmd):
206 def __getControlModulePhase(self, cmd):
182
207
183 all_blocks = ""
208 all_blocks = ""
184 # enaModules = self.checkAntenna()
209 # enaModules = self.checkAntenna()
185 # enaModules = [11,12,13,14]
210 # enaModules = [11,12,13,14]
186
211
187 for id in range(1,65):
212 for id in range(1,65):
188 if id not in self.enaModules:
213 if id not in self.enaModules:
189 continue
214 continue
190
215
191 one_block = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
216 one_block = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
192
217
193 all_blocks = all_blocks + one_block
218 all_blocks = all_blocks + one_block
194 #Using tx buffer
219 #Using tx buffer
195 print all_blocks
220 print all_blocks
196 self.tx_buffer = all_blocks
221 self.tx_buffer = all_blocks
197
222
198 def __getConnectionStatus(self, cmd):
223 def __getConnectionStatus(self, cmd):
199
224
200 ena = self.checkAntenna()
225 ena = self.checkAntenna()
201 print ena
226 print ena
202 self.enaModules = ena
227 self.enaModules = ena
203
228
204 blockLst = []
229 blockLst = []
205
230
206 for id in range(1,65):
231 for id in range(1,65):
207 if id not in self.enaModules:
232 if id not in self.enaModules:
208 continue
233 continue
209
234
210 blockStr = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
235 blockStr = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
211 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n")
236 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n")
212 #Using tx buffer
237 #Using tx buffer
213 self.tx_buffer = "".join(blockLst)
238 self.tx_buffer = "".join(blockLst)
214 print self.tx_buffer
239 print self.tx_buffer
215
240
216 return self.tx_buffer
241 return self.tx_buffer
217
242
218 def getConnectionStatus(self, cmd):
243 def getConnectionStatus(self, cmd):
219
244
220 ena = self.checkAntenna()
245 ena = self.checkAntenna()
221 self.enaModules = ena
246 self.enaModules = ena
222
247
223 blockLst = []
248 blockLst = []
224
249
225 for id in range(1,65):
250 for id in range(1,65):
226 if id not in self.enaModules:
251 if id not in self.enaModules:
227 continue
252 continue
228
253
229 blockStr = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
254 blockStr = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
230 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n")
255 blockLst.append(blockStr + ", 192.168.1." + str(id) + "\n")
231 #Using tx buffer
256 #Using tx buffer
232 self.tx_buffer = "".join(blockLst)
257 self.tx_buffer = "".join(blockLst)
233 print self.tx_buffer
258 print self.tx_buffer
234
259
235 return self.tx_buffer
260 return self.tx_buffer
236
261
237 def getControlModuleStatus(self, cmd):
262 def getControlModuleStatus(self, cmd):
238
263
239 all_blocks = ""
264 all_blocks = ""
240 # enaModules = self.checkAntenna()
265 # enaModules = self.checkAntenna()
241 # enaModules = [11,12,13,14]
266 # enaModules = [11,12,13,14]
242
267
243 for id in range(1,65):
268 for id in range(1,65):
244 if id not in self.enaModules:
269 if id not in self.enaModules:
245 continue
270 continue
246
271
247 one_block = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
272 one_block = self.__ConnectionWithControlModules(self.rx_buffer,cmd,id)
248
273
249 all_blocks = all_blocks + one_block
274 all_blocks = all_blocks + one_block
250 #Using tx buffer
275 #Using tx buffer
251 print all_blocks
276 print all_blocks
252 self.tx_buffer = all_blocks
277 self.tx_buffer = all_blocks
253
278
254 return all_blocks
279 return all_blocks
255
280
256
281
257 if __name__ == '__main__':
282 if __name__ == '__main__':
258
283
259 absObj = ABSServer()
284 absObj = ABSServer()
260
285
261 while 1:
286 while 1:
262 absObj.waitRequest() No newline at end of file
287 absObj.waitRequest()
General Comments 0
You need to be logged in to leave comments. Login now