Signed test

This commit is contained in:
mj 2022-03-20 13:55:19 +01:00
parent 5a756e47c1
commit 0fed3b5376
2 changed files with 6 additions and 3 deletions

View File

@ -122,6 +122,7 @@ for name, number in all_registers.items():
if action == 'read' or action == 'all':
print('---- Register readout ----')
for register in register_name + register_number:
signed = False
if isinstance(register, str):
reg_name = register
if reg_name in all_registers:
@ -134,7 +135,9 @@ if action == 'read' or action == 'all':
# try reverse lookup
reg_name = all_register_numbers[reg_number] if reg_number in all_register_numbers else ''
try:
result = int(s.read_register(reg_number))
signed = '_signed' in reg_name
print(f'DEBUG: register {reg_name} is {signed} (signed)')
result = int(s.read_register(reg_number, signed=signed))
except:
result = 'N/A'
print(f'{reg_number : <10} {result : <10} {reg_name}')

View File

@ -112,7 +112,7 @@ class Sensor:
def RH_SCD4x(self):
return self.read_register(self.input_registers['RH_SCD4x'])
def read_register(self, register_number, retries=10):
def read_register(self, register_number, signed=False, retries=10):
if self.input_register_start <= register_number <= self.input_register_end:
function_code = 4
register_offset = register_number - self.input_register_start
@ -127,7 +127,7 @@ class Sensor:
try:
self.readout_total += 1
# minimalmodbus divides received register value by 10
return self.serial.read_register(register_offset, 1, functioncode=function_code) * 10
return self.serial.read_register(register_offset, 1, functioncode=function_code, signed=signed) * 10
except minimalmodbus.NoResponseError as e:
last_exception = e
self.readout_error_no_response += 1