diff --git a/src/modbus.c b/src/modbus.c index 15138b9..c741790 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -479,7 +479,7 @@ static int send_msg(modbus_t *ctx, uint8_t *req, int req_length) } /* Computes the length of the header following the function code */ -static uint8_t compute_req_length_header(int function) +static uint8_t compute_request_length_header(int function) { int length; @@ -500,7 +500,7 @@ static uint8_t compute_req_length_header(int function) } /* Computes the length of the data to write in the request */ -static int compute_req_length_data(modbus_t *ctx, uint8_t *msg) +static int compute_request_length_data(modbus_t *ctx, uint8_t *msg) { int function = msg[TAB_HEADER_LENGTH[ctx->type_com]]; int length; @@ -558,7 +558,7 @@ static int compute_req_length_data(modbus_t *ctx, uint8_t *msg) } \ } -/* Waits a reply from a modbus server or a request from a modbus client. +/* Waits a response from a modbus server or a request from a modbus client. This function blocks if there is no replies (3 timeouts). The argument msg_length_computed must be set to MSG_LENGTH_UNDEFINED if @@ -581,7 +581,7 @@ static int receive_msg(modbus_t *ctx, int msg_length_computed, uint8_t *msg) struct timeval tv; int length_to_read; uint8_t *p_msg; - enum { FUNCTION, BYTE, COMPLETE }; + enum { FUNCTION, DATA, COMPLETE }; int state; int msg_length = 0; @@ -604,7 +604,8 @@ static int receive_msg(modbus_t *ctx, int msg_length_computed, uint8_t *msg) /* The message length is undefined (request receiving) so we need to * analyse the message step by step. At the first step, we want to - * reach the function code because all packets have that information. */ + * reach the function code because all packets contains this + * information. */ state = FUNCTION; msg_length_computed = TAB_HEADER_LENGTH[ctx->type_com] + 1; } else { @@ -660,16 +661,16 @@ static int receive_msg(modbus_t *ctx, int msg_length_computed, uint8_t *msg) switch (state) { case FUNCTION: /* Function code position */ - length_to_read = compute_req_length_header( + length_to_read = compute_request_length_header( msg[TAB_HEADER_LENGTH[ctx->type_com]]); msg_length_computed += length_to_read; /* It's useless to check the value of msg_length_computed in this case (only defined values are used). */ - state = BYTE; + state = DATA; break; - case BYTE: - length_to_read = compute_req_length_data(ctx, msg); + case DATA: + length_to_read = compute_request_length_data(ctx, msg); msg_length_computed += length_to_read; if (msg_length_computed > TAB_MAX_ADU_LENGTH[ctx->type_com]) { errno = EMBBADDATA; @@ -717,8 +718,8 @@ static int receive_msg(modbus_t *ctx, int msg_length_computed, uint8_t *msg) etablished with the master device in argument or -1 to use the internal one of modbus_t. - The receive_msg_req function shall return the request received and its - byte length if successul. Otherwise, it shall return -1 and errno is set. */ + The function shall return the request received and its byte length if + successul. Otherwise, it shall return -1 and errno is set. */ int modbus_receive(modbus_t *ctx, int sockfd, uint8_t *req) { if (sockfd != -1) { @@ -1438,7 +1439,7 @@ int modbus_report_slave_id(modbus_t *ctx, uint8_t *data_dest) additional data */ rc = receive_msg_req(ctx, req, rsp); if (rc == -1) - return rc; + return -1; offset = TAB_HEADER_LENGTH[ctx->type_com] - 1; offset_end = offset + rc;