bin/dmx.py
changeset 91 292b26405ee7
parent 90 13c2deb919d1
child 92 e5799432071c
equal deleted inserted replaced
90:13c2deb919d1 91:292b26405ee7
     1 #!/usr/bin/env python
       
     2 
       
     3 import qmsk.dmx
       
     4 
       
     5 import logging; log = logging.getLogger('dmx')
       
     6 
       
     7 import argparse
       
     8 
       
     9 def main (argv) :
       
    10     parser = argparse.ArgumentParser()
       
    11     parser.add_argument('--serial', default=qmsk.dmx.DMX.SERIAL,
       
    12             help="Path to /dev/tty*")
       
    13     parser.add_argument('--zero', action='store_true',
       
    14             help="Zero output before setting")
       
    15     parser.add_argument('--start', type=int,
       
    16             help="Set from start offset")
       
    17     parser.add_argument('--stop', type=int,
       
    18             help="Set to end offset")
       
    19     parser.add_argument('--step', type=int,
       
    20             help="Step")
       
    21 
       
    22     parser.add_argument('channels', nargs='*', type=int,
       
    23             help="Output channel values")
       
    24 
       
    25     options = parser.parse_args(argv[1:])
       
    26 
       
    27     logging.basicConfig(level=logging.DEBUG)
       
    28 
       
    29     dmx = qmsk.dmx.DMX.open(options.serial)
       
    30 
       
    31     if options.zero :
       
    32         dmx.zero()
       
    33 
       
    34 
       
    35     if options.start and options.stop and options.step :
       
    36         dmx.range(options.start, options.stop, options.step, *options.channels)
       
    37 
       
    38     elif options.start and options.stop :
       
    39         dmx.fill(options.start, options.stop, *options.channels)
       
    40 
       
    41     elif options.start :
       
    42         dmx.set(options.start, *options.channels)
       
    43 
       
    44     elif options.channels :
       
    45         dmx.out(*options.channels)
       
    46 
       
    47 if __name__ == '__main__':
       
    48     import sys
       
    49     sys.exit(main(sys.argv))