Funktionen durch Tastendrücke aufrufen (Linux) [solved]
-
Hallo zusammen.
Ich habe eine IO-Karte, welche auch bereits durch mein Programm angesprochen werden kann. Da ich aber für die Eingabe "cin" benutzt habe, muss ich jede Eingabe durch drücken von <Enter> bestätigen.
Ich will jetzt aber, dass durch Drücken einer Taste eine Ausgang gesetzt wird. Als z. B. Druck auf Taste <W>, der Ausgang 1 ist ein. Wenn ich die Taste wieder loslasse, soll der Ausgang wieder auf 0 gesetzt werden.
Was ich jetzt wissen muss, ist wie kann ich Funktionen direkt über Tastendrücke aufrufen?
Es Soll auch möglich sein, mehrere Tasten gleichzeitig zu drücken, also mehrere Ausgänge gleichzeitig zu setzen/ zurückzusetzen.
Das ganze soll unter Linux laufen, und zwar ohne Gui. Das Mini-Board, welches damit arbeiten soll hat weder eine Grafikkarte und ist Prozessortechnisch auch nicht in der Lage, eine Gui laufen zu lassen.
Noch anzumerken ist, dass ich neu bin in C++. Ich habe mich vorwiegend mit Shellscripten & PHP durchschlagen können, welches mich aber in diesem Fall nicht weiterbringen wird.
Bin dankbar für jede Antwort
Gruss asci
-
Die ncurses lib bietet z.b. getch http://linux.die.net/man/3/getch.
Du kannst aber auch folgendes probieren (Beitrag #12):
http://www.coding-board.de/board/showthread.php?t=8910
-
Hallo ihoernchen
Vielen Dank erstmals für die schnelle Antwort.
Leider bin ich noch nicht wirklich weiter gekommen
getch habe ich noch nicht zum laufen bekommen bzw. dein zweiter Link hat mich auch noch nicht weiter gebracht.
Ich suche etwas wie:
Taste 1 gedrückt {
// Diesen Code Ausführen
}Taste 2 gedrückt {
// Diesen Code Ausführen
}Ich habe das in einem Java Projekt gsehen. Das hat wunderbar funktioniert. Auch parallel, also wen 2 Tasten gleichzeitig gedrückt wurden. Kann es sein dass so etwas mit C++ gar nicht möglich ist?
Aber wenn ich zum Beispiel Ego-Shooter ansehe, kann ich ja au mehre Tasten gleichzeitig drücken und alle Bewirken etwas (abgesehen davon wenn ich gleichzeitig nach links und nach rechts gehen will
)Hat jemand so eine Art der Tastaturauswertung schonmal in C++ geschrieben?
Gruss asci
-
Nachdem ich herausgefunden habe wie mein compiler auch mit getch() fertig wird, komme ich schon beträchtlich weiter. Danke nochmals für dem Denkanstoss, den du mir gegeben hast.
Vielen Dank für deine rasche Hilfe.Für alle, die das Problem mit dem Compiler und getch() haben. Zuerst müsst ihr ncurses-dev auf dem System installieren. Wichtig, die DEV-Version der Bibliothek. Anschliessend beim compilieren muss auf ncurses gelinkt werden:
g++ -o test -lncurses quellcode.cppGruss asci
-
Vielleicht hilft dir auch dieser Beitrag noch ein wenig weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.html