Agile Modbus 1.1.1
Lightweight modbus protocol stack.
Common Private Functions
Common Private Functions 的协作图:

函数

static uint8_t agile_modbus_compute_meta_length_after_function (agile_modbus_t *ctx, int function, agile_modbus_msg_type_t msg_type)
 计算功能码后要接收的数据元长度 更多...
 
static int agile_modbus_compute_data_length_after_meta (agile_modbus_t *ctx, uint8_t *msg, int msg_length, agile_modbus_msg_type_t msg_type)
 计算数据元之后要接收的数据长度 更多...
 
static int agile_modbus_receive_msg_judge (agile_modbus_t *ctx, uint8_t *msg, int msg_length, agile_modbus_msg_type_t msg_type)
 检验接收数据正确性 更多...
 

详细描述

函数说明

◆ agile_modbus_compute_meta_length_after_function()

static uint8_t agile_modbus_compute_meta_length_after_function ( agile_modbus_t ctx,
int  function,
agile_modbus_msg_type_t  msg_type 
)
static

计算功能码后要接收的数据元长度

   ---------- Request     Indication ----------
   | Client | ---------------------->| Server |
   ---------- Confirmation  Response ----------

   以 03 功能码请求报文举例

   ---------- ------ --------------- ---------
   | header | | 03 | | 00 00 00 01 | | CRC16 |
   ---------- ------ --------------- ---------

   ----------
   | header |
   ----------
       RTU: 设备地址
       TCP: | 事务处理标识  协议标识  长度  单元标识符 |

   ---------------
   | 00 00 00 01 |
   ---------------
       数据元: 与功能码相关的数据,如 03 功能码数据元中包含寄存器起始地址和寄存器长度
参数
ctxmodbus 句柄
function功能码
msg_type消息类型
返回
数据元长度

在文件 agile_modbus.c88 行定义.

这是这个函数的调用关系图:

◆ agile_modbus_compute_data_length_after_meta()

static int agile_modbus_compute_data_length_after_meta ( agile_modbus_t ctx,
uint8_t *  msg,
int  msg_length,
agile_modbus_msg_type_t  msg_type 
)
static

计算数据元之后要接收的数据长度

   ---------- Request     Indication ----------
   | Client | ---------------------->| Server |
   ---------- Confirmation  Response ----------

   以 03 功能码响应报文举例

   ---------- ------ ------ --------- ---------
   | header | | 03 | | 02 | | 00 00 | | CRC16 |
   ---------- ------ ------ --------- ---------

   ----------
   | header |
   ----------
       RTU: 设备地址
       TCP: | 事务处理标识  协议标识  长度  单元标识符 |

   ------
   | 02 |
   ------
       数据元: 两个字节数据

   ---------
   | 00 00 |
   ---------
       数据
参数
ctxmodbus 句柄
msg消息指针
msg_length消息长度
msg_type消息类型
返回
数据长度

在文件 agile_modbus.c177 行定义.

这是这个函数的调用关系图:

◆ agile_modbus_receive_msg_judge()

static int agile_modbus_receive_msg_judge ( agile_modbus_t ctx,
uint8_t *  msg,
int  msg_length,
agile_modbus_msg_type_t  msg_type 
)
static

检验接收数据正确性

参数
ctxmodbus 句柄
msg消息指针
msg_length消息长度
msg_type消息类型
返回
>0:正确,modbus 数据帧长度; 其他:异常

在文件 agile_modbus.c224 行定义.

函数调用图:
这是这个函数的调用关系图: