Ich benutze Polling-Befehl (Glob ('/ dev/tty [A-Za-z] *')) in Python zu erkennen USB-Geräte mit meinem Linux-PC in regelmäßigen Abständen verbunden für meine Bewerbung. Gibt es eine Möglichkeit, USB-Geräte automatisch verbunden zu erkennen?usb automatische Erkennung in Python für Linux env
Antwort
Hier ist ein Anfang. Sie können Ihren USB-Händler here finden. Sie müssen sich selbst eine current_list_usb
codieren, stellen Sie ein Zeitintervall ein, um zu überprüfen, so dass Sie vergleichen können, ob ein neues Gerät angeschlossen ist oder nicht. Einiger Code zu verwenden, wenn USB-Modul importieren:
import usb, usb.core, usb.util, usb.backend.libusb1
...snippet...
# usb.core.find()
# find our device
dev = usb.core.find(idVendor= ...., idProduct= ....)
#dev_1 = usb.util.find_descriptor(cfg, find_all =True)
# was it found?
if dev is None:
raise ValueError('Device not found')
#x = dev.set_configuration()
#print (dev)
#print (help(usb.core))
if usb.core.find(find_all=True, bDeviceClass=7) is None:
raise ValueError('No printer found')
Der normale Weg, dies zu tun, ist eine udev
Regel zu machen, dass Ihr Programm sagt eine neues tty
existiert.
Eine benutzerdefinierte udev-Regel wie folgt aussehen kann (wir es /etc/udev/rules.d/50-custom-tty.rules
nennen.
KERNEL=="ttyUSB[0-9]+", RUN+="/usr/bin/my-program"
Here's eine gute Anleitung zum Schreiben von udev-Regeln
In diesem Fall wird das Programm /usr/bin/my-program
wird ausgeführt, wenn ein new ttyUSB
Gerät wird in/dev erstellt, udev wird eine Reihe von Umgebungsvariablen setzen, um Ihnen genau zu sagen, was gerade angeschlossen wurde. Sie können dann Ihr Hauptprogramm benachrichtigen, dass ein neues ttyUSB
existiert, und es sollte es verwenden du rennst sollte b e klein, da sonst der udev
-Daemon es abbricht, wenn es zu lange dauert.
Ich würde vorschlagen, libudev zu verwenden und ein udev-Monitorobjekt zu erstellen, um Hotplugged-Geräte zu erkennen. Hier ist ein Ausgangspunkt für Sie libudev und seinen Monitor-Funktion erfahren:
https://www.freedesktop.org/software/systemd/man/libudev.html
Es könnte eine gute Python-Bibliothek schon sein, dass udev wickelt, so dass Sie seine Funktionen ohne das Schreiben von C-Code verwenden können.
- 1. Android USB-Gerät Erkennung
- 2. Erkennung von USB in C++
- 3. UWP USB-Erkennung
- 4. Automatische Erkennung von aufgezählten Port in C#
- 5. Code automatische Erkennung Maschinen
- 6. OS X, USB-Massenspeicher-Erkennung
- 7. Erstellen eines USB-Gerätetreibers für Linux
- 8. Automatische Erkennung aller installierten Kartennavigationsanwendungen
- 9. p2 Plugin-Ordner automatische Erkennung
- 10. Automatische Erkennung von Serien Excel
- 11. USB 3G Modem für Embedded Linux
- 12. Linux C USB Schreibgeschwindigkeit
- 13. USB Port Speed Linux
- 14. % USERPROFILE% env Variable für Python
- 15. Notepad ++ Automatische Erkennung von Python-Tabs oder Leerzeichen
- 16. Automatische Erkennung von Änderungen im RSS-Feed
- 17. Automatische Erkennung von SMS in Android
- 18. CSV-Separator automatische Erkennung in Javascript
- 19. schreibe Datei in usb mit Python unter Linux
- 20. Python - Automatische Erkennung von E-Mail-Inhalten Kodierung
- 21. USB-Stick Sicherheit - Linux-Boot
- 22. USB-Eingangsstrom unter Linux lesen
- 23. Arduino USB-Kompatibilität mit Linux
- 24. Wie wird die automatische Erkennung für einen Container eingerichtet?
- 25. Wenn Bedingung in Unix und Linux env
- 26. Auf USB-Montierung in Mono unter Linux
- 27. Enum USB-Geräte in Linux/C++
- 28. Ändern Standardnamen für USB virtuelle serielle Schnittstellen in Linux
- 29. Chrome: Automatische Erkennung der Sprache für die Rechtschreibprüfung
- 30. Linux USB-Modem SMS-Warnungen
Können Sie das 'dbus' Modul verwenden? – Pavel
'Pyudev'-Code zu überwachen' tty' Gerät Hot-Plug https://Stackoverflow.com/a/39885881/1778421 –