author | Tero Marttila <terom@paivola.fi> |
Mon, 21 Apr 2014 00:20:27 +0300 | |
changeset 82 | b5878197d017 |
parent 74 | 9031dafa39d6 |
permissions | -rwxr-xr-x |
71
24f00b561a4a
dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
24f00b561a4a
dmx.py: --zero --start --stop --step ...
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
|
74 | 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 | 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 | 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)) |