From f241bc0c7799ef701ec6fbe467b189232f7a2a40 Mon Sep 17 00:00:00 2001 From: Andrey Klimov Date: Fri, 7 May 2021 21:39:11 +0300 Subject: [PATCH] modbus mask type == 3 - swap high and low bytes --- lighthub/item.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lighthub/item.cpp b/lighthub/item.cpp index b20b894..7aa0e03 100644 --- a/lighthub/item.cpp +++ b/lighthub/item.cpp @@ -1509,6 +1509,7 @@ int Item::modbusDimmerSet(int addr, uint16_t _reg, int _regType, int _mask, uint modbusSerial.begin(MODBUS_SERIAL_BAUD, dimPar); node.begin(addr, modbusSerial); + uint8_t t; switch (_mask) { case 1: value <<= 8; @@ -1517,6 +1518,15 @@ int Item::modbusDimmerSet(int addr, uint16_t _reg, int _regType, int _mask, uint case 0: value &= 0xff; value |= (0xff00); + break; + case 2: + break; + case 3: //Swap high and low bytes + t = (value & 0xff00) >> 8; + value <<=8; + value |= t; + + } debugSerial<")<<_HEX(_reg)<