【问题标题】:Android USB - Understanding controlTransfer methodAndroid USB - 了解 controlTransfer 方法
【发布时间】:2018-09-27 18:16:15
【问题描述】:

我即将开始一个使用 USB HID 设备的新项目。我知道要向 HID 设备发送命令,您使用以下方法:

controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout);

虽然我很确定 requestTypebufferlengthtimeout 是什么,但我并不清楚 requestvalueindex。这些参数有什么作用,我将传递什么来发送我的命令?

例如,如果我要在具有指定设置速度命令的跑步机上设置速度,我会通过什么?我得到的文档对此并不清楚。

【问题讨论】:

    标签: android usb usb-hid


    【解决方案1】:

    请求、值和索引可以从 USB 规范中找到。这些是控制管道命令的标准参数。

    来自 USB 规范 3.0 第 9.3 节 -

    以下是 USB 规范中 Request、Value 和 Index 对应的值的表格 -

    【讨论】:

    • 因此,例如,我得到了一个通过 USB HID 接口的跑步机命令列表(例如设置速度或坡度),我会使用什么?
    • @PinkJazz 这些值将是特定于类的,您需要检查数据表。例如,HID 类特定请求,GET_REPORT,bRequest = 0x1,wValue = 0x3,wIndex = 接口号。
    • 您可以查看所有 HID 命令的 HID 规范和各自的值。对于跑步机,我相信您应该在产品的数据表中找到特定的功能命令。
    • bRequest 将始终是命令值。 bIndex 通常是端点号或接口号,bValue 取决于命令类型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2012-04-13
    • 2016-03-16
    • 2012-01-22
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多