2016-05-09 5 views
0

私は接続されたデバイスを検出するpythonスクリプト(python2.7)を呼び出すJava GUIアプリケーション(javafx)を作っています。これは、複数のデバイスとの接続を自動化できるようにするためです。Java GUIでUSBを検出するPythonスクリプト

私のpythonスクリプトでは、pyusbを使用しています。しかし、デバイスを検出するには、デバイスと通信するためにlibusb-win32のinf_wizard.exeを使用する必要があります。これは私自身の開発とデバッグでは問題ありませんが、このアプリケーションを配備して他のユーザーにこれを使用させたい場合はどうなりますか?

このアプリケーションは別のコンピュータでデバイスを検出できますか?

おかげ

これを行うには良い方法があれば私に知らせてください。

+0

あなたはこれでかなりの言語をカバーしているようです。あなたのデザインは非常に断片化しているように見えます。これらのデバイスは何ですか? USBドライブ? –

+0

デバイスは評価ボードです。私は自分のメソッドが最良の方法であると信じています(guiのQT/C++を除いて)。他にも提案があれば教えてください! – user3773673

答えて

0

ほとんどの(Windowsの)シナリオでは、これは機能しません。問題は、Windowsのlibusbが特別なバックエンド(libusb0.sys、libusbK.sysまたはwinusb.sys)を使用していることです。ソフトウェアを実行するすべてのマシンにこれらのバックエンド(libusb-win32はlibusb0.sys)の1つをインストールする必要があります。 Linuxでは、これはすぐに使えるはずです。

本質的には、inf_wizard.exeで生成したファイルをソフトウェアとともに出荷し、infをインストールする必要があります(昇格した特権が必要です)。

+0

返信いただきありがとうございます!特別なバックエンド(usb4javaなど)の使用を必要としない別の方法がありますか? – user3773673

+0

私が知っていることはありません。問題は、悲しいことに、カーネルとドライバがユーザーランドとWindowsと通信する必要があるということです。afaikは、カーネルモジュールを静かに切り替える方法を提供していません。将来的には、ますます多くのWindowsが独自のバックエンドWinUSBをデバイスに使用するため、これはずっと簡単になります。 Windows 10以降では、多くのデバイスがデフォルトとしてこれを使用しているため、カーネルモジュールを切り替える必要はなく、WinUSBをサポートしていればユーザーランドソフトウェアを簡単に切り替えることができます。あなたのデバイスではそうだと思われるような、ハードウェアの自己構築の場合、これはまだ私が恐れている解決策ではありません。 – dryman

+0

usb4javaのFAQもそれを拒否しています:http://usb4java.org/faq.html。 – dryman

関連する問題