如果底层后端支持同步传输,PyUSB 1.0声称现在支持等时传输。我已经弄清楚如何选择支持等时传输的libusb1.0后端,但我不确定如何实际实现读写。我搜索过互联网,找不到使用PyUSB的例子。帮助
答案 0 :(得分:3)
好的,所以我回答了我自己的问题,因为我找到了解决方案。事实证明,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
}
类似于'read'的定义,请参阅:
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来说相对较新,我希望这可以帮助其他人不浪费一整天时间来发现我刚刚做了什么:)