Funktionen für das Einlesen der Konfiguration
Bibliothek
Projekt | config |
Library | libconfig.a |
Includedatei | config.h |
Beschreibung
Nach dem Anlegen eines Config Objektes und Initialisierung kann die Konfigdatei
eingelesen bzw. die Kommandozeile an den Damon geparst werden. Danach
können die einzelnen Knfigurationswerte abgefragt werden. Es gibt sowohl
für Zahlen als auch für Zeichenketten eine eigene Abfragefunktion.
Es gibt auch Funktionen, um einen Konfigurationswert zu setzen.
Definitionen
Konstanten
Konstanten für den Pfad der Konfigdatei
#define MRSYSTEM_CONFIG_FILE "/etc/mrsystem"
Konstanten für Konfigurationswerte
#define MRSYSTEM_CFG_PROTO_MOTOROLA 0x01
#define MRSYSTEM_CFG_PROTO_MFX 0x02
#define MRSYSTEM_CFG_PROTO_DCC 0x04
#define MRSYSTEM_CFG_SYSTEM_START "start"
#define MRSYSTEM_CFG_SYSTEM_STOP "stop"
#define MRSYSTEM_CFG_SYSTEM_HIDE "hide"
#define MRSYSTEM_CFG_SYSTEM_UNHIDE "unhide"
#define MRSYSTEM_CFG_SYNC_PERIODIC 0x01
#define MRSYSTEM_CFG_SYNC_KEYBD 0x02
#define MRSYSTEM_CFG_SYNC_LAYOUT 0x04
#define MRSYSTEM_CFG_SYNC_MEM 0x08
#define MRSYSTEM_CFG_SYNC_CONTR 0x10
#define DISABLE_WAKEUP_S88 "0"
Datentypen
Datentypen für Konfigurationsvariable
typedef enum { CfgPortVal, CfgBcVal, CfgForkVal, CfgTraceVal,
CfgVerboseVal, CfgUsageVal, CfgZentraleVal,
CfgProtokollVal, CfgSyncVal, CfgConnTcpVal,
CfgEmuHostCom, CfgNumLokfkts } CfgIntValues;
typedef enum { CfgIfaceVal, CfgAddrVal, CfgCanIfVal, CfgPathVal,
CfgUdpBcVal, CfgStartVal, CfgWakeUpS88, CfgGpioS88,
CfgHideMs2Val, CfgSerialLineVal } CfgStrValues;
Datentypen für Funktionen der Konfigurationslib
typedef struct {
Map *Config;
IniParsStruct *Parser;
} ConfigStruct;
Makros
Makros, um Felder im Kommando zu setzen und lesen
#define ConfigSetConfig(Data, Val) (Data)->Config=Val
#define ConfigSetParser(Data, Val) (Data)->Parser=Val
#define ConfigGetConfig(Data) (Data)->Config
#define ConfigGetParser(Data) (Data)->Parser
Funktionen
Funktion | Beschreibung |
---|
ConfigCreate() | Die ConfigCreate Funktion wird
als erste Funktion aufgerufen, um die Struktur anzulegen. |
ConfigDestroy() | Die ConfigDestroy Funktion wird als
letzte Funktion aufgerufen und gibt die Struktur wieder frei. |
ConfigInit() | Die ConfigInit Funktion initialisiert
die Variablen.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig Objekt |
IniFile | Pfad zu der Konfigurationsdatei |
|
ConfigExit() | Die ConfigExit Funktion ist das
Gegenstück zur ConfigInit() Funktion.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig Objekt |
|
ConfigReadFile() | Die ConfigRedaFile Funktion liest
die Konfigurationsdatei ein. Der Pfad wurde mit der ConfigInit
Funktion gesetzt.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig Objekt |
|
ConfigCmdLine() | Die ConfigCmdLine Funktion wertet
die Kommandozeile aus und speichert die Konfigurationswerte.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig Objekt |
optstr | Die erlaubten Parameter, wie sie auch die Funktion
optarg() akzeptiert. Ein Superset der Parameter für alle
Parameter, die sätliche Daemons des mrsystem akzeptieren, sind:
Parameter | Bedeutung |
-2 | sync: bitmask for sync with ms2 |
-8 | wakeup_s88: start s88 modules |
-b | broadcast: send udpa as broadcast |
-c | can_interface: name of can interface |
-e | emu_host_com: port for virtual com driver on host |
-f | dont fork to go in background |
-g | gleissignal: system start, start power on track |
-h | hide_ms2: hide ms2 |
-i | address: network adress of drehscheibe |
-k | number of lokfKts |
-l | cs2_path: path where write lokomotive.cs2 |
-m | serial_line: name of seriela interface |
-p | port: port of drehscheibe |
-s | protokoll: bitmask for track protocolls |
-t | trace can messages from udp |
-v | verbose |
-z | zentrale: 0=proxy mode, 1=ehtenret adddon for ms2 |
-x | conn_tcp: use tcp connection |
-? | Hilfe üer die Kommandozeilenparameter |
|
argc | Anzahl der Parameter an main() |
argv | Parameter an main() |
|
int ConfigGetIntVal() | Diese Funktion fragt einen
Konfigurationswert für eine Zahl ab. Der mögliche Wertebereich ist
durch den enum CfgIntValues vorgegeben. Eine Beschreibung der
Konfigurationswerte ist auch Bestandteil der Beschreibung der
Konfig.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig ObjektValue.
| ValueTyp | Der Wert gibt an, welcher Konfigurationswert abgefragt
werden soll. Der mögliche Wertebereich ist durch den enum
CfgIntValues vorgegeben. Eine Beschreibung der Konfigurationswerte
ist auch Bestandteil der Beschreibung der
Konfig.
Parameter | Bedeutung |
CfgPortVal | port to drehscheibe |
CfgBcVal | send udp as broadcast |
CfgForkVal | dont fork to go in background |
CfgTraceVal | trace can messages from udp |
CfgVerboseVal | verbose |
CfgUsageVal | Hilfe üer die Kommandozeilenparameter |
CfgZentraleVal | 0:proxy mode, 1=ehternet addon for ms2 |
CfgProtokollVal | bitmask for track protocolls< |
CfgSyncVal | bitmask for sync with ms2 |
CfgConnTcpVal | Benutze tcp conection |
CfgEmuHostCom | Port für virtual com driver |
CfgNumLokfkts | Anzahl Lokfunktionen in lokomotive.cs2 |
|
Returnwert: | Der abgefragte Konfigurationswert |
|
char *ConfigGetStrVal() | Diese Funktion fragt einen
Konfigurationswert für eine Zeichenkette ab. Eine Beschreibung der
Konfigurationswerte ist auch Bestandteil der Beschreibung der
Konfig.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig ObjektValue.
| Value | Der Wert gibt an, welcher Konfigurationswert abgefragt
werden soll. Der mögliche Wertebereich ist durch den enum
CfgStrValues vorgegeben. Eine Beschreibung der Konfigurationswerte
ist auch Bestandteil der Beschreibung der
Konfig.
Parameter | Bedeutung |
CfgIfaceVal | interface to drehscheibe |
CfgAddrVal | network adress of drehscheibe |
CfgCanIfVal | name of can interface |
CfgPathVal | path where write lokomotive.cs2 |
CfgUdpBcVal | send udp as broadcast |
CfgStartVal | system start, start power on track |
CfgWakeUpS88 | start s88 modules |
CfgGpioS88 | parameter for client_gpios88 |
CfgHideMs2Val | hide ms2 |
CfgSerialLineVal | name of serial interface |
|
Returnwert: | Zeiger auf den abgefragte
Konfigurationswert |
|
ConfigAddIntVal() | Diese Funktion setzt einen
Konfigurationswert für eine Zahl.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig ObjektValue.
| ValueTyp | Der Wert gibt an, welcher Konfigurationswert gesetzt
werden soll. Der mögliche Wertebereich ist durch den enum
CfgIntValues vorgegeben. Eine Beschreibung der
Konfigurationswerte ist auch Bestandteil der Beschreibung der
Konfig.
Parameter | Bedeutung |
CfgPortVal | port to drehscheibe |
CfgBcVal | send udp as broadcast |
CfgForkVal | dont fork to go in background |
CfgTraceVal | trace can messages from udp |
CfgVerboseVal | verbose |
CfgUsageVal | Hilfe üer die Kommandozeilenparameter |
CfgZentraleVal | 0:proxy mode, 1=ehternet addon for ms2 |
CfgProtokollVal | bitmask for track protocolls< |
CfgSyncVal | bitmask for sync with ms2 |
CfgConnTcpVal | use tcp conection |
CfgEmuHostCom | port for virtual com driver on host |
|
CfgIntValues vorgegeben
Value | zu setzender Wert |
|
ConfigAddStrVal() | Diese Funktion setzt einen
Konfigurationswert für eine Zeichenkette.
Parameter | Bedeutung |
Data | Zeiger auf das Konfig ObjektValue.
| ValueTyp | Der Wert gibt an, welcher Konfigurationswert gesetzt
werden soll. Der mögliche Wertebereich ist durch den enum
CfgStrValues vorgegeben. Eine Beschreibung der
Konfigurationswerte ist auch Bestandteil der Beschreibung der
Konfig.
Parameter | Bedeutung |
CfgIfaceVal | interface to drehscheibe |
CfgAddrVal | network adress of drehscheibe |
CfgCanIfVal | name of can interface |
CfgPathVal | path where write lokomotive.cs2 |
CfgUdpBcVal | send udp as broadcast |
CfgStartVal | system start, start power on track |
CfgWakeUpS88 | start s88 modules |
CfgGpioS88 | parameter for client_gpios88 |
CfgHideMs2Val | hide ms2 |
CfgSerialLineVal | name of serial interface |
|
Value | zu setzender Wert |
|
Zurück zur Modellbahn Startseite -
Zurück zur Homepage