Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
25.02.2021, 23:54:22

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25306
  • Letzte: phase0
Statistiken
  • Beiträge insgesamt: 718317
  • Themen insgesamt: 58098
  • Heute online: 654
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema: [gelöst]  Python evdev read_loop reagiert nicht auf keyevents  (Gelesen 72 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[gelöst] Python evdev read_loop reagiert nicht auf keyevents
« am: 23.02.2021, 21:44:04 »
Hey

ich habe folgende Linuxkonfiguration Desktop: Cinnamon 4.8.6 Distro: Linux Mint 20.1 Ulyssa und möchte das evdev Modul von Python für ein Skript 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 spricht bei Betätigung dem Drücken der B-Taste bei mir auf der Tastatur)
Jetzt wollte ich den Beispielcode aus der Dokumentation testen (https://python-evdev.readthedocs.io/en/latest/tutorial.html#reading-events):
dev = InputDevice('/dev/input/event5')

print(dev)


for event in dev.read_loop():
    if event.type == ecodes.EV_KEY:
        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
sudo python -m evdev.evtestim 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!
« Letzte Änderung: Gestern um 20:12:51 von Newbiemint »

Re: Python evdev read_loop reagiert nicht auf keyevents
« Antwort #1 am: Gestern um 20:12:42 »
Okay, habe jetzt rausgefunden, dass mehr als ein Eventfile mit dem Gerät verknüpft ist und die jetzt gewählte File funktioniert.

(Wieso werden in Linux 4 Eventfiles für ein Gerät angelegt?)