java - 使用 java-libusb 最大化吞吐量

标签 java swing usb libusb libusb-win32

我目前正在开发一个 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/

相关文章:

Java - 不正确的阅读器

Java JTable 禁用单个单元格选择边框突出显示

java - 与usb端口通信的java简单程序

java - 如何比较字符串?

java - Websocket 客户端的 Wildfly URI

java - 为什么 Apache poi 的 Workbook.close() 方法将内容写入输入文件?

java - 无法设置 JMenuBar

java - 在哪里可以找到 Aerith 项目源代码

c++ - 无法理解 gadgetfs 中的部分代码

c++ Qt/Win32 - USB 以编程方式弹出,但仍显示在 QFileSystemModel 和 GetLogicalDrives() 中