4

USB経由で接続されたデバイスの入力を取得できるJava APIを見つけるのに苦労しています。jUsb を見つけましたが、非推奨で古いようです。

私が欲しいのは:

  • プラットフォームに依存しない API (Unix、Windows、Mac で動作)
  • 任意のデバイスからの入力を取得できる API (実際には、ジョイスティックを USB ポートに接続したい)
4

3 に答える 3

3

USB センサーにも同じ問題がありました。100% Java ソリューションはありません。別の言語で記述された (ネイティブ API にアクセスできる) OS 固有のコードが常に必要になります。

私たちが見つけた最も移植性の高いソリューションは、localhost TCP ソケットを介して USB データをカプセル化する一種のゲートウェイを実装することです。ネイティブ API を呼び出して USB デバイスと対話するゲートウェイの 3 つの実装 (OSX、UNIX、および Windows) があります。Java コードは、TCP ゲートウェイ経由で USB トラフィックを送受信します。いくつかのベンチマークを実行した結果、純粋な C++ コードと Java 実装の全体的な差は 10 ミリ秒未満 (45 ミリ秒の大規模なトランザクションの場合) であることが測定されましたが、チャネルが開いている場合、レイテンシは無視できます (影響はありません)。

私たちのソリューションを説明する投稿をここに書きました。

于 2012-11-02T08:57:53.523 に答える
0

以前はlibusbを使用していました。 単純ではありませんが、十分に根付いていれば、いくつかのオペレーティング システムと Java バインディング用のドライバーを入手できます。

于 2012-11-01T15:30:16.273 に答える
0

まず、デバイスを検出できるデバイス ドライバーをインストールする必要があります。

デバイス マネージャー -> ポート (COM & LPT) で、デバイスが接続されているポートを確認できます。例: COM1/COM2/COM3

これらのポートからデータを読み取るためのリスナー イベントを追加するようにコーディングできます。COM ポートを操作するために使用できるライブラリが多数あります。このリンクは役に立ちます。

comm.jar を使用して、ハンドヘルド スキャナー デバイスからの入力を読み取ります。

于 2012-11-01T14:42:16.690 に答える