2

如果底层后端支持,PyUSB 1.0 声称现在支持同步传输。我已经弄清楚如何选择支持同步传输的 libusb1.0 后端,但我不确定如何实际实现读取和写入。我搜索了 Internet,但找不到使用 PyUSB 的示例。帮助?

4

1 回答 1

4

好的,所以我正在回答我自己的问题,因为我找到了解决方案。事实证明,PyUSB 会根据正在操作的端点类型自动选择正确的读/写方法。从'write'定义中的core.py看到:

fn_map = {
            util.ENDPOINT_TYPE_BULK:backend.bulk_write,
            util.ENDPOINT_TYPE_INTR:backend.intr_write,
            util.ENDPOINT_TYPE_ISO:backend.iso_write
        }

同样在“读取”的定义中,请参见:

fn_map = {
            util.ENDPOINT_TYPE_BULK:backend.bulk_read,
            util.ENDPOINT_TYPE_INTR:backend.intr_read,
            util.ENDPOINT_TYPE_ISO:backend.iso_read
        }

所以真的,所有需要做的就是调用 {device}.read() 或 {device}.write() 并且代码将处理分配适当的操作。

我打算删除我的问题而不是回答它,但由于同步传输对于 PyUSB 来说相对较新,我希望这将帮助其他人不要浪费一整天来发现我刚刚做了什么:)

于 2015-09-30T19:22:29.500 回答