Files
blinky/inc/keyboard_core.h
skiinder 30bc314698 feat(protocol): 添加键盘协议功能支持
添加了完整的键盘协议功能,包括:
- 新增多个事件类型:cdc_proto_tx_event、function_bitmap_update_event、key_function_event
- 在CMakeLists.txt中注册新的事件源文件
- 扩展keyboard_core.h定义键盘协议相关宏
- 增强protocol_module.h定义协议消息类型常量
- 更新protobuf定义device_comm.proto添加Bitmap、FunctionKeyEvent、Ack、Error消息
- 实现CDC协议包装器模块处理协议消息传输
- 改进键盘核心模块实现按键功能映射和位图管理
- 添加协议模块处理Hello、Bitmap、FunctionKeyEvent等协议消息
- 实现USB设备状态管理和错误响应机制
2026-04-13 11:55:59 +08:00

54 lines
1.2 KiB
C

#ifndef BLINKY_KEYBOARD_CORE_H_
#define BLINKY_KEYBOARD_CORE_H_
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define KEYBOARD_BOOT_REPORT_SIZE 8U
#define KEYBOARD_PROTOCOL_USAGE_MAX 0xE7U
#define KEYBOARD_PROTOCOL_BITMAP_BYTES ((KEYBOARD_PROTOCOL_USAGE_MAX + 8U) / 8U)
#define KEYBOARD_NKRO_USAGE_MAX 0xDFU
#define KEYBOARD_NKRO_BITMAP_BYTES ((KEYBOARD_NKRO_USAGE_MAX + 8U) / 8U)
#define KEYBOARD_NKRO_REPORT_SIZE (1U + KEYBOARD_NKRO_BITMAP_BYTES)
#define KEYBOARD_CONSUMER_REPORT_SIZE 2U
enum keyboard_protocol_mode {
KEYBOARD_PROTOCOL_MODE_BOOT,
KEYBOARD_PROTOCOL_MODE_REPORT,
};
enum keyboard_report_type {
KEYBOARD_REPORT_TYPE_KEYS,
KEYBOARD_REPORT_TYPE_CONSUMER,
};
enum hid_queue_policy {
HID_QUEUE_POLICY_LATEST,
HID_QUEUE_POLICY_FIFO,
};
enum hid_transport {
HID_TRANSPORT_USB,
HID_TRANSPORT_BLE,
HID_TRANSPORT_COUNT,
};
enum keyboard_consumer_control {
KEYBOARD_CONSUMER_CTRL_MUTE,
KEYBOARD_CONSUMER_CTRL_VOLUME_UP,
KEYBOARD_CONSUMER_CTRL_VOLUME_DOWN,
KEYBOARD_CONSUMER_CTRL_PLAY_PAUSE,
KEYBOARD_CONSUMER_CTRL_NEXT_TRACK,
KEYBOARD_CONSUMER_CTRL_PREV_TRACK,
KEYBOARD_CONSUMER_CTRL_COUNT,
};
#ifdef __cplusplus
}
#endif
#endif /* BLINKY_KEYBOARD_CORE_H_ */