bin/dmx-web.py
changeset 97 ce91458641c1
parent 96 e6dfc98ec50f
child 98 e743c905cbf5
equal deleted inserted replaced
96:e6dfc98ec50f 97:ce91458641c1
     1 #!/usr/bin/env python
       
     2 
       
     3 import pvl.args
       
     4 import pvl.web.args
       
     5 import qmsk.dmx
       
     6 import qmsk.dmx.web
       
     7 
       
     8 import logging; log = logging.getLogger('dmx')
       
     9 
       
    10 import optparse
       
    11 
       
    12 def dmx_universe (options, dmx) :
       
    13     from qmsk.dmx import heads
       
    14     
       
    15     return heads.Universe(dmx, {
       
    16         'ledpar':   heads.Stairville_LEDPar56(1),
       
    17         'par1':     heads.Dimmer(5),
       
    18         'par2':     heads.Dimmer(6),
       
    19         'ledbar_roof':      heads.AmericanDJ_MegaTri60_Mode2(10),
       
    20         'ledbar_floor':     heads.AmericanDJ_MegaTri60_Mode2(20),
       
    21     })
       
    22 
       
    23 def main (argv) :
       
    24     """
       
    25         DMX web control.
       
    26     """
       
    27 
       
    28     parser = optparse.OptionParser(main.__doc__)
       
    29     parser.add_option_group(pvl.args.parser(parser))
       
    30     parser.add_option_group(pvl.web.args.parser(parser))
       
    31 
       
    32     parser.add_option('--dmx-serial', default=None,
       
    33             help="Path to /dev/tty*")
       
    34 
       
    35     options, args = parser.parse_args(argv[1:])
       
    36 
       
    37     pvl.args.apply(options)
       
    38 
       
    39     # dmx
       
    40     if options.dmx_serial :
       
    41         dmx = qmsk.dmx.DMX.open(options.dmx_serial)
       
    42         #dmx.zero()
       
    43     else :
       
    44         dmx = None
       
    45 
       
    46     universe = dmx_universe(options, dmx)
       
    47     
       
    48     # app
       
    49     app = qmsk.dmx.web.DMXWebApplication(universe)
       
    50 
       
    51     pvl.web.args.main(options, app)
       
    52 
       
    53 if __name__ == '__main__':
       
    54     pvl.args.main(main)