qrailway 0.9

Kapitel 4.c. Lokbefehle

Jeder durch qrailway gesteuerte Zug hat einen Befehlssatz (commandset), der kontrolliert, wie sich der Zug bewegt. Innerhalb eines Befehlssatzes sind die Befehle (ordercmd) durchnummeriert. Die Nummern (orderid) müssen dabei nicht direkt aufeinanderfolgen. Alle gespeicherten Befehlssätze sind in der Datenbank, Tabelle schedule, abgelegt.

Die Befehlssätze können einerseits dynamisch durch Anklicken von Lok (Doppelklick auf die Lok), die zu überfahrenden Reedkontakte (nicht jeder Reedkontakt auf dem Weg muss angeklickt werden) und das Ziel (Doppelklick auf den letzten Reedkontakt) erstellt werden. Bei dieser Art der Festlegung fährt der Zug in normaler Fahrtrichtung (vorwärts, i.d.R. ist die Lok also vorne).

(Video, klicken vor Nbf, durch Nbf, bis hinter Nbf (gegen Uhrzeigersinn) mit einem Zug der im Nbf umfahren wird, dann Blick auf Anlage)

Durch die Vorgabe von zwei mittleren, nacheinander zu überfahrenden Reedkontakten ist die Richtung, in der die Wendeschleife durchfahren werden muss, für das Programm klar. Wäre nur ein Reedkontakt in der Mitte angeklickt worden, so wäre nicht spezifiziert gewesen, in welche Richtung die Wendeschleife durchfahren wird.

Andererseits können die Befehle fest programmiert werden. Diese Vorgehensweise ist für den automatischen Fahrbetrieb notwendig. Die fest programmierten Befehlssätze werden in der Datenbank gespeichert. Die Befehlseingabe erfolgt über das Fenster cFensterLokSteuerung.

Befehle

Dieser Abschnitt stellt die zur Verfügung stehenden Befehle dar.

START

Syntax: START [Reedkontakt],[Richtung]

Startet eine automatische Fahrt in Reglerrichtung [Richtung] beginnend bei Reedkontakt [Reedkontakt]. Falls der Reedkontakt variabel ist (weil z.B. der Start auf einem zuvor nicht bekannten Gleis eines Bahnhofs beginnt), kann statt einer Reedkontaktnummer auch "$pos" übergeben werden. "$pos" wird dann beim Parsen durch den aktuellen Reedkontakt des Zugs ersetzt. Innerhalb des Befehlssatzes wird die einmal begonnene Fahrtrichtung nicht geändert.

FAHRE

Syntax: FAHRE [Reedkontakt 1],... ,[Reedkontakt n]

Fährt die angegebenen Reedkontakte in der angegebenen Reihenfolge ab. Die Fahrt wird nur durchgeführt, wenn alle angegebenen Reedkontakte befahren werden können.

WEICHE

Syntax: WEICHE [Weiche 1], [Richtung 1],... ,[Weiche n], [Richtung n]

Schaltet die Weichen (Konnektornr.) in die angegebene Richtung ("L" bzw. "R").

WWEICHE

Syntax: WWEICHE [Weiche 1], [Richtung 1],... ,[Weiche n], [Richtung n]

Schaltet die angegebenen Weiche. Übergeht einige Prüfregeln.

FINDE

Syntax: FINDE [aktueller Reedkontakt], [Reedkontakt 1] ,... ,[Reedkontakt n]

Sucht eine Strecke, in der die angegebenen Reedkontakte abgefahren werden. Für jeden Reedkontakt wird beim Parsen ein neuer HSTELLE Befehl generiert, für die Strecke dazwischen werden neue FAHRE und WEICHE Befehle generiert. Deshalb ist es wichtig, dass die darauf folgende orderid mit einem hinreichenden Abstand gewählt wird.

HSTELLE

Syntax: HSTELLE [Reedkontakt]

Beim Bearbeiten eines Befehls stellen die mit HSTELLE gekennzeichneten Reedkontakte Punkte dar, bei denen die Befehlsbearbeitung unterbrochen werden kann. D.h., falls die Strecke nach einem als HSTELLE gekennzeichneten Reedkontakt belegt ist, wird der Befehlssatz bis zur angegebenen HSTELLE ausgeführt. Dann wird gewartet, bis die Strecke bis zur nächsten HSTELLE frei ist, und dann mit der Befehlsabarbeitung fortgefahren.

BAHNHOF

Syntax: BAHNHOF [Bahnhof], [Reedkontakt], [Signal]

Sendet das Signal [Signal] an den angegebenen Bahnhof [Bahnhof]. Als aktuelle Position des Zugs wird dem Bahnhof der Konnektor [Reedkontakt] mitgeteilt. Falls der Reedkontakt variabel ist (weil z.B. mehrere Zufahrten zum Bahnhof existieren), kann statt einer Reedkontaktnummer auch "$pos" übergeben werden. "$pos" wird dann beim Parsen durch den aktuellen Reedkontakt des Zugs ersetzt. Mit dem Befehl BAHNHOF wird der Bahnhof dem Befehlssatz des Zugs neue Befehle hinzufügen (Fahrt in ein leeres Gleis), so dass nach dem Befehl BAHNHOF keine weiteren Befehle im Befehlssatz stehen dürfen.

Das Signal [Signal] kann gegenwärtig einen der folgenden Werte annehmen:

ENDE

Syntax: ENDE [Reedkontakt]

Beendet die automatische Fahrt am angegebenen Reedkontakt. Nach dem Befehl werden keine weiteren Befehle im Befehlssatz abgearbeitet.

LADE

Syntax: LADE [Befehlssatz]

Lädt den angegebenen Befehlssatz und fügt die Befehle dem aktuellen Befehlssatz hinzu, so dass nach dem Befehl keine weiteren Befehle im Befehlssatz stehen dürfen.