115 lines
3.1 KiB
C
115 lines
3.1 KiB
C
/**
|
||
* @file menu_config.h
|
||
* @brief 菜单组件用户配置文件(工业级:集中管理所有可配置项)
|
||
* @note 用户可根据项目需求修改此文件
|
||
*/
|
||
#ifndef MENU_CONFIG_H
|
||
#define MENU_CONFIG_H
|
||
|
||
#include <stdint.h>
|
||
#include <stdbool.h>
|
||
|
||
/************************** 核心配置 **************************/
|
||
/**
|
||
* @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
|