Um ab und zu Programme, die irgendwann auf einem Controller laufen sollen, teste ich Algorithmen und Programmabläufe gerne zuvor auf dem Linux-PC aus.
Hier benötige ich dann Funktionen, mit denen ich zum Einen festellen kann, ob eine Taste gedrückt wurde und wenn ja, welche.
Vor geraumer Zeit habe ich mich hier in die Tiefen von termios.h begeben und mich da schlau gemacht (von dem ich wieder vieles vergessen habe).
Auch wenn mein Code (im Anhang) funktioniert, war ich nie zu 100% zufrieden, denn er hat einen Schönheitsfehler in der Anwendung.
Bisweilen, aber nicht immer gibt er mir an der aktuellen Cursorposition die Escape-Sequezen für bspw. die Cursortasten oder die Funktionstasten aus:
1 |
|
Meine < readkey > Funktion liefert mir neben den Ascii-Codes der Tasten auch die erweiterten Codes für eben oben genannte Cursor und Funktionstasten.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
Leider zerstört mir das Ausgeben der Escapesequenzen meinen Bildschirmaufbau. Bisher habe ich mir damit beholfen, dass ich in meinen Programmen einen Bereich schwarze Textfarbe auf schwarzem Hintergrund definiere auf den ich nach jeder Bildschirmausgabe verzweige.
Irgendein Puffer in dem wohl die erweiterten Tasten abgelegt werden muß wohl gelöscht werden, aber ich weiß nicht wo und wie ich das bewerkstellige.
Vllt. kennt einer der Linux- Systemprogrammierercracks wie das geht ?
