Handbuch

STS Handbuch

Stellwerksim Handbuch

Webseiten-Werkzeuge


stellwerksim:erbauer:zugbau:namensmuster

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
stellwerksim:erbauer:zugbau:namensmuster [2019/01/19 17:38] – Syntaxanpassung <code> DevonFroschstellwerksim:erbauer:zugbau:namensmuster [2022/06/04 23:55] (aktuell) – Rechtschreibung Lenkradfreek
Zeile 2: Zeile 2:
 ====== Namensmuster ====== ====== Namensmuster ======
  
-Mit dem Namensmuster wird jedem erzeugten Zug ein Name zugewiesen. Die Zugnamen müssen Systemweit einmalig sein. Diese werden vorzugsweise aus variablen Blöcken berechneten Zugnummern erzeugt (alle Rechenoperationen, ausser der Divisionstehen dafür zur Verfügung). +Mit dem Namensmuster wird jedem erzeugten Zug ein Name zugewiesen. Zugnamen müssen Systemweit einmalig sein. Diese werden vorzugsweise aus aus variablen Blöcken berechneten Zugnummern erzeugt (alle Rechenoperationen außer der Division stehen dafür zur Verfügung). 
  
 Die Zugnamen bzw. die Namensmuster zu deren Berechnung können entweder im Feld Namensmuster oder dem [[stellwerksim:erbauer:zugbau:zugscript|Zugscript]] angegeben werden. Die Zugnamen bzw. die Namensmuster zu deren Berechnung können entweder im Feld Namensmuster oder dem [[stellwerksim:erbauer:zugbau:zugscript|Zugscript]] angegeben werden.
 +
 +<note warning>Der Name des Zuges darf bei Multiplakationsbefehlen im Zusammenhang mit Zahlen nicht direkt an Buchstaben geschrieben werden.
 +TFN65380+$ti*2 ist also falsch geschrieben und muss korrekterweise TFN 65380+$ti*2 lauten, um keine Probleme im ZSL zu verursachen.</note>
  
 Mit folgenden Variablen kann gerechnet werden: Mit folgenden Variablen kann gerechnet werden:
  
 ^ Variable ^ Bedeutung ^ ^ Variable ^ Bedeutung ^
-^  $i  | Laufende Nummer über alle Züge des aktuellen Scriptlaufs (von 0 an gezählt) | +^  $zi  | Laufende Nummer über alle erzeugten Züge des Zugtemplates (von 0 an gezählt) (Verwendung im Namensmusterfeld) | 
-^  $zi  | Laufende Nummer über alle Züge des Zugtemplates (von 0 an gezählt) (Verwendung im Namensmusterfeld) | +^  $ti  | Laufende Nummer über alle erzeugten Züge des aktuellen takt()-Befehls (von 0 an gezählt) (Verwendung nur im Taktbefehl) | 
-^  $ti  | Laufende Nummer über alle Züge des aktuellen takt()-Befehls (von 0 an gezählt) (Verwendung nur im Taktbefehl) | +^  $zid  | Die vom System vergebene eindeutige ID des Zuges (ungleich der Zugtemplate-ID (TID)) |
-^  $zid  | Die vom System vergebene eindeutige ID des Zuges (ungleich der Template ZID) |+
 ^  $sec  | Die Minutenzahl seit 0:00, welche der Abfahrtszeit am ersten Halt im ersten Stellwerk entspricht. | ^  $sec  | Die Minutenzahl seit 0:00, welche der Abfahrtszeit am ersten Halt im ersten Stellwerk entspricht. |
 ^  $time  | Abfahrtszeit des Zuges am Referenzbahnsteig als vierstellige Zahl (z. B. 1252) | ^  $time  | Abfahrtszeit des Zuges am Referenzbahnsteig als vierstellige Zahl (z. B. 1252) |
  
-Zusätzlich zu den Variablen Blöcken können weitere fixe Blöcke eingefügt werden, welche für jeden Zug des Templates gleich sind.+Zusätzlich zu den variablen Blöcken können weitere fixe Blöcke eingefügt werden, welche für jeden Zug des Zugtemplates gleich sind.
  
 <note warnung>Alle Blöcke müssen durch ein Leerzeichen voneinander getrennt sein.</note> <note warnung>Alle Blöcke müssen durch ein Leerzeichen voneinander getrennt sein.</note>
-<note gefahr>Variable Blöcke dürfen keine Buchstaben enthalten. Weiter ist keine führende 0 erlaubt.</note>+<note gefahr>Variable Blöcke dürfen keine Buchstaben enthalten. Des Weiteren ist keine führende 0 erlaubt.</note>
  
-Wird ein %-Zeichen eingefügt wird alles dahinter im Fahrplan nicht dargestellt.+Wird ein %-Zeichen eingefügtwird alles dahinter im Fahrplan nicht dargestellt.
  
 ==== Beispiele ==== ==== Beispiele ====
Zeile 46: Zeile 48:
 \\ \\
  
-===== Einbindung des Namensmusters in ZugScript =====+===== Einbindung des Namensmusters im ZugScript =====
  
-Im Feld Namensmuster kann ein Namensmuster festgelegt werden, welches dann für alle Züge des Templates gilt.+Im Feld Namensmuster kann ein Namensmuster festgelegt werden, welches dann für alle Züge des Zugtemplates gilt.
  
