Next: Die Servicesetklasse Up: Die Gerätetreiber-Klassenbibliothek Previous: Überblick über die

Die Deviceklasse

Die Klasse Device hat die Aufgabe, einem Treiber-Programm einige Eigenschaften zur Verfügung zu stellen, die jeder Treiber benötigt. Am Anfang eines Gerätetreibers wird eine Instanz dieser Klasse angelegt, und dem Konstruktor werden die Aufrufparameter des Programms übergeben. Mit Hilfe dieser Parameter wird die Errorklasse initialisiert (siehe Abschnitt ). Damit steht deren Funktionalität, ohne eine explizite Initialisierung durchzuführen, automatisch zur Verfügung.

Als nächstes werden alle Ein- und Ausgabeleitungen außer dem Messagesystemkanal geschlossen und das Programm zum Hintergrundprozeß gemacht. Diesen Vorgang nennt man im UNIX-Jargon ,,das Programm daemonisieren``. Dies ist notwendig, da es bei so vielen beteiligten Prozessen nicht möglich ist, für alle Prozesse ein eigenes Terminal zu haben, über das sie ihre Ein- und Ausgaben tätigen könnten. Würden sie alle dasselbe Terminal benutzen, könnte man die Ein- und Ausgaben nicht mehr eindeutig den einzelnen Programmen zuordnen. Daher wird die gesamte Kommunikation über das Messagesystem abgewickelt, über das die Prozesse auch untereinander kommunizieren. Man kann das Programm aber zu Testzwecken auch im Vordergrund laufen lassen, indem man den Parameter -n angibt. Dabei entfällt dann das ,,Daemonisieren``.

Wenn das Programm mit -? oder falschen Parametern aufgerufen wird, besorgt die Klasse Device die Ausgabe einer Meldung, die die Benutzung des Programms erklärt (siehe Abb. ).

Die Funktion get_names stellt die Namen zur Verfügung, die am Ende der Kommandozeile eingegeben wurden. Hier steht üblicherweise der Gerätename (z.B. dev/target/1 für den Targettreiber).

In MUPIX ist es möglich, mehrere unabhängige Bereiche (Domänen) zu definieren, in denen Experimente gesteuert werden (siehe [Kra92d]). Die Funktion get_domain der Klasse Device gibt den Namen der Domäne wieder, in der das Experiment läuft und der in der Umgebungsvariablen ST_DOMAIN festgehalten ist. Der Domänenname wird für die Kommunikation benötigt.


martin@daisy.zdv.Uni-Mainz.DE
Fri Apr 21 10:02:42 MESZ 1995