From 2441ac1e2e82c964ea3272b1378f41330b7ee5f7 Mon Sep 17 00:00:00 2001 From: vanous Date: Sat, 23 Dec 2023 13:16:53 +0100 Subject: [PATCH] Improve Art-Net handling --- artnet.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/artnet.py b/artnet.py index 6ec87952..a702edec 100644 --- a/artnet.py +++ b/artnet.py @@ -57,20 +57,29 @@ def __init__(self, ip_addr, *args, **kwargs): self._socket.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) self._socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) self._socket.bind((ip_addr, ARTNET_PORT)) - self._socket.settimeout(30) + self._socket.settimeout(20) self._stopped = False def stop(self): try: self._socket.shutdown(SHUT_RDWR) except Exception as e: - print(e) - self._stopped = True + print("Error while stopping", e) + raise ValueError("Socket closing error") + finally: + self._stopped = True + def run(self): while not self._stopped: - data = self._socket.recv(1024) + data = b"" + try: + data = self._socket.recv(1024) + except Exception as e: + print(e) print("data", data) + if len(data) < 8: + continue if struct.unpack("!8s", data[:8])[0] != ArtnetPacket.ARTNET_HEADER: continue opcode = struct.unpack("