Skip to content

Latest commit

 

History

History
134 lines (103 loc) · 3.99 KB

File metadata and controls

134 lines (103 loc) · 3.99 KB

USB HID 通信格式分析文档

概述

本文档详细说明了遥控器与USB HID设备之间的数据通信格式。

数据包结构

基本信息

  • 数据包长度: 18字节
  • 通信周期: ~100ms (从日志时间戳分析)
  • 字节序: 小端序 (Little-Endian)

字节分配表

字节位置 字段名称 大小 数据类型 说明
1-2 帧头 2字节 固定值 0x02 0x0E
3-4 时间戳/计数器 2字节 UINT16 递增计数器
5-6 左摇杆X轴 2字节 INT16 左摇杆水平方向
7-8 左摇杆Y轴 2字节 INT16 左摇杆垂直方向
9-10 右摇杆X轴 2字节 INT16 右摇杆水平方向
11-12 右摇杆Y轴 2字节 INT16 右摇杆垂直方向
13-14 左波轮 2字节 INT16 左旋钮/滚轮
15-16 右波轮 2字节 INT16 右旋钮/滚轮
17 功能按键 1字节 UINT8 返回/录像/拍照组合
18 五维按键 1字节 UINT8 上下左右中

数据包示例解析

示例1: 待机状态

02 0E 68 63 00 04 00 04 00 04 00 04 00 04 00 04 00 00

解析结果:

  • 帧头: 02 0E ✓
  • 计数器: 0x6368 = 25448
  • 左摇杆: X=0x0400 (1024), Y=0x0400 (1024)
  • 右摇杆: X=0x0400 (1024), Y=0x0400 (1024)
  • 左波轮: 0x0400 (1024)
  • 右波轮: 0x0400 (1024)
  • 五维键(18位): 0x00 (无操作)
  • 功能键(17位): 0x00 (无操作)

示例2: 摇杆操作状态

02 0E 2B 67 DC 04 64 05 00 04 00 04 00 04 00 04 00 00

解析结果:

  • 帧头: 02 0E ✓
  • 计数器: 0x672B = 26411
  • 左摇杆:
    • X=0x04DC (1244) ← 偏移+220
    • Y=0x0564 (1380) ← 偏移+356
  • 右摇杆: X=0x0400 (1024), Y=0x0400 (1024)
  • 波轮: 均为0x0400 (1024)
  • 按键: 无操作

五维按键编码 (第18字节)

按键 二进制 说明
0x00 00000000 无按键按下
0x01 00000001 五维键上
0x02 00000010 五维键下
0x04 00000100 五维键左
0x08 00001000 五维键右
0x10 00010000 五维键中(确认)

注意: 五维键支持组合按键,通过位或运算实现

功能按键编码 (第17字节)

单按键

按键 二进制 说明
0x00 00000000 无按键按下
返回 0x02 00000010 返回键
录像 0x04 00000100 录像键
拍照 0x08 00001000 拍照键

组合按键

组合 二进制 计算
返回+录像 0x06 00000110 0x02
返回+拍照 0x0A 00001010 0x02
返回+录像+拍照 0x0E 00001110 0x02 | 0x04 | 0x08

注意: 功能键支持组合按键,通过位或运算实现

模拟量数据范围

摇杆数据 (2字节INT16)

  • 最小值: TBD (需要测试)
  • 最大值: TBD (需要测试)
  • 中位值: 0x0400 (1024) - 当前观察到
  • 范围: 疑似 0-2047 或 -1024~+1023

波轮数据 (2字节INT16)

  • 最小值: TBD (需要测试)
  • 最大值: TBD (需要测试)
  • 中位值: 0x0400 (1024) - 当前观察到
  • 范围: 疑似与摇杆相同

数据变化趋势分析

从日志数据可以看出:

  1. 计数器持续递增: 每个包递增约997-1045

    • 0x6368 → 0x6548 (+472)
    • 0x6548 → 0x672B (+483)
    • 0x672B → 0x690D (+482)
  2. 中位值特征: 所有摇杆和波轮在待机时为 0x0400 (1024)

  3. 通信频率: 约10Hz (每100ms一帧)

待确认事项

  • 摇杆和波轮的完整数据范围
  • 数据是否为有符号数
  • 0x0400 是否为真实中位值
  • 第17字节是否还有其他未发现的按键定义
  • 数据包是否有校验和或CRC

更新日志

日期 版本 说明
2026-01-23 1.1 修正第17/18字节定义(17位=功能键,18位=五维键)
2026-01-23 1.0 初始版本,基于实际通信日志分析