/** * @file menu_config.h * @brief 菜单组件用户配置文件(工业级:集中管理所有可配置项) * @note 用户可根据项目需求修改此文件 */ #ifndef MENU_CONFIG_H #define MENU_CONFIG_H #include #include /************************** 核心配置 **************************/ /** * @brief 最大菜单节点数(静态内存,根据项目调整) */ #define MENU_CONFIG_MAX_NODES 32 /** * @brief 菜单栈深度(最大导航层级,如根→子→孙,深度为3) */ #define MENU_CONFIG_STACK_DEPTH 8 /** * @brief 事件队列长度(存储按键/自定义事件,避免丢失) */ #define MENU_CONFIG_EVENT_QUEUE_LEN 16 /** * @brief 是否启用断言(调试时开启,发布时关闭) */ #define MENU_CONFIG_ENABLE_ASSERT 1 /** * @brief 是否启用调试打印(调试时开启,发布时关闭) */ #define MENU_CONFIG_ENABLE_DEBUG 0 /** * @brief 是否启用内存监控(调试时开启,发布时关闭) */ #define MENU_CONFIG_ENABLE_MEM_MONITOR 1 /** * @brief 内存使用统计结构体 */ typedef struct { uint16_t total_nodes; ///< 总菜单节点数 uint16_t used_nodes; ///< 已使用菜单节点数 uint16_t total_params; ///< 总参数数 uint16_t used_params; ///< 已使用参数数 uint16_t total_modbus_maps; ///< 总Modbus映射数 uint16_t used_modbus_maps; ///< 已使用Modbus映射数 uint16_t event_queue_len; ///< 事件队列长度 uint16_t event_queue_used; ///< 事件队列已使用长度 } MenuMemStats; /************************** 功能扩展配置(可裁剪) **************************/ /** * @brief 是否启用参数管理功能 */ #define MENU_CONFIG_ENABLE_PARAM 1 /** * @brief 是否启用多语言功能 */ #define MENU_CONFIG_ENABLE_LANG 1 /** * @brief 最大参数数量(启用参数管理时有效) */ #define MENU_CONFIG_MAX_PARAMS 16 /** * @brief 支持的最大语言数量(启用多语言时有效) */ #define MENU_CONFIG_MAX_LANGS 2 /************************** 硬件无关配置 **************************/ /** * @brief 事件处理超时时间(ms,防止事件队列阻塞) */ #define MENU_CONFIG_EVENT_TIMEOUT 100 /** * @brief 菜单刷新间隔(ms,控制显示刷新频率) */ #define MENU_CONFIG_REFRESH_INTERVAL 50 /************************** Modbus映射功能配置(可裁剪) **************************/ /** * @brief 是否启用参数-Modbus寄存器映射功能 */ #define MENU_CONFIG_ENABLE_MODBUS_MAP 1 /** * @brief 最大Modbus映射数量(静态内存,根据项目调整) */ #define MENU_CONFIG_MAX_MODBUS_MAPS 16 /** * @brief Modbus寄存器地址最大值(根据实际Modbus从站配置) */ #define MENU_CONFIG_MODBUS_MAX_ADDR 0x0FFF /** * @brief 默认Modbus字节序(0-小端,1-大端,2-字小端字节大端(Modbus标准)) */ #define MENU_CONFIG_MODBUS_BYTE_ORDER 2 /** * @brief 是否启用Modbus映射权限校验(与参数权限联动) */ #define MENU_CONFIG_MODBUS_PERMISSION 1 #endif // MENU_CONFIG_H