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

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. Mehr ...

#include <device/keyboard.h>

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

Öffentliche Methoden

 Keyboard ()
 Konstruktor. Mehr ...
 
void plugin ()
 'Anstöpseln' der Tastatur. Mehr ...
 
void trigger ()
 Bearbeitung der Tastaturunterbrechung. Mehr ...
 
- Öffentliche Methoden geerbt von Gate
 Gate ()
 Konstruktor. Mehr ...
 
virtual ~Gate ()
 Destruktor. 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 set_repeat_rate (int speed, int delay)
 Funktion zum Einstellen der Wiederholungsrate der Tastatur. Mehr ...
 
void set_led (LED led, bool on)
 Setzt oder löscht die angegebene Leuchtdiode. Mehr ...
 

Weitere Geerbte Elemente

- Öffentliche Typen geerbt von Key_Decoder
enum  LED { LED_SCROLL_LOCK = 1 << 0, LED_NUM_LOCK = 1 << 1, LED_CAPS_LOCK = 1 << 2 }
 Namen der LEDs. Mehr ...
 
- Öffentliche, statische Methoden geerbt von Keyboard_Controller
static void reboot ()
 Führt einen Neustart des Rechners durch. Ja, beim PC macht das der Tastaturcontroller. Mehr ...
 
- Geschützte Methoden geerbt von Keyboard_Controller
void drainKeyboardBuffer ()
 Leert den Tastaturpuffer vollständig. Mehr ...
 
- Geschützte Methoden geerbt von Key_Decoder
 Key_Decoder ()
 Konstruktor für den Tastendekoder.
 
Key decode (unsigned char code)
 Interpretiert die Make und Break-Codes der Tastatur und liefert den Scancode und Informationen darüber, welche zusätzlichen Tasten wie Shift und Ctrl gedrückt wurden. Mehr ...
 
- Geschützte, statische Methoden geerbt von Keyboard_Controller
static void send_command (unsigned char cmd, unsigned char data)
 Sendet einen Befehl an den Tastaturprozessor. Mehr ...
 
static void send_byte (unsigned char byte)
 Sendet ein Datum an den Tastaturprozessor. Mehr ...
 
- Geschützte Attribute geerbt von Key_Decoder
bool status [Key::Scancode::KEYS]
 Aktueller Status (gedrückt oder losgelassen) der Tasten.
 

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

◆ 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 – bei levelgesteuerten Unterbrechungen (sonst könnte eine weitere CPU einen IRQ erhalten bevor die erste Abarbeitung abgeschlossen ist).

Noch zu erledigen:
Methode implementieren

◆ trigger()

void Keyboard::trigger ( )
virtual

Bearbeitung der Tastaturunterbrechung.

Hier soll die Bearbeitung des von der Tastatur ausgelösten Interrupts erfolgen. trigger gibt dazu entsprechend gültige Zeichen auf einer eigenen Zeile auf dem Bildschirm aus. Wird die Tastenkombination [ctrl]-[alt]-[delete] gedrückt, soll ein Reboot ausgelöst werden.

Noch zu erledigen:
Methode implementieren

Implementiert Gate.


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