Beschreibung des Quellcodes

Die Daemons lassen sich in Gruppen einteilen, wobei innerhalb der einzelnen Gruppen der Ablauf immer sehr ähnlich ist. Als "Funktionsgruppe" gibt es:

Da der Umgang mit Nachrichten von der drehscheibe und Nachrichten vom CAN Bus bzw. von "außerhalb" immer sehr ähnlich ist, wurde dieser Teil des Codes in das Verzeichnis common geschoben. Die Verzeichnisse für die Clients enthalten nur die clientspezifischen Code.

Das Lesen der Konfiguration, Parsen der CS2 Dateien, Kommunikation von und zur drehscheibe und Encoder/Decoder für Protokolle wurde in einige Bibliotheken im Verzeichnis libs ausgelagert.

Die meisten Module der Software haben den gleichen Aufbau mit einer Struktur für die Daten, Makros um die Felder der Struktur zu setzen und für das Erzeugen, Initialisieren, Beenden und Freigeben einen definierten Satz an Funktionen.
NameBedeutung
XXXstruct *XXXCreate(void) Die Createfunktion legt den Speicher an und liefert einen Zeiger auf die Struktur oder im Fehlerfall NULL zuück.
BOOL XXXInit(XXXStruct, ...) Die Initfunktion initialisiert die Struktur. Dazu kann es spezifische Parameter geben.
XXXExit(XXXStruct) Die Exitfunktion beendet die Arbeit mit dem Modul. Dazu gehört z.B. das Schließen von Sockets oder Filedeskriptoren.
XXXDestroy(XXXStruct) Die Destroyfunktion gibt allozierten Speicher wieder frei.


Zurück zur Modellbahn Startseite - Zurück zur Homepage