qrailway 0.9
Öffentliche Slots | Signale | Öffentliche Methoden | Private Attribute

cSignalRule Klassenreferenz

Eine Signalregel zur Definition des Zustand eines Signals. Mehrere Signalregeln werden von cSignal mit logischem und verknüpft. Mehr ...

#include <cSignalRule.h>

Aufstellung aller Elemente

Öffentliche Slots

void SlotDaten (int wert1tmp, int wert2tmp)
 Verarbeitet ein eintreffendes Datenpaket.

Signale

void SignalSignalRegel (int, bool)
 Signal zur weiteren Verarbeitung innerhalb von cSignal und cSignalRule.

Öffentliche Methoden

void cDebug (int prioritaet, const QString &meldung)
 Gibt die Meldung "meldung" in eine der Klasse zugeordnete Logdatei aus. Dabei werden Meldungen mit der Prioritaet prioritaet 0 auch auf dem Bildschirm als Warnung ausgegeben. Meldungen mit Prioritaet >=2 (bzw. >=1) werden in aller Regel nicht in die Log-Datei ausgegeben, lassen sich aber durch Modifikation der Funktion cDebug zur Ausgabe hinzufuegen. Legt Debug-Informationen in der Datei log.cSignal ab.
 cSignalRule (int keyidtmp, int ruleidtmp, int sigidtmp, int mini1tmp, int maxi1tmp, bool nicht1tmp, int mini2tmp, int maxi2tmp, bool nicht2tmp, bool nichttmp)
 Initialisiert die Regel, uebernimmt alle Parameter in interne Variablen.
bool getStatus (void)
 Liefert das Ergebnis der Regel zurueck.
void emitSignal (void)
 Emittiert ein Signal an cSignal.

Private Attribute

int keyid
 Regel-ID innerhalb der Datenbank.
int ruleid
 Regel-ID fuer die Uebermittlung von SignalSignalRegel(int,int)
int sigid
 Signal-ID, zu der diese Regel gehört.
bool status1
 Konstanten fuer die Auswertung der Regel.
bool status2
bool nicht1
bool nicht2
bool nicht
int mini1
int maxi1
int mini2
int maxi2
int wert1
int wert2

Ausführliche Beschreibung

Eine Signalregel zur Definition des Zustand eines Signals. Mehrere Signalregeln werden von cSignal mit logischem und verknüpft.

Bezeichnen a1 und a2 die beiden Ganzzahlen, so erfolgt eine Verarbeitung der Signalregel nur dann, wenn

\[ \left((\mbox{mini1}\leq \mbox{a1}\leq \mbox{maxi1}) \land \neg \mbox{nicht1}\right) \lor \left(\neg(\mbox{mini1}\leq \mbox{a1}\leq \mbox{maxi1}) \land \mbox{nicht1}\right)\lor (\mbox{maxi1}<0). \]

In diesem Fall wird der zweite Teil der Regel geprüft:

\[ \mbox{sig2} = \left((\mbox{mini2}\leq \mbox{a2}\leq \mbox{maxi2}) \land \neg \mbox{nicht2}\right) \lor \left(\neg(\mbox{mini2}\leq \mbox{a2}\leq \mbox{maxi2}) \land \mbox{nicht2}\right)\lor (\mbox{maxi2}<0). \]

\[ \mbox{sig} = \left(\mbox{sig2} \land \neg \mbox{nicht}\right) \lor \left(\neg(\mbox{sig2}) \land \mbox{nicht}\right) \]

Die doppelte Möglichkeit einer Negation von sig2 ueber nicht2 und nicht ist historisch bedingt. Fuer das Projekt ist deshalb nicht stets 0 (FALSCH). Auch die Negation der Verarbeitungsbedingung ueber nicht1 war fuer das Projekt nicht noetig. Bei Signalaenderungen wird das Signal SignalSignalRegel(int,int) emittiert.

Definiert in Zeile 30 der Datei cSignalRule.h.


Beschreibung der Konstruktoren und Destruktoren

cSignalRule::cSignalRule ( int  keyidtmp,
int  ruleidtmp,
int  sigidtmp,
int  mini1tmp,
int  maxi1tmp,
bool  nicht1tmp,
int  mini2tmp,
int  maxi2tmp,
bool  nicht2tmp,
bool  nichttmp 
)

Initialisiert die Regel, uebernimmt alle Parameter in interne Variablen.


Dokumentation der Elementfunktionen

void cSignalRule::cDebug ( int  prioritaet,
const QString &  meldung 
)

Gibt die Meldung "meldung" in eine der Klasse zugeordnete Logdatei aus. Dabei werden Meldungen mit der Prioritaet prioritaet 0 auch auf dem Bildschirm als Warnung ausgegeben. Meldungen mit Prioritaet >=2 (bzw. >=1) werden in aller Regel nicht in die Log-Datei ausgegeben, lassen sich aber durch Modifikation der Funktion cDebug zur Ausgabe hinzufuegen. Legt Debug-Informationen in der Datei log.cSignal ab.

void cSignalRule::emitSignal ( void  )

Emittiert ein Signal an cSignal.

bool cSignalRule::getStatus ( void  )

Liefert das Ergebnis der Regel zurueck.

void cSignalRule::SignalSignalRegel ( int  ,
bool   
) [signal]

Signal zur weiteren Verarbeitung innerhalb von cSignal und cSignalRule.

void cSignalRule::SlotDaten ( int  wert1tmp,
int  wert2tmp 
) [slot]

Verarbeitet ein eintreffendes Datenpaket.


Dokumentation der Datenelemente

int cSignalRule::keyid [private]

Regel-ID innerhalb der Datenbank.

Definiert in Zeile 48 der Datei cSignalRule.h.

int cSignalRule::maxi1 [private]

Definiert in Zeile 55 der Datei cSignalRule.h.

int cSignalRule::maxi2 [private]

Definiert in Zeile 55 der Datei cSignalRule.h.

int cSignalRule::mini1 [private]

Definiert in Zeile 55 der Datei cSignalRule.h.

int cSignalRule::mini2 [private]

Definiert in Zeile 55 der Datei cSignalRule.h.

bool cSignalRule::nicht [private]

Definiert in Zeile 54 der Datei cSignalRule.h.

bool cSignalRule::nicht1 [private]

Definiert in Zeile 54 der Datei cSignalRule.h.

bool cSignalRule::nicht2 [private]

Definiert in Zeile 54 der Datei cSignalRule.h.

int cSignalRule::ruleid [private]

Regel-ID fuer die Uebermittlung von SignalSignalRegel(int,int)

Definiert in Zeile 50 der Datei cSignalRule.h.

int cSignalRule::sigid [private]

Signal-ID, zu der diese Regel gehört.

Definiert in Zeile 52 der Datei cSignalRule.h.

bool cSignalRule::status1 [private]

Konstanten fuer die Auswertung der Regel.

Definiert in Zeile 54 der Datei cSignalRule.h.

bool cSignalRule::status2 [private]

Definiert in Zeile 54 der Datei cSignalRule.h.

int cSignalRule::wert1 [private]

Definiert in Zeile 55 der Datei cSignalRule.h.

int cSignalRule::wert2 [private]

Definiert in Zeile 55 der Datei cSignalRule.h.


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