/ Dev / input Tastaturformat
-
01-10-2019 - |
Frage
Ich habe mit der Erfassung der Eingabe von meiner Tastatur Gerät herumspielen:
/dev/input/by-path/platform-i8042-serio-0-event-kbd
für mich, und ich habe mich gefragt, ob es eine Spezifikation für das, was es gibt, mit
od -tx1 /dev/input/by-path/platform-i8042-serio-0-event-kbd
zu hören. Ich bin gespannt, vor allem durch das Verhalten bestimmter Tasten; die Meta, Pfeiltasten, Numpad Schrägstrich.
0520300 ac 9d 86 4c 6b 0f 04 00 04 00 04 00 (db) 00 00 00
0520320 ac 9d 86 4c 8c 0f 04 00 01 00 (7d) 00 00 00 00 00
0520340 ac 9d 86 4c 95 0f 04 00 00 00 00 00 00 00 00 00
Jede andere Taste ich bisher haben gesucht hat, die beiden Bytes in Klammern als Attribut-Werte angezeigt, gibt es keinen Grund diese spezielle sind?
Lösung
/dev/input/by-path/platform-i8042-serio-0-event-kbd
ist nur ein symbolischer Link auf /dev/input/eventX
Ereignis Gerätedatei. Die Daten können von Ereignisgerätedateien gelesen werden als
struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};
definiert in /usr/include/linux/input.h
.
Mögliche Werte von type
mit EV_
vorangestellt.
Mögliche Werte von code
hängen von type
. Sie sind mit KEY_
oder BTN_
oder REL_
Präfix oder so weiter.
Mögliche Werte von value
hängen sowohl von type
und code
. Zum Beispiel für Schlüssel Pressetermine value
gleich 1
und für Schlüsselentlastungen 0
.
Sie können mit Ereignisdaten überprüfen:
evtest /dev/input/eventX
Dabei gilt X
das Ereignis Gerätenummer auf der Tastatur (oder jedes andere Ereignis Gerät). Ein Tastendruck oder lassen Sie normalerweise aussendet drei Ereignisse (EV_MSC
, EV_KEY
und EV_SYN
).
Andere Tipps
Einige Tasten haben ungewöhnliche Scan-Codes ...
Von: http://www.beyondlogic.org/keyboard/keybrd.htm (mit Änderungen):
Jetzt gibt es 101 Tasten und 8 Bit 256 verschiedene Kombinationen machen, so brauchen Sie nur ein Byte pro Schlüssel zu schicken, nicht wahr?
Nein. Leider sind eine Handvoll der Tasten auf der Tastatur zu finden erweiterte Schlüssel und erfordern daher zwei Scan-Codes. Diese Schlüssel werden durch eine E0 (hex) vorangestellt. Aber es ist auch nicht an zwei Scan-Codes zu stoppen. Wie wäre es E1,14,77, E1, F0,14, F0,77! Jetzt kann, dass kein gültiger Scan-Code sein? Wieder falsch. Es geschieht gesendet werden, wenn Sie die Pause / Pause-Taste drücken. Frag mich nicht, warum sie es so lange machen müssen! Vielleicht waren sie einen schlechten Tag oder etwas mit?