import socket import time import math localIP = "192.168.2.147" #localIP = "192.168.1.138" localPort = 6454 bufferSize = 530 CAP_MINI_01 =b'\x42\x4D\x36\xAC\x00\x00\x00\x00\x00\x00\x36\x00\x00\x00\x28\x00\x00\x00\x39\x00\x00\x00\x00\x01\x00\x00\x01\x00\x18\x00\x00\x00\x00\x00\x00\xAC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' mode = 1 PARTS = 256 MAX_STRIPS_GROUP = 256 LEDS_TOTAL_1 = 57 LEDS_TOTAL_2 = 43 LEDS_TOTAL_3 = 29 LEDS_TOTAL_4 = 15 RANGE_1 = math.ceil(LEDS_TOTAL_1*3*PARTS/510) RANGE_2 = math.ceil(LEDS_TOTAL_2*3*PARTS/510) RANGE_3 = math.ceil(LEDS_TOTAL_3*3*PARTS/510) RANGE_4 = math.ceil(LEDS_TOTAL_4*3*PARTS/510) INI_UNIVERSE_1 = 0 INI_UNIVERSE_2 = RANGE_1 INI_UNIVERSE_3 = RANGE_1 + RANGE_2 INI_UNIVERSE_4 = RANGE_1 + RANGE_2 + RANGE_3 END_UNIVERSE = INI_UNIVERSE_4 + RANGE_4 ART_DMX = 0X5000 ART_NET_ID = "Art-Net" ART_DMX_START = 18 P01_numbers = [ [0 for i in range(530)] for j in range(RANGE_1) ] P02_numbers = [ [0 for i in range(530)] for j in range(RANGE_2) ] P03_numbers = [ [0 for i in range(530)] for j in range(RANGE_3) ] P04_numbers = [ [0 for i in range(530)] for j in range(RANGE_4) ] #mini01 = ("192.168.1.139", 6454) mini01 = ("192.168.2.10", 6454) mini02 = ("192.168.2.11", 6454) mini03 = ("192.168.2.12", 6454) mini04 = ("192.168.2.13", 6454) ##msgFromServer = "Hello UDP Client" ##bytesToSend = str.encode(msgFromServer) # Create a datagram socket UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) # Bind to address and ip UDPServerSocket.bind((localIP, localPort)) print("UDP server up and listening") # Listen for incoming datagrams while(True): bytesAddressPair = UDPServerSocket.recvfrom(bufferSize) message = bytesAddressPair[0] address = bytesAddressPair[1] clientMsg = "Message from Client:{}".format(message) msg = "{}".format(message) result = msg.find(ART_NET_ID) if (result>=0): opcode = message[8] | message[9] << 8 if (opcode == ART_DMX): incomingUniverse = message[14] | message[15] << 8 dmxDataLength = message[17] | message[16] << 8 #print("{f} found with universe: {u}, DataLength: {n}.".format(f=ART_NET_ID, u= incomingUniverse, n=dmxDataLength)) if mode==0: for i in range(dmxDataLength): if message[ART_DMX_START+i]!=P01_numbers[incomingUniverse][i]: P01_numbers[incomingUniverse] = message[ART_DMX_START:(dmxDataLength+ART_DMX_START)] ##Copia los 512 valores del ARRAY UDPServerSocket.sendto(message, mini01) #print("Sended") break elif mode==1: if incomingUniverse