![]() |
![]() |
||
xmlskript |
Lok-Geschwindigkeitvirtueller In-Melder
Pfad: mknetz/Eisenbahn/Digital/RocRail/xmlskript |
||
Impressum |
|
Ein Triebfahrzeugführer muss sich an den Buchfahrplan halten. Im Modell wird die Kilometerangabe durch einen speziellen Rückmelder ersetzt.
Ein Rückmelder, z.B. r217, soll die Geschwindigkeit, z.B v=13km/h bzw. v=17km/h, einer auslösenden Lok richtungsabhängig setzen. Das kann nur klappen, wenn der Rückmelder entsprechende Daten liefern kann. Ein entsprechendes Skript v217.xml könnte folgendermaßen beginnen:
<?xml version="1.0" encoding="UTF-8"?> <xmlscript> <query vr="lcid217" table="fblist" id="%callerid%" get="identifier"/> <if condition="#lcid217 = 0"> <then> <trace text="v217 : -"/> <exit/> </then> </if> ...
Es wird eine Variable lcid217 für die Lok-ID angelegt. Da die Variable exklusiv für den Rückmelder r217 benutzt werden soll, erhält sie die angehängte Nummer 217. Die query-Anweisung liest den Wert des Attributs 'identifier' ein. Es ist nun möglich, dass das Attribut 'identifier' von r217 keine Lok-ID enthält, z.B. weil ein Wagen den Besetztmelder auslöst. In diesem Fall wird ein Wert 0 übergeben und das Skript wird gleich verlassen.
... <query vr="bes217" table="lclist" id="@lcid217" get="blockenterside"/>
Das Attribut 'blockenterside' der erkannten Lok kann die Werte 'true' und 'false' annehmen. 'true' bedeutet dabei, dass der kleine Pfeil im Blocksymbol von der +-Seite wegweist. Wenn in Rocrail alles richtig eingerichtet und initialisiert ist, zeigt der Pfeil die Fahrtrichtung des Zugs an.
... <if condition="@bes217 = true"> <then> <!-- true-Richtung --> <!-- special --> <if condition="@lcid = 2150"> <then> <lc id="@lcid217" V="14"/> <trace text="v217>: @lcid217 v=14"/> <exit/> </then> </if> <!-- default --> <lc id="@lcid217" V="13"/> <trace text="v217>: @lcid217 v=13"/> <exit/> </then> <else> <!-- false-Richtung --> <lc id="@lcid217" V="17"/> <trace text="v217<: v='17"/'> <exit/> </else> </if> </xmlscript>
Es empfiehlt sich, in die entsprechenden Kommentare statt 'true- und false-Richtung' die Richtungen vor Ort einzutragen.
Soll die ganze Sache nur im Automatik-Modus funktionieren, so kann man sich an folgendem Skript orientieren.
<?xml version="1.0" encoding="UTF-8"?> <xmlscript> <if state="auto auto = off"> <then> <trace text="Auto off"/> </then> <else> <trace text="Auto on"/> </else> </if> </xmlscript>