From 8d8bb4fdf0338ddde196f74fdf557f221ecdcb52 Mon Sep 17 00:00:00 2001 From: Cedric Boudinet Date: Thu, 10 Nov 2022 15:50:56 +0100 Subject: [PATCH 1/3] adding get_query_function --- src/modbus.c | 10 ++++++++++ src/modbus.h | 1 + 2 files changed, 11 insertions(+) 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); From 39d3a97f5c61649edf4008c3fae7771ef15a6b70 Mon Sep 17 00:00:00 2001 From: Cedric Boudinet Date: Tue, 15 Nov 2022 21:38:18 +0100 Subject: [PATCH 2/3] updating docs --- docs/index.md | 4 ++++ docs/modbus_get_query_function.md | 20 ++++++++++++++++++++ src/modbus.c | 4 ++-- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 docs/modbus_get_query_function.md diff --git a/docs/index.md b/docs/index.md index cefa9ce51..a6a31efce 100644 --- a/docs/index.md +++ b/docs/index.md @@ -205,6 +205,10 @@ Information about header: - [modbus_get_header_length](modbus_get_header_length.md) +Information about query: + +- [modbus_get_query_function](modbus_get_query_function.md) + ## Data handling Macros for data manipulation: diff --git a/docs/modbus_get_query_function.md b/docs/modbus_get_query_function.md new file mode 100644 index 000000000..418dbea65 --- /dev/null +++ b/docs/modbus_get_query_function.md @@ -0,0 +1,20 @@ +# modbus_get_header_length + +## Name + +modbus_get_query_function- retrieve the function code of a query + +## Synopsis + +```c +int modbus_get_header_length(modbus_t *ctx, const uint8_t * query); +``` + +## Description + +The *modbus_get_query_function()* function shall retrieve the function code +of a query. It can be useful for modbus server development. + +## Return value + +The function code a the query. diff --git a/src/modbus.c b/src/modbus.c index 42804a6d2..5d2a1988a 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -1856,14 +1856,14 @@ 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) +int modbus_get_query_function(modbus_t *ctx, const uint8_t * query) { if (ctx == NULL) { errno = EINVAL; return -1; } - return req[ctx->backend->header_length]; + return query[ctx->backend->header_length]; } int modbus_enable_quirks(modbus_t *ctx, uint32_t quirks_mask) From 32c311b82ccd73f008cce71bfb7040764e1d2c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Boudinet?= Date: Tue, 15 Nov 2022 21:41:43 +0100 Subject: [PATCH 3/3] Update modbus_get_query_function.md --- docs/modbus_get_query_function.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/modbus_get_query_function.md b/docs/modbus_get_query_function.md index 418dbea65..02e959fdf 100644 --- a/docs/modbus_get_query_function.md +++ b/docs/modbus_get_query_function.md @@ -1,4 +1,4 @@ -# modbus_get_header_length +# modbus_get_query_function ## Name @@ -7,7 +7,7 @@ modbus_get_query_function- retrieve the function code of a query ## Synopsis ```c -int modbus_get_header_length(modbus_t *ctx, const uint8_t * query); +int modbus_get_query_function(modbus_t *ctx, const uint8_t * query); ``` ## Description @@ -17,4 +17,4 @@ of a query. It can be useful for modbus server development. ## Return value -The function code a the query. +The function code of the query.