diff --git a/src/modbus.c b/src/modbus.c index e7379d371..42804a6d2 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -1856,6 +1856,16 @@ int modbus_get_header_length(modbus_t *ctx) return ctx->backend->header_length; } +int modbus_get_query_function(modbus_t *ctx, const uint8_t * req) +{ + if (ctx == NULL) { + errno = EINVAL; + return -1; + } + + return req[ctx->backend->header_length]; +} + int modbus_enable_quirks(modbus_t *ctx, uint32_t quirks_mask) { if (ctx == NULL) { diff --git a/src/modbus.h b/src/modbus.h index 55ef08a0d..3d0fdcfb7 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -206,6 +206,7 @@ MODBUS_API int modbus_set_indication_timeout(modbus_t *ctx, uint32_t to_sec, uint32_t to_usec); MODBUS_API int modbus_get_header_length(modbus_t *ctx); +int modbus_get_query_function(modbus_t *ctx, const uint8_t * req); MODBUS_API int modbus_connect(modbus_t *ctx); MODBUS_API void modbus_close(modbus_t *ctx);