java - javax.usb - syncSubmit 有时会导致延迟
问题描述
我正在开发一个使用 javax.usb 库的 java 应用程序,它运行良好,但有时当我用力推动它时,它开始从函数syncSubmit延迟返回。大约 2 秒而不是 10 毫秒。
可能是什么原因?我尝试重新初始化 javax usb 库,但它没有改变任何东西。
谢谢..
private int BootloaderGetStatus(UsbDevice device) {
try {
byte[] data_6 = new byte[6];
byte bmRequestType = (byte) ((BMREQUEST_DEVICE_TO_HOST << 7) | (BMREQUEST_CLASS << 5)
| (BMREQUEST_TO_INTERFACE << 0)); // device to host
byte bRequest = (byte) DFU_REQ_GETSTATUS;
short wValue = 0;
short wIndex = 0;
UsbControlIrp controlIrp = device.createUsbControlIrp(bmRequestType, bRequest, wValue, wIndex);
controlIrp.setData(data_6);
device.syncSubmit(controlIrp);
return controlIrp.getActualLength();
} catch (Exception e) {
log.error(e);
return -1;
}
}
图书馆版
<dependency>
<groupId>org.usb4java</groupId>
<artifactId>usb4java</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.usb4java</groupId>
<artifactId>usb4java-javax</artifactId>
<version>1.3.0</version>
</dependency>
解决方案
我解决了这个问题,不要轮询连接的 USB 设备,使用 Listener 方法,如连接或分离的 USB 设备。然后图书馆开始运作良好!
推荐阅读
- xamarin.forms - Xamarin 方向信息.plist
- r - 从一个网页中抓取所有表格?
- python - *** 类型错误:get_value_by_attribute() 缺少 1 个必需的位置参数:“属性”
- android - 如何判断是否已正确添加外部依赖项(.aar)?
- swift - 如何从firebase标题文件夹Xcode中归档tableview
- google-cloud-platform - 在 Google Cloud 上并行运行多个 Colab 笔记本?
- java - 使用不同字体大小的 Java 打印发票
- c# - 如何使用 C# 清除 Google 电子表格中指定工作表的所有格式?
- python - 如何将“np.inf”转换为整数类型?
- ruby-on-rails - 使用变形虫 gem 克隆 Rails