Added broadcast reset, minor formatting changes
This commit is contained in:
parent
45895f179e
commit
4628aa8d20
@ -4,7 +4,7 @@ from sys import argv,exit
|
|||||||
|
|
||||||
def print_help():
|
def print_help():
|
||||||
print( \
|
print( \
|
||||||
f'''{argv[0]} ADDR [BAUDRATE] [{{read [REGISTER ...] | write VALUE REGISTER}}]
|
f'''{argv[0]} ADDR [BAUDRATE] [{{read [REGISTER ...] | write VALUE REGISTER | reset}}]
|
||||||
where:
|
where:
|
||||||
- ADDR is Modbus address (use 0 for broadcast; note that only write can be broadcast)
|
- ADDR is Modbus address (use 0 for broadcast; note that only write can be broadcast)
|
||||||
- BAUDRATE is (optional) baud rate; default value is 19200
|
- BAUDRATE is (optional) baud rate; default value is 19200
|
||||||
@ -30,6 +30,10 @@ Turn LED off for sensor 247, baud 115200:
|
|||||||
{argv[0]} 247 115200 write LED_on 0
|
{argv[0]} 247 115200 write LED_on 0
|
||||||
Set brightness of all connected sensors to 50%, default baudrate (broadcast message):
|
Set brightness of all connected sensors to 50%, default baudrate (broadcast message):
|
||||||
{argv[0]} 0 write LED_brightness 50
|
{argv[0]} 0 write LED_brightness 50
|
||||||
|
Reset device 247, baud 19200:
|
||||||
|
{argv[0]} 247 19200 reset
|
||||||
|
Reset all devices, default baudrate:
|
||||||
|
{argv[0]} 0 reset
|
||||||
''')
|
''')
|
||||||
|
|
||||||
# default values
|
# default values
|
||||||
@ -99,13 +103,13 @@ if action != 'write' and len(register_name) + len(register_number) == 0:
|
|||||||
input_registers = [ x for x in Sensor.input_registers.keys() ]
|
input_registers = [ x for x in Sensor.input_registers.keys() ]
|
||||||
holding_registers = [ x for x in Sensor.holding_registers.keys() ]
|
holding_registers = [ x for x in Sensor.holding_registers.keys() ]
|
||||||
register_name = input_registers + holding_registers
|
register_name = input_registers + holding_registers
|
||||||
if action != 'write' and addr == 0:
|
if addr == 0 and action != 'write' and action != 'reset':
|
||||||
print(f'Cannot broadcast action "{action}"')
|
print(f'Cannot broadcast action "{action}"')
|
||||||
exit(-12)
|
exit(-12)
|
||||||
|
|
||||||
# Query device
|
# Query device
|
||||||
print('---- Query device ----')
|
print('---- Query device ----')
|
||||||
print(f'Address: {addr}\nBaudrate: {baudrate}\nAction: {action}')
|
print(f'Address: {addr if addr != 0 else "0 (broadcast)"}\nBaudrate: {baudrate}\nAction: {action}')
|
||||||
if action == 'write':
|
if action == 'write':
|
||||||
print(f'Value to be written: {value}')
|
print(f'Value to be written: {value}')
|
||||||
# open device
|
# open device
|
||||||
@ -150,8 +154,8 @@ elif action == 'write':
|
|||||||
print(f'Register number {reg_number} cannot be written')
|
print(f'Register number {reg_number} cannot be written')
|
||||||
exit(-9)
|
exit(-9)
|
||||||
elif action == 'reset':
|
elif action == 'reset':
|
||||||
if not s.reset():
|
if not s.reset() and addr != 0:
|
||||||
# reset should throw NoResponse; if it doesn't, reset failed
|
# reset should throw NoResponse; if it doesn't, reset failed (broadcast shouldn't return anything)
|
||||||
print('Device reset failed!')
|
print('Device reset failed!')
|
||||||
else:
|
else:
|
||||||
print('---- Device reset ----')
|
print('---- Device reset ----')
|
||||||
|
Loading…
Reference in New Issue
Block a user