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
97
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#!/usr/bin/env python3.4
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
import qmsk.args
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
import qmsk.web.args
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
import qmsk.dmx
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
import qmsk.dmx.web
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
import logging; log = logging.getLogger('dmx')
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
import argparse
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
def dmx_universe (options, dmx) :
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    from qmsk.dmx import heads
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
    
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
    return heads.Universe({
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
        'ledpar':   heads.Stairville_LEDPar56(1),
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
        'par1':     heads.Dimmer(5),
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
        'par2':     heads.Dimmer(6),
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
        'ledbar_roof':      heads.AmericanDJ_MegaTri60_Mode2(10),
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
        'ledbar_floor':     heads.AmericanDJ_MegaTri60_Mode2(20),
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
    }, dmx)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
def main (argv) :
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
    """
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
        DMX web control.
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
    """
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
    parser = qmsk.args.parser(description=main.__doc__)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
    qmsk.web.args.options(parser, static='static')
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
    parser.add_argument('--dmx-serial', default=None,
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
            help="Path to /dev/tty*")
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
    args = qmsk.args.parse(parser, argv)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
    # dmx
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
    if args.dmx_serial :
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
        dmx = qmsk.dmx.DMX.open(args.dmx_serial)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
        #dmx.zero()
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
    else :
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
        dmx = None
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
    universe = dmx_universe(args, dmx)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
    
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
    # Web app
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
    application = qmsk.web.args.apply(args, qmsk.dmx.web.DMXWebApplication, universe)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
    # Run application
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
    return qmsk.web.args.main(args, application)
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
if __name__ == '__main__':
ce91458641c1 bin/qmsk.dmx-web: rename and python3 and refactor
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
    qmsk.args.main(main)