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

import qmsk.dmx

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

import argparse

def main (argv) :
    parser = argparse.ArgumentParser()
    parser.add_argument('--serial', default=qmsk.dmx.DMX.SERIAL,
            help="Path to /dev/tty*")
    parser.add_argument('--zero', action='store_true',
            help="Zero output before setting")
    parser.add_argument('--start', type=int,
            help="Set from start offset")
    parser.add_argument('--stop', type=int,
            help="Set to end offset")
    parser.add_argument('--step', type=int,
            help="Step")

    parser.add_argument('channels', nargs='*', type=int,
            help="Output channel values")

    options = parser.parse_args(argv[1:])

    logging.basicConfig(level=logging.DEBUG)

    dmx = qmsk.dmx.DMX.open(options.serial)

    if options.zero :
        dmx.zero()


    if options.start and options.stop and options.step :
        dmx.range(options.start, options.stop, options.step, *options.channels)

    elif options.start and options.stop :
        dmx.fill(options.start, options.stop, *options.channels)

    elif options.start :
        dmx.set(options.start, *options.channels)

    elif options.channels :
        dmx.out(*options.channels)

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))