C++ Linux Tastatur abfragen

Gandalf2210

Commodore
Registriert
Mai 2010
Beiträge
4.137
Hallo

Ich habe einen Raspberry Pi und würde gerne meine für Windows geschriebenen c++ Programme drauf laufen lassen.
Für ein Spiel nutze ich unter Windows die GetAsyncKeyState Funktion.
Unter Linux gibt es die aber nicht. Nach etwas googlen stellte ich fest, dass viele so eine Funktion gesucht haben.
Dort lief es dann aber immer auf das einarbeiten in verschieden Bibliotheken raus. Eine "einfache" Funktion, die prüft, ob eine Taste seit ihrem letzten Aufruf gedrückt wurde gibt es nicht?
 
Kurzes googlen führt mich zu diesem Link:
http://rico-studio.com/linux/read-and-write-to-a-keyboard-device/

Das sollte die einfachste Variante sein, da du direkt mit dem Device arbeitest.
Im Grunde erstellst du dir einen Filedescriptor für das Keyboard und liest davon.
Wenn das ganze asynchron passieren soll musst du dich da aber selbst drum kümmern, also einen Thread erstellen in dem gelesen wird und gglfs. ein Event-handler aufgerufen.
Jenachdem wie nah an der Hardware deine Programme sind würde ich dir raten, eine Library zu verwenden, der Einarbeitungsaufwand sollte nicht groß sein und dein Programm wird flexibler und stabiler.
 
danke, das sieht doch nett aus. Nur leider kennt der unter /dev/input nur mice.
Bin per remote Desktop drauf, daran wird es wohl liegen.
 
Du kannst unter /dev/input/by-path nachschauen, welches der eventX Geräte die Tastatur ist.

Das ist aber alles wirklich extrem nah an der Hardware, ich kann dir wie gesagt nur empfehlen eine library dafür zu verwenden.
 
Zurück
Oben