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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 mj
						mj