UI创作思想总结
1.用户数据调整选项:
两种模式如下:
// User Data Adjustment Option
typedef enum{USRADJ_LIMIT = 0, // Limit ControlUSRADJ_LOOP = 1, // Loop Control
} EUsrAdjOption;
枚举成员含义
USRADJ_LIMIT = 0
含义:“限制控制” 或 “边界控制”。
功能:当用户调整数据(如数值、参数等)时,若调整到预设的上限或下限,将无法继续超出边界。
例如:假设某参数范围是 0~100,当用户调至 100 后,继续增加的操作会被限制,保持在 100;调至 0 后,继续减小的操作也会被限制。
USRADJ_LOOP = 1
含义:“循环控制” 或 “环绕控制”。
功能:当用户调整数据到达边界时,继续操作会从另一端循环。
例如:同样参数范围 0~100,当调至 100 后继续增加,会循环到 0;调至 0 后继续减小,会循环到 100(类似环形计数器的逻辑)。
应用场景
该枚举通常用于配置用户交互中的数据调整逻辑,比如:
车载系统中调节音量、亮度时的边界处理;
工业设备中设定参数(如温度、速度)时的输入限制;
嵌入式 UI 中通过按键增减数值时的行为模式切换。
设置List,选中项是循环表示还是屏蔽事件无反应
2.用户数据类型:
两种类型如下:
typedef enum{IDTYPE_NUMERICAL = 0, ///^ 数値型IDTYPE_SPECIAL = 1, ///^ 特殊型
} EUsrDtIdType;
一、数值型用户数据(可直接用数字表示,支持算术运算)
这类数据本质是整数或浮点数,常用于表示 “可量化的参数”,支持增减、比较等操作。
音量(Volume)
典型范围:0~100(整数)或 0.0~1.0(浮点,代表百分比)。
用途:直接参与运算(如 “音量 + 5”“音量减半”)。
亮度(Brightness)
例如:显示屏亮度 0~255(整数,对应 PWM 占空比)。
温度设定(Temperature Setpoint)
例如:空调目标温度 16~30℃(整数或带 1 位小数的浮点)。
时间 / 日期相关
例如:定时开关机的小时(0~23)、分钟(0~59),以整数存储。
频道号(Channel Number)
例如:电视的物理频道号 1~999(整数)。
倒计时时长
例如:微波炉加热时间 0~600 秒(整数)。
二、特殊型用户数据(非纯数值,需特定格式或编码)
这类数据无法用单一数字表示,可能是字符串、枚举、结构体或加密数据,需按特定规则解析。
用户账号 / ID(User Account)
例如:“user123”“U87654321”(字符串,含字母、数字、符号),不支持算术运算。
密码(Password)
例如:“Abc@123”(混合字符,通常加密存储,需按字符串比对)。
设备名称(Device Name)
例如:“客厅电视”“卧室空调”(中文 / 英文字符串,用于标识)。
日期格式(Date Format)
例如:“YYYY-MM-DD”“MM/DD/YYYY”(枚举或字符串,代表显示规则,非数值)。
语言选择(Language)
例如:“zh-CN”“en-US”(语言代码字符串)或枚举值(LANG_CHINESE=0, LANG_ENGLISH=1)。
MAC 地址 / IP 地址
例如:“AA:BB:CC:DD:EE:FF”(MAC 地址,字符串格式)、“192.168.1.1”(IP 地址,需按点分十进制解析)。
自定义配置结构体
例如:用户偏好设置(包含音量、亮度、语言等多种类型的复合数据,需按结构体格式读写)。
加密数据(Encrypted Data)
例如:支付信息、证书密钥(二进制流或 Base64 编码字符串,无法直接作为数值处理)。
核心区别
数值型:本质是数字,可直接参与运算(+、-、比较等),存储和解析简单(直接用int/float)。
特殊型:依赖特定格式或编码,需按规则转换(如字符串解析、枚举映射),不支持常规算术运算。
