diff --git a/drivers/rpu.py b/drivers/rpu.py index a0275b2..54bdf12 100644 --- a/drivers/rpu.py +++ b/drivers/rpu.py @@ -31,11 +31,17 @@ class Rpu(ModbusDevice): def set_charging(self, enable): self.write_coil(self._addr("Enable_charger"), enable) + def read_q128(self, label): + return self.read(label) / self.Q128_DIVISOR + + def write_q128(self, label, value): + self.write(label, round(value * self.Q128_DIVISOR)) + def set_runtime_voltage(self, volts): - self.write_holding_register(self._addr("Runtime_voltage_setting_Q128"), round(volts * self.Q128_DIVISOR)) + self.write_q128("Runtime_voltage_setting_Q128", volts) def set_runtime_current(self, amps): - self.write_holding_register(self._addr("Runtime_current_setting_Q128"), round(amps * self.Q128_DIVISOR)) + self.write_q128("Runtime_current_setting_Q128", amps) def read_error_code(self): return (self.read("Error_code_hi") << 16) | self.read("Error_code_lo")