LibUsb error: device address collision with root hub
LibUsb error: device address collision with root hub
我对这行代码有疑问。我能够成功打开设备并发送。
发送中:
retCode = LibUsb.bulkTransfer(devHandle, endpointSend, buf, iBuf, timeout);
接收:
retCode = LibUsb.bulkTransfer(devHandle, endpointReceive, messageBuf, iBuf, timeout);
logger.debug("Receiving Message Status: "+retCode);
输出:
对于发送,我得到了 0 的响应,但在接收时,我得到了 -7。
Receiving Message Status: -7
libusb: error [init_device] program assertion failed: device address collision with root hub
其他日志
receiveMessage messageBuf: java.nio.DirectByteBuffer[pos=0 lim=1000 cap=1000]
receiveMessage iBuf: java.nio.HeapIntBuffer[pos=1 lim=1 cap=1]
搜索的参考文献:
http://usb4java.org/apidocs/constant-values.html#org.usb4java.LibUsb.ERROR_TIMEOUT
public static final int ERROR_PIPE -9
public static final int ERROR_TIMEOUT -7
有时当我断开和连接设备时它是-9,但通常是-7。由于我已经玩了一段时间超时,我开始怀疑它与管道有关。如何解决 -9 错误代码?
sometimes it is -9 when I disconnect
应始终为 -9,因为断开连接会清除内核中的 USB 句柄。
For Sending, I got a response of 0 but in receiving, I got -7.
这是常规的 ERROR_TIMEOUT
,它可能是也可能根本不是错误。
基本意思就是:USB设备在timeout
期间没有在endpoint上发送任何数据。
在 USB2UART 芯片的(示例)情况下,ERROR_TIMEOUT
仅表示 UART RX 线上没有接收到字节。
有趣的事实:LibUsb.bulkTransfer() 可以从 USB 设备接收 零 字节,并且 不会 return 在这种情况下的错误代码。 USB 批量端点实际上允许这样做(这与 "no data at all" 情况不同)。
我对这行代码有疑问。我能够成功打开设备并发送。
发送中:
retCode = LibUsb.bulkTransfer(devHandle, endpointSend, buf, iBuf, timeout);
接收:
retCode = LibUsb.bulkTransfer(devHandle, endpointReceive, messageBuf, iBuf, timeout);
logger.debug("Receiving Message Status: "+retCode);
输出:
对于发送,我得到了 0 的响应,但在接收时,我得到了 -7。
Receiving Message Status: -7
libusb: error [init_device] program assertion failed: device address collision with root hub
其他日志
receiveMessage messageBuf: java.nio.DirectByteBuffer[pos=0 lim=1000 cap=1000]
receiveMessage iBuf: java.nio.HeapIntBuffer[pos=1 lim=1 cap=1]
搜索的参考文献:
http://usb4java.org/apidocs/constant-values.html#org.usb4java.LibUsb.ERROR_TIMEOUT
public static final int ERROR_PIPE -9
public static final int ERROR_TIMEOUT -7
有时当我断开和连接设备时它是-9,但通常是-7。由于我已经玩了一段时间超时,我开始怀疑它与管道有关。如何解决 -9 错误代码?
sometimes it is -9 when I disconnect
应始终为 -9,因为断开连接会清除内核中的 USB 句柄。
For Sending, I got a response of 0 but in receiving, I got -7.
这是常规的 ERROR_TIMEOUT
,它可能是也可能根本不是错误。
基本意思就是:USB设备在timeout
期间没有在endpoint上发送任何数据。
在 USB2UART 芯片的(示例)情况下,ERROR_TIMEOUT
仅表示 UART RX 线上没有接收到字节。
有趣的事实:LibUsb.bulkTransfer() 可以从 USB 设备接收 零 字节,并且 不会 return 在这种情况下的错误代码。 USB 批量端点实际上允许这样做(这与 "no data at all" 情况不同)。