This commit is contained in:
PhatenIoT-yan
2026-03-09 16:50:37 +08:00
parent 14544eccd3
commit e469ee0144
55 changed files with 4539 additions and 417 deletions

View File

@@ -102,6 +102,10 @@ search:
| 0xA4 | SET_GAME_MODE | 设置游戏模式 | PC → 设备 |
| 0xA5 | GET_GAME_MODE | 获取游戏模式 | PC ↔ 设备 |
| 0xA6 | GET_FIRMWARE_VERSION | 获取固件版本号 | PC ↔ 设备 |
| 0xB0 | SET_EX3D_CMD | 发送 EX3D 命令(封装所有 EX3D SET 命令) | PC ↔ 设备 |
| 0xB1 | GET_EX3D_CMD | 读取 EX3D 参数(封装所有 EX3D GET 命令) | PC ↔ 设备 |
| 0x80 | SET_UPSAMPLE | 设置采样率升频开关 | PC → 设备 |
| 0x81 | GET_UPSAMPLE | 获取采样率升频状态 | PC ↔ 设备 |
### 2.2 详细命令格式
@@ -797,6 +801,186 @@ search:
- 版本号采用 BCDBinary Coded Decimal格式
- 例如:`0x01 0x00 0x0C` 表示版本 `1.0.12`
#### 2.2.30 发送 EX3D 命令0xB0
**功能说明**: 发送 EX3D 设置命令,封装所有 EX3D SET 命令
**请求格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码(包含 SET 标志,参考 ex3d_protocol.md |
| 7-10 | 4 | param1 | 参数1根据 EX3D 命令不同而不同) |
| 11-14 | 4 | param2 | 参数2根据 EX3D 命令不同而不同) |
| 15-18 | 4 | param3 | 参数3根据 EX3D 命令不同而不同) |
| 19-63 | 45 | reserved | 保留字段或扩展参数 |
**EX3D 命令码说明**:
- 基础命令码范围: 0x80-0x94
- SET 命令格式: `基础命令码 & ~0x0100`(清除第 9 位)
- 支持的 SET 命令:
- 0x81: CMD_OPEN打开 EX3D
- 0x82: CMD_ONOFF设置 EX3D 开关)
- 0x83: CMD_ANGLE设置角度
- 0x84: CMD_SOUND_FIELD设置声场模式
- 0x85: CMD_MUTE设置静音
- 0x86: CMD_ON_GAIN设置开启增益
- 0x87: CMD_LMT_THRESHOLD设置限制器阈值
- 0x88: CMD_UPMIX设置上混
- 0x89: CMD_LFE设置 LFE 增益)
- 0x8A: CMD_OFF_GAIN设置关闭增益
- 0x8E: CMD_LMT_ATTACKK_TIME设置限制器攻击时间
- 0x8F: CMD_LMT_RELEASE_TIME设置限制器释放时间
- 0x90: CMD_TEST_CANCEL取消测试
- 0x91: CMD_TEST_STEP测试步骤
- 0x92: CMD_TEST_ROTATE测试旋转
- 0x93: CMD_EXPAND_GAIN设置扩展增益
- 0x94: CMD_REDUCE_GAIN设置减少增益
**设备端处理**:
- 解析 EX3D 命令码,提取基础命令码和参数
- 调用相应的 EX3D 处理函数hid_receive_task_in_c
- 根据命令类型执行相应的设置操作
**响应格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0回显 |
| 3 | 1 | status | 状态码0x00=成功, 0x01=失败) |
| 4-7 | 4 | ex3d_cmd | EX3D 命令码(回显) |
| 8-11 | 4 | result | 返回值(某些命令返回 0xFFFFFFFF 表示参数错误) |
| 12-63 | 52 | reserved | 保留字段 |
**使用说明**:
- 该命令用于统一封装所有 EX3D 设置命令
- 参数格式与原始 EX3D 协议保持一致
- 详细的 EX3D 命令说明请参考 ex3d_protocol.md 文档
#### 2.2.31 读取 EX3D 命令0xB1
**功能说明**: 读取 EX3D 参数,封装所有 EX3D GET 命令
**请求格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码(包含 GET 标志,参考 ex3d_protocol.md |
| 7-10 | 4 | param1 | 参数1根据 EX3D 命令不同而不同,如通道号、索引等) |
| 11-63 | 53 | reserved | 保留字段或扩展参数 |
**EX3D 命令码说明**:
- 基础命令码范围: 0x80-0x94
- GET 命令格式: `基础命令码 | 0x0100`(设置第 9 位)
- 支持的 GET 命令:
- 0x180: CMD_CH_NUM获取通道数量
- 0x182: CMD_ONOFF获取 EX3D 开关)
- 0x183: CMD_ANGLE获取角度
- 0x184: CMD_SOUND_FIELD获取声场模式
- 0x185: CMD_MUTE获取静音
- 0x186: CMD_ON_GAIN获取开启增益
- 0x187: CMD_LMT_THRESHOLD获取限制器阈值
- 0x188: CMD_UPMIX获取上混
- 0x189: CMD_LFE获取 LFE 增益)
- 0x18A: CMD_OFF_GAIN获取关闭增益
- 0x18B: CMD_SOUND_FIELD_NUM获取声场模式数量
- 0x18C: CMD_SOUND_FIELD_NAME获取声场模式名称
- 0x18D: CMD_LEVEL获取电平
- 0x18E: CMD_LMT_ATTACKK_TIME获取限制器攻击时间
- 0x18F: CMD_LMT_RELEASE_TIME获取限制器释放时间
- 0x193: CMD_EXPAND_GAIN获取扩展增益
- 0x194: CMD_REDUCE_GAIN获取减少增益
**设备端处理**:
- 解析 EX3D 命令码,提取基础命令码和参数
- 调用相应的 EX3D 处理函数hid_receive_task_in_c
- 返回当前参数值
**响应格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1回显 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码(回显) |
| 7-10 | 4 | result1 | 返回值1根据命令不同而不同 |
| 11-14 | 4 | result2 | 返回值2某些命令需要多个返回值如角度、多通道数据等 |
| 15-18 | 4 | result3 | 返回值3扩展返回值如多通道数据 |
| 19-63 | 45 | reserved | 其他返回值或填充(最多可返回 14 个 uint32 值,总长度不超过 63 字节) |
**返回值说明**:
- 返回值数量和格式取决于具体的 EX3D 命令
- 单值命令:返回 1 个 uint32 值
- 多值命令(如角度、多通道数据):返回多个 uint32 值
- 字符串命令如声场名称先返回长度uint32然后返回字符串数据
- 详细的返回值格式请参考 ex3d_protocol.md 文档
**使用说明**:
- 该命令用于统一封装所有 EX3D 读取命令
- 参数格式与原始 EX3D 协议保持一致
- 详细的 EX3D 命令说明请参考 ex3d_protocol.md 文档
#### 2.2.32 设置采样率升频0x80
**功能说明**: 设置设备采样率升频开关
**请求格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0x80 |
| 3 | 1 | upsample | 升频状态0=禁用升频, 1=使能升频) |
| 4-63 | 60 | reserved | 保留字段填充0 |
**参数说明**:
- 升频状态0=禁用升频1=使能升频
**返回值**:
无直接返回值。如需确认升频状态,请使用 GET_UPSAMPLE (0x81) 命令读取。
#### 2.2.33 获取采样率升频0x81
**功能说明**: 读取设备当前采样率升频状态
**请求格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0x81 |
| 3-63 | 61 | reserved | 保留字段填充0 |
**响应格式64 字节)**:
| 偏移 | 长度 | 字段名 | 描述 |
|:----:|:----:|:------:|:----:|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0x81回显 |
| 3 | 1 | upsample | 当前升频状态0=禁用, 1=使能) |
| 4-63 | 60 | reserved | 保留字段填充0 |
## 三、数据流程和时序 :material-timeline-clock:
### 3.1 典型操作流程