Abstraktion für den Tastaturcontroller des PCs. Mehr ...
#include <keyctrl.h>

Öffentliche Typen | |
enum | led_t { led_caps_lock = 4, led_num_lock = 2, led_scroll_lock = 1 } |
Namen der LEDs. Mehr ... | |
Öffentliche Methoden | |
Keyboard_Controller () | |
Konstruktor; Initialisierung der Tastatur. Mehr ... | |
Key | key_hit () |
Dient der Tastaturabfrage nach dem Auftreten einer Tastatur- unterbrechung. Mehr ... | |
void | reboot () |
Führt einen Neustart des Rechners durch. Ja, beim PC macht das der Tastaturcontroller. Mehr ... | |
void | set_repeat_rate (int speed, int delay) |
Funktion zum Einstellen der Wiederholungsrate der Tastatur. Mehr ... | |
void | set_led (led_t led, bool on) |
Setzt oder löscht die angegebene Leuchtdiode. Mehr ... | |
Geschützte Methoden | |
void | send_command (unsigned char cmd, unsigned char data) |
Sendet einen Befehl an den Tastaturcontroller. Mehr ... | |
void | send_byte (unsigned char byte) |
Sendet ein Datum an den Tastaturcontroller. Mehr ... | |
void | drainKeyboardBuffer () |
Leert den Tastaturpuffer vollständig. Mehr ... | |
Ausführliche Beschreibung
Abstraktion für den Tastaturcontroller des PCs.
Die Klasse Keyboard_Controller dient dazu, die PC Tastatur zu initialisieren und aus den gesendeten Make- und Break-Codes den Scan- und ASCII Code der gedrückten Taste zu bestimmen.
Dokumentation der Aufzählungstypen
Beschreibung der Konstruktoren und Destruktoren
Keyboard_Controller::Keyboard_Controller | ( | ) |
Konstruktor; Initialisierung der Tastatur.
Alle LEDs werden ausgeschaltet und die Wiederholungsrate auf maximale Geschwindigkeit eingestellt.
Dokumentation der Elementfunktionen
|
protected |
Leert den Tastaturpuffer vollständig.
Die Tastatur schickt u.U. keine weiteren Interrupts wenn nicht alle Daten abgeholt werden. Deswegen kann mit dieser Funktion sichergestellt werden, dass immer neue Interrupts kommen, auch wenn dabei Tastendrücke verloren gehen könnten.
Key Keyboard_Controller::key_hit | ( | ) |
Dient der Tastaturabfrage nach dem Auftreten einer Tastatur- unterbrechung.
Wenn der Tastendruck abgeschlossen ist und ein Scancode, sowie gegebenenfalls ein ASCII Code emittelt werden konnte, werden diese in Key zurückgeliefert. Wenn dagegen bloß eine der Spezialtasten Shift, Alt, CapsLock usw. gedrückt wurde, dann liefert key_hit() einen ungültigen Wert zurück, was mit Key::valid() überprüft werden kann.
- Rückgabe
- Dekodierte Taste
void Keyboard_Controller::reboot | ( | ) |
Führt einen Neustart des Rechners durch. Ja, beim PC macht das der Tastaturcontroller.
|
protected |
Sendet ein Datum an den Tastaturcontroller.
Sobald der Controller alle von der CPU geschriebenen Zeichen abgeholt hat, kann der Befehl und anschließend die Daten übermittelt werden.
- Parameter
-
byte zu sendende Daten
|
protected |
Sendet einen Befehl an den Tastaturcontroller.
Ein Tastaturbefehl besteht aus Tastaturkommando und einem zugehörigem Datumsbyte. Zur Implementierung soll die send_byte() Methode verwendet werden.
- Parameter
-
cmd abzusetzender Befehl data zu sendende Daten
void Keyboard_Controller::set_led | ( | led_t | led, |
bool | on | ||
) |
Setzt oder löscht die angegebene Leuchtdiode.
- Parameter
-
led Gibt an, welche LED geschaltet werden soll. on LED an- oder ausschalten.
void Keyboard_Controller::set_repeat_rate | ( | int | speed, |
int | delay | ||
) |
Funktion zum Einstellen der Wiederholungsrate der Tastatur.
- Parameter
-
delay bestimmt, wie lange eine Taste gedrückt werden muss, bevor die Wiederholung einsetzt. Erlaubt sind Werte von 0 (250ms), 1 (500ms), 2 (750ms) und 3(1000ms). speed bestimmt, wie schnell die Tastencodes aufeinander folgen soll. Erlaubt sind Werte zwischen 0 (30 Zeichen pro Sekunde) und 31 (2 Zeichen pro Sekunde).
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
- machine/keyctrl.h
- machine/keyctrl.cc