SpDrS60 Stellwerkssimulation Stellwerkssimulation zu Verwendung in bliebigen Schienensystemen
Öffentliche Methoden | Aufstellung aller Elemente
Graph Klassenreferenz

#include <Graph.h>

Öffentliche Methoden

 Graph (int anzahlKnoten, Gleissymbol knoten[], int nachbarn[][3])
 
void prepare ()
 
void updateSymbole ()
 
boolean equals (Gleissymbol *symbol1, Gleissymbol *symbol2)
 
int nextWay (Gleissymbol *symbol, int fahrstrassenNr_vorgaenger=0, boolean vorgaengerAktiv=false)
 
int nextWay (int knotenNr, int fahrstrassenNr_vorgeaenger=0, boolean vorgaengerAktiv=false)
 
int wegSuchen (Gleissymbol *start, Gleissymbol *ziel, Gleissymbol *vorgaenger=nullptr)
 
int * sucheFlankenschutzweiche (int vorgaenger, int weiche, int nachfolger)
 
boolean fahrstrasseEinstellen (Zugtaste *taste1, Zugtaste *taste2)
 
boolean fahrstrasseEinstellen (Gleissymbol *start, Gleissymbol *ziel)
 
void symbolZuFahrstrasse (Gleissymbol *symbol)
 
void symbolZuFahrstrasse (int knotenNr)
 
void resetMarkierungen (int fahrstrassenNr=0)
 
boolean isReset ()
 
GleissymbolgetKnoten (int knotenNr)
 
GleissymbolgetNachbar (int knotenNr, int nachbar=0)
 
int getKnotenNr (Gleissymbol *symbol)
 
boolean isKnotenNr (int knotenNr)
 
boolean richtungGerade (Gleissymbol *vorgaenger, Gleissymbol *weichensymbol, Gleissymbol *nachfolger)
 
boolean richtungGerade (int vorgaenger, int weichensymbolNr, int nachfolger)
 
boolean weichenAusgang (int vorgaenger, int aktuellerKnoten)
 

Ausführliche Beschreibung

Die Klasse Graph speichert alle Gleissymbole in einem Graphen.

Definiert in Zeile 21 der Datei Graph.h.

Beschreibung der Konstruktoren und Destruktoren

◆ Graph()

Graph::Graph ( int  anzahlKnoten,
Gleissymbol  knoten[],
int  nachbarn[][3] 
)

Erstellt einen Graphen

Parameter
[in]anzahlKnotenDie Anzahl der Knoten wird angegeben.
[in]knotenArray mit allen Knoten des Graphen. Die Verbindungen, die über Kurvenstellung erreicht werden, müssen am Ende stehen!!
[in]nachbarnDie Verknüpfunge werden mit diesem Array übergeben. nachbarn[knotennr][maxTiefe(beim Gleisbild 3)], alle nicht belegten Plätze müssen mit z.B. -1 belegt sein (außerhalb des Wertebereichs)

Definiert in Zeile 8 der Datei Graph.cpp.

Dokumentation der Elementfunktionen

◆ equals()

boolean Graph::equals ( Gleissymbol symbol1,
Gleissymbol symbol2 
)

>Alle Symbole im Graphen werden aktualisiert, die Besetztmelder, Weichen, Signale. Funktionen wie Hp= manuell Gibt zurück, ob Zwei zeiger auf ein Gleissymbol auf das selbe zeigen.

Definiert in Zeile 53 der Datei Graph.cpp.

◆ fahrstrasseEinstellen() [1/2]

boolean Graph::fahrstrasseEinstellen ( Gleissymbol start,
Gleissymbol ziel 
)

Der Weg zwischen den beiden Gleissymbolen wird gesucht, Die Reihenfolge ist dabei festgelegt und wird nicht überprüft.

Definiert in Zeile 249 der Datei Graph.cpp.

◆ fahrstrasseEinstellen() [2/2]

boolean Graph::fahrstrasseEinstellen ( Zugtaste taste1,
Zugtaste taste2 
)

Stellt die Fahrstraße von der ersten zur zweiten Zugtaste ein. Die Reihenfolge der Zugtasten wird hierbei selbstständig bestimmt.

Definiert in Zeile 206 der Datei Graph.cpp.

◆ getKnoten()

Gleissymbol * Graph::getKnoten ( int  knotenNr)

Gibt den Knoten unter der KnotenNr zurück

Definiert in Zeile 332 der Datei Graph.cpp.

◆ getKnotenNr()

int Graph::getKnotenNr ( Gleissymbol symbol)

Git die Knotennr zum übergebenen Objekt zurück. Wenn nicht im Graph zu finden return -1

Definiert in Zeile 354 der Datei Graph.cpp.

◆ getNachbar()

Gleissymbol * Graph::getNachbar ( int  knotenNr,
int  nachbar = 0 
)

Gibt den Nachbarn(nachbar) des Knoten (KnoteNr) zurück

