在USB主机模式下从UsbDeviceConnection读取的最佳方式

问题描述:

要从打开的USB连接中读取数据,需要使用UsbDeviceConnection bulkTransfer方法。在USB主机模式下从UsbDeviceConnection读取的最佳方式

我有这样的情况,发送请求后,例程应读取所有传入数据,它可能只是8个字节,甚至300个字节。

问题是bulkTransfer不会因为某些原因读取所有字节 - 它只是返回一些字节,而可能会有更多字节。

围绕bulkTransfer编写一个循环,直到没有更多的数据,或增加超时,或者可能还有另一种方法为止,是更好吗?

什么是最好的处理方法?

我试过循环方法,我很惊讶它每次读取大约10-20个字节,甚至超过1秒。我确信已经有更多的数据可用,不知道为什么它一次不会读更多的数据。

使用哪种缓冲区大小有关系 - 许多示例有4096个,但如何改变这个影响数据的读取?

非常感谢

如果设备在同一时间发送10个字节并如此反复完成300多个字节,你仍然只能得到这10个字节块每次与批量传输读取时间。

换句话说,该方法不会等待填满缓冲区。只要有什么东西,它就会返回。所以如果你真的想收集整个300多字节的响应,你需要循环。