Commit Graph

15 Commits

Author SHA1 Message Date
a9025d0f49 refactor(events): 移除未使用的usb_hid_event定义
移除src/events/usb_hid_event.c和usb_hid_event.h文件,
以及CMakeLists.txt中的相关源文件引用。

feat(modules): 电池模块增加充电状态电源管理限制策略

- 添加充电状态下的电源限制逻辑,充电时限制到ALIVE级别禁止自动休眠,
  非充电时恢复到SUSPENDED级别
- 默认非充电态允许进入SUSPENDED但禁止进入OFF

refactor(modules): 重构usb_hid_module减少模块间耦合

- 移除对power_manager_event.h和usb_hid_event.h的依赖
- 简化模块功能描述,去除对外发布usb_hid_event的职责
- 移除内部usb_hid_event相关的状态管理和发布逻辑
- 修改USB连接处理逻辑,在VBUS就绪时提交唤醒事件
2026-03-16 17:09:49 +08:00
4e8bb71f83 feat(usb_hid): 重构USB HID模块状态管理并优化电源管理
- 修改USB HID事件结构,将enable字段替换为stack_state枚举,
  区分VBUS连接状态和协议栈启用状态
- 更新日志和分析器中的字段映射,正确显示栈状态而非布尔使能值
- 添加电源管理限制功能,在USB连接时保持系统活跃状态
- 重构LED输入报告处理逻辑,支持引导和NKRO设备的报告解析
- 调整USB连接状态变更逻辑,仅反映VBUS连接情况
- 将power_manager超时配置从300秒调整为30秒以优化响应速度

BREAKING CHANGE: USB HID事件结构中的enable字段已替换为stack_state枚举类型
2026-03-16 15:22:10 +08:00
7587df7553 feat(led): 添加键盘LED状态管理模块
- 新增keyboard_led_state_event事件用于处理USB/BLE HID输出报告中的LED状态
- 实现led_state_module模块,管理Num Lock指示灯和BLE状态指示灯
- 定义LED状态效果映射,包括熄灭、常亮、慢闪、快闪等效果
- 将hid_keymap_def.h从configuration目录移至inc目录
- 在BLE和USB HID模块中添加对输出报告LED掩码的解析和处理
- 配置DTS中的led_1为可用状态,更新CMakeLists.txt构建配置
2026-03-16 11:39:27 +08:00
cd8101428d feat(keyboard): 添加完整的HID键盘功能模块
- 新增keyboard_module.c实现完整的键盘HID功能,包括按键映射、
  协议处理和报告生成
- 添加hid_protocol_event和hid_report_event事件系统支持
- 实现键盘和consumer类型的HID报告处理
- 支持Boot协议和Report协议两种模式
- 添加hid_keymap_def.h定义键盘映射表

refactor(ble_hid): 重构HIDS模块为BLE HID模块

- 将hids_module.c重命名为ble_hid_module.c
- 集成新的hid_protocol_event和hid_report_event事件处理
- 改进协议切换逻辑,添加协议事件发布功能
- 优化BLE HID报告发送机制

refactor(CMakeLists): 更新构建配置

- 添加新的事件模块源文件到构建列表
- 添加keyboard_module.c替换原有的button_map_module.c
- 添加ble_hid_module.c替换原有的hids_module.c
- 配置HID密钥映射定义路径编译选项

refactor(events): 简化USB HID事件结构

- 移除USB HID事件中的冗余状态字段
- 更新事件日志和分析器字段定义

docs(hid): 添加HID报告描述符文档

- 定义REPORT_ID_KEYBOARD和REPORT_ID_CONSUMER枚举值
- 整理HID报告相关的常量定义
2026-03-14 18:00:14 +08:00
a3196ef162 feat(ble): 添加蓝牙广播控制模块实现动态广告管理
- 在CMakeLists.txt中添加ble_adv_ctrl_module.c源文件
- 启用MCU管理器相关配置(CONFIG_MCUMGR等)以支持OTA功能
- 添加CAF模块挂起事件配置(CONFIG_CAF_MODULE_SUSPEND_EVENTS)
- 实现ble_adv_ctrl_module模块,根据当前模式类型控制蓝牙广告的挂起/恢复:
  * BLE模式时恢复广告,允许广播
  * USB/2.4G模式时挂起广告,禁止广播
