mirror of
https://github.com/bitlair/bitlair_doorduino.git
synced 2025-05-13 12:20:07 +02:00
Unify management scripts
This commit is contained in:
parent
dd4203c06f
commit
7db14dedbd
3 changed files with 105 additions and 108 deletions
|
@ -1,56 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
import serial
|
|
||||||
import time
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def list_buttons(ser):
|
|
||||||
ser.write(b'\r\n')
|
|
||||||
time.sleep(0.1)
|
|
||||||
ser.write(b'list_buttons\r\n')
|
|
||||||
|
|
||||||
expect_button_line = False
|
|
||||||
buttons_in_arduino = []
|
|
||||||
while True:
|
|
||||||
line = ser.readline()
|
|
||||||
if line.strip() == b"button list start":
|
|
||||||
expect_button_line = True
|
|
||||||
continue
|
|
||||||
|
|
||||||
if expect_button_line and line.startswith(b"button: "):
|
|
||||||
key, val = line.strip().split(b" ")
|
|
||||||
buttons_in_arduino.append(val)
|
|
||||||
if line == b"":
|
|
||||||
break
|
|
||||||
buttons_in_arduino.sort()
|
|
||||||
print(len(buttons_in_arduino))
|
|
||||||
return buttons_in_arduino
|
|
||||||
|
|
||||||
def remove_button(ser, button):
|
|
||||||
ser.write(b'\r\n')
|
|
||||||
time.sleep(0.1)
|
|
||||||
ser.write(b'remove_button '+ button + b'\r\n')
|
|
||||||
while True:
|
|
||||||
line = ser.readline()
|
|
||||||
if line == b"":
|
|
||||||
break
|
|
||||||
print(line)
|
|
||||||
|
|
||||||
def add_button(ser, button, secret):
|
|
||||||
ser.write(b'\r\n')
|
|
||||||
time.sleep(0.1)
|
|
||||||
ser.write(b'add_button '+ button + b' ' + secret + b'\r\n')
|
|
||||||
while True:
|
|
||||||
line = ser.readline()
|
|
||||||
if line == b"":
|
|
||||||
break
|
|
||||||
print(line)
|
|
||||||
|
|
||||||
if len(sys.argv) < 3:
|
|
||||||
print("Usage: add_button button secret")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
for tty in [ "/dev/ttyS1", "/dev/ttyS2" ]:
|
|
||||||
with serial.Serial(tty, 115200, timeout=1) as ser:
|
|
||||||
add_button(ser, sys.argv[1], sys.argv[2])
|
|
||||||
|
|
||||||
print(list_buttons(ser))
|
|
|
@ -1,52 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
import serial
|
|
||||||
import time
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def list_buttons(ser):
|
|
||||||
ser.write(b'\r\n')
|
|
||||||
time.sleep(0.1)
|
|
||||||
ser.write(b'list_buttons\r\n')
|
|
||||||
|
|
||||||
expect_button_line = False
|
|
||||||
buttons_in_arduino = []
|
|
||||||
while True:
|
|
||||||
line = ser.readline()
|
|
||||||
if line.strip() == b"button list start":
|
|
||||||
expect_button_line = True
|
|
||||||
continue
|
|
||||||
|
|
||||||
if expect_button_line and line.startswith(b"button: "):
|
|
||||||
key, val = line.strip().split(b" ")
|
|
||||||
buttons_in_arduino.append(val)
|
|
||||||
if line == b"":
|
|
||||||
break
|
|
||||||
buttons_in_arduino.sort()
|
|
||||||
print(len(buttons_in_arduino))
|
|
||||||
return buttons_in_arduino
|
|
||||||
|
|
||||||
def remove_button(ser, button):
|
|
||||||
ser.write(b'\r\n')
|
|
||||||
time.sleep(0.1)
|
|
||||||
ser.write(b'remove_button '+ button + b'\r\n')
|
|
||||||
while True:
|
|
||||||
line = ser.readline()
|
|
||||||
if line == b"":
|
|
||||||
break
|
|
||||||
print(line)
|
|
||||||
|
|
||||||
def add_button(ser, button, secret):
|
|
||||||
ser.write(b'\r\n')
|
|
||||||
time.sleep(0.1)
|
|
||||||
ser.write(b'add_button '+ button + b' ' + secret + b'\r\n')
|
|
||||||
while True:
|
|
||||||
line = ser.readline()
|
|
||||||
if line == b"":
|
|
||||||
break
|
|
||||||
print(line)
|
|
||||||
|
|
||||||
|
|
||||||
for tty in [ "/dev/ttyS1", "/dev/ttyS2" ]:
|
|
||||||
with serial.Serial(tty, 115200, timeout=1) as ser:
|
|
||||||
print(list_buttons(ser))
|
|
||||||
|
|
105
manage.py
Executable file
105
manage.py
Executable file
|
@ -0,0 +1,105 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import serial
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
SERIAL_PORTS = [ '/dev/ttyS1', '/dev/ttyS2' ]
|
||||||
|
|
||||||
|
|
||||||
|
def open_port(tty):
|
||||||
|
return serial.Serial(tty, 115200, timeout=1)
|
||||||
|
|
||||||
|
def list_buttons(ports):
|
||||||
|
ids_per_port = {}
|
||||||
|
for port in ports:
|
||||||
|
with open_port(port) as ser:
|
||||||
|
ser.write(b'\r\n')
|
||||||
|
time.sleep(0.1)
|
||||||
|
ser.write(b'list_buttons\r\n')
|
||||||
|
|
||||||
|
expect_button_line = False
|
||||||
|
buttons_in_arduino = []
|
||||||
|
while True:
|
||||||
|
line = ser.readline()
|
||||||
|
if line.strip() == b'button list start':
|
||||||
|
expect_button_line = True
|
||||||
|
continue
|
||||||
|
|
||||||
|
if expect_button_line and line.startswith(b'button: '):
|
||||||
|
key, val = line.strip().split(b' ')
|
||||||
|
buttons_in_arduino.append(val)
|
||||||
|
if line == b'':
|
||||||
|
break
|
||||||
|
buttons_in_arduino.sort()
|
||||||
|
ids_per_port[port] = buttons_in_arduino
|
||||||
|
|
||||||
|
print('| '+' | '.join([ port.ljust(16) for port in ids_per_port.keys() ])+' |')
|
||||||
|
print('| '+' | '.join([ ('len = %d' % len(ls)).ljust(16) for ls in ids_per_port.values() ])+' |')
|
||||||
|
for i in range(max([ len(ls) for ls in ids_per_port.values() ])):
|
||||||
|
ids = [
|
||||||
|
ids_per_port[port][i].decode("ascii") if i < len(ids_per_port[port]) else ''
|
||||||
|
for port in ports
|
||||||
|
]
|
||||||
|
print('| '+' | '.join(ids)+' |')
|
||||||
|
|
||||||
|
|
||||||
|
def remove_button(ports, button):
|
||||||
|
for port in ports:
|
||||||
|
with open_port(port) as ser:
|
||||||
|
ser.write(b'\r\n')
|
||||||
|
time.sleep(0.1)
|
||||||
|
ser.write(b'remove_button ' + button.encode("ascii") + b'\r\n')
|
||||||
|
while True:
|
||||||
|
line = ser.readline()
|
||||||
|
if line == b'':
|
||||||
|
break
|
||||||
|
print(line)
|
||||||
|
|
||||||
|
def add_button(ser, button, secret):
|
||||||
|
for port in ports:
|
||||||
|
with open_port(port) as ser:
|
||||||
|
ser.write(b'\r\n')
|
||||||
|
time.sleep(0.1)
|
||||||
|
ser.write(b'add_button ' + button.encode("ascii") + b' ' + secret.encode("ascii") + b'\r\n')
|
||||||
|
while True:
|
||||||
|
line = ser.readline()
|
||||||
|
if line == b'':
|
||||||
|
break
|
||||||
|
print(line)
|
||||||
|
|
||||||
|
def print_help(trailer=None):
|
||||||
|
print(
|
||||||
|
'''Usage: %s <action>
|
||||||
|
|
||||||
|
Actions:
|
||||||
|
list
|
||||||
|
add <id>:<secret>
|
||||||
|
remove <id>
|
||||||
|
''' % sys.argv[0])
|
||||||
|
if trailer is not None:
|
||||||
|
print(trailer)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print_help()
|
||||||
|
|
||||||
|
action = sys.argv[1]
|
||||||
|
if action == 'list':
|
||||||
|
list_buttons(SERIAL_PORTS)
|
||||||
|
|
||||||
|
elif action == 'add':
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print_help('Missing button id and secret')
|
||||||
|
keypair = sys.argv[2].split(':')
|
||||||
|
add_button(SERIAL_PORTS, keypair[0], keypair[1])
|
||||||
|
|
||||||
|
elif action == 'remove':
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print_help('Missing button id')
|
||||||
|
remove_button(SERIAL_PORTS, sys.argv[2])
|
||||||
|
|
||||||
|
else:
|
||||||
|
print_help()
|
Loading…
Add table
Add a link
Reference in a new issue