====== Statusfiles für Email-Meldungen ====== Für externe Auswertungsprogramme der Terminal- und Beta-Zustände können von Comm optional Statusfiles geschrieben werden. Filenamen und Verzeichnisse Terminalstatus: $BS_DIR/daba.d/trmstat.dat Betastatus....: $BS_DIR/daba.d/betastat.dat Pfade und Filenamen sind fest vorgegeben. Die Files haben Inifile-Charakter und können mit der Funktion OpenIniFile gelesen werden. ________________________________________ **Filehandling** Am Beispiel der trmstat.dat vom Prozess tmgr, die Datei betastat.dat vom Prozess iomgr zeigt das gleiche Verhalten. • Löschen der alten Datei trmstat.old, sofern sie existiert • Umbenennen der aktuellen trmstat.dat nach trmstat.old • Aufbau der neuen Statusdatei als trmstat.new • Umbenennen trmstat.new nach trmstat.dat Tritt in obiger Abfolge ein Filefehler auf (z.B. trmstat.dat kann nicht nach trmstat.old umbenannt werden), bricht die Verarbeitung mit einer Fehlermeldung im Protokollfile (DebugLevel=0) ab und versucht im nächsten Zyklus die Datei zu schreiben. ________________________________________ **trmstat.dat** Das Statusfile wird vom tmgr ab Build 4.32 (06.11.2003) geschrieben Beispiel: [global] date=20050530174127 [terminal_1] Term=0001/01/01 Beta=2 BetaID=3 Remote=0 State=0 [terminal_2] Term=0002/02/02 Beta=1 BetaID=1 Remote=0 State=12 **global** Die Sektion enthält nur eine Variable date die den letzten Schreibvorgang im SAP-Format festhält. terminal_x Sektionen der angeschlossenen Terminals. Die Nummer entspricht der laufenden Nummer aus terminal.ini. Term Enthält die laufende Terminalnumme, Group-ID und Device-ID (0001/01/01). Beta Interne (tmgr) Nummer des Beta-Knotens, an dem das Terminal hängt. Numerierung ohne Lücken. BetaID Nummer der Beta-Sektion aus terminal.ini, [BETAx]. Nummerierung kann Lücken haben! Zugrunde liegt diese Einstellung: [BETA1] BetaIPAdr=192.168.0.206 Terminals=2,2-2 ... [BETA3] BetaIPAdr=192.168.0.205 Terminals=1,0-2 ... **Remote** Flag aus terminal.ini, ob das Terminal Remote gesetzt ist. **State** Status des Terminals. Der Wert ist dezimal, stellt aber ein Bitfeld dar: 54 3210 11 1111 '|| ||++-- Memory-Status (00=empty, 01=not empty, 11=full, 10=undefined!)' '|| ++---- Online-Status (00=online, 01=offline, 11=autonom, 10=undefined!)' '|+------- Batterie schwach bei 1 (=16)' '+-------- Speicherfehler bei 1 (=32)' **Standardzustände:** 0=online, 12=autonom (z.B. nach Softwarestop) Aktivierung des Statusfiles und Besonderheiten Das Statusfile trmstat.dat wird mit folgender Einstellung in terminal.ini aktiviert: **[tmgr]** ... TrmCheckCycle=80s Es sind die Suffixe 's' (Sekunden), 'm' (Minuten) und 'h' (Stunden) erlaubt. **Eckwerte:** 0 oder Variable nicht definiert Funktion abgeschaltet 1 Minimum 86400s=1440m=24h Maximum Im tmgr wird der Wert in Sekunden in der Variablen g_TrmCheckCycle gehalten. Als Timervariable dient g_StateTimer, als Zeitvergleich die Funktion timesUp, die auch Systemzeitverstellungen rückwärts berücksichtigt. Der Terminalstatus in trmstat.dat kann natürlich nur bei online erreichbaren Terminals korrekt geschrieben werden. Tmgr versendet zu diesem Zweck an alle Terminals, die nicht remote eingetragen sind, T4-Sätze und schreibt bei Eintreffen der Statussätze vom Terminal das termstat.dat-File. **__Ein Erkennen von gestörten Terminals ist so nicht möglich!__** ________________________________________ **betastat.dat** Das Statusfile wird vom Betatreiber des Prozesses iomgr ab Build 4.32 (06.11.2003) geschrieben. Beispiel: **[global]** date=20050602155010 [beta_1] ID=3 IP=192.168.0.205 State=3 LastAct=1234567890 20090214003130 Terminals=1,0-2,0,1,0, [beta_2] ID=1 IP=192.168.0.206 State=0 LastAct=1234567891 20090214003131 Terminals=2,2-2,0, **global** Die Sektion enthält nur eine Variable date die den letzten Schreibvorgang im SAP-Format festhält. beta_x Sektionen der Beta-Knoten. Die Nummer entspricht dem Index im Prozess iomgr und hat keine Lücken. **ID** ID entspricht der Numerierung der Beta-Sektionen in terminal.ini. Die ID kann Lücken enthalten. **IP** IP-Adresse des BETA-Knotens. **State** Zustand des Beta-Knotens im Treiber. 0 jammed/disconnected 1 Configrequest erhalten 2 Beta hat auf Configrecord geantwortet 3 Connected 4 Datensatz an Beta verschickt Diese Zustände existieren nur kurzfristig. Die Wahrscheinlichkeit, daß sie im Statusfile auftauchen, ist sehr gering! LastAct (ab Buildlevel 4.43.20) Zeitpunkt des letzten Datenblocks vom Beta. Der erste Wert stellt technisch die Systemzeit als Ganzzahl dar (C-Funktion "time()"). Der zweite Wert ist diese Systemzeit in Textdarstellung im technischen Format YYYYMMDDhhmmss **Terminals** Dieser Eintrag führt alle fürs Beta definierten und die aktiv verbundenen Terminals auf. **Beispiele:** 2,2-2,0, '| ||| +-- Status des Terminals, 0=not connected, sonst=connected' '| +++---- DIDvon - DIDbis' '+-------- GID' 1,0-2,0,1,0, '| ||| +-+-+-- Status der Terminals, hier DID=0 und 2 sind nicht connected' '| +++-------- DIDvon - DIDbis' '+------------ GID' **Anmerkungen:** die connectierten Terminals werden durch den Index der Sektion beta_x (=Index in der Beta-Liste im Prozess iomgr (=globales Array BCTabl in beta155.c)) gekennzeichnet. Gestörte oder sonst nicht vorhandene Terminals haben den Status '0'. ________________________________________ **Aktivierung des Statusfiles und Besonderheiten** Das Statusfile wird fest, alle 20s geschrieben. Dies läßt sich nicht ändern oder abschalten.