From 180da3e060f78443d7be9fe1d2979653a2a2cf66 Mon Sep 17 00:00:00 2001 From: Cedric Boudinet Date: Fri, 27 Jan 2023 17:07:39 +0100 Subject: [PATCH] adding modbus_send_raw_request_tid --- src/modbus.c | 9 +++++++-- src/modbus.h | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modbus.c b/src/modbus.c index 4787eb7..03c45f6 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -220,7 +220,7 @@ static int send_msg(modbus_t *ctx, uint8_t *msg, int msg_length) return rc; } -int modbus_send_raw_request(modbus_t *ctx, const uint8_t *raw_req, int raw_req_length) +int modbus_send_raw_request_tid(modbus_t *ctx, const uint8_t *raw_req, int raw_req_length, long tid) { sft_t sft; uint8_t req[MAX_MESSAGE_LENGTH]; @@ -242,7 +242,7 @@ int modbus_send_raw_request(modbus_t *ctx, const uint8_t *raw_req, int raw_req_l sft.slave = raw_req[0]; sft.function = raw_req[1]; /* The t_id is left to zero */ - sft.t_id = 0; + sft.t_id = tid; /* This response function only set the header so it's convenient here */ req_length = ctx->backend->build_response_basis(&sft, req); @@ -255,6 +255,11 @@ int modbus_send_raw_request(modbus_t *ctx, const uint8_t *raw_req, int raw_req_l return send_msg(ctx, req, req_length); } +int modbus_send_raw_request(modbus_t *ctx, const uint8_t *raw_req, int raw_req_length) +{ + return modbus_send_raw_request_tid(ctx, raw_req, raw_req_length, 0); +} + /* * ---------- Request Indication ---------- * | Client | ---------------------->| Server | diff --git a/src/modbus.h b/src/modbus.h index 55ef08a..abd2351 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -257,6 +257,9 @@ MODBUS_API void modbus_mapping_free(modbus_mapping_t *mb_mapping); MODBUS_API int modbus_send_raw_request(modbus_t *ctx, const uint8_t *raw_req, int raw_req_length); +MODBUS_API int +modbus_send_raw_request_tid(modbus_t *ctx, const uint8_t *raw_req, int raw_req_length, long tid); + MODBUS_API int modbus_receive(modbus_t *ctx, uint8_t *req); MODBUS_API int modbus_receive_confirmation(modbus_t *ctx, uint8_t *rsp); -- 2.11.4.GIT