jukebox-software/udp_send_test.py

58 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
import sacn
import time
ipaddr = "192.168.68.130"
sender = None
data = None
start = time.time()
def init():
global sender
global data
sender = sacn.sACNsender(universeDiscovery=False)
sender.start() # start the sending thread
sender.activate_output(2) # start sending out data
sender[2].destination = ipaddr
sender.manual_flush = True
# initialize global pixel data list
data = list()
for x in range(170):
data.append((1,2,3)) # some random data
def fastsendall(datain):
# send all LED data to all controllers
# data must have all LED data in it as [(R,G,B,)] tuples in an array, 1 tuple per pixel
global sender
sender[2].dmx_data = list(sum(datain[0:170] , ())) # flatten the subsection of the data array
sender.flush()
def close():
global sender
time.sleep(0.5)
sender.stop()
def send_fps(fps=140):
global start
while time.time() - start < 1/fps:
time.sleep(0.00001)
print("FPS:", 1 / (time.time() - start))
start = time.time()
global data
fastsendall(data)
if __name__ == "__main__":
init()
while True:
send_fps()
time.sleep(1)
close()
#sys.exit(0)