使用java-libusb最大化吞吐量

时间:2014-01-31 11:48:40

标签: java swing usb libusb libusb-win32

我目前正在开发USB设备(基于微控制器的数据记录器),并希望将数据从设备收集到主机以进行可视化。 Libusbjava用于USB数据传输。目前,我可以连接到设备并发送/接收数据。

我的问题是当我尝试以连续的方式从设备连续接收数据(5.12Mb / s)时。以下是发生的事情:

·如果我尝试在while循环中连续收集数据,则会实现所需的USB吞吐量,但图形线程不再有效 ·如果我尝试使用定时器线程每隔1ms收集一次数据(每1ms 640字节),吞吐量会受到很大影响但是图形线程功能正常

构建我的java代码以获得所需吞吐量和图形的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用SwingWorker在后台处理USB通信。尝试每毫秒更新GUI是不现实的。相反,publish()批量更新,并在事件派发线程上process()更新。