我目前正在开发一个 USB 设备(基于微 Controller 的数据记录器),并希望将数据从该设备收集到主机以进行可视化。 Libusbjava用于USB数据传输。目前,我可以连接到设备并发送/接收数据。
我的问题是当我尝试以连续方式从设备连续接收数据(5.12Mb/s)时。发生的情况如下:
· 如果我尝试在 while 循环中连续收集数据,则可以实现所需的 USB 吞吐量,但绘图线程不再工作 · 如果我尝试使用计时器线程每 1 毫秒收集一次数据(每 1 毫秒 640 字节),吞吐量会受到显着影响,但绘图线程仍可正常工作
构建 Java 代码以实现所需吞吐量和图形的最佳方法是什么?
最佳答案
使用 SwingWorker
在后台处理 USB 通信。试图每毫秒更新一次 GUI 是不现实的。相反,publish()
会批量更新并在事件调度线程上 process()
它们。
关于java - 使用 java-libusb 最大化吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21479375/