From e95d15103685612981f19aa9ad7cb5e4907699c3 Mon Sep 17 00:00:00 2001 From: Gijsbert Date: Tue, 9 Apr 2024 11:01:56 +0200 Subject: [PATCH] Fix large number for int32 as well --- modbus/modbus.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modbus/modbus.go b/modbus/modbus.go index 64a25d8..5f9c245 100644 --- a/modbus/modbus.go +++ b/modbus/modbus.go @@ -278,7 +278,17 @@ func (m *Modbus) updateMetricsRegisters(connection *Connection, inverter Inverte return err } - res = int32(reg) + if reg > 9999999 { + regBytes, err := connection.client.ReadBytes(register.Address, register.Quantity * 2, modbus.HOLDING_REGISTER) + if err != nil { + return err + } + + res = int32(convertTooLargeNumber(regBytes)) + } else { + res = int32(reg) + } + result = int(res) }