class DmxOutput(BaseInterface): def __init__(self, portname): super().__init__("DMX out", "green") self.portname = portname self.serialok = False self.test = False def listen(self): while self.isRunning() and not self.serialok: try: port = get_port_by_serial_number(self.portname) self.log("Starting DMX sender on port", port) self.dmx = Controller(port) self.serialok = True except: self.log("ERROR: ", self.portname, "not found.. retrying") time.sleep(5) self.stopped.wait() # i = 0 # while self.isRunning(): # if not self.test: # time.sleep(0.2) # else: # i = (i+1)%2 # if i % 2: # self.dmx.set_channel(1, 255) # else: # self.dmx.set_channel(1, 128) # self.dmx.submit() # time.sleep(1) # for i in range(256): # self.set_channel(1, i) # self.submit() # time.sleep(0.02) # for i in range(256): # self.set_channel(1, 255-i) # self.submit() # time.sleep(0.02) def setBuffer(self, buffer): for i in range(min(512, len(buffer))): if i > 0: self.dmx.set_channel(i, buffer[i]) self.dmx.submit()
''' sudo pip install DMXEnttecPro ''' ''' from DMXEnttecPro import Controller dmx = Controller('/dev/ttyUSB0') # or ''' from DMXEnttecPro import Controller from DMXEnttecPro.utils import get_port_by_serial_number, get_port_by_product_id #my_port = get_port_by_serial_number('6A3ROIWE') my_port = get_port_by_product_id(24577) dmx = Controller(my_port) dmx.set_channel(2,0) dmx.set_channel(3,0) dmx.submit()
import time from DMXEnttecPro import Controller dmx = Controller('/dev/cu.usbserial-EN246934') for ch in range(1, 8): dmx.set_channel(ch, 255) dmx.submit() for val in range(255): dmx.set_channel(1, val) dmx.submit() # print("sending ", val) time.sleep(0.01) for val in range(255, 0, -1): dmx.set_channel(1, val) dmx.submit() # print("sending ", val) time.sleep(0.01)