我正在尝试使用 chrome 上的 webusb api 访问 HID 设备类。
到目前为止,我能够检测到设备,打开它,声明接口。但是当发布一个简单的 HID 报告时,我经常得到“传输失败”。
例如,要检索 if 的当前版本,向它发出 HID 报告 0x05,它会回复它。
result = await device.controlTransferOut({
requestType: 'standard', // tried all combinations: standard / class / vendor
recipient: 'endpoint', // tried all combinations: device / interface / endpoint / other
request: 0x05,
value: 0,
index: 1
});
result = await device.controlTransferIn({
requestType: 'standard',
recipient: 'endpoint',
request: 0x05,
value: 0,
index: 1
}, 64);
NetworkError:发生传输错误。
此外,使用标准的 TransferIn 和 TransferOut 命令,我遇到了这个问题:输入和输出端点具有相同的端点编号:
有人能指出我正确的方向吗?
编辑:
虽然我设法从 OS X 获取了一些数据(Windows 仍在校准错误),但尽管我发送了 HID 报告,但数据始终相同。