初始化整定
This commit is contained in:
111
port/menu_port.h
111
port/menu_port.h
@ -1,111 +0,0 @@
|
||||
/**
|
||||
**********************************************************************************************************************
|
||||
* @file menu_port.h
|
||||
* @brief 菜单组件硬件端口层定义
|
||||
* @author menu_component
|
||||
* @date 2025-12-19
|
||||
**********************************************************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef MENU_PORT_H
|
||||
#define MENU_PORT_H
|
||||
|
||||
/* Includes ----------------------------------------------------------------------------------------------------------*/
|
||||
#include "../src/core/menu_config.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
/* 类型定义 ---------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief Modbus寄存器类型
|
||||
*/
|
||||
typedef enum {
|
||||
MODBUS_REG_TYPE_COIL, /*!< 线圈寄存器 */
|
||||
MODBUS_REG_TYPE_DISCRETE_INPUT, /*!< 离散输入寄存器 */
|
||||
MODBUS_REG_TYPE_HOLDING_REG, /*!< 保持寄存器 */
|
||||
MODBUS_REG_TYPE_INPUT_REG, /*!< 输入寄存器 */
|
||||
} ModbusRegType;
|
||||
|
||||
/**
|
||||
* @brief 持久化操作回调函数类型定义
|
||||
*/
|
||||
typedef MenuErrCode (*MenuPersistenceSaveCallback)(const uint8_t* data, uint16_t size); ///< 保存持久化数据回调
|
||||
typedef MenuErrCode (*MenuPersistenceRestoreCallback)(uint8_t* data, uint16_t* size); ///< 恢复持久化数据回调
|
||||
|
||||
/**
|
||||
* @brief 硬件驱动结构体
|
||||
*/
|
||||
typedef struct {
|
||||
void (*printf)(const char* fmt, va_list args); ///< 硬件打印接口
|
||||
uint32_t (*get_tick)(void); ///< 获取系统滴答时间
|
||||
void (*delay_ms)(uint32_t ms); ///< 硬件延迟函数
|
||||
void (*display)(const char* menu_name, uint16_t menu_id); ///< 菜单显示接口
|
||||
MenuEventType (*key_scan)(void); ///< 按键扫描接口(可选)
|
||||
void (*irq_ctrl)(bool enable); ///< 中断管理接口(可选)
|
||||
void (*error_handler)(MenuErrCode err_code); ///< 错误处理接口(可选)
|
||||
MenuErrCode (*modbus_send)(ModbusRegType reg_type, uint16_t reg_addr, const uint8_t* reg_buf, uint8_t buf_len); ///< Modbus发送接口(可选)
|
||||
MenuErrCode (*modbus_receive)(ModbusRegType reg_type, uint16_t reg_addr, uint8_t* reg_buf, uint8_t buf_len); ///< Modbus接收接口(可选)
|
||||
MenuPersistenceSaveCallback persistence_save; ///< 持久化数据保存接口(可选)
|
||||
MenuPersistenceRestoreCallback persistence_restore; ///< 持久化数据恢复接口(可选)
|
||||
} MenuPortDriver;
|
||||
|
||||
/* 函数声明 ---------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @brief 初始化硬件端口层
|
||||
* @param driver 硬件驱动结构体指针
|
||||
* @return 错误码
|
||||
*/
|
||||
MenuErrCode menu_port_init(const MenuPortDriver* driver);
|
||||
|
||||
/**
|
||||
* @brief 反初始化硬件端口层
|
||||
* @return 错误码
|
||||
*/
|
||||
MenuErrCode menu_port_deinit(void);
|
||||
|
||||
/**
|
||||
* @brief 获取当前系统时间(ms)
|
||||
* @return 系统时间(ms)
|
||||
*/
|
||||
uint32_t menu_port_get_tick(void);
|
||||
|
||||
/**
|
||||
* @brief 硬件延迟函数
|
||||
* @param ms 延迟时间(ms)
|
||||
*/
|
||||
void menu_port_delay_ms(uint32_t ms);
|
||||
|
||||
/**
|
||||
* @brief 打印函数
|
||||
* @param fmt 格式化字符串
|
||||
* @param ... 可变参数
|
||||
*/
|
||||
void menu_port_printf(const char* fmt, ...);
|
||||
|
||||
/**
|
||||
* @brief 菜单显示函数
|
||||
* @param menu_name 菜单名称
|
||||
* @param menu_id 菜单ID
|
||||
*/
|
||||
void menu_port_display(const char* menu_name, uint16_t menu_id);
|
||||
|
||||
/**
|
||||
* @brief 按键扫描函数
|
||||
* @return 按键事件类型
|
||||
*/
|
||||
MenuEventType menu_port_key_scan(void);
|
||||
|
||||
/**
|
||||
* @brief 中断管理函数
|
||||
* @param enable 是否启用中断
|
||||
*/
|
||||
void menu_port_irq_ctrl(bool enable);
|
||||
|
||||
/**
|
||||
* @brief 错误处理函数
|
||||
* @param err_code 错误码
|
||||
*/
|
||||
void menu_port_error_handler(MenuErrCode err_code);
|
||||
|
||||
#endif /* MENU_PORT_H */
|
||||
Reference in New Issue
Block a user