From b94ab723ee43964130ca549ad6d175580429d131 Mon Sep 17 00:00:00 2001 From: Andrey Klimov Date: Thu, 13 Oct 2022 08:22:06 +0300 Subject: [PATCH] modbus negative register fix --- lighthub/modules/out_modbus.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lighthub/modules/out_modbus.cpp b/lighthub/modules/out_modbus.cpp index dd9738e..eccd70f 100644 --- a/lighthub/modules/out_modbus.cpp +++ b/lighthub/modules/out_modbus.cpp @@ -260,7 +260,7 @@ int out_Modbus::findRegister(int registerNum, int posInBuffer, int regType) case PAR_I16: //isSigned=true; param=data; - mappedParam.Int((int32_t)data); + mappedParam.Int((int32_t)(int16_t)data); break; case PAR_U16: @@ -292,13 +292,13 @@ int out_Modbus::findRegister(int registerNum, int posInBuffer, int regType) case PAR_TENS: param=data; - mappedParam.Tens((int32_t) data); + mappedParam.Tens((int16_t) data); break; case PAR_100: param=data; - mappedParam.Tens_raw(data * (TENS_BASE/100)); - mappedParam.Float((int32_t) data/100.); + mappedParam.Tens_raw((int16_t) data * (TENS_BASE/100)); + mappedParam.Float((int32_t) (int16_t) data/100.); } debugSerial << F("MB got ")<name<