Definiert in Zeile 343 der Datei Graph.cpp.

◆ isKnotenNr()

boolean Graph::isKnotenNr ( int  knotenNr)

validiert, ob die übergebene Knoten Nummer existiert

Definiert in Zeile 367 der Datei Graph.cpp.

◆ isReset()

boolean Graph::isReset ( )

Methode zur Überprüfung des Resets derMarkierungen

Definiert in Zeile 322 der Datei Graph.cpp.

◆ nextWay() [1/2]

int Graph::nextWay ( Gleissymbol symbol,
int  fahrstrassenNr_vorgaenger = 0,
boolean  vorgaengerAktiv = false 
)

Die Methode gibt die Nr des nächsten nicht markierten Nachbarn der angegebenen Knotennummer zurück, wenn angegeben, den Knoten, der mit der FahrstrassenNr versehen ist. WEnn vorgaenger Aktiv, wird statt nach einer Fahrstraße, der Vorgänger des aktuellen Knotens übergeben, so kann ein logisch Sinnvoller WEg zum Beispiel bei WEichen bestimmt werden.

Definiert in Zeile 61 der Datei Graph.cpp.

◆ nextWay() [2/2]

int Graph::nextWay ( int  knotenNr,
int  fahrstrassenNr_vorgeaenger = 0,
boolean  vorgaengerAktiv = false 
)

Die Methode gibt die Nr des nächsten nicht markierten Nachbarn der angegebenen Knotennummer zurück, wenn angegeben, den Knoten, der mit der FahrstrassenNr versehen ist. WEnn vorgaenger Aktiv, wird statt nach einer Fahrstraße, der Vorgänger des aktuellen Knotens übergeben, so kann ein logisch Sinnvoller WEg zum Beispiel bei WEichen bestimmt werden.

Definiert in Zeile 130 der Datei Graph.cpp.

◆ prepare()

void Graph::prepare ( )

Die Weichenrelais werden auf HIGH gestellt und die Weichenposition wird aus dem EEPROM abgerufen und ausgeführt. Die Methode wird am Anfang benötigt, so wird sicher gestellt, das alle Weichen in der vom Stellpult ange-nommenen Lage sind

Definiert in Zeile 20 der Datei Graph.cpp.

◆ resetMarkierungen()

void Graph::resetMarkierungen ( int  fahrstrassenNr = 0)

Setzt alle Markierungen zurück auf False

Definiert in Zeile 312 der Datei Graph.cpp.

◆ richtungGerade() [1/2]

boolean Graph::richtungGerade ( Gleissymbol vorgaenger,
Gleissymbol weichensymbol,
Gleissymbol nachfolger 
)

Gibt zurück, ob die Richtung zwischen zwei Nachbarn bei gerade oder bei einer Weiche als Kurve verläuft.

Definiert in Zeile 375 der Datei Graph.cpp.

◆ richtungGerade() [2/2]

boolean Graph::richtungGerade ( int  vorgaenger,
int  weichensymbolNr,
int  nachfolger 
)

Gibt zurück, ob die Richtung zwischen zwei Nachbarn bei gerade oder bei einer Weiche als Kurve verläuft.

Definiert in Zeile 385 der Datei Graph.cpp.

◆ sucheFlankenschutzweiche()

int * Graph::sucheFlankenschutzweiche ( int  vorgaenger,
int  weiche,
int  nachfolger 
)

Definiert in Zeile 69 der Datei Graph.cpp.

◆ symbolZuFahrstrasse() [1/2]

void Graph::symbolZuFahrstrasse ( Gleissymbol symbol)

setzt die Fahrstraße beginnend mit dem Symbol um

Definiert in Zeile 264 der Datei Graph.cpp.

◆ symbolZuFahrstrasse() [2/2]

void Graph::symbolZuFahrstrasse ( int  knotenNr)

setzt die Fahrstraße beginnend mit dem Symbol um

Definiert in Zeile 269 der Datei Graph.cpp.

◆ updateSymbole()

void Graph::updateSymbole ( )

Definiert in Zeile 28 der Datei Graph.cpp.

◆ wegSuchen()

int Graph::wegSuchen ( Gleissymbol start,
Gleissymbol ziel,
Gleissymbol vorgaenger = nullptr 
)

Die Methode gibt die länge eines Weges zurück, ob es einen weg gibt und markiert Ihn, wenn möglich, zuvor müssen die Markierungen resetet (resetMarkierungen) werden. Der Vorgaenger wird nur für die korrekte Weichenposition bei Gleissymbolen mit WEichenbnötigt.

Definiert in Zeile 166 der Datei Graph.cpp.

◆ weichenAusgang()

boolean Graph::weichenAusgang ( int  vorgaenger,
int  aktuellerKnoten 
)

Kommt die Fahrstraße über einen Weichenausgang auf die Weiche false, über den Eingang, also den Teil über den man zwei Abzweige weiter fahren kann, dann true

Definiert in Zeile 395 der Datei Graph.cpp.