我很努力地找到一个Java API,它能够获取通过USB连接的任何设备的输入。 我发现了jUsb,但似乎过时了。独立于Java的usb输入平台
我想的是:
- 独立于平台的API(在UNIX,Windows,Mac的工作)
- 可以从任何设备抢输入(其实我想操纵杆连接到API我的USB端口)
我很努力地找到一个Java API,它能够获取通过USB连接的任何设备的输入。 我发现了jUsb,但似乎过时了。独立于Java的usb输入平台
我想的是:
您需要安装能够首先检测到您的设备的设备驱动程序。
在设备管理器 - >端口(COM & LPT)中,您可以看到设备所连接的端口。例如COM1/COM2/COM3
您可以编写代码来添加侦听器事件以从这些端口读取数据。 有很多库可用于COM端口。这link可以对你有用。
我使用comm.jar从手持扫描器设备读取输入。
在过去我已经使用libusb.不是很简单,但如果你足够多的话,你可以得到几个操作系统和Java绑定的驱动程序。
我们的USB传感器存在同样的问题:没有100%的Java解决方案。您将始终需要使用另一种语言编写的操作系统特定代码(并且可以访问本机API)。
我们发现的最便携的解决方案是实现一种将USB数据封装在本地主机TCP套接字上的网关。我们有3个网关(OSX,UNIX和Windows)的实现,它们将调用本地API与USB设备进行交互。 Java代码将通过TCP网关发送/接收USB流量。我们已经完成了一些benchmarks,并且我们已经测量出纯C++代码和Java实现之间的总体差异小于10ms(对于大型45ms事务),而一旦拥有开放式通道,则延迟可以忽略不计(无影响)。
我们写了一篇文章解释our solution here。
如果类似的东西存在,我宁愿感到惊讶...听起来像你想用java编写的设备驱动程序 –
我会惊讶没有人想过(对我来说非常基本)视频游戏,与USB控制杆启用......无论如何,感谢“用Java编写的设备驱动程序”的建议,似乎是想要我正在寻找是的。 – toni07
如果您实际上只想使用游戏杆,请尝试Jinput http://java.net/projects/jinput –