refactor: dedupe Q128 conversion in Rpu driver

This commit is contained in:
2026-08-12 09:37:09 +08:00
parent 44393ccc44
commit e12ba2dda1
+8 -2
View File
@@ -31,11 +31,17 @@ class Rpu(ModbusDevice):
def set_charging(self, enable): def set_charging(self, enable):
self.write_coil(self._addr("Enable_charger"), 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): 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): 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): def read_error_code(self):
return (self.read("Error_code_hi") << 16) | self.read("Error_code_lo") return (self.read("Error_code_hi") << 16) | self.read("Error_code_lo")