- 模块在启动时默认请求挂起状态,防止模式切换前出现意外广播
- 通过CAF事件系统与ble_adv模块交互,实现广告控制逻辑
2026-03-14 14:04:59 +08:00
e893ddded6 feat: 添加USB HID模块支持
- 添加usb_hid_event事件定义和实现,用于管理USB HID状态
- 添加usb_hid_module模块,实现USB HID协议栈的完整生命周期管理
- 在CMakeLists.txt中注册新的事件和模块源文件
- 在设备树overlay中配置三个HID设备:HID_BOOT、HID_NKRO、HID_RAW
- 在prj.conf中启用USB设备栈相关配置选项
- 修复电池模块和模式切换模块中的重复挂起问题
- 改进蓝牙绑定模块的错误处理和日志记录
- 在app.overlay中启用usbd节点并添加PMIC配置调整
2026-03-14 12:13:25 +08:00
81846a870f feat: 添加配置事件和蓝牙配对模块支持多设备连接
添加了新的配置事件类型用于本地模块配置,包括事件定义和头文件,
以及蓝牙配对模块来管理多个配对设备。更新了CMakeLists.txt以包含
新的源文件,并修改prj.conf增加蓝牙配对数量限制。

- 新增config_event事件类型用于本地配置通信
- 实现ble_bond_module用于管理蓝牙配对和身份切换
- 配置蓝牙最大配对数和身份数为4
- 支持通过配置通道进行设备选择、删除等操作
2026-03-13 16:45:34 +08:00
05f4f117b0 feat(hids): 添加HID服务模块支持键盘和多媒体功能
- 新增hids_module.c实现蓝牙HID服务,支持键盘NKRO和Consumer控制
- 添加hid_report_descriptor.h定义统一的HID描述符,包括键盘、多媒体和RAW HID
- 在CMakeLists.txt中注册hids模块源文件
- 配置prj.conf启用蓝牙HID相关配置项,设置设备名称和外观
- 修改main.c移除启动LED效果,简化主函数逻辑
- 添加settings_loader_def.h确保模块依赖正确加载
- 配置pm_static.yml分配flash存储空间给mcuboot和settings
- 调整电源管理超时时间从20秒增加到300秒
- 启用MCUBOOT引导加载器支持
2026-03-13 16:31:02 +08:00
b3516b988a feat(battery): 添加电池管理模块和IP5305 PMIC支持
- 添加电池状态监测模块,包括ADC采样和SOC估算功能
- 集成IP5305电源管理芯片支持,配置I2C通信和保活机制
- 实现电池状态事件系统,包含充电状态、满电状态和电量百分比
- 添加电池使能GPIO控制和采样工作队列
- 配置设备树支持电池检测和PMIC控制
- 添加外部模块路径到CMakeLists.txt并更新.gitignore
2026-03-13 08:05:31 +08:00
86af0d2373 feat: 添加模式切换模块支持多协议键盘
添加了完整的模式切换功能,通过ADC采样检测模式拨码开关,
实现USB、BLE和2.4G三种工作模式的自动识别和切换。

- 新增mode_event事件用于传递模式状态
- 实现mode_switch_module模块,包含ADC初始化、
  模式识别算法和状态管理逻辑
- 配置CMakeLists.txt添加新源文件和头文件目录
- 更新设备树配置启用ADC和IO通道
- 添加Kconfig选项CONFIG_ADC=y
- 实现防抖机制和稳定的模式检测逻辑
- 集成到CAF事件系统,支持电源管理状态切换
2026-03-11 10:44:50 +08:00
3d9ce9168f feat(kbd): 添加CAF按钮模块支持
- 在CMakeLists.txt中添加button_map_module.c源文件和头文件目录
- 创建inc/buttons_def.h定义按钮矩阵引脚配置
- 配置prj.conf启用CAF按钮相关功能和参数
- 实现src/modules/button_map_module.c按钮映射逻辑
- 支持6x4键盘矩阵的按键事件处理和Linux输入键码转换
2026-03-10 16:09:33 +08:00
cd3400a9ba feat(led): 使用CAF LEDs模块替代自定义LED驱动
- 移除src/modules/led_module.c中的自定义GPIO LED实现
- 在CMakeLists.txt中移除对led_module.c的引用
- 更新prj.conf配置,启用CAF LEDs相关功能
- 添加CONFIG_CAF_POWER_MANAGER配置项以支持电源管理
- 在main.c中集成LED事件,在系统就绪时触发启动LED效果
- 实现白色常亮LED效果作为系统启动指示
2026-03-10 15:00:37 +08:00
c5778e6c7a feat(keyboard): 添加LED模块支持
- 在CMakeLists.txt中添加src/modules/led_module.c源文件
- 创建app.overlay设备树配置文件,启用GPIO0、GPIO1、GPIOTE和LED_0
- 在prj.conf中启用CONFIG_GPIO配置选项
- 实现led_module.c,包含LED GPIO控制逻辑和CAF事件处理
2026-03-10 14:38:54 +08:00
d374f824cd feat(caf): 集成事件管理器并配置CAF模块
- 在prj.conf中启用CAF、堆内存池和日志配置
- 替换kernel头文件为应用事件管理器相关头文件
- 添加模块状态事件支持用于报告就绪状态
- 初始化应用事件管理器并在初始化失败时记录错误
2026-03-10 09:17:07 +08:00
087a378e20 Initial commit for new_kbd 2026-03-10 08:49:05 +08:00