-Alternativ kann das Namensmuster auch direkt im [[stellwerksim:erbauer:zugbau:zugscript|takt()-Befehl]] festgelegt werden. Somit können für das gleiche Template mehrere Namensmuster verwendet werden. Dabei ist folgendes zu Beachten:+Alternativ kann das Namensmuster auch direkt im [[stellwerksim:erbauer:zugbau:zugscript|takt()-Befehl]] festgelegt werden. Somit können für das gleiche Zugtemplate mehrere Namensmuster verwendet werden. Dabei ist Folgendes zu Beachten:
  
   * Das Feld Namensmuster der [[stellwerksim:erbauer:zugbau:zugtemplate-uebersicht#template-werte_stammdaten|Stammdaten]] muss leer bleiben.   * Das Feld Namensmuster der [[stellwerksim:erbauer:zugbau:zugtemplate-uebersicht#template-werte_stammdaten|Stammdaten]] muss leer bleiben.
Zeile 64: Zeile 66:
   takt(120,ID=1,GLEIS=1,MILZEIT=0630..1230,NAME=RB 2002+$ti*8);   takt(120,ID=1,GLEIS=1,MILZEIT=0630..1230,NAME=RB 2002+$ti*8);
  
-Es würden folgende Züge erstellen:+Es würden folgende Züge entstehen:
   RB 2000 (06:00) ($ti = 0)   RB 2000 (06:00) ($ti = 0)
   RB 2004 (07:00) ($ti = 1)   RB 2004 (07:00) ($ti = 1)
Zeile 80: Zeile 82:
   takt(120,ID=1,GLEIS=1,MILZEIT=0630..1230,NAME=RB 2002+$zi*8);   takt(120,ID=1,GLEIS=1,MILZEIT=0630..1230,NAME=RB 2002+$zi*8);
  
-Es würden folgende Züge erstellen:+Es würden folgende Züge entstehen:
   RB 2000 (06:00) ($zi = 0)   RB 2000 (06:00) ($zi = 0)
   RB 2004 (07:00) ($zi = 1)   RB 2004 (07:00) ($zi = 1)
Zeile 92: Zeile 94:
   RB 2066 (10:30) ($zi = 8) !!!   RB 2066 (10:30) ($zi = 8) !!!
 \\ \\
 +
 +Die laufenden Nummern beziehen sich auf die im Zugscriptlauf erzeugten Züge und sind damit nicht unbedingt zeitlich geordnet:
 +  takt(60,ID=1,GLEIS=1,STUNDE=10,STUNDE=5,NAME=RB 2000+$ti*2);
 +  
 +  RB 2000 (10:00) ($zi = 0)
 +  RB 2004 (05:00) ($zi = 1)
  
 ===== Berechnungen auf Basis der Stunde ===== ===== Berechnungen auf Basis der Stunde =====
 Die folgenden Hinweise sollen denen dienen, die sich schon mit den grundlegenden Funktionen des Namensmusters vertraut gemacht haben und auch vor komplexeren Namensmustern nicht zurückschrecken. Die folgenden Hinweise sollen denen dienen, die sich schon mit den grundlegenden Funktionen des Namensmusters vertraut gemacht haben und auch vor komplexeren Namensmustern nicht zurückschrecken.
  
-Die Division (/) ist normalerweise beim Namensmuster nicht zugelassen, da hier Zahlen entstehen können, die keine ganze Zahl sind. Diese sind als Zugname nicht zulässig. In Zusammenhang mit dem Befehl floor() ist sie jedoch zulässig. Dieser Befehl schneidet die Nachkommastellen ab, so dass sich immer Ganzzahlen ergeben.+Die Division (/) ist normalerweise beim Namensmuster nicht zugelassen, da hier Zahlen entstehen können, die keine ganze Zahl sind. Diese sind als Zugname nicht zulässig. In Zusammenhang mit dem Befehl floor() ist sie jedoch zulässig. Dieser Befehl schneidet die Nachkommastellen ab, so dass sich immer ganze Zahlen ergeben.
 Bei der Nutzung der Division sind zwei Punkte zu beachten: Bei der Nutzung der Division sind zwei Punkte zu beachten:
   * Die Division darf nur __innerhalb__ des floor()-Befehls erfolgen.   * Die Division darf nur __innerhalb__ des floor()-Befehls erfolgen.
   * Es darf nicht zweimal das gleiche Ergebnis entstehen.   * Es darf nicht zweimal das gleiche Ergebnis entstehen.
  
-Sinnvoll ist diese Möglichkeit z.B., wenn der Name anhand der Stunde berechnet werden soll, zu der er verkehrt. Der Befehl ''floor($time/100)'' ergibt die Stunde am Referenzbahnsteig. Ein Beispiel:+Sinnvoll ist diese Möglichkeit z. B., wenn der Name anhand der Stunde berechnet werden soll, zu der er verkehrt. Der Befehl ''floor($time/100)'' ergibt die Stunde am Referenzbahnsteig. Ein Beispiel:
  
 Das Namensmuster ''IC 775+floor($time/100)*4'' mit dem takt()-Befehl ''takt(120,ID=583,GLEIS=2,MILZEIT=0705..1106,MILZEIT=1705..2106);'' ergibt folgende Züge: Das Namensmuster ''IC 775+floor($time/100)*4'' mit dem takt()-Befehl ''takt(120,ID=583,GLEIS=2,MILZEIT=0705..1106,MILZEIT=1705..2106);'' ergibt folgende Züge:
stellwerksim/erbauer/zugbau/namensmuster.1547915914.txt.gz · Zuletzt geändert: 2019/01/19 17:38 von DevonFrosch