remove unused command

This commit is contained in:
Steven Dan
2026-03-26 09:35:03 +08:00
parent ffce0857c5
commit 21956716cb
2 changed files with 0 additions and 616 deletions

View File

@@ -26,15 +26,6 @@ extern void device_reboot(void);
#include "eq_flash_storage.h"
#include "user_func.h"
static struct {
uint8_t pending_cmd; // 0x95/0x96/0x97/0x98/0x99 or 0
uint8_t led_index;
} led_request = {0};
static struct {
uint8_t pending_cmd; // 0x9A/0x9C or 0
} uac_request = {0};
static struct {
uint8_t pending_cmd; // 0xB0/0xB1 or 0
uint8_t ex3d_params_len;
@@ -639,120 +630,6 @@ unsigned char process_send_params(uint8_t data[], uint16_t len) {
return true;
}
// 处理获取LED信息命令 (0x95) - GET_LED_INFO
if (data[1] == 0x95) {
uint8_t led_index = data[2];
if (led_index > 7) {
return false;
}
led_request.pending_cmd = 0x95;
led_request.led_index = led_index;
return true;
}
// 处理设置LED开关命令 (0x96) - SET_LED_SWITCH
if (data[1] == 0x96) {
uint8_t led_index = data[2];
uint8_t led_switch = data[3];
if (led_index > 7) {
return false;
}
if (led_switch > 1) {
return false;
}
// 设置LED开关全局变量
SET_SHARED_GLOBAL(g_led_enable, led_switch);
// 设置SET命令的响应标志
led_request.pending_cmd = 0x96;
led_request.led_index = led_index;
return true;
}
// 处理获取LED开关命令 (0x97) - GET_LED_SWITCH
if (data[1] == 0x97) {
uint8_t led_index = data[2];
if (led_index > 7) {
return false;
}
led_request.pending_cmd = 0x97;
led_request.led_index = led_index;
return true;
}
// 处理获取LED状态命令 (0x98) - GET_LED_STATUS
if (data[1] == 0x98) {
uint8_t led_index = data[2];
if (led_index > 7) {
return false;
}
led_request.pending_cmd = 0x98;
led_request.led_index = led_index;
return true;
}
// 处理获取LED总数命令 (0x99) - GET_LED_COUNT
if (data[1] == 0x99) {
led_request.pending_cmd = 0x99;
return true;
}
// 处理获取UAC模式信息命令 (0x9A) - GET_UAC_MODE_INFO
if (data[1] == 0x9A) {
uac_request.pending_cmd = 0x9A;
return true;
}
// 处理设置UAC模式命令 (0x9B) - SET_UAC_MODE
if (data[1] == 0x9B) {
// 获取UAC模式值
uint8_t uac_mode = data[2];
// 验证模式值范围
if (uac_mode > 1) {
return true;
}
// 读取当前UAC模式
extern unsigned g_uac_mode;
unsigned current_uac_mode;
GET_SHARED_GLOBAL(current_uac_mode, g_uac_mode);
// 如果目标模式与当前模式相同,无需操作
if ((uac_mode == 0 && current_uac_mode == 2) || (uac_mode == 1 && current_uac_mode == 1)) {
return true;
}
// 如果设置为UAC1.0需要reboot到uac1.0
#if (UAC2 == 1)
if (uac_mode == 1) {
SetRoleSwitchFlag(UAC1_IN_FLAG);
delay_milliseconds(1);
device_reboot();
while(1); // 防止编译器警告
}
#endif
#if (UAC1 == 1)
if (uac_mode == 0) {
SetRoleSwitchFlag(0);
delay_milliseconds(1);
device_reboot();
return true;
}
#endif
return true;
}
// 处理获取当前UAC模式命令 (0x9C) - GET_CURRENT_UAC_MODE
if (data[1] == 0x9C) {
uac_request.pending_cmd = 0x9C;
return true;
}
// 处理设置EQ使能开关命令 (0x9D) - SET_EQ_ENABLE
if (data[1] == 0x9D) {
uint8_t enable = data[2]; // 0=OFF禁用, 1=ON启用
@@ -1077,165 +954,6 @@ unsigned char process_read_params(uint8_t response[]) {
return true;
}
// 处理获取LED信息请求 (0x95) - GET_LED_INFO
if (led_request.pending_cmd == 0x95) {
RSP_HDR(response, 0x95);
// LED索引
response[2] = led_request.led_index;
// LED名称 (16字节UTF-8编码)
// 当前设备只有1个LED索引为0名称为"Main LED"
const char* led_name = "Main LED";
memcpy(&response[3], led_name, strlen(led_name));
led_request.pending_cmd = 0; // Clear request flag
return true;
}
// 处理获取LED开关请求 (0x97) - GET_LED_SWITCH
if (led_request.pending_cmd == 0x97) {
RSP_HDR(response, 0x97);
// LED索引
response[2] = led_request.led_index;
// 读取LED开关全局变量
extern unsigned g_led_enable;
unsigned led_enable;
GET_SHARED_GLOBAL(led_enable, g_led_enable);
// LED开关状态 (0=OFF, 1=ON)
response[3] = (uint8_t)led_enable;
led_request.pending_cmd = 0; // Clear request flag
return true;
}
// 处理设置LED开关响应 (0x96) - SET_LED_SWITCH响应
if (led_request.pending_cmd == 0x96) {
RSP_HDR(response, 0x96);
// 状态码 (0x00=成功, 0x01=失败)
// 由于SET命令已经在process_send_params中执行这里直接返回成功
response[2] = 0x00; // 成功
led_request.pending_cmd = 0; // Clear request flag
return true;
}
// 处理获取LED总数请求 (0x99) - GET_LED_COUNT
if (led_request.pending_cmd == 0x99) {
RSP_HDR(response, 0x99);
// LED总数当前设备只有1个LED
uint8_t led_count = 1;
response[2] = led_count;
led_request.pending_cmd = 0; // Clear request flag
return true;
}
// 处理获取LED状态请求 (0x98) - GET_LED_STATUS
if (led_request.pending_cmd == 0x98) {
RSP_HDR(response, 0x98);
// LED索引
response[2] = led_request.led_index;
// 读取当前LED颜色
extern unsigned g_led_color;
unsigned led_color;
GET_SHARED_GLOBAL(led_color, g_led_color);
// 转换LED颜色为RGB值
// LED颜色定义bit 1=0表示红色开启bit 2=0表示绿色开启bit 3=0表示蓝色开启
uint8_t r = 0, g = 0, b = 0;
r = ((led_color & 0x20) == 0) ? 255 : 0; // bit 1
g = ((led_color & 0x10) == 0) ? 255 : 0; // bit 2
b = ((led_color & 0x40) == 0) ? 255 : 0; // bit 3
response[3] = (uint8_t)r; // R颜色值
response[4] = (uint8_t)g; // G颜色值
response[5] = (uint8_t)b; // B颜色值
extern unsigned g_gain_mode, g_uac_mode, g_game_mode;
unsigned gain_mode, uac_mode, game_mode;
GET_SHARED_GLOBAL(gain_mode, g_gain_mode);
GET_SHARED_GLOBAL(uac_mode, g_uac_mode);
GET_SHARED_GLOBAL(game_mode, g_game_mode);
uint8_t led_status = 0; // LED_STATUS_OFF
unsigned is_blinking = 0;
unsigned is_fast_blinking = 0;
if (uac_mode == 1) { // UAC 1.0 Game Mode
if (gain_mode == 1) { // High impedance
is_blinking = 1;
if (game_mode > 0) {
is_fast_blinking = 0;
}
}
} else { // UAC 2.0 HiFi Mode
if (gain_mode == 1) { // High impedance -> Blinking
is_blinking = 1;
}
}
if (led_color == 0x7F) { // LED_OFF
led_status = 0; // LED_STATUS_OFF
} else if (is_blinking) {
led_status = is_fast_blinking ? 3 : 2; // LED_STATUS_FAST_BLINK or LED_STATUS_SLOW_BLINK
} else {
led_status = 1; // LED_STATUS_SOLID
}
response[6] = led_status; // LED状态
led_request.pending_cmd = 0; // Clear request flag
return true;
}
// 处理获取UAC模式信息请求 (0x9A) - GET_UAC_MODE_INFO
if (uac_request.pending_cmd == 0x9A) {
RSP_HDR(response, 0x9A);
// UAC模式总数当前为2UAC2.0和UAC1.0
uint8_t uac_mode_count = 2;
response[2] = uac_mode_count;
// 模式0名称UAC2.0 (8字节), 模式1名称UAC1.0 (8字节)
memcpy(&response[3], "UAC2.0", 6);
memcpy(&response[11], "UAC1.0", 6);
uac_request.pending_cmd = 0; // Clear request flag
return true;
}
// SET_UAC_MODE命令不返回响应
// 处理获取当前UAC模式请求 (0x9C) - GET_CURRENT_UAC_MODE
if (uac_request.pending_cmd == 0x9C) {
RSP_HDR(response, 0x9C);
// 读取当前UAC模式
extern unsigned g_uac_mode;
unsigned current_uac_mode;
GET_SHARED_GLOBAL(current_uac_mode, g_uac_mode);
// 转换为协议格式0=UAC2.0, 1=UAC1.0
// g_uac_mode: 2=UAC2.0, 1=UAC1.0
uint8_t uac_mode_value = (current_uac_mode == 1) ? 1 : 0; // 1=UAC1.0, 其他=UAC2.0(0)
response[2] = uac_mode_value;
// 当前UAC模式名称 (8字节)
memcpy(&response[3], (uac_mode_value == 0) ? "UAC2.0" : "UAC1.0", 6);
uac_request.pending_cmd = 0; // Clear request flag
return true;
}
// 处理设置EQ使能开关请求 (0x9D) - SET_EQ_ENABLE
if (read_request.pending_cmd == 0x9D) {
RSP_HDR(response, 0x9D);

View File

@@ -19,21 +19,9 @@
| 0x92 | SET_AND_SAVE_EQ_MODE | 设置并保存EQ模式 | 主机→设备 | 设置当前EQ模式(0-9)并保存到Flash开机时自动恢复 |
| 0x93 | SET_VOLUME | 设置音量级别 | 主机→设备 | 设置设备音量级别0-60 |
| 0x94 | GET_VOLUME | 获取音量级别 | 主机→设备 | 读取设备当前音量级别0-60 |
| 0x95 | GET_LED_INFO | 获取LED信息 | 主机→设备 | 读取LED索引和LED名称 |
| 0x96 | SET_LED_SWITCH | 设置LED开关 | 主机→设备 | 设置LED开关状态ON/OFF |
| 0x97 | GET_LED_SWITCH | 获取LED开关 | 主机→设备 | 读取LED开关状态ON/OFF |
| 0x98 | GET_LED_STATUS | 获取LED状态 | 主机→设备 | 读取LED RGB颜色和状态熄灭、常亮、慢闪、快闪、呼吸 |
| 0x99 | GET_LED_COUNT | 获取LED总数 | 主机→设备 | 读取设备支持的LED总数 |
| 0x9A | GET_UAC_MODE_INFO | 获取UAC模式信息 | 主机→设备 | 读取UAC模式总数和模式名称列表 |
| 0x9B | SET_UAC_MODE | 设置UAC模式 | 主机→设备 | 设置UAC模式UAC1.0/UAC2.0 |
| 0x9C | GET_CURRENT_UAC_MODE | 获取当前UAC模式 | 主机→设备 | 读取当前UAC模式UAC1.0/UAC2.0 |
| 0x9D | SET_EQ_ENABLE | 设置EQ使能开关 | 主机→设备 | 设置EQ使能开关ON/OFF禁用时保存当前模式启用时恢复之前模式 |
| 0x9E | GET_EQ_ENABLE | 获取EQ使能开关 | 主机→设备 | 读取EQ使能开关状态ON/OFF |
| 0x9F | GET_SAMPLE_FORMAT | 获取采样率和格式 | 主机→设备 | 读取当前采样率、DSD模式和DAC采样分辨率 |
| 0xA0 | SET_GAIN_MODE | 设置增益模式 | 主机→设备 | 设置增益模式0=低阻1=高阻) |
| 0xA1 | GET_GAIN_MODE | 获取增益模式 | 主机→设备 | 读取当前增益模式0=低阻1=高阻) |
| 0xA2 | SET_FILTER_MODE | 设置滤波器模式 | 主机→设备 | 设置滤波器模式0-78种滤波器模式 |
| 0xA3 | GET_FILTER_MODE | 获取滤波器模式 | 主机→设备 | 读取当前滤波器模式0-7 |
| 0xA4 | SET_GAME_MODE | 设置游戏模式 | 主机→设备 | 设置游戏模式0=无音效1=FPS2=虚拟7.1 |
| 0xA5 | GET_GAME_MODE | 获取游戏模式 | 主机→设备 | 读取当前游戏模式0-2 |
| 0xA6 | GET_FIRMWARE_VERSION | 获取固件版本 | 主机→设备 | 读取设备固件版本号BCD格式主版本.次版本.修订版本) |
@@ -336,225 +324,6 @@
4-62 | 59 | 0x00 | 保留字节
```
### 2.12 0x95 - GET_LED_INFO (获取LED信息)
**功能**: 读取LED索引和LED名称
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x95 | 命令码
2 | 1 | uint8 | LED索引 (0-7当前设备只有1个LED索引为0)
3-62 | 60 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x95 | 同步头2
3 | 1 | uint8 | LED索引 (0-7)
4-19 | 16 | char | LED名称 (UTF-8编码16字节)
20-62 | 43 | 0x00 | 保留字节
```
### 2.13 0x96 - SET_LED_SWITCH (设置LED开关)
**功能**: 设置LED开关状态
**方向**: 主机→设备
**数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x96 | 命令码
2 | 1 | uint8 | LED索引 (0-7当前设备只有1个LED索引为0)
3 | 1 | uint8 | LED开关 (0=OFF关闭, 1=ON开启)
4-62 | 59 | 0x00 | 保留字节
```
**设备端处理**:
- 当LED开关为OFF时所有LED输出都被禁用不显示任何LED
- 当LED开关为ON时LED正常显示
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x96 | 同步头2
3 | 1 | uint8 | 状态码 (0x00=成功, 0x01=失败)
4-62 | 59 | 0x00 | 保留字节
```
### 2.14 0x97 - GET_LED_SWITCH (获取LED开关)
**功能**: 读取LED开关状态
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x97 | 命令码
2 | 1 | uint8 | LED索引 (0-7当前设备只有1个LED索引为0)
3-62 | 60 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x97 | 同步头2
3 | 1 | uint8 | LED索引 (0-7)
4 | 1 | uint8 | LED开关 (0=OFF关闭, 1=ON开启)
5-62 | 58 | 0x00 | 保留字节
```
### 2.15 0x98 - GET_LED_STATUS (获取LED状态)
**功能**: 读取LED RGB颜色和状态
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x98 | 命令码
2 | 1 | uint8 | LED索引 (0-7当前设备只有1个LED索引为0)
3-62 | 60 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x98 | 同步头2
3 | 1 | uint8 | LED索引 (0-7)
4 | 1 | uint8 | R颜色值 (0-255)
5 | 1 | uint8 | G颜色值 (0-255)
6 | 1 | uint8 | B颜色值 (0-255)
7 | 1 | uint8 | LED状态 (0=熄灭, 1=常亮, 2=慢闪, 3=快闪, 4=呼吸)
8-62 | 55 | 0x00 | 保留字节
```
**LED状态枚举**:
- 0: LED_STATUS_OFF (熄灭)
- 1: LED_STATUS_SOLID (常亮)
- 2: LED_STATUS_SLOW_BLINK (慢闪)
- 3: LED_STATUS_FAST_BLINK (快闪)
- 4: LED_STATUS_BREATHE (呼吸)
**注意**:
- RGB颜色值基于当前LED颜色定义转换低电平有效
- LED状态基于当前LED显示模式常亮/闪烁)判断
### 2.16 0x99 - GET_LED_COUNT (获取LED总数)
**功能**: 读取设备支持的LED总数
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x99 | 命令码
2-62 | 61 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x99 | 同步头2
3 | 1 | uint8 | LED总数 (当前设备为1)
4-62 | 59 | 0x00 | 保留字节
```
**设备端处理**:
- 返回设备支持的LED总数
- 当前设备只有1个LED所以返回1
- LED索引范围为0到(LED总数-1)
### 2.17 0x9A - GET_UAC_MODE_INFO (获取UAC模式信息)
**功能**: 读取UAC模式总数和模式名称列表
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x9A | 命令码
2-62 | 61 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x9A | 同步头2
3 | 1 | uint8 | UAC模式总数 (当前为2包含UAC1.0和UAC2.0)
4-11 | 8 | char | 模式0名称 (UTF-8编码8字节如"UAC2.0")
12-19 | 8 | char | 模式1名称 (UTF-8编码8字节如"UAC1.0")
20-62 | 43 | 0x00 | 保留字节
```
**设备端处理**:
- 返回UAC模式总数当前为2
- 返回每个模式的名称不超过8个字符
- 模式0对应UAC2.0模式1对应UAC1.0
### 2.18 0x9B - SET_UAC_MODE (设置UAC模式)
**功能**: 设置UAC模式UAC1.0或UAC2.0
**方向**: 主机→设备
**数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x9B | 命令码
2 | 1 | uint8 | UAC模式值 (0=UAC2.0, 1=UAC1.0)
3-62 | 60 | 0x00 | 保留字节
```
**设备端处理**:
- 注意:设备重启后不会返回响应
### 2.19 0x9C - GET_CURRENT_UAC_MODE (获取当前UAC模式)
**功能**: 读取当前UAC模式
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0x9C | 命令码
2-62 | 61 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0x9C | 同步头2
3 | 1 | uint8 | 当前UAC模式值 (0=UAC2.0, 1=UAC1.0)
4-11 | 8 | char | 当前UAC模式名称 (UTF-8编码8字节如"UAC2.0"或"UAC1.0")
12-62 | 51 | 0x00 | 保留字节
```
**设备端处理**:
- 返回当前UAC模式名称不超过8个字符
### 2.20 0x9D - SET_EQ_ENABLE (设置EQ使能开关)
**功能**: 设置EQ使能开关启用/禁用)
**方向**: 主机→设备
@@ -660,109 +429,6 @@
- 返回当前EQ使能开关状态
- 返回之前保存的模式值(如果存在)
### 2.23 0xA0 - SET_GAIN_MODE (设置增益模式)
**功能**: 设置增益模式
**方向**: 主机→设备
**数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0xA0 | 命令码
2 | 1 | uint8 | 增益模式值 (0=低阻, 1=高阻)
3-62 | 60 | 0x00 | 保留字节
```
**参数说明**:
- **增益模式范围:** 0-1
- **说明:** 控制设备的增益档位
- 0: 低阻模式(适合高灵敏度耳机)
- 1: 高阻模式(适合高阻抗耳机)
**设备端处理**:
- 参数会通过现有的定时保存机制自动保存到Flash
**返回值**:
无直接返回值。如需确认增益模式是否设置成功请使用GET_GAIN_MODE命令读取当前增益模式。
### 2.24 0xA1 - GET_GAIN_MODE (获取增益模式)
**功能**: 读取设备当前增益模式
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0xA1 | 命令码
2-62 | 61 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0xA1 | 同步头2
3 | 1 | uint8 | 当前增益模式 (0=低阻, 1=高阻)
4-62 | 59 | 0x00 | 保留字节
```
### 2.25 0xA2 - SET_FILTER_MODE (设置滤波器模式)
**功能**: 设置滤波器模式
**方向**: 主机→设备
**数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0xA2 | 命令码
2 | 1 | uint8 | 滤波器模式值 (0-7: 8种滤波器模式)
3-62 | 60 | 0x00 | 保留字节
```
**参数说明**:
- **滤波器模式范围:** 0-7共8种模式
- **说明:** 选择DAC的数字滤波器类型
- 0: Minimum Phase filter (default)
- 1: Linear Phase Apodizing Fast Roll-off filter
- 2: Linear phase fast roll-off filter
- 3: Linear Phase Fast Roll-off low-ripple filter
- 4: Linear phase slow roll-off filter
- 5: Minimum phase fast roll-off filter
- 6: Minimum phase slow roll-off filter
- 7: Minimum Phase Fast Roll-Off Low Dispersion
**设备端处理**:
- 参数会通过现有的定时保存机制自动保存到Flash
- 如果参数超出范围(>7固件将拒绝设置并返回false
**返回值**:
无直接返回值。如需确认滤波器模式是否设置成功请使用GET_FILTER_MODE命令读取当前滤波器模式。
### 2.26 0xA3 - GET_FILTER_MODE (获取滤波器模式)
**功能**: 读取设备当前滤波器模式
**方向**: 主机→设备
**请求数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x77 | 同步头1
1 | 1 | 0xA3 | 命令码
2-62 | 61 | 0x00 | 保留字节
```
**响应数据包格式**:
```
字节位置 | 长度 | 内容 | 描述
---------|------|------|------
0 | 1 | 0x01 | Report ID
1 | 1 | 0x77 | 同步头1
2 | 1 | 0xA3 | 同步头2
3 | 1 | uint8 | 当前滤波器模式 (0-7)
4-62 | 59 | 0x00 | 保留字节
```
### 2.27 0xA4 - SET_GAME_MODE (设置游戏模式)
**功能**: 设置游戏模式
**方向**: 主机→设备