问题标签 [usb4java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3862 浏览

usb4java - 我尝试从 USB 设备读取我收到 USB 错误 5:无法读取数据:找不到实体有人可以帮助我吗?

我尝试通过 usb4java api 从 USB 设备读取,但出现错误:USB 错误 5:无法读取数据:找不到实体有人可以帮助我吗?必须注意的是,endpoint_in 我从 LibUsb.ENDPOINT_IN 获取它并将其传递给读取功能找到的设备已被声明,但我无法继续从设备中读取。

}

该设备是一个usb鼠标是什么问题?

public static ByteBuffer write(DeviceHandle handle, int size) { ByteBuffer buffer = ByteBuffer.allocateDirect(8); buffer.put(新字节[] {'p'});

但我收到 USB 错误 5:无法写入数据:找不到实体

0 投票
1 回答
618 浏览

classpath - 在 Netbeans 运行中包含 javax.usb.properties

我正在尝试从 Netbeans 8.1 项目 Windows 7/64b运行一个基于http://usb4java.org/的简单示例。我已经在项目根目录下创建并放置了所需的 javax.usb.properties。根据文档,它必须位于类路径的根目录中。(参见http://usb4java.org/quickstart/javax-usb.html

我通过插入VM选项(使用-cp或-classpath)来设置运行配置进行了一些尝试:-classpath“。” 或 -classpath "D:/WORKSPACES/NETBEANS/USBPrototypeControler"。

不幸的是,没有配置按预期运行。每次找不到 javax.usb.properties 的异常时,我都会遇到。

我怎么能用 Netbeans 呢?

0 投票
0 回答
217 浏览

java - Java(Raspberry PI 和 Windows)读取 DYMO Scale

我正在创建一个需要能够在 Windows 和树莓派上运行的 JAVA 应用程序。

应用程序需要连接 DYMO USB Scale。

当我检查设备监控工作室时,看到我收到了数据。设备监控工作室

我目前正在尝试通过 usb4java 读取数据。

我正在关注以下内容: http ://usb4java.org/quickstart/libusb.html

我找到了正确的设备。我创建了我的句柄。我创建我的界面。

现在是我的问题。如何读取我的数据?我尝试通过批量转移。

但是我的缓冲区和 read_transfered 总是空的。(全为 0 的数组)

我究竟做错了什么?

最好的问候, 迪德尔

0 投票
0 回答
116 浏览

java - Loader.class.getResource() 在另一台计算机上返回 null

我正在开发一个从条形码扫描仪读取数据的程序。为了连接扫描仪,我使用了很好用的 usb4java。

完成程序后,我想在另一台计算机上进行测试。结果是来自 usb4java 的 LoaderException “在类路径中找不到本机库:/org/usb4java/windows-x86_64/libusb-1.0.dll”。

我在 google 和 stackoverflow 上进行了搜索,发现了很多关于 MANIFEST.MF、getResource() 和 getResourceAsStream() 的不同答案,但没有任何帮助。它从未在另一台计算机上工作过。所以我查看了来自 usb4java 的类,它引发了第 277 行异常: https://github.com/usb4java/usb4java/blob/master/src/main/java/org/usb4java/Loader.java 所以我想我只是添加我的程序代码的以下行:

我的电脑上的结果显示找到了目录:

jar:file:/C:/Users/somename/Desktop/scanner/BarcodeScanner.jar!/org/usb/windows-x86_64/libusb-1.0.dll

另一台计算机上的结果只是:

无效的

这表明问题不在程序代码中。

我搜索了很多小时,但我无法找出问题所在。

这是异常的屏幕截图: 加载程序异常

编辑:我忘了提及 jar 文件:这是我在 eclipse 中的项目的图片: 在此处输入图像描述

编辑2: 解压后的jar文件

来自 META-INF 目录的 MANIFEST.MF 的内容: 清单文件

0 投票
1 回答
792 浏览

java - USB4Java 是 libusb 1.0 还是 0.1 的包装器?是否推荐用于新的 Java 开发?

我正在尝试找到将 USB 设备与 java 一起使用的正确方法。StackOverflow 的大部分帖子都推荐使用 usb4java,它的最新活动似乎是在 2014 年初,所以我不确定它是否仍然处于活动状态。

无论如何,深入研究一下,在页面上,它说“它基于本地 libusb 1.0 库”。然后尝试安装设备驱动程序,我按照推荐使用了 Zadig(https://github.com/libusb/libusb/wiki/Windows#How_to_use_libusb_on_Windows)。

我通过使用“libusb-win32”驱动程序让 usb4java 工作。但是当你访问“libusb-win32”网站时,它会提到“libusb-win32 是 USB 库 libusb-0.1 的一个端口”,并且更多内容在这里http://libusb.org/wiki/APIs#libusb -0.1legacyAPI中提到“开发状态:libusb-0.1 已弃用,不会有进一步的更改或发布”</p>

这一切都非常令人困惑,所以首先我想知道 USB4Java 是使用 libusb 1.0 还是 0.1。而且它是否推荐用于任何新的开发或将要走的路,似乎没有太多支持使用 JAVA 的 USB 设备。

更新:

谢谢干员。很好的解释。我将 usb4java 与 libusb-win32 结合使用的问题是延迟。我的事务每 10 毫秒发生一次,而且我不能丢失数据,这就是为什么我必须开始缓冲并且我有 15 个缓冲区,所以我的最大延迟将是 150 毫秒。在长时间使用 libusb-win32 评估 usb4java 时(几小时),我看到有时我的延迟超过 1s。我确实尝试过 WinUSB,但由于某种原因,我得到了:

既然你提到它可能更可靠,我会试一试,我会尝试修复它。

顺便说一句:当我尝试在下面的代码中提交传输 (LibUsb.submitTransfer(transfer);) 时,会发生访问冲突。

0 投票
2 回答
2918 浏览

java - 使用 usb4java 向 USB 设备发送消息 - 输入/输出错误

我正在尝试使用以下代码向我的 USB 设备(Silicon Labs USB-UART Bridge)发送消息:

当我执行它时:

我得到这个错误:

但是我的 readMessage 没有收到错误消息,有人知道为什么会这样或有提示吗?

提前致谢!

编辑:当我将端点更改为 0x01 时代码有效,但那个是 EP 1 OUT,0x81 是 EP 1 IN,所以我应该在哪里发送消息?

编辑 2: readMessage 的代码:

0 投票
1 回答
2269 浏览

java - 获取 USB 设备的字符串描述符

在 Windows 8.1 下,使用LibUsb.getDeviceList(null,connectedDevices)以下代码,我成功地将每个 USB 设备连接到我的 PC:

但是当我想检索“iManufacturer”不为空的特定设备的字符串描述符时:

我要么得到LIBUSB.ERROR_NO_DEVICE返回open函数的错误代码,我觉得这对于仅在几毫秒前发现的设备来说很奇怪,要么得到返回的LIBSUSB.ERROR_INVALID_PARAM错误代码getDescriptor。并且使用LibUsb.getStringDescriptor(handle,deviceDescriptor.iManufacturer(),(short)0x409,buffer)失败以及相同的错误代码......

使用,我成功地获得了制造商的字符串和 17 台设备中的 2 台的产品,这些设备返回了和LibUsb.getStringDescriptor(handle,deviceDescriptor...)的非空值。我认为其他人没有被检索到的原因与 127 字节的限制有关,但是使用1000 字节大小的缓冲区并没有更好。iManufactureriProductgetStringDescriptorAscii(handle,deviceDesriptor...,buffer)

我错过了什么?

0 投票
1 回答
767 浏览

java - Usb4Java:管道错误 (-9)

我想使用 Usb4Java 的低级 API 将单个包发送到 USB 设备(Arduino 控制器),但我收到以下错误:

这是关键部分的代码:

我觉得可能和驱动有关,也可能和参数有关。LibUsb.controlTransfer(...); 值得一提的是:源机运行的是Windows 7。

0 投票
1 回答
1472 浏览

java - usb4java:无法进行数据传输

我正在尝试使用 usb4java(低级 API)与在 Windows(x86 和 x86_64)上设置为 HID 设备的 USB 连接科学仪器进行通信。有一个非常古老的 C++ 应用程序可以正常工作,但出于各种原因,我正试图用纯 Java 替换它。

我可以获取设备描述符并确定接口/端点,但永远不会发生异步传输(由 Device Monitoring Studio 检查)并且永远不会调用回调。usb4java 没有抛出异常,也不知道我是否可以访问 libusb 级别的任何日志(如果可能的话)。我在处理硬件方面是一个完全的新手,所以它很可能是我所缺少的一些非常基本的东西。

只有一个端点,我不确定 C++ 代码如何管理双向通信。代码中没有明确提及传输类型,因为所有细节都隐藏在第三方库中。

我安装了 libusbK 驱动程序,并尝试了高级实现(javax-usb)。转账仍然没有通过。

下面是端点描述符转储的输出,以及代码的缩写版本。

这是代码:

在此先感谢您的任何建议。

0 投票
2 回答
566 浏览

java - 是否可以将字节数组中的 0xFF 从 Java 发送到 USB 设备?

我正在使用 usb4java 编写 Java 代码,以便与使用控制传输 (Windows) 通过 USB 连接的测量仪器进行通信。数据使用填充了设备预期的十六进制值的 ByteBuffer 进行传输。

这是相关的代码片段:

代码工作正常,但只要缓冲区中的任何值超过 0x7F (127),就会传递一个不正确的数字,并且设备无法正确响应。

我显然达到了 Java 中使用的有符号字节类型的限制。但是有没有办法绕过它并为设备获取正确的值?

这几天真的很艰难,就在问题似乎得到解决的时候,我遇到了字节大小限制。在此先感谢您的任何建议!