Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Die Klasse Keyboard stellt die Abstraktion der Tastatur dar. Mehr ...

#include <keyboard.h>

Klassendiagramm für Keyboard:
Zusammengehörigkeiten von Keyboard:

Öffentliche Methoden

 Keyboard ()
 Konstruktor. Mehr ...
 
void plugin ()
 'Anstöpseln' der Tastatur. Mehr ...
 
bool prologue ()
 Prolog der Tastaturunterbrechung. Mehr ...
 
void epilogue ()
 Epilog der Tastaturunterbrechung. Mehr ...
 
- Öffentliche Methoden geerbt von Gate
 Gate ()
 Konstruktor. Mehr ...
 
virtual ~Gate ()
 Destruktor. Mehr ...
 
bool set_queued ()
 Setzt atomar ein Flag um zu markieren, dass sich das Objekt gerade in einer Epilog-Warteschlange befindet. Mehr ...
 
void set_dequeued ()
 Setzt das in set_queued() gesetzte Flag zurück. Mehr ...
 
- Öffentliche Methoden geerbt von Keyboard_Controller
 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 ...
 

Weitere Geerbte Elemente

- Öffentliche Typen geerbt von Keyboard_Controller
enum  led_t { led_caps_lock = 4, led_num_lock = 2, led_scroll_lock = 1 }
 Namen der LEDs. Mehr ...
 
- Öffentliche Attribute geerbt von Gate
QueueLink< Gatequeue_link
 Verkettungszeiger für Epilog Queue.
 
- Geschützte Methoden geerbt von Keyboard_Controller
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

Die Klasse Keyboard stellt die Abstraktion der Tastatur dar.

Sie sorgt für die korrekte Initialisierung und vor allem für die Unterbrechungsbehandlung. Später wird Keyboard auch die Tastaturabfrage durch die Anwendung ermöglichen.

Beschreibung der Konstruktoren und Destruktoren

◆ Keyboard()

Keyboard::Keyboard ( )
inline

Konstruktor.

Dokumentation der Elementfunktionen

◆ epilogue()

void Keyboard::epilogue ( )
virtual

Epilog der Tastaturunterbrechung.

Hier wird das im Rahmen der Prolog-Behandlung ausgelesene Zeichen auf dem Bildschirm mit Hilfe des globalen CGA_Stream Objekts kout ausgegeben.

Erneute Implementation von Gate.

◆ plugin()

void Keyboard::plugin ( )

'Anstöpseln' der Tastatur.

Initialisierung der Tastatur und aktivieren der spezifischen Interruptbehandlung. Dazu muss sich das Keyboard Objekt bei der Plugbox plugbox anmelden und dem IOAPIC Objekt ioapic mitteilen, dass Unterbrechungen der Tastatur fortan dem Prozessor gemeldet werden sollen.

◆ prologue()

bool Keyboard::prologue ( )
virtual

Prolog der Tastaturunterbrechung.

Mit dieser Methode wird auf die Unterbrechungen durch die Tastatur reagiert. Da bei jedem Tastendruck mehrere Unterbrechungen ausgelöst werden, ist nicht in jedem Fall mit einem verwertbaren ASCII Code zu rechnen. Nur wenn die Methode key_hit der Basisklasse Keyboard_Controller einen gültigen Key liefert, konnte ein vollständiger Scancode ermittelt werden und soll die Ausgabe des Zeichens angefordert werden.

Weiterhin muss sichergestellt werden, dass ein gültiger Key nicht durch einen nachfolgenden Prolog überschrieben wird, bevor er ausgegeben wurde.

Implementiert Gate.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: