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报告相关的常量定义
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* HID keymap for current new_kbd numeric keypad layout.
|
||||
* 说明:
|
||||
* - 本文件仿照 nrf_desktop 的 hid_keymap_def.h 组织方式;
|
||||
* - 仅由 keyboard_module.c 包含一次(通过 APP_HID_KEYMAP_DEF_PATH);
|
||||
* - 条目必须按 key_id 升序排列(按 KEY_ID(col, row) 计算后的数值顺序)。
|
||||
*/
|
||||
|
||||
#include <caf/key_id.h>
|
||||
|
||||
/*
|
||||
* 防止该定义文件被多处 include 导致重复符号。
|
||||
* 约定仅由 keyboard_module.c 包含一次。
|
||||
*/
|
||||
const struct {} hid_keymap_def_include_once;
|
||||
|
||||
static const struct hid_keymap hid_keymap[] = {
|
||||
/* col 0 */
|
||||
{ KEY_ID(0, 1), 0x0053, REPORT_ID_KEYBOARD }, /* Num Lock */
|
||||
{ KEY_ID(0, 2), 0x005F, REPORT_ID_KEYBOARD }, /* Keypad 7 */
|
||||
{ KEY_ID(0, 3), 0x005C, REPORT_ID_KEYBOARD }, /* Keypad 4 */
|
||||
{ KEY_ID(0, 4), 0x0059, REPORT_ID_KEYBOARD }, /* Keypad 1 */
|
||||
{ KEY_ID(0, 5), 0x0062, REPORT_ID_KEYBOARD }, /* Keypad 0 */
|
||||
|
||||
/* col 1 */
|
||||
{ KEY_ID(1, 1), 0x0054, REPORT_ID_KEYBOARD }, /* Keypad / */
|
||||
{ KEY_ID(1, 2), 0x0060, REPORT_ID_KEYBOARD }, /* Keypad 8 */
|
||||
{ KEY_ID(1, 3), 0x005D, REPORT_ID_KEYBOARD }, /* Keypad 5 */
|
||||
{ KEY_ID(1, 4), 0x005A, REPORT_ID_KEYBOARD }, /* Keypad 2 */
|
||||
{ KEY_ID(1, 5), 0x0063, REPORT_ID_KEYBOARD }, /* Keypad . */
|
||||
|
||||
/* col 2 */
|
||||
{ KEY_ID(2, 1), 0x0055, REPORT_ID_KEYBOARD }, /* Keypad * */
|
||||
{ KEY_ID(2, 2), 0x0061, REPORT_ID_KEYBOARD }, /* Keypad 9 */
|
||||
{ KEY_ID(2, 3), 0x005E, REPORT_ID_KEYBOARD }, /* Keypad 6 */
|
||||
{ KEY_ID(2, 4), 0x005B, REPORT_ID_KEYBOARD }, /* Keypad 3 */
|
||||
|
||||
/* col 3 */
|
||||
{ KEY_ID(3, 0), 0x00E2, REPORT_ID_CONSUMER }, /* Mute */
|
||||
{ KEY_ID(3, 1), 0x0056, REPORT_ID_KEYBOARD }, /* Keypad - */
|
||||
{ KEY_ID(3, 3), 0x0057, REPORT_ID_KEYBOARD }, /* Keypad + */
|
||||
{ KEY_ID(3, 5), 0x0058, REPORT_ID_KEYBOARD }, /* Keypad Enter */
|
||||
};
|
||||
Reference in New Issue
Block a user