Signed test
This commit is contained in:
parent
5a756e47c1
commit
0fed3b5376
@ -122,6 +122,7 @@ for name, number in all_registers.items():
|
|||||||
if action == 'read' or action == 'all':
|
if action == 'read' or action == 'all':
|
||||||
print('---- Register readout ----')
|
print('---- Register readout ----')
|
||||||
for register in register_name + register_number:
|
for register in register_name + register_number:
|
||||||
|
signed = False
|
||||||
if isinstance(register, str):
|
if isinstance(register, str):
|
||||||
reg_name = register
|
reg_name = register
|
||||||
if reg_name in all_registers:
|
if reg_name in all_registers:
|
||||||
@ -134,7 +135,9 @@ if action == 'read' or action == 'all':
|
|||||||
# try reverse lookup
|
# try reverse lookup
|
||||||
reg_name = all_register_numbers[reg_number] if reg_number in all_register_numbers else ''
|
reg_name = all_register_numbers[reg_number] if reg_number in all_register_numbers else ''
|
||||||
try:
|
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:
|
except:
|
||||||
result = 'N/A'
|
result = 'N/A'
|
||||||
print(f'{reg_number : <10} {result : <10} {reg_name}')
|
print(f'{reg_number : <10} {result : <10} {reg_name}')
|
||||||
|
@ -112,7 +112,7 @@ class Sensor:
|
|||||||
def RH_SCD4x(self):
|
def RH_SCD4x(self):
|
||||||
return self.read_register(self.input_registers['RH_SCD4x'])
|
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:
|
if self.input_register_start <= register_number <= self.input_register_end:
|
||||||
function_code = 4
|
function_code = 4
|
||||||
register_offset = register_number - self.input_register_start
|
register_offset = register_number - self.input_register_start
|
||||||
@ -127,7 +127,7 @@ class Sensor:
|
|||||||
try:
|
try:
|
||||||
self.readout_total += 1
|
self.readout_total += 1
|
||||||
# minimalmodbus divides received register value by 10
|
# 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:
|
except minimalmodbus.NoResponseError as e:
|
||||||
last_exception = e
|
last_exception = e
|
||||||
self.readout_error_no_response += 1
|
self.readout_error_no_response += 1
|
||||||
|
Loading…
Reference in New Issue
Block a user