2012-11-01 36 views
4

我很努力地找到一个Java API,它能够获取通过USB连接的任何设备的输入。 我发现了jUsb,但似乎过时了。独立于Java的usb输入平台

我想的是:

  • 独立于平台的API(在UNIX,Windows,Mac的工作)
  • 可以从任何设备抢输入(其实我想操纵杆连接到API我的USB端口)
+2

如果类似的东西存在,我宁愿感到惊讶...听起来像你想用java编写的设备驱动程序 –

+0

我会惊讶没有人想过(对我来说非常基本)视频游戏,与USB控制杆启用......无论如何,感谢“用Java编写的设备驱动程序”的建议,似乎是想要我正在寻找是的。 – toni07

+0

如果您实际上只想使用游戏杆,请尝试Jinput http://java.net/projects/jinput –

回答

0

您需要安装能够首先检测到您的设备的设备驱动程序。

在设备管理器 - >端口(COM & LPT)中,您可以看到设备所连接的端口。例如COM1/COM2/COM3

您可以编写代码来添加侦听器事件以从这些端口读取数据。 有很多库可用于COM端口。这link可以对你有用。

我使用comm.jar从手持扫描器设备读取输入。

0

在过去我已经使用libusb.不是很简单,但如果你足够多的话,你可以得到几个操作系统和Java绑定的驱动程序。

3

我们的USB传感器存在同样的问题:没有100%的Java解决方案。您将始终需要使用另一种语言编写的操作系统特定代码(并且可以访问本机API)。

我们发现的最便携的解决方案是实现一种将USB数据封装在本地主机TCP套接字上的网关。我们有3个网关(OSX,UNIX和Windows)的实现,它们将调用本地API与USB设备进行交互。 Java代码将通过TCP网关发送/接收USB流量。我们已经完成了一些benchmarks,并且我们已经测量出纯C++代码和Java实现之间的总体差异小于10ms(对于大型45ms事务),而一旦拥有开放式通道,则延迟可以忽略不计(无影响)。

我们写了一篇文章解释our solution here