Пример #1
0
def GlobalThread():
    t1 = 0
    t2 = 0
    port = dmx.select_port()
    while (1 == 1):
        t1 = time.time()
        GlobalPacket = 512 * [0]
        for i in range(len(Tracks)):
            if (Tracks[i][6] == True):
                for j in range(0, 511):
                    GlobalPacket[j] = GlobalPacket[j] + Tracks[i][4][j]

        for i in range(len(GlobalPacket)):
            GlobalPacket[i] = int(GlobalPacket[i])
            if (GlobalPacket[i] > 255):
                GlobalPacket[i] = 255
            elif (GlobalPacket[i] < 0):
                GlobalPacket[i] = 0
                pass

        #print(GlobalPacket[0:21])
        for i in range(0, 511):
            port[i] = GlobalPacket[i]
        if (GlobalWindow != None):
            GlobalWindow.update()

        port.render()
        t2 = time.time()
        time.sleep(((1 / GlobalFPS) - (t2 - t1)) * (((1 / GlobalFPS) -
                                                     (t2 - t1)) > 0))
        pass
Пример #2
0
 def __init__(self):
     self.refreshRate = 80
     self.window = None
     self.shouldUpdate = True
     self.updateThread = threading.Thread(target=self.update)
     self.updateID = -1
     if os.name == 'nt':
         self.port = 0 * [512]
         pass
     else:
         self.port = dmx.select_port(0)
         pass  # other (unix)
Пример #3
0
import pyenttec as dmx
from time import sleep

port = dmx.select_port()

port.blackout()
port.render()
port.close
def main(config_file):

    # initialize control streams
    with open(config_file) as config_file:
        config = yaml.safe_load(config_file)

    log_level = log.DEBUG if config['debug'] else log.INFO

    log.basicConfig(level=log_level)

    log.info("Opening DMX port.")
    try:
        dmx_port = dmx.select_port()
    except dmx.EnttecPortOpenError as err:
        log.error(err)
        quit()
    log.info("Opened DMX port.")

    control_queue = Queue()

    config["receive host"] = socket.gethostbyname(socket.gethostname())
    log.info("Using local IP address {}".format(config["receive host"]))
    osc_controller = OSCController(config, control_queue)

    # which italian hot rod you like?
    fixture_choice = config['fixture']
    if fixture_choice == 'comet':
        fixture = Comet(int(config['dmx_addr']))
        setup_controls = setup_comet_controls
        control_map = comet_control_map
        log.info("Controlling a Comet.")
    elif fixture_choice == 'venus':
        fixture = Venus(int(config['dmx_addr']))
        setup_controls = setup_venus_controls
        control_map = venus_control_map
        log.info("Controlling the Venus.")
    elif fixture_choice == 'lumasphere':
        fixture = Lumasphere(int(config['dmx_addr']))
        control_map, setup_controls = build_lumasphere_controls()
        log.info("Controlling the Lumasphere.")
    else:
        log.error("Unknown fixture type: {}".format(fixture_choice))
        return

    setup_controls(osc_controller)

    def process_control_event(timeout):
        """Drain the control queue and apply the action."""
        try:
            (control, value) = control_queue.get(timeout=timeout)
        except Empty:
            pass
        else:
            # if we got a UI event, process it
            try:
                control_map[control](fixture, value)
            except KeyError:
                raise ControlError("Unknown control: '{}'".format(control))

    log.info("Starting OSC server.")
    osc_thread = threading.Thread(target=osc_controller.receiver.serve_forever)
    osc_thread.start()

    def render_action(frame_number, frame_time, fixture):
        fixture.render(dmx_port.dmx_frame)
        dmx_port.render()

    try:
        run_show(render_action=render_action,
                 control_action=process_control_event,
                 update_action=lambda timestep: fixture.update(timestep),
                 retrieve_show_state=lambda: fixture,
                 quit_check=lambda: False,
                 update_interval=int(config['update_interval']),
                 report_framerate=config['debug'])
    finally:
        log.info("Closing OSCServer.")
        osc_controller.receiver.close()
        log.info("Waiting for server thread to finish.")
        osc_thread.join()
        log.info("Done.")
Пример #5
0
def run(func):
    global port

    port = pyenttec.select_port()

    func()
Пример #6
0
modeTime = 30 # seconds
unityControlsLevels = False

mode = 0
levels = [0, 0, 0, 0]

midi = mido.open_output('IAC Driver Bus 1')

ser = None
for port in list_ports.comports():
	if 'usbmodem' in port.device:			
		ser = serial.Serial(port.device, 115200)
if ser == None:
	print("\nCOULD NOT FIND SERIAL\n")

dmx = pyenttec.select_port() 

controller = None
if psmove.count_connected() > 0:
	controller = psmove.PSMove(0)

debugChannel = 0

lastModeSwitchTime = 0



def pressureToValue(pressure):
	normalized = (pressure - MIN_PRESSURE) / (MAX_PRESSURE - MIN_PRESSURE)
	normalized = min(1, max(0, normalized))
	return normalized * 127
Пример #7
0
#will need active dmx connection to see results, but not for debugging
#stage directions are from lightboard PoV
import pyenttec as dmx
port = dmx.select_port('/dev/tty.usbserial-ENVWHQLD')

#####################################################################
#center lights
#####################################################################
port.dmx_frame[0] = 0  #pink DC
port.dmx_frame[3] = 0  #rectangle C
port.dmx_frame[5] = 0  #pink!! UC
port.dmx_frame[24] = 0  #C bright wash

port.dmx_frame[4] = 0  #CL wash
port.dmx_frame[14] = 0  #CL same as 4
port.dmx_frame[19] = 0  #pinkish CL
port.dmx_frame[27] = 0  #CL wash
port.dmx_frame[29] = 0  #CL wash (broad)

port.dmx_frame[35] = 255  #CR faint rectangle
#####################################################################
#right
#####################################################################
port.dmx_frame[1] = 0  #UR corner wash
port.dmx_frame[6] = 0  #UR wash
port.dmx_frame[15] = 0  #rectangle UR
port.dmx_frame[16] = 0  #UR
port.dmx_frame[22] = 255  #pink UR corner wash

#####################################################################
#left
Пример #8
0
def ignore_all_but_1(value):
    return value if value == 1.0 else None


if __name__ == '__main__':
    # fire it up!

    import os
    import pyenttec as dmx
    import time
    import threading
    import socket


    try:
        enttec = dmx.select_port()
    except dmx.EnttecPortOpenError as err:
        print(err)
        quit()

    # initialize control streams
    with open('config.yaml') as config_file:
        config = yaml.safe_load(config_file)

    config["receive host"] = socket.gethostbyname(socket.gethostname())
    print("Using local IP address {}".format(config["receive host"]))

    cont = OSCController(config)

    rfus = RFUBackend(enttec, cont, config["debug"])