Java 和 HID 通信

2023-12-02

我正在寻找为简单的无线 HID 接口设备编写一个 Linux/Windows/Mac Java HID 控制器。我对 USB4Java LibUsb 库进行了修改,但没有成功,我已经转向 JavaHIDAPI 的方向。

不幸的是,对我来说,除了相当不错的高级编程技能集(C#/VB.Net)之外,我真的不知道自己在做什么,而切换到这一点简直要了我的命。

The 方向我发现说我首先需要编译找到的 HIDAPI 库here。它说它将构建一个名为 hidapi-jni.dll 的东西(但它没有)。

不管怎样,我认为这就是我需要去的地方,因为 HID 什么也不做,只是简单地向无线控制器发送信号和从无线控制器接收信号(并对收到的信号做出响应)。

有没有使用 JavaHIDAPI 的分步教程?或者有更好的库吗? (我注意到这有点……过时了)。

我自己尝试了以下方法:

static{ System.loadLibrary("hidapi"); }
.
.
.
public static void main(string[] Args) throws . . . {    
    ClassPathLibraryLoader.loadNativeHIDLibrary();
    HIDDevice dev = HIDManager.getInstance().openById(VEND_ID, PROD_ID, null);
    .
    .
    .
}

我遇到的问题是(除了 HIDAPI 似乎没有构建到 HIDAPI-jni.dll 中这一事实之外)是 HIDManager.openById(. . .) 总是返回 null。另外,我将内置的 hidapi.dll 移动到了 C:...\Java...\bin 目录...或者其他东西,我确信它是正确的,因为没有任何不满意的链接错误。这真的很令人沮丧,因为似乎没有任何关于 Java 和 HID 的新手指南。

我在这里做错了什么?


我回答这个问题有点晚了,但我写了一个名为hid4java这可能会解决你的问题。

它基于 Java Native Access (JNA),这比处理复杂的 JNI 咒语要简单得多。

我不得不写它,因为 javahidapi 已经过时了,底层的signal11/hidapi代码已经发生了很大的变化。旧版本的 hidapi 库在 OS X 上存在附加/分离事件问题,现已修复,因此需要升级。

另外,我发现无法在 OS X 上通过 usb4java 声明 USB HID 设备,因此我最终编写了这个库来解决该问题。

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 和 HID 通信 的相关文章

随机推荐

  • 如何将Hibernate和Solr集成在一起?

    对于使用 Hibernate 来管理对象持久性的人们来说 Hibernate 搜索是真正的救星 在尝试开发类似的功能 收集所有对象更改并在事务提交时将它们发送到全文搜索引擎 之后 您很快就会发现其中存在很多陷阱 另一方面 Solr 有其自身
  • 多个测试的单元测试设置/拆卸

    是否有在测试场景开始 结束时触发的函数 函数setUp和tearDown在每次测试之前 之后被触发 我通常想要这样的 class TestSequenceFunctions unittest TestCase def setUpScenar
  • 在 Visual Studio 设计器中公开枚举(标志)集合

    我有一个可能在 NET Forms 控件中显示的数据类型的枚举 我想为控件的使用者提供一个接口来过滤某些类型 设置一些标志 位字段似乎是执行此操作的逻辑方法 不幸的是 枚举从 0 而不是 1 0 1 2 4 8 开始 并且无法更改 如何公开
  • 未提供 Django Rest Framework 身份验证凭据

    我在用着django rest auth with django all auth关于 DRF 和 Angularjs 对于任何有关身份验证的请求 我收到以下错误 detail Authentication credentials were
  • 如何加快sheet中数据的搜索速度

    我有超过 1000000 条记录如何在工作表中加快搜索速度 我一般搜索20s如何提高 表格包括20列和10000条记录 var ss SpreadsheetApp openByUrl urldb var ws ss getSheetByNa
  • 带有微调器的可编辑文本视图 android

    我想在 android 中创建一个控件 用户可以通过键盘输入或通过下拉列表 微调器 输入 实际上 我在微调器的数组中硬编码的值并不详尽 因此用户也应该可以选择通过虚拟键盘输入 那么用户可以通过键盘输入或从列表中选择吗 我怎样才能在andro
  • 按命名空间转换对象

    我需要像这样转换 平面对象 输入数据 prop1 value 1 prop2 subprop1 value 2 1 prop2 subprop2 value 2 2 像这样的沉浸对象 输出数据 prop1 value 1 prop2 sub
  • Linux 上一个进程如何拦截另一个进程的 stdout 和 stderr?

    我有一些应该停止运行的脚本 但它们却永远存在 有什么方法可以让我以可读的方式弄清楚他们正在向 STDOUT 和 STDERR 写入什么内容 例如 我尝试这样做 tail f proc pid fd 1 但这并没有真正起作用 无论如何 这是一
  • 通过应用程序通过 HttpPost 登录网站

    你好 Stackoverflowers 我编写了一个相对简单的应用程序 由登录文本字段 密码文本字段和登录按钮组成 我的目标是 当用户输入登录信息并触摸登录按钮时 应用程序将使用户登录到我指定的网站 并以不同的意图或 WebView 打开它
  • 删除 SublimeText 中但匹配的所有文本

    我正在尝试删除 sublime 中除电子邮件之外的所有字符串 所以我可以寻找这样的电子邮件 a zA Z0 9 a zA Z0 9 a zA Z0 9 但我该如何删除其他所有内容呢 Thanks 您可以执行以下操作 Use your reg
  • 如何制作一个flex(词法扫描器)来读取UTF-8字符输入?

    看起来flex不支持UTF 8输入 每当扫描器遇到非 ASCII 字符时 它就会停止扫描 就像它是 EOF 一样 有没有办法强制 Flex 吃掉我的 UTF 8 字符 我不希望它实际匹配 UTF 8 字符 只需在使用 时吃掉它们即可图案 有
  • 浮动:右反转跨度的顺序

    我有 HTML div span class label a href index 1 Bookmix Offline a span span class button a href settings Settings a span spa
  • 仅使用 print 语句进行调试

    最近我用 Python 编写了很多代码 我一直在处理以前从未使用过的数据 使用以前从未见过的公式并处理巨大的文件 所有这些让我写了很多打印语句来验证一切是否正常并找出故障点 但是 一般来说 输出这么多信息并不是一个好的做法 如何仅在我想要调
  • 有人可以解释一下 Shell Shock Bash 代码吗? [复制]

    这个问题在这里已经有答案了 我在理解以下代码时遇到问题 该代码是 Shell Shock 的 漏洞证明 代码 有人可以向我解释一下吗 特别是这部分 env x echo vulnerable bash c echo this is a te
  • 如何让视图永远旋转?

    有没有办法让视图以指定的速度永远旋转 我需要它来作为指标之类的东西 我知道有一个奇怪的 Lxxxxx00ff 常量 记不太清了 代表 永远 您可以使用HUGE VAL对于浮动值 如果我没记错的话 动画的repeatCount属性是一个浮动值
  • 如何判断 ASP 中的页面卸载是否为回发

    这似乎是一个常见问题 但搜索没有返回任何内容 我在页面卸载之前执行以下代码 问题是 如果卸载是回发 我不想向用户发出警告 但我无法弄清楚如何区分回发和用户导航到例如另一页 This is executed before the page a
  • 即使成功创建对象后,django modelformset_factory 仍保留先前提交的数据

    我在我的观点之一中使用 django modelformset factory 我正在使用 javascript 将新表单添加到模板中的表单集 一切工作正常 但我的问题是 当我尝试使用 modelformset factory 创建一个新对
  • iPhone - 捕获设备按钮按下

    我知道您无法从应用程序内控制设备音量 但我希望设备音量能够影响应用程序中的 UIScrollBar 来控制音量 我知道这是可能的 因为 Last fm 应用程序可以做到这一点 我想实现此行为 我在互联网上能找到的信息很少 这里有人可以帮助我
  • iOS 版 Appium 的代码覆盖率

    这个问题似乎已经以多种不同的方式被问到了 所以如果我在这里遗漏了一些明显的东西 请提前道歉 但这对我来说仍然不清楚 我正在使用 Appium 作为功能测试套件的一部分来运行 UIAutomation 测试 如何从该套件生成代码覆盖率指标 理
  • Java 和 HID 通信

    我正在寻找为简单的无线 HID 接口设备编写一个 Linux Windows Mac Java HID 控制器 我对 USB4Java LibUsb 库进行了修改 但没有成功 我已经转向 JavaHIDAPI 的方向 不幸的是 对我来说 除