9
parser = argparse.ArgumentParser()
10
parser.add_argument('device')
11
parser.add_argument('index')
12
parser.add_argument('state')
13
args = parser.parse_args()
15
if isinstance(args.state, str):
16
args.state = args.state.lower()
18
if args.state in [ 0, 'false', 'f', 'off' ]:
20
elif args.state in [ 1, 'true', 't', 'on' ]:
23
raise RuntimeError('Cannot parse state %r' % args.state)
25
state = not state # XXX: I use NC. This should be configurable.
27
if args.index == 'all':
28
index_list = range(1, 9)
30
index_list = [int(args.index) + 1]
32
relay = serial.Serial(args.device, 9600)
33
for index in index_list:
34
relay.write(struct.pack('BBB', 255, index, int(state)))
37
if __name__ == '__main__':