SkillAgentSearch skills...

BitsButton

BitsButton​​: Embedded button framework leveraging ​​binary bit sequences​​ to detect single keys, combinations (Ctrl+C), and complex sequences (click-long-double). Features ​​full press-release tracking​​ and ​​lock-free ring buffer​​ for zero-loss multithreading.

Install / Use

/learn @530china/BitsButton
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

BitsButton

嵌入式系统优化的按键检测框架 - 通过二进制位序列技术高效处理单键、组合键和复杂序列

CI Status License

核心特性

  • 全生命周期按键跟踪:从按键按下到释放的完整状态跟踪,创新使用位序列记录按键状态,1代表按下,0代表松开:

    键值 | 说明 --- | --- 0b0 | 未按下 0b010 | 单击 0b01010 | 双击 0b01010...n | n连击 0b011 | 长按开始 0b0111 | 长按保持 0b01110 | 长按结束 0b01011 | 短按然后长按 0b0101011 | 双击然后长按 0b01010..n11 | n连击然后长按

    直观的二进制表示让按键逻辑一目了然

  • 基础按键事件:单击、双击、三击、长按、长按保持等多种事件类型

  • 高级序列检测:可识别复杂的按键模式,如"单击→长按→双击"序列、"长按后单击切换设置项"、"双击后长按执行特殊功能"等高级操作

  • 组合键支持:支持多键组合,如同时按下"音量+"和"音量-"执行特殊功能

  • 超低内存占用:每个按键仅需少于20字节RAM,适合资源受限环境

  • 灵活缓冲区模式:支持C11原子缓冲(线程安全)、用户自定义缓冲和零内存占用模式

  • 低功耗优化:独创peek功能,可在不消费事件的情况下预览状态,完美适配休眠唤醒场景

  • 双重处理模式:支持回调模式(事件驱动)和轮询模式(精确控制)

  • C标准兼容:支持C89/C99/C11,兼容老旧编译器

快速开始

# 克隆项目
git clone https://github.com/530china/BitsButton.git
cd BitsButton

# 运行自动化测试用例
./run_tests.bat              # Windows
./test/scripts/run_tests.sh  # Linux/macOS

项目结构

BitsButton/
├── bits_button.h/.c        # 核心库
├── examples/               # 示例代码
├── test/                   # 测试框架
├── simulator/              # 按键模拟器
├── docs/                   # 详细文档
└── README.md

应用场景

  • 智能家居:智能灯泡、智能插座、智能门锁等
  • 可穿戴设备:智能手表、健康监测设备等
  • 嵌入式系统:工业控制、医疗设备、汽车电子等

文档

详细文档请参见 docs/ 目录,包括:

文档组织原则

  • 项目根文档原则:主要的、面向用户的文档放在docs目录下,作为统一的文档入口
  • 模块内部文档原则:特定模块的技术实现细节文档保留在模块目录内

遵循以上原则,避免文档内容重复,保持文档结构清晰。

许可证

Apache License Version 2.0

View on GitHub
GitHub Stars207
CategoryDevelopment
Updated11h ago
Forks27

Languages

C

Security Score

95/100

Audited on Mar 27, 2026

No findings