如何读取Java中的输入设备?

How to read input device in Java?

我之前曾询问过关于使用什么设备的建议,但不幸的是,我认为我不符合 Whosebug 的问答政策,所以我自己做了研究,发现了一个有趣的设备。现在我有一个关于下面描述的方法的问题。

我有兴趣阅读通过 USB 连接到计算机的机载系统发送的信息。

机载传感器或系统名为iNEMO-M1,这里是link:http://www.st.com/web/en/catalog/sense_power/FM89/SC1448/PF253162?s_searchtype=keyword

我对使用设备的传感器测量角度变化感兴趣,该设备将连接到另一台设备。

当我必须读取此设备发送的信息时,问题就来了。

如何从设备读取输入数据?

我已经下载了 iNEMO 引擎软件库,其中包括库(全部用 C 编写)和 drivers,但我找不到在 Java 中实现它的方法.也许我应该通过安装在机器上的 driver 与设备交互,但我不知道如何做到这一点。

谢谢

编辑

我可以在存档中找到 API 和文档。它最终是用 C 编写的。在 API 中有 2 个结构,sensorData 和 eulerAngles(这是我有兴趣从中获取信息的那个(我认为),因为该结构每个角度都有 3 个变量( X,Y,Z), roll, pitch, yaw),然后一个变量quat,所有这些都必须作为参数传递给3个API函数。有 3 个函数:Init DeInit 和 Update。

现在的问题是我无法找到设备在何处以及如何 linked 到这些功能,以及如何实例化 USB 设备。一定有什么方法是我想念的。

我还下载了iNEMO M1 Discovery Suite,这是一个测试传感器的软件,里面有一些DLL和例子。在这些示例中,我可以在 C++、C# 和 DLL 中找到一个 SDK,但找不到 Java。也许使用 JNI 或 JNA 我将能够加载 DLL。

感谢您的回答。我已经在研究 JNA 和 JNI。

编辑 2

我找到加载DLL的方法了。使用 JNA,我可以加载 DLL。另外,我用JNAErator把SDK的CHeaders"translate"改成Java,然后用JNA的方法Native.loadLibrary加载DLL,然后就可以使用Java 类.

感谢您的帮助,JNA 就是答案。我现在在使用 JNA 时遇到了一些问题。我用简单的数学函数 (+,-,*,/) 创建了一个示例 DLL,但我现在遇到了问题,因为当我加载 DLL 时它显示错误:无效的 win32 应用程序。我将在 Google 和 Whosebug 中进行一些搜索,如果我无法修复它,我将在 Whosebug 社区中创建一个新问题。

非常感谢。我会将您的答案标记为正确,但我不能通过评论来做到这一点。

我找到加载DLL的方法了。使用 JNA,我可以加载 DLL。另外,我正在使用JNAErator "translate" SDK的C Headers Java,然后使用JNA的方法Native.loadLibrary加载DLL,然后可以使用Java 类.

感谢您的帮助,JNA 就是答案。

非常感谢。我会将您的答案标记为正确,但我不能通过评论来做到这一点。