Add Modbus errorcode

This commit is contained in:
Theo Arends 2021-01-26 17:34:48 +01:00
parent 7249552582
commit 05650384dd

View File

@ -93,15 +93,18 @@ uint8_t TasmotaModbus::ReceiveBuffer(uint8_t *buffer, uint8_t register_count)
buffer[mb_len++] = data; buffer[mb_len++] = data;
if (3 == mb_len) { if (3 == mb_len) {
if (buffer[1] & 0x80) { // 01 84 02 f2 f1 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, return buffer[2]; // 1 = Illegal Function,
// 2 = Illegal Data Address, // 2 = Illegal Data Address,
// 3 = Illegal Data Value, // 3 = Illegal Data Value,
// 4 = Slave Error // 4 = Slave Error
// 5 = Acknowledge but not finished (no error) // 5 = Acknowledge but not finished (no error)
// 6 = Slave Busy // 6 = Slave Busy
// 8 = Memory Parity error // 8 = Memory Parity error
// 10 = Gateway Path Unavailable // 10 = Gateway Path Unavailable
// 11 = Gateway Target device failed to respond // 11 = Gateway Target device failed to respond
} }
} }
} }