SYNOPSIS
loadusr sendkeys config=s8t5, 16, t12
BESCHREIBUNG
Diese Komponente ist als Partnerkomponente für matrix_kb oder den hostmot2 7i73-Treiber gedacht. Sie akzeptiert die Ereigniscodes für das Hoch- und Runterdrücken der Tasten von einem dieser beiden Treiber und wandelt sie in Tastenanschläge um, die von einer virtuellen Tastatur gesendet werden.
Es ermöglicht auch die Erzeugung von Tastendrücken durch einzelne HAL-Pins.
Der Parameter config des HAL-Befehls loadusr legt fest, wie viele Scancodes unterstützt werden und wie viele einzelne Pins erstellt werden.
config=s16 würde die 16 Scancodes einer 4x4-Matrix unterstützen.
config=t10 würde 10 einzelne HAL-Pin-Trigger erzeugen.
config=s16t10 würde eine Instanz mit beiden oben genannten erstellen.
Mehrere durch Kommata getrennte Configs erzeugen mehrere Instanzen der Komponente. Die akzeptierten Codes können in dem Auszug aus den Linux-Headern hier eingesehen werden: https://wiki.linuxcnc.org/cgi-bin/wiki.pl?Scancodes
Die Komponente erfordert, dass der Benutzer Schreibrechte auf /dev/uinput hat, was standardmäßig nicht der Fall ist. Um Zugang zu gewähren für die Ausführung des folgenden:
-
Erstellen Sie die Gruppe uinput und fügen Sie den LinuxCNC-Benutzer zu ihr hinzu:
sudo groupadd -f uinput sudo gpasswd -a username uinput
-
Erstellen Sie einen neuen Eintrag in .B/etc/udev/rules.d/99-input.rules
sudo echo KERNEL=="uinput", GROUP="uinput", MODE:="0660" | sudo tee /etc/udev/rules.d/88-input.rules
-
Starten Sie dann den Rechner neu. Sie können testen, ob es funktioniert hat:
ls -l /dev/uinput crw-rw---- 1 root uinput 10, 223 Nov 11 15:35 /dev/uinput
Es ist möglich, die 7i73-Codes sowohl mit dem matrix_kb comp als auch mit diesem comp zu verknüpfen, so dass einige Codes HAL-Pins betreiben und einige Tastenanschläge senden. Ist die Option gegeben, so ist es VIEL besser, HAL-Pins für Dinge wie Joggen und Maschinensteuerung zu verwenden. Diese Komponente sollte eigentlich nur für die Texteingabe und GUI-Operationen verwendet werden.
Jeder Taste auf der Matrix ist ein Scan-Code zugeordnet. Der einfachste Weg, die Komponente zu konfigurieren, besteht darin, die Komponente zu laden und ein Halmeter zu öffnen, das sendkeys.0.current-event anzeigt. Notieren Sie den Code für jede physische Taste. (Wenn die Tasten keine konsistenten Ergebnisse liefern, müssen Sie wahrscheinlich den Wert des Pins matrix_kb.0.negative-logic umschalten und/oder die I/O-Pins invertieren).
Bearbeiten Sie dann die HAL-Datei, um jedem Scancode ein Schlüsselereignis zuzuordnen. Zum Beispiel:
setp sendkeys.0.scan-event-21 34
Um eine Taste so einzustellen, dass sie den Buchstaben "G" tippt, müssen die Tastenereignisse für jede physische Taste eingerichtet werden, bevor die Komponente aktiviert wird, aber nachdem die Komponente geladen wurde.
Um dies zu erreichen, gibt es einen Pin sendkeys.N.init, der auf "true" gesetzt werden sollte, sobald die zu sendenden Ereignisse für jeden Scancode und Pin eingerichtet wurden.
Um Tastenanschläge aus anderen Quellen zu generieren, beachten Sie bitte, dass ein keydown einfach 0xC0 & keycode and keyup is 0x80 & keycode ist.
PINS
- sendkeys.N.keycode u32 in
-
Verbinden mit Scancode-Generator.
- sendkeys.N.current-event s32 out
-
Zeigt den aktuellen Scancode ohne Keyup / Keydown-Markierungen.
- sendkeys.N.init bit in
-
Setzt diesen Pin auf TRUE, sobald alle Ereignisparameter gesetzt sind.
PARAMETER
- sendkeys.N.scan-event-MM u32 in
-
Weist die uinput-Ereigniscodes zu, die mit jedem Scancode verbunden sind.
- sendkeys.N.pin-event-MM u32 in
-
Weist die mit jedem HAL-Bit-Pin verbundenen uinput-Codes zu.
BEISPIEL
loadusr -W sendkeys config=16t2 net scancodes hm2_7i73.0.0.keycode => sendkeys.0.keycode setp sendkeys.0.scan-event-00 34 # Key G setp sendkeys.0.scan-event-01 2 # Key 1 setp sendkeys.0.scan-event-02 3 # Key 2 setp sendkeys.0.scan-event-03 4 # Key 3 setp sendkeys.0.scan-event-04 50 # Key M setp sendkeys.0.scan-event-05 05 # Key 4 setp sendkeys.0.scan-event-06 06 # Key 5 setp sendkeys.0.scan-event-07 07 # Key 6 setp sendkeys.0.scan-event-08 31 # Key S setp sendkeys.0.scan-event-09 8 # Key 7 setp sendkeys.0.scan-event-10 9 # Key 8 setp sendkeys.0.scan-event-11 10 # Key 9 setp sendkeys.0.scan-event-12 20 # Key T setp sendkeys.0.scan-event-13 11 # Key 0 setp sendkeys.0.scan-event-14 52 # Key Dot setp sendkeys.0.scan-event-15 14 # Backspace setp sendkeys.0.pin-event-00 29 # Left Ctrl setp sendkeys.0.pin-event-01 57 # Space setp sendkeys.0.init 1 #Strg + Leertaste von einem Trigger senden net clear-errors parport.0.pin.00.in sendkeys.0.trigger-00 sendkeys.0.trigger-01
AUTOR
Andy Pugh
LIZENZ
GPL-2.0+