Example #1
0
def rec(ar):
    if ar.dev:
        serial_device = Serial(ar.dev, 115200, timeout=1)
    else:
        serial_device = Serial(detect_serial_device(), 115200, timeout=1)

    clip_name = ar.clip
    if not clip_name.endswith('.clip'):
        clip_name += '.clip'

    clip = open(os.path.join(CLIPS_DIR, clip_name), 'w')

    def dmxdata(data):
        global last
        if last == 0:
            td = 0
        else:
            td = int((datetime.now() - last).total_seconds() * 1000)

        last = datetime.now()
        pickle.dump({'td': td, 'frm': data}, clip)

        send(data, serial_device)

    universe = 1

    try:
        wrapper = ClientWrapper()
    except OLADNotRunningException:
        print("Start olad first")
        sys.exit(1)

    client = wrapper.Client()
    client.RegisterUniverse(universe, client.REGISTER, dmxdata)
    wrapper.Run()
Example #2
0
def main():
    if len(sys.argv) == 1:
        settings.SERIAL_DEVICE = Serial(detect_serial_device(), 115200, timeout=1)
    elif len(sys.argv) == 2:
        settings.SERIAL_DEVICE = Serial(sys.argv[1], 115200, timeout=1)

    animator = Animator(settings)
    artnet_dict = {}

    routes = [
        (r"/static/(.*)", web.StaticFileHandler,
         {"path": os.path.join(os.path.dirname(os.path.abspath(__file__)),
                               'web/static')}),
        (r"/configuration/", ConfigHandler, dict(coreconf=settings)),
        (r"/led/", LedHandler, dict(coreconf=settings)),
        (r"/animation/", AnimationHandler, dict(coreconf=settings, animator=animator)),
        (r"/animator/", AnimatorHandler, dict(coreconf=settings, animator=animator)),
        (r"/artnet/", ArtnetHandler, dict(coreconf=settings, artnet_dict=artnet_dict)),
        (r"/stream/", EchoWebSocket, dict(coreconf=settings, animator=animator)),
        (r"/(.*)", web.StaticFileHandler,
         {"path": os.path.join(os.path.dirname(os.path.abspath(__file__)),
                               'web/templates/index.html')}),
    ]

    web.Application(routes).listen(settings.WEB_PORT)
    ioloop.IOLoop.instance().start()
Example #3
0
def rec(ar):
    if ar.dev:
        serial_device = Serial(ar.dev, 115200, timeout=1)
    else:
        serial_device = Serial(detect_serial_device(), 115200, timeout=1)

    clip_name = ar.clip
    if not clip_name.endswith('.clip'):
        clip_name += '.clip'

    clip = open(os.path.join(CLIPS_DIR, clip_name), 'w')

    def dmxdata(data):
        global last
        if last == 0:
            td = 0
        else:
            td = int((datetime.now() - last).total_seconds() * 1000)

        last = datetime.now()
        pickle.dump({'td': td, 'frm': data}, clip)

        send(data, serial_device)

    universe = 1

    try:
        wrapper = ClientWrapper()
    except OLADNotRunningException:
        print("Start olad first")
        sys.exit(1)

    client = wrapper.Client()
    client.RegisterUniverse(universe, client.REGISTER, dmxdata)
    wrapper.Run()
Example #4
0
def play(ar):
    if ar.dev:
        serial_device = Serial(ar.dev, 115200, timeout=1)
    else:
        serial_device = Serial(detect_serial_device(), 115200, timeout=1)

    t = Thread(target=worker, args=[serial_device])
    t.daemon = True
    t.start()

    with keyboard.Listener(on_release=on_release) as listener:
        listener.join()
Example #5
0
def play(ar):
    if ar.dev:
        serial_device = Serial(ar.dev, 115200, timeout=1)
    else:
        serial_device = Serial(detect_serial_device(), 115200, timeout=1)

    t = Thread(target=worker, args=[serial_device])
    t.daemon = True
    t.start()

    with keyboard.Listener(on_release=on_release) as listener:
        listener.join()
Example #6
0
def main():

    serial_device = None

    if len(sys.argv) == 1:
        serial_device = Serial(detect_serial_device(), 115200, timeout=1)
    elif len(sys.argv) == 2:
        serial_device = Serial(sys.argv[1], 115200, timeout=1)

    configfile = open(settings.WALL_CONFIG_FILE, 'r')
    data = simplejson.load(configfile)
    configfile.close()
    w = int(data['w'])
    h = int(data['h'])
    mapping = {}
    for k, v in data['mapping'].items():
        mapping[int(k)] = int(v)

    def dmxdata(data):
        print data

        pindex = 0

        fdata = []

        for y in range(h):
            for x in range(w):
                r = data[pindex * 3]
                g = data[pindex * 3 + 1]
                b = data[pindex * 3 + 2]
                color = correct_rgb((r, g, b))
                fdata.extend([0xFF, mapping[y * w + x]])
                fdata.extend(color)
                pindex += 1

        serial_device.write("".join([chr(v) for v in fdata]))

    universe = 1

    wrapper = None
    try:
        wrapper = ClientWrapper()
    except OLADNotRunningException:
        print "Start olad first"
        sys.exit(1)

    client = wrapper.Client()
    client.RegisterUniverse(universe, client.REGISTER, dmxdata)
    wrapper.Run()
Example #7
0
def main():
    if len(sys.argv) == 1:
        settings.SERIAL_DEVICE = Serial(detect_serial_device(),
                                        115200,
                                        timeout=1)
    elif len(sys.argv) == 2:
        settings.SERIAL_DEVICE = Serial(sys.argv[1], 115200, timeout=1)

    animator = Animator(settings)
    artnet_dict = {}

    routes = [
        (r"/static/(.*)", web.StaticFileHandler, {
            "path":
            os.path.join(os.path.dirname(os.path.abspath(__file__)),
                         'web/static')
        }),
        (r"/configuration/", ConfigHandler, dict(coreconf=settings)),
        (r"/led/", LedHandler, dict(coreconf=settings)),
        (r"/animation/", AnimationHandler,
         dict(coreconf=settings, animator=animator)),
        (r"/animator/", AnimatorHandler,
         dict(coreconf=settings, animator=animator)),
        (r"/artnet/", ArtnetHandler,
         dict(coreconf=settings, artnet_dict=artnet_dict)),
        (r"/stream/", EchoWebSocket, dict(coreconf=settings,
                                          animator=animator)),
        (r"/(.*)", web.StaticFileHandler, {
            "path":
            os.path.join(os.path.dirname(os.path.abspath(__file__)),
                         'web/templates/index.html')
        }),
    ]

    web.Application(routes).listen(settings.WEB_PORT)
    ioloop.IOLoop.instance().start()