def send(self, data): scr = RDLaser.checksum(RDLaser.scramblestr(data)) if self.debug: print u"\x1B[42m> " + self.addr + ": " + ( scr.encode("hex")) + u"\x1B[0m - " + data.encode("HEX") RDLaser.getClient().sendto(scr, (self.addr, RDLaser.SERVER_PORT)) data, server_addr = self.recv() if (data != '\xc6'): return False return True
def send(self, addr, data): scr = RDLaser.scramblestr(data) if self.debug: if data[:3] == u"\xe8\x01\x00": uns = str(ord(data[3])) + " - " + data[4:-1] else: uns = data.encode("HEX") print u"\x1B[32m> " + addr + ": " + ( scr.encode("hex")) + u"\x1B[0m - " + uns RDLaser.getServer().sendto(scr, (addr, RDLaser.CLIENT_PORT))
def recv(self): data, addr = RDLaser.getServer().recvfrom(RDLaser.BUF_SIZE) if data[:2] != RDLaser.checksum(data[2:])[:2]: print data[0:2].encode("HEX") if self.debug: print(u"\x1B[31mCHECKSUM MISMATCH\x1B[0m") return ("", addr) data = RDLaser.descramblestr(data[2:]) if self.debug: print(u"\x1B[34m< " + addr[0] + ": " + RDLaser.scramblestr(data).encode("HEX") + u"\x1B[0m - " + data.encode("HEX")) self.send(addr[0], '\xcc') #send ACK return (data, addr)