2016-05-09 3 views
0

Je crée une application java GUI (javafx) qui appelle un script python (python2.7) qui détecte les périphériques connectés. La raison en est que je peux automatiser mes connexions avec plusieurs appareils.Script Python pour détecter les USB dans l'interface graphique Java

Dans mon script python, j'utilise pyusb. Cependant pour détecter un périphérique, je dois utiliser inf_wizard.exe de libusb-win32 pour communiquer avec le périphérique. C'est très bien pour mon propre développement et débogage, mais que se passe-t-il si je souhaite déployer cette application et que d'autres utilisateurs l'utilisent?

Est-ce que cette application, sur un autre ordinateur, serait capable de détecter un périphérique?

Merci

S'il vous plaît laissez-moi savoir s'il y a une meilleure façon de le faire.

+0

haha ​​vous semble avoir un certain nombre de langues couvertes dans ce domaine. votre conception semble très fragmentée. quels sont ces appareils? lecteurs USB? –

+0

Les périphériques sont des cartes d'évaluation. haha, ya, la première fois, donc je crois que mes méthodes sont les meilleures (à part QT/C++ pour le gui). S'il vous plaît laissez-moi savoir si vous avez d'autres suggestions! – user3773673

Répondre

0

Non, dans la plupart des scénarios (Windows), cela ne fonctionnera pas. Le problème est que libusb sous Windows utilise un backend spécial (libusb0.sys, libusbK.sys ou winusb.sys). Vous devez installer l'un de ces backends (libusb-win32 est libusb0.sys) sur chaque machine sur laquelle vous voulez que votre logiciel s'exécute. Sous Linux cela devrait fonctionner correctement dès la sortie de la boîte. Essentiellement, vous devez expédier les fichiers que vous générez avec inf_wizard.exe avec votre logiciel et installer l'inf (nécessite des privilèges élevés) avant de pouvoir utiliser l'appareil avec votre logiciel.

+0

Merci pour la réponse! Existe-t-il des méthodes alternatives qui ne nécessitent pas l'utilisation d'un backend spécial (usb4java etc.)? – user3773673

+0

Non pas que je sache. Le problème est que vous avez malheureusement besoin d'un pilote kernelland pour communiquer avec l'utilisateur et Windows afaik ne fournit pas un moyen de passer en mode silencieux les modules du noyau. À l'avenir, cela deviendra beaucoup plus facile car de plus en plus de Windows utilise son propre backend WinUSB pour les appareils. À partir de Windows 10, de nombreux appareils l'utilisent par défaut et vous n'avez donc pas besoin de changer de module noyau et vous pouvez simplement changer de logiciel utilisateur s'il prend en charge WinUSB. Pour les cas avec du matériel auto-construit comme il semble que ce soit le cas avec votre appareil, ce ne sera toujours pas une solution que j'ai peur. – dryman

+0

La FAQ d'usb4java le décline aussi: http://usb4java.org/faq.html. – dryman