bin/qmsk.dmx-web
author Tero Marttila <terom@paivola.fi>
Thu, 29 Jan 2015 23:11:44 +0200
changeset 107 05707929ff6f
parent 97 ce91458641c1
permissions -rwxr-xr-x
qmsk.web.async: handle HTTPExceptions
#!/usr/bin/env python3.4

import qmsk.args
import qmsk.web.args
import qmsk.dmx
import qmsk.dmx.web

import logging; log = logging.getLogger('dmx')

import argparse

def dmx_universe (options, dmx) :
    from qmsk.dmx import heads
    
    return heads.Universe({
        'ledpar':   heads.Stairville_LEDPar56(1),
        'par1':     heads.Dimmer(5),
        'par2':     heads.Dimmer(6),
        'ledbar_roof':      heads.AmericanDJ_MegaTri60_Mode2(10),
        'ledbar_floor':     heads.AmericanDJ_MegaTri60_Mode2(20),
    }, dmx)

def main (argv) :
    """
        DMX web control.
    """

    parser = qmsk.args.parser(description=main.__doc__)
    qmsk.web.args.options(parser, static='static')

    parser.add_argument('--dmx-serial', default=None,
            help="Path to /dev/tty*")

    args = qmsk.args.parse(parser, argv)

    # dmx
    if args.dmx_serial :
        dmx = qmsk.dmx.DMX.open(args.dmx_serial)
        #dmx.zero()
    else :
        dmx = None

    universe = dmx_universe(args, dmx)
    
    # Web app
    application = qmsk.web.args.apply(args, qmsk.dmx.web.DMXWebApplication, universe)

    # Run application
    return qmsk.web.args.main(args, application)

if __name__ == '__main__':
    qmsk.args.main(main)