Merge pull request #688 from rprinz08/master

Fix check for wrong named attributes
This commit is contained in:
enjoy-digital 2020-11-09 11:22:08 +01:00 committed by GitHub
commit ecaf69fe78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 15 deletions

View File

@ -18,13 +18,14 @@ class CommUDP:
self.debug = debug self.debug = debug
def open(self): def open(self):
if hasattr(self, "tx_socket"): if hasattr(self, "socket"):
return return
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.bind(("", self.port)) self.socket.bind(("", self.port))
self.socket.settimeout(1)
def close(self): def close(self):
if not hasattr(self, "tx_socket"): if not hasattr(self, "socket"):
return return
self.socket.close() self.socket.close()
del self.socket del self.socket
@ -39,16 +40,23 @@ class CommUDP:
packet = EtherbonePacket() packet = EtherbonePacket()
packet.records = [record] packet.records = [record]
packet.encode() packet.encode()
self.socket.sendto(bytes(packet), (self.server, self.port))
datas, dummy = self.socket.recvfrom(8192) try:
packet = EtherbonePacket(datas) self.socket.sendto(bytes(packet), (self.server, self.port))
packet.decode()
datas = packet.records.pop().writes.get_datas() datas, dummy = self.socket.recvfrom(8192)
if self.debug: packet = EtherbonePacket(datas)
for i, value in enumerate(datas): packet.decode()
print("read {:08x} @ {:08x}".format(value, addr + 4*i)) datas = packet.records.pop().writes.get_datas()
return datas[0] if length is None else datas if self.debug:
for i, value in enumerate(datas):
print("read {:08x} @ {:08x}".format(value, addr + 4*i))
return datas[0] if length is None else datas
except Exception as ex:
print("commUDP read: exception ({})".format(ex))
self.close()
self.open()
return []
def write(self, addr, datas): def write(self, addr, datas):
datas = datas if isinstance(datas, list) else [datas] datas = datas if isinstance(datas, list) else [datas]
@ -60,8 +68,15 @@ class CommUDP:
packet = EtherbonePacket() packet = EtherbonePacket()
packet.records = [record] packet.records = [record]
packet.encode() packet.encode()
self.socket.sendto(bytes(packet), (self.server, self.port))
if self.debug: try:
for i, value in enumerate(datas): self.socket.sendto(bytes(packet), (self.server, self.port))
print("write {:08x} @ {:08x}".format(value, addr + 4*i))
if self.debug:
for i, value in enumerate(datas):
print("write {:08x} @ {:08x}".format(value, addr + 4*i))
except Exception as ex:
print("commUDP write: exception ({})".format(ex))
self.close()
self.open()