Query script fixes & updates
This commit is contained in:
parent
12dca6c778
commit
45895f179e
@ -22,10 +22,14 @@ Read only CO2 register from sensor 123, baudrate 4800:
|
||||
{argv[0]} 123 4800 read CO2
|
||||
Read CO2, T_SHT4x and RH_SCD4x from sensor 222, default baudrate:
|
||||
{argv[0]} 222 read CO2 T_SHT4x RH_SCD4x
|
||||
Read register 30010 from sensor 247, default baudrate:
|
||||
{argv[0]} 247 read 30010
|
||||
Read registers 30011, 30012, 30020 from sensor 247, baudrate 19200:
|
||||
{argv[0]} 247 19200 read 30011 30012 30020
|
||||
Turn LED off for sensor 247, baud 115200:
|
||||
{argv[0]} 247 115200 write 0 LED_on_register
|
||||
Set brightness of all connected sensors to 50%:
|
||||
{argv[0]} 0 write 50 LED_brightness_register
|
||||
{argv[0]} 247 115200 write LED_on 0
|
||||
Set brightness of all connected sensors to 50%, default baudrate (broadcast message):
|
||||
{argv[0]} 0 write LED_brightness 50
|
||||
''')
|
||||
|
||||
# default values
|
||||
@ -84,7 +88,7 @@ if action != 'read' and action != 'write' and action != 'all' and action != 'res
|
||||
print(f'Unknown action {action}')
|
||||
exit(-4)
|
||||
if action == 'write' and value == None:
|
||||
print(f'Action "write" needs value"')
|
||||
print(f'Action "write" needs value')
|
||||
exit(-5)
|
||||
if action == 'write' and len(register_number) + len(register_name) != 1:
|
||||
print(f'Action "write" needs exactly one register to write to')
|
||||
@ -106,13 +110,16 @@ if action == 'write':
|
||||
print(f'Value to be written: {value}')
|
||||
# open device
|
||||
s = Sensor(address=addr, baudrate=baudrate)
|
||||
all_registers = Sensor.input_registers.copy()
|
||||
all_registers.update(Sensor.holding_registers)
|
||||
all_register_numbers = {}
|
||||
for name, number in all_registers.items():
|
||||
all_register_numbers[number] = name
|
||||
if action == 'read' or action == 'all':
|
||||
print('---- Register readout ----')
|
||||
for register in register_name + register_number:
|
||||
if isinstance(register, str):
|
||||
reg_name = register
|
||||
all_registers = Sensor.input_registers.copy()
|
||||
all_registers.update(Sensor.holding_registers)
|
||||
if reg_name in all_registers:
|
||||
reg_number = all_registers[reg_name]
|
||||
else:
|
||||
@ -120,13 +127,13 @@ if action == 'read' or action == 'all':
|
||||
exit(-7)
|
||||
else:
|
||||
reg_number = register
|
||||
reg_name = ''
|
||||
# try reverse lookup
|
||||
reg_name = all_register_numbers[reg_number] if reg_number in all_register_numbers else ''
|
||||
try:
|
||||
result = s.read_register(reg_number)
|
||||
result = int(s.read_register(reg_number))
|
||||
except:
|
||||
print(f'{reg_number : <10} {"N/A" : <10} Failed to read register')
|
||||
continue
|
||||
print(f'{reg_number : <10} {int(result) : <10} {reg_name}')
|
||||
result = 'N/A'
|
||||
print(f'{reg_number : <10} {result : <10} {reg_name}')
|
||||
elif action == 'write':
|
||||
if len(register_name) > 0:
|
||||
if register_name[0] not in Sensor.holding_registers:
|
||||
|
Loading…
Reference in New Issue
Block a user