##// END OF EJS Templates
imanay -
r55:56
parent child
Show More
@@ -1,100 +1,100
1 1 #import tftpy No newline at end of file
2 2 import socket No newline at end of file
3 3 No newline at end of file
4 4 class UDPComm: No newline at end of file
5 5 No newline at end of file
6 6 __HEADER = "ABS" No newline at end of file
7 7 No newline at end of file
8 8 def __init__(self, ipSource, ipDestino, portDestino, asServer=False): No newline at end of file
9 9 No newline at end of file
10 10 self.ipSource = ipSource No newline at end of file
11 11 self.ipDestino = ipDestino No newline at end of file
12 12 self.portDestino = portDestino No newline at end of file
13 13 self.addr = (ipDestino,portDestino) No newline at end of file
14 14 self.answer = ipDestino #test No newline at end of file
15 15 self.mode = "none" No newline at end of file
16 16 No newline at end of file
17 17 self.openSocket(asServer) No newline at end of file
18 18 No newline at end of file
19 19 def openSocket(self, asServer): No newline at end of file
20 20 No newline at end of file
21 21 #self.socket_c = socket.socket(AF_INET,SOCK_DGRAM) No newline at end of file
22 22 self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,0) No newline at end of file
23 23 # self.socket_c.connect((self.ipDestino, self.portDestino)) No newline at end of file
24 24 No newline at end of file
25 25 if asServer: No newline at end of file
26 26 self.configAsServer() No newline at end of file
27 27 self.mode = "server" No newline at end of file
28 28 else: No newline at end of file
29 29 self.configAsClient() No newline at end of file
30 30 self.mode = "client" No newline at end of file
31 31 No newline at end of file
32 32 def configAsClient(self): No newline at end of file
33 33 #Configurar broadcast No newline at end of file
34 34 self.socket_c.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) No newline at end of file
35 35 No newline at end of file
36 36 def configAsServer(self): No newline at end of file
37 37 No newline at end of file
38 38 self.socket_c.bind(self.addr) No newline at end of file
39 39 print "\nServer initialized" No newline at end of file
40 40 No newline at end of file
41 41 def waitData(self, nbytes = 16384): No newline at end of file
42 42 No newline at end of file
43 43 print "\nWaiting some data" No newline at end of file
44 44 trama_rx, self.answer = self.socket_c.recvfrom(nbytes)
45 No newline at end of file
45 print "\nThis socket has received some data" No newline at end of file
46 46 print self.answer No newline at end of file
47 47 ipSource, ipDestino, cmd, data = self.__getTrama(trama_rx) No newline at end of file
48 48 No newline at end of file
49 49 return ipSource, ipDestino, cmd, data No newline at end of file
50 50 No newline at end of file
51 51 def sendData(self, cmd, data): No newline at end of file
52 52 No newline at end of file
53 53 if self.portDestino == 7000: No newline at end of file
54 54 trama_tx = self.__HEADER + ":" + str(self.ipSource) + ":" + str(self.ipDestino) + ":" + str(cmd) + ":" + str(data) + ":" No newline at end of file
55 55 else: No newline at end of file
56 56 trama_tx = data No newline at end of file
57 57 No newline at end of file
58 58 if self.mode == "client": No newline at end of file
59 59 destiny = self.addr No newline at end of file
60 60 else: No newline at end of file
61 61 destiny = self.answer No newline at end of file
62 62 # Send messages No newline at end of file
63 63 if(self.socket_c.sendto(trama_tx, destiny)):
64 No newline at end of file
64 print "Sending message:[" + trama_tx + "]" No newline at end of file
65 65 No newline at end of file
66 66 def __getTrama(self, trama): No newline at end of file
67 67 No newline at end of file
68 68 FrameList = trama.split(':') No newline at end of file
69 69 No newline at end of file
70 70 header = FrameList[0] No newline at end of file
71 71 ipSource = FrameList[1] No newline at end of file
72 72 ipDestino = FrameList[2] No newline at end of file
73 73 cmd = FrameList[3] No newline at end of file
74 74 data = FrameList[4] No newline at end of file
75 75 trash = FrameList[5] No newline at end of file
76 76 No newline at end of file
77 77 return ipSource, ipDestino, cmd, data No newline at end of file
78 78 No newline at end of file
79 79 #class FTPComm: No newline at end of file
80 80 # No newline at end of file
81 81 # ftp_servidor = 'ftp.servidor.com' No newline at end of file
82 82 # ftp_usuario = 'miusuario' No newline at end of file
83 83 # ftp_clave = 'miclave' No newline at end of file
84 84 # ftp_raiz = '/public_html' No newline at end of file
85 85 # No newline at end of file
86 86 # def __init__(self): No newline at end of file
87 87 # No newline at end of file
88 88 # self.client = tftpy.TftpClient(self.ftp_servidor, '69') No newline at end of file
89 89 # No newline at end of file
90 90 # No newline at end of file
91 91 # def sendFile(self, filename): No newline at end of file
92 92 # No newline at end of file
93 93 # self.client.upload(filename) No newline at end of file
94 94 # No newline at end of file
95 95 #if __name__ == '__main__': No newline at end of file
96 96 # No newline at end of file
97 97 # obj = FTPComm() No newline at end of file
98 98 No newline at end of file
99 99 No newline at end of file
100 100 No newline at end of file
@@ -1,282 +1,280
1 1 import os No newline at end of file
2 2 import library No newline at end of file
3 3 import time No newline at end of file
4 4 No newline at end of file
5 5 class ABSServer: No newline at end of file
6 6 No newline at end of file
7 7 def __init__(self,ipSource="localhost", ipDestino="192.168.1.255", portDestino=7000, ipDestino2="192.168.1.255", portDestino2=5500, ftpPortDestino=None): No newline at end of file
8 8 No newline at end of file
9 9 self.ipSource = ipSource No newline at end of file
10 10 self.ipDestino = ipDestino No newline at end of file
11 11 self.portDestino = portDestino No newline at end of file
12 12 No newline at end of file
13 13 self.ipDestino2 = ipDestino2 No newline at end of file
14 14 self.portDestino2 = portDestino2 No newline at end of file
15 15 No newline at end of file
16 16 self.ftpPortDestino = ftpPortDestino No newline at end of file
17 17 self.experiment_name = "default" No newline at end of file
18 18 self.tx_buffer = "default" No newline at end of file
19 19 No newline at end of file
20 20 self.createObjects() No newline at end of file
21 21 No newline at end of file
22 22 def createObjects(self): No newline at end of file
23 23 No newline at end of file
24 24 asServer = True No newline at end of file
25 25 self.commServerObj = library.UDPComm(self.ipSource, self.ipDestino, self.portDestino, asServer) No newline at end of file
26 26 self.commClientObj = library.UDPComm(self.ipSource, self.ipDestino2, self.portDestino2) No newline at end of file
27 27 #self.ftpCommObj = library.FTPComm(self.ipSource, self.ipDestino, self.ftpPortDestino) No newline at end of file
28 28 No newline at end of file
29 29 No newline at end of file
30 30 def waitRequest(self): No newline at end of file
31 31 No newline at end of file
32 32 ipSource, ipDestino, cmd, self.datarx = self.commServerObj.waitData() No newline at end of file
33 33 No newline at end of file
34 34 datarpta = "OK" No newline at end of file
35 35 No newline at end of file
36 36 if cmd == "SNDF": No newline at end of file
37 37 self.sendFile2Modules() No newline at end of file
38 38 No newline at end of file
39 39 if cmd == "CHGB": No newline at end of file
40 40 self.changeBeam() No newline at end of file
41 41 No newline at end of file
42 42 if cmd == "ANST": No newline at end of file
43 43 self.getStatus(mode=3) No newline at end of file
44 44 datarpta = self.tx_buffer No newline at end of file
45 45 No newline at end of file
46 46 self.commServerObj.sendData(cmd=cmd, data=datarpta) No newline at end of file
47 47 No newline at end of file
48 48 def checkModule(self, address): No newline at end of file
49 49 No newline at end of file
50 50 cmd = "ping -c 1 -w 1 192.168.1."+ str(address) + " >> /dev/null" No newline at end of file
51 51 status = os.system(cmd) No newline at end of file
52 52 No newline at end of file
53 53 if status == 256: No newline at end of file
54 54 return False No newline at end of file
55 55 No newline at end of file
56 56 return True No newline at end of file
57 57 No newline at end of file
58 58 def __writeReport(self, enaModules): No newline at end of file
59 59 No newline at end of file
60 60 status_array = ["Status of modules\n"] No newline at end of file
61 61 status_array.append("----------------\n") No newline at end of file
62 62 No newline at end of file
63 63 for address in range(1,65): No newline at end of file
64 64 if address in enaModules: No newline at end of file
65 65 # status_array.append("192.168.1." + str(base + i + 1) + " [1 1]\n") No newline at end of file
66 66 status_array.append("192.168.1." + str(address) + " [1 1]\n") No newline at end of file
67 67 else: No newline at end of file
68 68 status_array.append("192.168.1." + str(address) + " [0 0]\n") No newline at end of file
69 69 No newline at end of file
70 70 f = open("module_status.txt","w") No newline at end of file
71 71 f.writelines(status_array) No newline at end of file
72 72 f.close() No newline at end of file
73 73 No newline at end of file
74 74 def checkAntenna(self): No newline at end of file
75 75 No newline at end of file
76 76 """ No newline at end of file
77 77 Direccion de los modulos de las antenas: No newline at end of file
78 78 No newline at end of file
79 79 Norte : 01-16 No newline at end of file
80 80 Este : 17-32 No newline at end of file
81 81 Oeste: : 33-48 No newline at end of file
82 82 Sur : 49-64 No newline at end of file
83 83 No newline at end of file
84 84 """ No newline at end of file
85 85 No newline at end of file
86 86 enaModules = [] No newline at end of file
87 87 No newline at end of file
88 88 for address in range(1,65): No newline at end of file
89 89 if self.checkModule(address): No newline at end of file
90 90 enaModules.append(address) No newline at end of file
91 91 No newline at end of file
92 92 self.__writeReport(enaModules) No newline at end of file
93 93 return enaModules No newline at end of file
94 94 No newline at end of file
95 95 def sendFile2Modules(self): No newline at end of file
96 96 No newline at end of file
97 97 #Needed for the loop No newline at end of file
98 98 rx_frame_list = self.datarx.split('\n',2) No newline at end of file
99 99
100 No newline at end of file
100 experiment_name = rx_frame_list[0] No newline at end of file
101 101 experiment_number = rx_frame_list[1] No newline at end of file
102 102 str_control_modules = rx_frame_list[2] No newline at end of file
103 103 No newline at end of file
104 104 lst_control_modules = str_control_modules.split("------\n") No newline at end of file
105 105 No newline at end of file
106 106 enaModules = self.checkAntenna() No newline at end of file
107 107 No newline at end of file
108 108 for address in range(1,65): No newline at end of file
109 109 No newline at end of file
110 110 if address not in enaModules: No newline at end of file
111 111 continue No newline at end of file
112 112
113 No newline at end of file
113 self.__writeModuleFile(experiment_name, lst_control_modules[address-1])
No newline at end of file
114 No newline at end of file
114
No newline at end of file
115 No newline at end of file
115 cmd = "tftp -m binary 192.168.1."+ str(address) +" 69 -c put " + experiment_name No newline at end of file
116 116 print cmd No newline at end of file
117 117 os.system(cmd)
No newline at end of file
118
No newline at end of file
119 self.experiment_name = experiment_name No newline at end of file
120 118 No newline at end of file
121 119 self.__loadFile() No newline at end of file
122 120 No newline at end of file
123 121 def __writeModuleFile(self, filename, str): No newline at end of file
124 122 No newline at end of file
125 123 fobj = open(filename,"w") No newline at end of file
126 124 fobj.write(filename + "\n") No newline at end of file
127 125 fobj.write("------\n") No newline at end of file
128 126 fobj.write(str) No newline at end of file
129 127 fobj.write("------\n") No newline at end of file
130 128 fobj.close() No newline at end of file
131 129 No newline at end of file
132 130 def __readModuleFile(self, filename): No newline at end of file
133 131 No newline at end of file
134 132 fobj1 = open(filename,"r") No newline at end of file
135 133 file_list_1 = fobj1.readlines() No newline at end of file
136 134 fobj1.close() No newline at end of file
137 135 content_str = ''.join(file_list_1[2:-1]) No newline at end of file
138 136 No newline at end of file
139 137 return content_str No newline at end of file
140 138 No newline at end of file
141 139 def __loadFile(self): No newline at end of file
142 140 No newline at end of file
143 141 #Working with the UDP socket No newline at end of file
144 142 self.commClientObj.sendData("none", "CARGA:" + self.experiment_name + ":") No newline at end of file
145 143 self.commClientObj.sendData("none", "CAMBIA:0:") No newline at end of file
146 144 No newline at end of file
147 145 def changeBeam(self): No newline at end of file
148 146 No newline at end of file
149 147 #rpta = self.commClientObj.sendTxRxCommand(cmd='CAMBIA', data="0") No newline at end of file
150 148 self.commClientObj.sendData("CAMBIA:" + self.datarx + ":") No newline at end of file
151 149 No newline at end of file
152 150 def getStatus(self,mode): No newline at end of file
153 151 No newline at end of file
154 152 if mode == 1: No newline at end of file
155 153 self.__getStsMode1() No newline at end of file
156 154 elif mode == 2: No newline at end of file
157 155 self.__getStsMode2() No newline at end of file
158 156 else: No newline at end of file
159 157 self.__getStsMode3() No newline at end of file
160 158 No newline at end of file
161 159 No newline at end of file
162 160 def __getStsMode1(self): No newline at end of file
163 161 #rpta = self.commClientObj.sendTxRxCommand(cmd='CHEQUEO', data="0") No newline at end of file
164 162 self.commClientObj.sendData("CHEQUEO:" + self.datarx + ":") No newline at end of file
165 163 seconds = int (self.datarx) No newline at end of file
166 164 # Give 5 seconds to the control modules No newline at end of file
167 165 time.sleep(seconds) No newline at end of file
168 166 # Checking the module connection No newline at end of file
169 167 module_list = self.connection_status(10) No newline at end of file
170 168 #Generating the complete report No newline at end of file
171 169 module = 1 No newline at end of file
172 170 number_of_modules = 16 No newline at end of file
173 171 filename1 = "Verificacion" No newline at end of file
174 172 filename2 = "report.txt" No newline at end of file
175 173 fobj2 = open(filename2,"w") No newline at end of file
176 174 fobj2.write("Verification_file\n") No newline at end of file
177 175 fobj2.write("-----------------\n") No newline at end of file
178 176 fobj2.close() No newline at end of file
179 177 while module <= number_of_modules: No newline at end of file
180 178 if module_list[module -1] == "1": No newline at end of file
181 179 #Preparing and doing the tftp command No newline at end of file
182 180 cmd = "tftp -m binary 192.168.1."+ str(base + module) +" 69 -c get " + filename1 No newline at end of file
183 181 print cmd No newline at end of file
184 182 os.system(cmd) No newline at end of file
185 183 # Getting data from the control module file No newline at end of file
186 184 fobj1 = open(filename1,"r") No newline at end of file
187 185 file_list_1 = fobj1.readlines() No newline at end of file
188 186 fobj1.close() No newline at end of file
189 187 content = file_list_1[2:-1] No newline at end of file
190 188 # No newline at end of file
191 189 fobj2 = open(filename2,"a") No newline at end of file
192 190 if base == 10: No newline at end of file
193 191 fobj2.write("S" + str(module) + "\n") No newline at end of file
194 192 else: No newline at end of file
195 193 fobj2.write("N" + str(module) + "\n") No newline at end of file
196 194 fobj2.writelines(content) No newline at end of file
197 195 fobj2.write("------\n") No newline at end of file
198 196 fobj2.close() No newline at end of file
199 197 module = module + 1 No newline at end of file
200 198 No newline at end of file
201 199 def __getStsMode2(self): No newline at end of file
202 200 No newline at end of file
203 201 #rpta = self.commClientObj.sendTxRxCommand(cmd='CHEQUEO', data="0") No newline at end of file
204 202 self.commClientObj.sendData("CHEQUEO:" + self.datarx + ":") No newline at end of file
205 203 seconds = int (self.datarx) No newline at end of file
206 204 # Give 5 seconds to the control modules No newline at end of file
207 205 time.sleep(seconds) No newline at end of file
208 206 # Checking the module connection No newline at end of file
209 207 enaModules = self.checkAntenna() No newline at end of file
210 208 #Generating the complete report No newline at end of file
211 209 filename1 = "Verificacion" No newline at end of file
212 210 line1 = "Verification_file\n" No newline at end of file
213 211 line2 = "-----------------\n" No newline at end of file
214 212 report_list = [line1, line2] No newline at end of file
215 213 No newline at end of file
216 214 for address in range(1,65): No newline at end of file
217 215 No newline at end of file
218 216 if address not in enaModules: No newline at end of file
219 217 continue No newline at end of file
220 218 #Preparing and doing the tftp command No newline at end of file
221 219 cmd = "tftp -m binary 192.168.1."+ str(address) +" 69 -c get " + filename1 No newline at end of file
222 220 print cmd No newline at end of file
223 221 os.system(cmd) No newline at end of file
224 222 #Sub_header No newline at end of file
225 223 report_list.append("ABS_" + str(address) + "\n") No newline at end of file
226 224 # Content No newline at end of file
227 225 fobj1 = open(filename1,"r") No newline at end of file
228 226 file_list_1 = fobj1.readlines() No newline at end of file
229 227 fobj1.close() No newline at end of file
230 228 content = ''.join(file_list_1[2:-1]) No newline at end of file
231 229 report_list.append(content) No newline at end of file
232 230 #Ending No newline at end of file
233 231 report_list.append("------\n") No newline at end of file
234 232 #print "\nFinalizado" No newline at end of file
235 233 self.tx_buffer = ''.join(report_list) No newline at end of file
236 234 No newline at end of file
237 235 def __AddingHeader(self,content_list, title): No newline at end of file
238 236 No newline at end of file
239 237 line1 = title + "\n" No newline at end of file
240 238 line2 = "-----------------\n" No newline at end of file
241 239 header_list = [line1, line2] No newline at end of file
242 240 verification_list = header_list + content_list No newline at end of file
243 241 # Arming the frame No newline at end of file
244 242 self.tx_buffer = ''.join(verification_list) No newline at end of file
245 243 No newline at end of file
246 244 def __getModuleFile(self, filename): No newline at end of file
247 245 No newline at end of file
248 246 enaModules = self.checkAntenna() No newline at end of file
249 247 content_list = [] No newline at end of file
250 248 for address in range(1,65): No newline at end of file
251 249 No newline at end of file
252 250 if address not in enaModules: No newline at end of file
253 251 continue No newline at end of file
254 252 #Preparing and doing the tftp command No newline at end of file
255 253 cmd = "tftp -m binary 192.168.1."+ str(address) +" 69 -c get " + filename No newline at end of file
256 254 print cmd No newline at end of file
257 255 os.system(cmd) No newline at end of file
258 256 #Sub_header No newline at end of file
259 257 content_list.append("ABS_" + str(address) + "\n") No newline at end of file
260 258 # From module file to list No newline at end of file
261 259 content_str = self.__readModuleFile(filename) No newline at end of file
262 260 content_list.append(content_str) No newline at end of file
263 261 content_list.append("------\n") No newline at end of file
264 262 No newline at end of file
265 263 self.__AddingHeader(content_list, title = "Verification_file") No newline at end of file
266 264 No newline at end of file
267 265 def __getStsMode3(self): No newline at end of file
268 266 No newline at end of file
269 267 self.commClientObj.sendData("CHEQUEO:" + self.datarx + ":") No newline at end of file
270 268 seconds = int (self.datarx) No newline at end of file
271 269 # Give 5 seconds to the control modules No newline at end of file
272 270 time.sleep(seconds) No newline at end of file
273 271 No newline at end of file
274 272 self.__getModuleFile(filename = "Verificacion") No newline at end of file
275 273 No newline at end of file
276 274 No newline at end of file
277 275 if __name__ == '__main__': No newline at end of file
278 276 No newline at end of file
279 277 absObj = ABSServer() No newline at end of file
280 278 No newline at end of file
281 279 while 1: No newline at end of file
282 280 absObj.waitRequest() No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now