bin/qmsk.dmx
author Tero Marttila <terom@paivola.fi>
Sat, 07 Jun 2014 13:55:37 +0300
changeset 91 292b26405ee7
parent 74 bin/dmx.py@9031dafa39d6
permissions -rwxr-xr-x
bin/qmsk.dmx: drop .py extension from script, and python3
91
292b26405ee7 bin/qmsk.dmx: drop .py extension from script, and python3
Tero Marttila <terom@paivola.fi>
parents: 74
diff changeset
     1
#!/usr/bin/env python3
71
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
74
9031dafa39d6 dmx: split into qmsk.dmx
Tero Marttila <terom@paivola.fi>
parents: 73
diff changeset
     3
import qmsk.dmx
71
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
import logging; log = logging.getLogger('dmx')
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
import argparse
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
def main (argv) :
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
    parser = argparse.ArgumentParser()
74
9031dafa39d6 dmx: split into qmsk.dmx
Tero Marttila <terom@paivola.fi>
parents: 73
diff changeset
    11
    parser.add_argument('--serial', default=qmsk.dmx.DMX.SERIAL,
71
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
            help="Path to /dev/tty*")
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    parser.add_argument('--zero', action='store_true',
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
            help="Zero output before setting")
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
    parser.add_argument('--start', type=int,
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
            help="Set from start offset")
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
    parser.add_argument('--stop', type=int,
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
            help="Set to end offset")
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
    parser.add_argument('--step', type=int,
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
            help="Step")
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    parser.add_argument('channels', nargs='*', type=int,
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
            help="Output channel values")
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
    options = parser.parse_args(argv[1:])
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
    logging.basicConfig(level=logging.DEBUG)
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
74
9031dafa39d6 dmx: split into qmsk.dmx
Tero Marttila <terom@paivola.fi>
parents: 73
diff changeset
    29
    dmx = qmsk.dmx.DMX.open(options.serial)
71
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
    if options.zero :
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
        dmx.zero()
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
    if options.start and options.stop and options.step :
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
        dmx.range(options.start, options.stop, options.step, *options.channels)
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
    elif options.start and options.stop :
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
        dmx.fill(options.start, options.stop, *options.channels)
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    elif options.start :
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
        dmx.set(options.start, *options.channels)
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
    elif options.channels :
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
        dmx.out(*options.channels)
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
if __name__ == '__main__':
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
    import sys
24f00b561a4a dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
    sys.exit(main(sys.argv))