Hey
ich möchte das evdev Modul von Python für ein Skript unter Linuxmint
20.1 nutzen. Dabei sollen Events von einem USB-Fußschalter, der von
Linux als HID Keyboard erkannt wird, ausgelesen werden. (Grundsätzlich
funktioniert der Schalter und entspricht, in der aktuellen
Konfiguration, bei Betätigung dem Drücken der B-Taste bei mir auf der
Tastatur)
Jetzt wollte ich den Beispielcode aus der Dokumentation zu python evdev
testen
(https://python-evdev.readthedocs.io/en/latest/tutorial.html#reading-events):
1 | dev = InputDevice('/dev/input/event5')
|
2 |
|
3 | print(dev)
|
4 |
|
5 |
|
6 | for event in dev.read_loop():
|
7 | if event.type == ecodes.EV_KEY:
|
8 | print(categorize(event))
|
und bekomme aber keinen Output. Die Funktion read_loop() scheint keinen
Tastendruck zu registrieren (aber nen b wird trotzdem an die Stelle des
Cursors im Terminal geschrieben).
Ich habe vorher mit evtest im Virtuellen Terminal die entsprechende
eventfile zum Schalter rausgesucht - müsste eigentlich passen.
Weiß jemand, woran das liegen könnte?
(Drei Sachen sind mir noch aufgefallen, die für die Fehlersuche helfen
könnten:
1. mit der Maus funktionierts, da bekomme ich einen entsprechenden
Output bei re/li Click
2. python evdev liefert auch ein evtest Modul mit. Wenn ich das mit
Code: [Auswählen]
sudo python -m evdev.evtest
im Terminal ausführe und dann das eventfile vom Fußschalter auswähle
passiert da bei Tastendruck auch nichts (beim ausführen von evtest im
viruellen Terminal hingegen schon)
3. Im Zusammenhang mit evtest bin ich auf sudo fuser -v
/dev/input/event... gestoßen und habe festgestellt, dass auf der
entsprechenden eventfile einige root prozesse laufen)
Vielen Dank schon einmal für Eure Hilfe!