2

我正在尝试使用 pyusb 和 libus1 作为后端在 USB 转以太网设备上执行批量读写操作。编码:

dev = usb.core.find(idVendor=..., idProduct=...)
if dev.is_kernel_driver_active(0) is True:
    dev.detach_kernel_driver(0)
    usb.util.claim_interface(dev, 0)
dev.set_configuration()
read_endpoint = dev[0][(0,0)][0]
write_endpoint = dev[0][(0,0)][1]
data = ...
write_endpoint.write(data)
data = read_endpoint.read(read_endpoint.wMaxPacketSize, timeout = 1000)

在 Ubuntu 上,这对于阅读和写作都非常有效。在 OSX (10.10.5) 上,写入工作(正在发送数据包),但读取不起作用(我不断收到超时)。我知道设备收到了数据包,因为:1)当我在 Ubuntu 中运行它时它可以工作,并且 2)指示传入数据包的 LED 正在闪烁。

dmesg 仅显示以下内容:

AppleUSBEHCI::Found a transaction past the completion deadline on bus ..., timing out! (Addr: ..., EP: ...)

这让我觉得 OSX 没有收到来自设备的响应的问题。但这真的只是一个疯狂的猜测。我有点迷失在这里,我会很感激任何帮助!

4

0 回答 0