/** * @file menu_param.h * @brief 菜单参数管理内部类型定义(用户无需关心) */ #ifndef MENU_PARAM_H #define MENU_PARAM_H #include "menu_core.h" #include #include /** * @brief 参数值共用体(支持多种数据类型) */ typedef union { int8_t i8; ///< 8位有符号整数 uint8_t u8; ///< 8位无符号整数 int16_t i16; ///< 16位有符号整数 uint16_t u16; ///< 16位无符号整数 int32_t i32; ///< 32位有符号整数 uint32_t u32; ///< 32位无符号整数 float f; ///< 浮点数 } MenuParamValue; /** * @brief 参数结构体(参数管理的核心单元) */ typedef struct { uint16_t id; ///< 参数ID(唯一) MenuParamType type; ///< 参数类型 MenuParamValue value; ///< 当前值 MenuParamValue default_val;///< 默认值 float min_val; ///< 最小值(浮点表示) float max_val; ///< 最大值(浮点表示) float scale; ///< 缩放因子 bool is_registered : 1; ///< 是否已注册 } MenuParam; #endif // MENU_PARAM_H