# tiny_item **Repository Path**: axiulo/tiny_item ## Basic Information - **Project Name**: tiny_item - **Description**: 本代码提供了一套灵活、高效的 16位复合数据管理方案,主要针对嵌入式系统或资源受限场景中对数值与配置信息的高效封装需求。其核心是通过 动态位宽分配 将16位变量划分为高位的 可选项(配置参数) 和低位的 当前项(实时数值),实现紧凑存储与快速操作。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-20 - **Last Updated**: 2025-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 代码简介 本代码提供了一套灵活、高效的 16位复合数据管理方案,主要针对嵌入式系统或资源受限场景中对数值与配置信息的高效封装需求。其核心是通过 动态位宽分配 将16位变量划分为高位的 可选项(配置参数) 和低位的 当前项(实时数值),实现紧凑存储与快速操作。 核心特性 动态位宽适配 用户可通过宏 OPTION_BITS 和 CURRENT_BITS 自由划分高低位宽(如高12位可选项 + 低4位当前项),充分适配不同场景需求,最大支持15位可选项与1位当前项的极端配置。 内存高效管理 基于 联合体(Union) 与 位域(Bit-field) 技术,确保数据在内存中以16位紧凑存储,同时支持直接字段访问,消除冗余内存占用。 安全操作保障 自动掩码截断:输入值超出指定位宽时自动滤除无效位,避免数据溢出。 验证策略扩展:通过函数指针 ValidateFunc 可注入 validate_by_bitmask(位掩码验证)或 validate_by_max(数值范围验证)等策略,支持自定义条件校验。 跨场景适用 嵌入式菜单:可选项存储菜单属性(如可见性、权限),当前项标识选中项。 传感器控制:可选项编码采样参数(如精度模式),当前项传递实时采样值。 通信协议:可选项定义优先级/加密标志,当前项携带短指令码。 使用示例 #include "item_handler.h" int main() { Item config; // 设置可选项(如允许的最大值) item_set_options(&config, 100); // 安全更新当前项(触发阈值检查) bool success = item_safe_set_current(&config, 80, validate_by_max); // 获取完整16位值用于传输 uint16_t packed = config.raw; return 0; } 优势总结 资源节约:无动态内存分配,适用于裸机/RTOS环境。 灵活扩展:模块化设计,支持新增验证策略及数据规则。 安全可靠:通过编译时静态检查与运行时验证,保障数据合法性。 代码适用于物联网设备、工业控制器等对存储与实时性敏感的领域,兼顾高效性与易维护性。