Missing modbus register read for type [1B] for Eurotherm Nanodac
Hello,
In nanodac.py, in _cmd_read , can someone add the possibility of reading boolean from the controller:
This works for me :
def _cmd_read(self, cmd_info):
reg = self._get_register(cmd_info)
dtype = cmd_info["type"]
if dtype in self._REGISTER_DTYPES["4B"]:
return self.com.read_holding_registers(reg, "f")
elif dtype in self._REGISTER_DTYPES["2B"]:
return self.com.read_holding_registers(reg, "h")
===>
elif dtype in self._REGISTER_DTYPES["1B"]:
return self.com.read_holding_registers(reg, "H")**
<===
elif "string" in dtype:
length = 64
if "_" in dtype:
try:
length = int(dtype.split("_")[1])
except Exception:
pass
rep = self.com.read_holding_registers(reg, "h" * length)
return "".join([chr(c & 0x00FF) for c in rep]).split("\x00")[0]
else:
raise ValueError(f"unknown parameter type '{dtype}' ")
Des bisous