要从打开的USB连接读取数据,请使用UsbDeviceConnection bulkTransfer
方法。
我的情况是,在发送请求后,例程应该读取所有传入的数据,这些数据可能只有8个字节甚至300个字节。
问题是bulkTransfer由于某种原因没有读取所有字节 - 它只返回一些字节,而可能会有更多字节。
在没有更多数据,或者增加超时,或者可能还有其他方法之前,最好围绕bulkTransfer编写一个循环。
处理此问题的最佳方法是什么?
我尝试了循环方法,我很惊讶它每次只读取大约10-20个字节,超时甚至1秒。我相信已有更多数据可供使用,不知道为什么它一次不能读取更多数据。
使用哪个缓冲区是否重要 - 许多示例有4096但是如何更改这会影响数据的读取?
非常感谢
答案 0 :(得分:1)
如果设备一次发送10个字节并重复执行300个字节,那么每次使用批量传输读取时,仍然只能获得这些10个字节的块。
换句话说,该方法不会等待填充缓冲区。一旦有东西它就会返回。因此,如果您真的想收集整个300多字节的响应,则需要循环。