From d03582097e91103c1224fb0b634c8fb0b2d8f5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ebbe=20Ba=C3=9F?= Date: Tue, 13 Feb 2024 14:08:23 +0100 Subject: [PATCH] added debug script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ebbe Baß --- server/exampleReceiver.py | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 server/exampleReceiver.py diff --git a/server/exampleReceiver.py b/server/exampleReceiver.py new file mode 100644 index 0000000..aa9484a --- /dev/null +++ b/server/exampleReceiver.py @@ -0,0 +1,56 @@ +import time +import sys +import python_artnet as Artnet +import netifaces + +def get_eth0_ip(): + try: + # Get the IP address of the eth0 interface + eth0_ip = netifaces.ifaddresses('eth0')[netifaces.AF_INET][0]['addr'] + return str(eth0_ip) + except (KeyError, IndexError, OSError) as e: + print(f"Error getting eth0 IP: {e}") + return None + +debug = True + +# What DMX channels we want to listen to +dmxChannels = [1,2,3,4,5,6] + +### ArtNet Config ### +artnetBindIp = str(get_eth0_ip) +artnetUniverse = 0 + +### Art-Net Setup ### +# Sets debug in Art-Net module. +# Creates Artnet socket on the selected IP and Port +artNet = Artnet.Artnet(artnetBindIp, DEBUG=debug) + +while True: + try: + # Gets whatever the last Art-Net packet we received is + artNetPacket = artNet.readPacket() + # Make sure we actually *have* a packet + if artNetPacket is not None and artNetPacket.data is not None: + # Checks to see if the current packet is for the specified DMX Universe + if artNetPacket.universe == artnetUniverse: + # Stores the packet data array + dmxPacket = artNetPacket.data + + # Then print out the data from each channel + print("Received data: ", end="") + for i in dmxChannels: + # Lists in python start at 0, so to access a specific DMX channel you have to subtract one + print(dmxPacket[i-1], end=" ") + + # Print a newline so things look nice :) + print("") + + time.sleep(0.1) + + except KeyboardInterrupt: + break + +# Close the various connections cleanly so nothing explodes :) +artNet.close() +sys.exit() \ No newline at end of file