- 新增docs/device_communication_protocol_v1.md文档,定义V1修订版协议 - CDC和BLE GATT均改为直接传输业务消息,去掉外层协议封装 - BLE改为使用NUS(Nordic UART Service)替代原有GATT服务 - 统一键盘位图为29字节格式,FunctionKeyEvent改为上报全键盘位图 - 顶层消息增加msg_id和reply_to字段用于请求响应匹配 - Ack和Error合并为统一Response消息类型 - CDC和NUS均增加统一外层帧格式:magic(2) + len(1) + protobuf - 添加Proto frame常量定义及长度验证逻辑 - 更新proto文件定义,包含DeviceMessage统一信封和ResponseCode枚举 - 重构hid_flowctrl_module.c中的上下文访问方式,统一使用ctx前缀
69 lines
1.2 KiB
Protocol Buffer
69 lines
1.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
enum ResponseCode {
|
|
RESPONSE_CODE_OK = 0;
|
|
RESPONSE_CODE_UNKNOWN_TYPE = 1;
|
|
RESPONSE_CODE_INVALID_LENGTH = 2;
|
|
RESPONSE_CODE_INVALID_PARAM = 3;
|
|
RESPONSE_CODE_NOT_READY = 4;
|
|
}
|
|
|
|
message HelloReq {
|
|
uint32 protocol_version = 1;
|
|
}
|
|
|
|
message HelloRsp {
|
|
uint32 protocol_version = 1;
|
|
uint32 vendor_id = 2;
|
|
uint32 product_id = 3;
|
|
uint32 firmware_major = 4;
|
|
uint32 firmware_minor = 5;
|
|
uint32 capability_flags = 6;
|
|
}
|
|
|
|
message Bitmap {
|
|
bytes usage_bitmap = 1;
|
|
}
|
|
|
|
message FunctionKeyEvent {
|
|
bytes usage_bitmap = 1;
|
|
}
|
|
|
|
message LedState {
|
|
uint32 led_mask = 1;
|
|
}
|
|
|
|
message TimeSync {
|
|
uint32 version = 1;
|
|
uint32 flags = 2;
|
|
sint32 timezone_min = 3;
|
|
fixed64 utc_ms = 4;
|
|
fixed32 accuracy_ms = 5;
|
|
}
|
|
|
|
message ThemeRgb {
|
|
uint32 red = 1;
|
|
uint32 green = 2;
|
|
uint32 blue = 3;
|
|
}
|
|
|
|
message Response {
|
|
ResponseCode error_code = 1;
|
|
}
|
|
|
|
message DeviceMessage {
|
|
uint32 msg_id = 10;
|
|
uint32 reply_to = 11;
|
|
|
|
oneof body {
|
|
HelloReq hello_req = 1;
|
|
HelloRsp hello_rsp = 2;
|
|
Bitmap bitmap = 3;
|
|
FunctionKeyEvent function_key_event = 4;
|
|
LedState led_state = 5;
|
|
TimeSync time_sync = 6;
|
|
ThemeRgb theme_rgb = 7;
|
|
Response response = 8;
|
|
}
|
|
}
|