Agile Modbus  1.1.4
Lightweight modbus protocol stack.
RTU Private Functions
Collaboration diagram for RTU Private Functions:

Functions

static uint16_t agile_modbus_rtu_crc16 (uint8_t *buffer, uint16_t buffer_length)
 RTU CRC16 calculation. More...
 
static int agile_modbus_rtu_set_slave (agile_modbus_t *ctx, int slave)
 RTU sets the address interface. More...
 
static int agile_modbus_rtu_build_request_basis (agile_modbus_t *ctx, int function, int addr, int nb, uint8_t *req)
 RTU builds the basic request message interface (header message) More...
 
static int agile_modbus_rtu_build_response_basis (agile_modbus_sft_t *sft, uint8_t *rsp)
 RTU builds the basic response message interface (header message) More...
 
static int agile_modbus_rtu_prepare_response_tid (const uint8_t *req, int *req_length)
 RTU ready response interface. More...
 
static int agile_modbus_rtu_send_msg_pre (uint8_t *req, int req_length)
 RTU pre-send data interface. More...
 
static int agile_modbus_rtu_check_integrity (agile_modbus_t *ctx, uint8_t *msg, const int msg_length)
 RTU check received data integrity interface (CRC16 comparison) More...
 
static int agile_modbus_rtu_pre_check_confirmation (agile_modbus_t *ctx, const uint8_t *req, const uint8_t *rsp, int rsp_length)
 RTU pre-check confirmation interface (request response address comparison) More...
 

Detailed Description

Function Documentation

◆ agile_modbus_rtu_crc16()

static uint16_t agile_modbus_rtu_crc16 ( uint8_t *  buffer,
uint16_t  buffer_length 
)
static

RTU CRC16 calculation.

Parameters
bufferdata pointer
buffer_lengthdata length
Returns
CRC16 value

Definition at line 100 of file agile_modbus_rtu.c.

Here is the caller graph for this function:

◆ agile_modbus_rtu_set_slave()

static int agile_modbus_rtu_set_slave ( agile_modbus_t ctx,
int  slave 
)
static

RTU sets the address interface.

Parameters
ctxmodbus handle
slaveslave address
Returns
0: success

Definition at line 122 of file agile_modbus_rtu.c.

◆ agile_modbus_rtu_build_request_basis()

static int agile_modbus_rtu_build_request_basis ( agile_modbus_t ctx,
int  function,
int  addr,
int  nb,
uint8_t *  req 
)
static

RTU builds the basic request message interface (header message)

Parameters
ctxmodbus handle
functionfunction code
addrregister address
nbnumber of registers
reqdata storage pointer
Returns
data length

Definition at line 137 of file agile_modbus_rtu.c.

◆ agile_modbus_rtu_build_response_basis()

static int agile_modbus_rtu_build_response_basis ( agile_modbus_sft_t sft,
uint8_t *  rsp 
)
static

RTU builds the basic response message interface (header message)

Parameters
sftmodbus header parameter structure pointer
rspdata storage pointer
Returns
data length

Definition at line 157 of file agile_modbus_rtu.c.

◆ agile_modbus_rtu_prepare_response_tid()

static int agile_modbus_rtu_prepare_response_tid ( const uint8_t *  req,
int *  req_length 
)
static

RTU ready response interface.

Note
This API will automatically subtract the AGILE_MODBUS_RTU_CHECKSUM_LENGTH length from req_length
Parameters
reqrequest data pointer
req_lengthrequest data length
Returns
0 (RTU has no transaction identifier)

Definition at line 172 of file agile_modbus_rtu.c.

◆ agile_modbus_rtu_send_msg_pre()

static int agile_modbus_rtu_send_msg_pre ( uint8_t *  req,
int  req_length 
)
static

RTU pre-send data interface.

Note
This API will calculate CRC16 and automatically fill in the tail
Parameters
reqdata storage pointer
req_lengthexisting data length
Returns
data length

Definition at line 187 of file agile_modbus_rtu.c.

Here is the call graph for this function:

◆ agile_modbus_rtu_check_integrity()

static int agile_modbus_rtu_check_integrity ( agile_modbus_t ctx,
uint8_t *  msg,
const int  msg_length 
)
static

RTU check received data integrity interface (CRC16 comparison)

Parameters
ctxmodbus handle
msgReceive data pointer
msg_lengthvalid data length
Returns
>0: valid data length; others: exception

Definition at line 203 of file agile_modbus_rtu.c.

Here is the call graph for this function:

◆ agile_modbus_rtu_pre_check_confirmation()

static int agile_modbus_rtu_pre_check_confirmation ( agile_modbus_t ctx,
const uint8_t *  req,
const uint8_t *  rsp,
int  rsp_length 
)
static

RTU pre-check confirmation interface (request response address comparison)

Note
If the request address is broadcast address 0, return success
Parameters
ctxmodbus handle
reqrequest data pointer
rspresponse data pointer
rsp_lengthresponse data length
Returns
0: success; others: exception

Definition at line 227 of file agile_modbus_rtu.c.