增加modbus绑定

This commit is contained in:
冯佳
2025-12-18 22:24:25 +08:00
parent 9773cb5a0a
commit e5eaf2172f
13 changed files with 1443 additions and 216 deletions

View File

@ -95,4 +95,45 @@ MenuEventType menu_port_key_scan(void)
}
return MENU_EVENT_NONE;
}
*/
*/
#if MENU_CONFIG_ENABLE_MODBUS_MAP
/**
* @brief Modbus硬件发送数据接口示例实现
* @param reg_type 寄存器类型
* @param reg_addr 寄存器地址
* @param reg_buf 数据缓冲区
* @param buf_len 数据长度
* @return 错误码
* @note 用户需要根据实际硬件如RS485、TCP实现此接口
*/
MenuErrCode menu_port_modbus_send(ModbusRegType reg_type, uint16_t reg_addr, const uint8_t* reg_buf, uint8_t buf_len)
{
// 示例通过RS485发送Modbus写指令如写保持寄存器0x000040001
// 实际需根据Modbus协议实现帧组装、校验、发送
(void)reg_type;
(void)reg_addr;
(void)reg_buf;
(void)buf_len;
return MENU_OK; // 模拟成功,用户需替换为实际逻辑
}
/**
* @brief Modbus硬件接收数据接口示例实现
* @param reg_type 寄存器类型
* @param reg_addr 寄存器地址
* @param reg_buf 数据缓冲区
* @param buf_len 数据长度
* @return 错误码
* @note 用户需要根据实际硬件如RS485、TCP实现此接口
*/
MenuErrCode menu_port_modbus_receive(ModbusRegType reg_type, uint16_t reg_addr, uint8_t* reg_buf, uint8_t buf_len)
{
// 示例通过RS485接收Modbus读指令的响应数据
(void)reg_type;
(void)reg_addr;
(void)reg_buf;
(void)buf_len;
return MENU_OK; // 模拟成功,用户需替换为实际逻辑
}
#endif // MENU_CONFIG_ENABLE_MODBUS_MAP

View File

@ -47,4 +47,28 @@ void menu_port_display(const char* menu_name, uint16_t menu_id);
*/
// MenuEventType menu_port_key_scan(void);
#include "menu.h"
#if MENU_CONFIG_ENABLE_MODBUS_MAP
/**
* @brief Modbus硬件发送数据接口用户需实现如RS485发送
* @param reg_type 寄存器类型
* @param reg_addr 寄存器地址
* @param reg_buf 数据缓冲区
* @param buf_len 数据长度
* @return 错误码
*/
MenuErrCode menu_port_modbus_send(ModbusRegType reg_type, uint16_t reg_addr, const uint8_t* reg_buf, uint8_t buf_len);
/**
* @brief Modbus硬件接收数据接口用户需实现如RS485接收
* @param reg_type 寄存器类型
* @param reg_addr 寄存器地址
* @param reg_buf 数据缓冲区
* @param buf_len 数据长度
* @return 错误码
*/
MenuErrCode menu_port_modbus_receive(ModbusRegType reg_type, uint16_t reg_addr, uint8_t* reg_buf, uint8_t buf_len);
#endif // MENU_CONFIG_ENABLE_MODBUS_MAP
#endif // MENU_PORT_H