From 12479e2c9d8b4c4dbb652b54faf442ec566035c0 Mon Sep 17 00:00:00 2001 From: Tobias Weber Date: Wed, 18 Aug 2021 13:52:10 +0200 Subject: [PATCH] add function codes needed for modbus communication with ebmpapst ventilators --- src/modbus.c | 8 ++++++++ src/modbus.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/modbus.c b/src/modbus.c index 43e8a3592..ef343c905 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -280,6 +280,12 @@ static uint8_t compute_meta_length_after_function(int function, case MODBUS_FC_MASK_WRITE_REGISTER: length = 6; break; + case MODBUS_FC_READ_HOLDING_REGISTERS_SNR: + length = 7; + break; + case MODBUS_FC_WRITE_SINGLE_REGISTER_SNR: + length = 10; + break; default: length = 1; } @@ -313,6 +319,8 @@ static int compute_data_length_after_meta(modbus_t *ctx, uint8_t *msg, function == MODBUS_FC_REPORT_SLAVE_ID || function == MODBUS_FC_WRITE_AND_READ_REGISTERS) { length = msg[ctx->backend->header_length + 1]; + } else if (function == MODBUS_FC_READ_HOLDING_REGISTERS_SNR){ + length = msg[ctx->backend->header_length + 7]; } else { length = 0; } diff --git a/src/modbus.h b/src/modbus.h index 24808ead5..75ccf0f64 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -70,6 +70,8 @@ MODBUS_BEGIN_DECLS #define MODBUS_FC_REPORT_SLAVE_ID 0x11 #define MODBUS_FC_MASK_WRITE_REGISTER 0x16 #define MODBUS_FC_WRITE_AND_READ_REGISTERS 0x17 +#define MODBUS_FC_READ_HOLDING_REGISTERS_SNR 0x43 +#define MODBUS_FC_WRITE_SINGLE_REGISTER_SNR 0x46 #define MODBUS_BROADCAST_ADDRESS 0