问题标签 [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 回答
695 浏览

java - 将 USB 键盘数据从字节数组转换为字符串 USB4Java

我正在使用 usb4java 读取 USB 键盘(二维码扫描仪)输入。

我的代码片段如下所示:

我有两个问题:

1] 按 A 时,字节数组数据为 2,0,0,0,0,0,0,0,2,0,4,0,0,0,0,0
按 AB 时,字节数组数据为 2 ,0,0,0,0,0,0,0,2,0,4,0,0,0,0,0,2,0,5,0,0,0,0,0

如何在java中将其转换为字符?即转换后得到A或AB。

2] 目前,我在上面的代码片段中传递固定大小的字节数组。例如,如果我期望 1 个字符,我将 16 作为字节数组的大小传递,2 个字符 24 作为大小等等。有没有其他优雅的解决方案可以让它变得动态?

PS:我的字节数组转换器片段:

谢谢你的帮助

编辑 1:这里的完整源代码:http: //tpcg.io/zt3WfM

0 投票
1 回答
317 浏览

java - 如何从相机获取按钮按下事件

我有一个牙科相机,当按下相机按钮时,我试图让窗户按下空间

我安装了 OEM 软件和驱动程序,它运行良好,可以在按下相机按钮时获取提要并制作快照。我需要为提要和快照使用另一个软件,该软件获取提要但对相机按钮没有反应,它只对空格键按下(oem 驱动程序的一部分)作出反应,所以我解决这个问题的方法是设备按产品 ID 并监听按钮按下事件并重新映射它的空间按下。我几乎被困在这一点上。如何收听来自我拥有的设备的事件?

我还认为使用 usb4java 可能是不可能的,因为据我所知,如果我想在 USB 端口上收听,我需要从驱动程序那里获得控制权,然后它就没有意义了。也许我全都错了,我应该改用驱动程序?或者也许有一个应用程序可以从特定设备读取按钮按下并重新映射它?

0 投票
1 回答
2871 浏览

java - 从 Windows 10 平台上的 USB 设备读取 Java usb4java

我正在尝试从通过 USB 连接到带有usb4java库的 Windows 10pro 机器的 RFID 阅读器读取消息。

我设法声明了接口,打开了管道并为数据注册了监听器,但是监听器从未被触发。阅读器充当键盘,它读取的任何内容最终都会出现在活动应用程序中,例如我打开的 IDE,而不是在listener中。

和听众:

我还在上面的块中尝试了同步读取而不是异步,如下所示:

失败:

库支持一些特定于 Windows 的属性:org.usb4java.javax.useUSBDK = true 但是当我尝试将其设置为异常时失败。

我对 USB 设备的经验为 0,所以不知道如何从这里开始。代码有问题吗,我需要 USBDK 还是设备不支持 libUSB 驱动程序?遗憾的是,这不是我的设备,我无权访问设备的文档,因此无法确定是否是设备驱动程序问题。

0 投票
0 回答
224 浏览

java - USB 错误 9:无法提交控制消息:管道错误

我正在尝试模仿将 USB 命令发送到设备的软件。但是在向设备发送控制命令时出现错误。

当我尝试向我的 USB 键盘发送命令时,我失去了对键盘的控制,所以我猜想声称接口有效,但命令部分无效。我使用 USBCap 来捕获控制命令,看起来很相似 - 最后是 b6 01 02 00。

在此处输入图像描述

对我来说似乎很好,那么错误的原因可能是什么?

0 投票
1 回答
71 浏览

java - 我如何使用 usb4java 获取设备的字符串路径?

我想使用 usb4java 1.3.0 获取 Linux、Windows 和 Mac 的 USB 磁盘的名称或路径。有谁知道如何获得这条路?

0 投票
1 回答
153 浏览

java - file.listRoots 不适用于 Java 中的便携式 USB 驱动器

file.listRoots()适用于内部文件驱动器信息,但无法获取 USB 和便携式文件信息。这是我的代码:

我不明白为什么我的便携式 USB 信息无法获取?

0 投票
2 回答
405 浏览

java - 获取USB 3.0设备盘符(Windows下Java)

我的 Java 程序需要获取已连接 USB 设备的驱动器号列表,但仅限于那些支持 USB 3.0 的设备(设备和它所插入的 USB 端口,以便高速运行)。

目前,我尝试通过我的 Java 程序执行的 PowerShell 命令来使用 WMI。

我已经找到了这个:Powershell: Grab USB Drive letter。但它也会列出 USB 2.0 设备。

关于版本检测,我发现:如何检查可用 USB 端口的版本?- 我试过的 PowerShell 命令是Get-WmiObject Win32_USBHub. 这带来了几个问题。第一:它列出的东西远不止 USB 驱动器(我认为我的 PC 的所有 USB 集线器也是如此)。第二:即使列表中的所有项目都有一个字段USBVersion它始终为空。

更新

我过去几天研究的本质是,我需要连接两个领域的信息。

  • 驱动器/逻辑驱动器
    • 盘符
    • BusType(就我而言,等于“USB”)
  • USB 设备
    • 供应商 ID 和产品 ID (VID&PID)
    • bcdUSB(USB 设备描述符中的值,表示 USB 版本)

对于给定的驱动器号,我需要找到 bcdUSB 值。但是我还没有找到一种方法来获取与 USB 设备对应的驱动器。

到目前为止我尝试了什么

基于 PowerShell 的 WMI

我发现的相关命令是

即使我得到了 BusType,我也无法连接到 bcdUSB

usb4java (链接)

我只从这里的 USB 设备领域获取信息。我可以加载设备并查看 VID&PID 和 bcdUSB 值,但无法将其映射到驱动器和驱动器号。

lsusb 通过 Cygwin

根据这篇文章,linux命令比WMI更容易处理。所以我尝试在Windows下使用它。但我喜欢 usb4java 我只有 VID&PID + bcdUSB,而不是挂载点(驱动器号)。

搜索 Windows 注册表

我在 Windows 注册表中进行了一些字符串搜索。没有成功。

读取 Windows 事件日志

我考虑过使用 Windows 事件来检测同时连接的驱动器和 USB 设备。插入 USB 记忆棒时,我什至没有找到事件。

0 投票
0 回答
22 浏览

java - 将 Linux 网络设备名称与 Java 中发现的 USB 描述符相关联

我有多个支持网络的设备插入 USB 集线器。我想在 Java 中发现哪个网络设备(eth0、eth1、usb0 等)属于集线器上的哪个 USB 设备。我正在考虑结合使用 usb4java 中的热插拔发现和 Linux 文件系统 ( /sys/class/net/ *) 来关联 USB 描述符。有没有更好的方法在 Java 中本地执行此操作?如果允许我访问目标系统上的 udev 规则,我可以操作一些东西,使我的设备总是枚举为相同的名称,但不幸的是我不允许这样做。也许需要对 udevadm 命令进行包装?提前感谢您的任何指导。

0 投票
0 回答
71 浏览

java - RFID 阅读器 Java 应用程序。扫描同一个RFID标签后接收到不同的数据

我正在开发一个应用程序,它应该将访问卡的使用记录到数据库中。我使用 usb4java 库与 USB RFID 阅读器设备进行通信。已更新其驱动程序以使用最新的 WinUsb v6.1.7600.16385 驱动程序。

添加了一个单独的线程来处理卡片数据的读取。

当我尝试读取卡片时,每次都会收到不同的数据。这是同一张卡的结果。

你能帮我理解,我做错了什么吗?

UPD我正在使用 EM4100/TK4100 阅读器。