From 05650384dd9f8d35d145586b6ecc405a74d9d69c Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 26 Jan 2021 17:34:48 +0100 Subject: [PATCH] Add Modbus errorcode --- .../TasmotaModbus-1.2.0/src/TasmotaModbus.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/lib_basic/TasmotaModbus-1.2.0/src/TasmotaModbus.cpp b/lib/lib_basic/TasmotaModbus-1.2.0/src/TasmotaModbus.cpp index c124d611d..8c2180505 100644 --- a/lib/lib_basic/TasmotaModbus-1.2.0/src/TasmotaModbus.cpp +++ b/lib/lib_basic/TasmotaModbus-1.2.0/src/TasmotaModbus.cpp @@ -93,15 +93,18 @@ uint8_t TasmotaModbus::ReceiveBuffer(uint8_t *buffer, uint8_t register_count) buffer[mb_len++] = data; if (3 == mb_len) { if (buffer[1] & 0x80) { // 01 84 02 f2 f1 + if (0 == buffer[2]) { + return 3; // 3 = Illegal Data Value, + } return buffer[2]; // 1 = Illegal Function, - // 2 = Illegal Data Address, - // 3 = Illegal Data Value, - // 4 = Slave Error - // 5 = Acknowledge but not finished (no error) - // 6 = Slave Busy - // 8 = Memory Parity error - // 10 = Gateway Path Unavailable - // 11 = Gateway Target device failed to respond + // 2 = Illegal Data Address, + // 3 = Illegal Data Value, + // 4 = Slave Error + // 5 = Acknowledge but not finished (no error) + // 6 = Slave Busy + // 8 = Memory Parity error + // 10 = Gateway Path Unavailable + // 11 = Gateway Target device failed to respond } } }