无需登录 数据私有 本地保存

WebHID设备信息查看 - 连接HID外设

18
0
0
0

Web HID 设备信息查看器

连接并查看 HID 外设的详细信息、报告结构与实时数据

未连接
尚未连接 HID 设备

点击上方 "选择 HID 设备" 按钮,在弹出的设备选择器中授权并连接您的 HID 外设。

支持的设备包括:游戏手柄、键盘、鼠标、传感器、自定义 HID 设备等。

常见问题与知识点

Web HID API 是一个浏览器接口,允许网页应用与人机接口设备 (HID) 直接通信。HID 设备包括键盘、鼠标、游戏手柄、传感器等。通过该 API,开发者无需安装额外驱动即可在浏览器中读取设备数据和发送指令。它广泛应用于 Web 游戏外设、工业设备调试、自定义硬件控制等场景。该 API 目前在 Chromium 内核浏览器中可用(Chrome 89+、Edge 89+)。

VID (Vendor ID) 是 USB-IF 分配给厂商的唯一标识符,为 16 位十六进制数(如 0x046D 代表罗技)。PID (Product ID) 是厂商为其具体产品分配的唯一标识符。通过 VID + PID 组合,可以精确定位设备型号。您可以在 DeviceHunt 等数据库中查询 VID/PID 对应的厂商和产品信息。

输入报告 (Input Report):设备发送给主机的数据(如按键状态、传感器读数)。
输出报告 (Output Report):主机发送给设备的数据(如 LED 控制、震动指令)。
特征报告 (Feature Report):双向的配置数据,用于读写设备配置参数(如灵敏度设置、固件信息)。特征报告通过 sendFeatureReportreceiveFeatureReport 方法操作,不参与常规数据流。

HID 设备的功能通过集合 (Collection) 进行逻辑分组。一个设备可以有多个集合,每个集合代表一组相关的功能。例如,一个游戏手柄可能有三个集合:摇杆/按键集合(Usage Page: Generic Desktop, Usage: Game Pad)、力反馈集合(Usage Page: Physical Interface Device)、电池状态集合(Usage Page: Power Device)。每个集合包含各自的输入、输出和特征报告定义。

Web HID API 设计了严格的安全模型
1. 必须通过 HTTPS 或 localhost 访问;
2. 需要用户主动触发(点击按钮)来调用 requestDevice()
3. 浏览器会弹出设备选择器,用户明确选择要授权的设备;
4. 用户可随时在浏览器设置中撤销设备权限;
5. 设备断开后,页面无法继续读取数据。这些机制确保用户完全掌控设备访问权限。

Usage Page 定义功能大类(如 0x01 = Generic Desktop, 0x0C = Consumer, 0xFF00 = Vendor Defined),Usage 定义具体功能(如在 Generic Desktop 下,0x30 = X 轴, 0x31 = Y 轴)。Usage Page + Usage 组成 32 位标识符,唯一确定一个功能语义。例如,Usage Page 0x09 (Button) + Usage 0x01 = 按钮 #1。了解这些有助于解析原始 HID 报告数据。

产品名称 (productName) 来自操作系统提供的设备描述符。并非所有操作系统或设备都会填充此字段。如果显示为"—",说明操作系统未提供该字符串描述符。这不影响设备的功能和通信,您仍然可以通过 VID/PID 识别设备。您也可以在设备管理器中查看设备属性获取更多信息。