我正在使用USB4Java轮询线程上的某个USB设备,并在可用时立即读取数据。我面临的问题是没有像流一样的available()
方法,它检查端口上可用的字节数以供读取(对于串行端口是一个NRSerial)。有没有相同的方法为USB做这个?如果没有,我可以简单地调用read函数并等待超时吗?后者对我来说似乎太暴力了。
答案 0 :(得分:0)
除了轮询之外别无选择(至少在USB 2.0中)。这就是USB读取的工作原理:主机向设备询问数据。设备必须保存数据以便在缓冲区中发送到主机并等待主机请求它。只有USB 3允许设备告知主机何时新数据在缓冲区中(从技术上讲,这也是主机轮询一个比启动读取传输更轻量级的标志)。