User Tools

Site Tools


xmlscripting:xmldb-de

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

xmlscripting:xmldb-de [2018/11/12 08:56] (current)
Line 1: Line 1:
 +====== XML-Script-Beispiele ======
 +[[:​german#​objekte|{{ ​ :​objects.png}}]][[:​german|{{ ​ :​rocrail-logo-35.png}}]]
 +[[:​german|Inhalt]] -> [[:​german#​Objekte|Objekte]] ->  **[[:​timed-actions-de|Aktionen]]** ​
 +  * [[:​actions-de|Aktionen definieren]] | [[:​actionctrl-de|Aktions-Steuerung]] | [[:​actioncond-de|Aktions-Bedingung]] | **[[:​xmlscripting-de|XML-Skripte]]** | [[:​action-example-de|Beispiele]] | [[:​level-crossing-de|Beispiel 2 Bahnübergang]]
 +    * **[[:​xmlscripting:​xmldb-de|XML-Script-Beispiele]]** | [[:​micha68:​virtualfbscript|Virtuelle Rückmelder]] | [[:​micha68:​extkeyboardscript-de|Externe Taster und LEDs]] | [[:​micha68:​ampelscript-de|Verkehrsampel]]
 +      * [[userpages:​sambaer1:​entkupplungswalzer-de|Kupplungswalzer mit xmlscript]]
 +      * [[http://​wiki.rocrail.net/​doku.php?​id=userpages#​claus_cds|Skriptsammlung cds (Claus)]]
 +      * [[userpages:​entaxi57:​scriptesammlung-de|Skriptsammlung entaxi57 (Bernd)]]
 +      * [[lordbrummi:​german:​skripte_beispiele|Skriptsammlung lordbrummi (Dieter)]]
 +      * [[besra:​german:​xml|Skriptsammlung besra (Bernd)]]
 +      * [[wiki:​user:​minou65:​Skriptfragmente-de|Skriptfragmentsammlung minou65 (Andy)]]
 +\\
 +Befehls-Übersicht:​ __**[[:​actions-de#​die_typen_befehle_parameter|Befehle]]**__
 +\\
 +\\
 +
 +=====Befehls-Beispiele=====
 +| :!: Die Anführungszeichen auf dieser Seite können in XML __**nicht**__ verwendet werden. \\ Zu tun: Beispiele im Wiki-Quelltext mit doppelten % -Zeichen beginnen und beenden. \\ Falsch: <lc id="​test"/>​ \\ Richtig: %%<lc id="​test"/>​%% |
 +| Für Beispiele bis 26.08.2015 21:19 erledigt. <​sub>​RainerK</​sub>​|
 +\\
 +
 +==== Lok-Befehle ====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen \\ (Keine Kennung erforderlich,​ ist für alles mit passenden Bedingungen) ^ Innerhalb <if> oder als Einzel-Befehl außerhalb von Schleifen \\ (Kennung ist erforderlich)^ Hinweise ^ 
 +| %%<lc cmd="​gotoblock" ​ blockid="​Sbf"/>​%% ​                | %%<lc id="​V200"​ cmd="​gotoblock" ​ blockid="​Sbf"/>​%% ​         | Setzt den Ziel-Block "​Sbf" ​ | 
 +| %%<lc cmd="​useschedule"​ scheduleid="​Nirvana"/>​%% ​        | %%<lc id="​V200"​ cmd="​useschedule"​ scheduleid="​Nirvana"/>​%% ​ | Setzt den Fahrplan auf "​Nirvana" ​   | 
 +| %%<lc cmd="​go"/>​%% ​                                      | %%<lc id="​@loco"​ cmd="​stop"/>​%% ​                            | Lok starten/​stoppen ​                  ​| ​
 +| %%<lc cmd="​gotoblock" ​ blockid="​@var6"/>​%% ​              | %%<lc id="​V200"​ cmd="​gotoblock" ​ blockid="​@var6"/>​%% ​       | Setzt den Ziel-Block auf den var6-Text ​          ​| ​
 +| %%<lc cmd="​gotoblock" ​ blockid="​$tx1"/>​%% ​               | %%<lc id="​V200"​ cmd="​gotoblock" ​ blockid="​$tx1"/>​%% ​        | Setzt den Ziel-Block auf den tx1-Textfeld-Text | 
 +| %%<lc cmd="​useschedule"​ scheduleid="​@var6"/>​%% ​          | %%<lc id="​V200"​ cmd="​useschedule"​ scheduleid="​@var6"/>​%% ​     | Setzt den Fahrplan auf den var6-Text | 
 +| %%<lc cmd="​useschedule"​ scheduleid="​$tx1"/>​%% ​           | %%<lc id="​V200"​ cmd="​useschedule"​ scheduleid="​$tx1"/>​%% ​ | Setzt den Fahrplan auf tx1-Textfeld-Text | 
 +| %%<lc cmd="​go"/>​%% ​                                      | %%<lc id="​@var6"​ cmd="​stop"/>​ or <lc id="​$tx1"​ cmd="​stop"/>​%% | Lok @var6 oder Lok $tx1 starten/​stoppen | 
 +| %%<lc cmd="​velocity"​ V="​5"/>​%% ​                          | %%<lc id="​V200"​ cmd="​velocity"​ V="​5"/>​%% ​                   | Setzt die Geschwindigkeit auf 5 | 
 +| __//nicht verfügbar//​__ (Es kann nur eine Lok im Block sein) | %%<lc id="​loco1"​ cmd="​block"​ blockid="​b1"/>​%% ​    | Setzt die Lok mit Kennung loco1 in den Block "​b1"​ | 
 +| __//nicht verfügbar//​__ (Es kann nur eine Lok im Block sein) | %%<lc bkid="​bk1"​ ... /> oder <lc bkid="​@var6"​ ... /> oder <lc bkid="​$tx1"​ ... />​%% ​                                    | lcid der Lok in Block bk1 / @var6 (Variablentext) ​ / $tx1 (Textfeldtext) ​    |
 +| %%<fn fnchanged="​3"​ f3="​true"/>​%% ​                       | %%<fn id="​loco1"​ fnchanged="​3"​ f3="​true"/>​%% ​            | Funktionen true/false |
 +
 +Befehle: go, stop, velocity, velocity2, percent dispatch, swap, blockside, carcount, min, mid, cruise, max, consist, assigntrain,​ releasetrain,​ binstate_on,​ binstate_off,​ class, x-go, pomwrite
 +\\
 +\\
 +\\
 +
 +====Variable====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen \\ (Sub-Kennung erforderlich,​ ist für alles mit passenden Bedingungen) ^ Innerhalb <if> \\ (Kennung ist erforderlich)^ Hinweise ^   
 +| %%<vr id="​var2%oid%"​ text="​empty"/>​%% ​                   | %%<vr id="​var2"​ text="​empty"/>​%% ​                   | Setzt den Text einer Variablen |  ​
 +| %%<vr id="​var2%oid%"​ value="​0"/>​%% ​                      | %%<vr id="​var2"​ value="​0"/>​%% ​                      | Setzt den Wert einer Variablen |  ​
 +| %%<vr id="​var1%oid%"​ value="​4711"​ text="​empty"/>​%% ​      | %%<vr id="​var1"​ value="​4711"​ text="​empty"/>​%% ​      | Setzt den Wert und Text von var1 |  ​
 +| %%<vr id="​var3%oid%"​ value="#​var3 + #​var5"/>​%% ​          | %%<vr id="​var3"​ value="#​var3 + #​var5"/>​%% ​          | Addiert den Wert von var5 zu var3 |  ​
 +| %%<vr id="​var2%oid%"​ value="#​var2%oid% + 4"/>​%% ​         | %%<vr id="​var2"​ value="#​var2 + 4"/>​%% ​              | Erhöht den Wert einer Variablen um 4 | 
 +| %%<vr id="​var2%oid%"​ min="​10"​ max="​100"​ cmd="​random"/>​%% | %%<vr id="​var2"​ min="​10"​ max="​100"​ cmd="​random"/>​%% | Setzt den Wert von var2 auf einen Zufallswert zwischen ​ min und max |  ​
 +| %%<vr id="​var2%oid%"​ cmd="​start"/>​%% ​                    | %%<vr id="​var2"​ cmd="​start"/>​%% ​                    | Startet/​stoppt den Zeitgeber von var2 |  ​
 +| %%<vr id="​var3%oid%"​ text="​$tx1"/>​%% ​                    | %%<vr id="​var3"​ text="​$tx1"/>​%% ​                    | Der Text von var3 erhält den Text des Textobjekts tx1 |   
 +\\
 +\\
 +\\
 +
 +====Klassen====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen \\ (Keine Kennung erforderlich,​ ist für alles mit passenden Bedingungen) ^ Innerhalb <if> \\ (Kennung ist erforderlich) ^ Hinweise ^ 
 +| %%<lc cmd="​classset"​ class="​AB,​DD"/>​%% ​                     | %%<lc id="​loco"​ cmd="​classset"​ class="​AB,​DD"/>​%% ​   | Setzt die Lok-Klasse auf AB,DD | 
 +| %%<lc cmd="​classset"​ class="​AB,​DD"/>​%% ​                     | %%<lc id="​@var6"​ cmd="​classset"​ class="​AB,​DD"/>​%% ​  | Setzt die Lok-Klasse (Variable des var6-Text) auf AB,DD          | 
 +| %%<bk cmd="​classdel"​ class="​AB"/>​%% ​                        | %%<bk id="​4711"​ cmd="​classdel"​ class="​AB"/>​%% ​      | Löscht die Blockklasse AB                                     ​| ​
 +| %%<bk cmd="​classdel"​ class="​AB"/>​%% ​                        | %%<bk id="​$tx1"​ cmd="​classdel"​ class="​AB"/>​%% ​      | Löscht die Blockklasse AB (Variable des tx1-Textfelds) ​     | 
 +| %%<bk cmd="​classadd"​ class="​CD,​EE1"/>​%% ​                    | %%<bk id="​4711"​ cmd="​classadd"​ class="​CD,​EE1"/>​%% ​  | Fügt die Blockklasse hinzu CD,​EE1 ​                                   | 
 +\\
 +\\
 +\\
 +====Blöcke====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen \\ (Keine Kennung erforderlich,​ ist für alles mit passenden Bedingungen) ^ Innerhalb <if> \\ (Kennung ist erforderlich) ^ Hinweise ^ 
 +| __//Nicht verfügbar//​__ ​ (Ein Block kann nur für eine Lok reserviert werden) | %%<bk id="​b2"​ cmd="​reserve"​ lcid="​loco1"/>​%% | Reserviert den Block b2 für die Lok loco1 |
 +\\
 +\\
 +\\
 +
 +====Rückmelder====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen \\ (Keine Kennung erforderlich,​ ist für alles mit passenden Bedingungen) ^ Innerhalb <if> \\ (Kennung ist erforderlich) ^ Hinweise ^  ​
 +| __//​Verfügbarkeit muss noch geklärt werden//__ | %%<fb id="​fb1"​ cmd="​on"/>​%% | Setzt den Rückmelder-Status ​ |
 +\\
 +\\
 +\\
 +
 +====Textfelder====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen \\ (Keine Kennung erforderlich,​ ist für alles) ^ Innerhalb <if> \\ (Kennung ist erforderlich) ^ Hinweise ^  ​
 +| __//nicht verfügbar//​__ (Ändern einers Textfeldes innerhalb einer Schleife ist sinnlos ) | %%<tx id="​tx1"​ format="​var1 is #var1 @var1"/>​%% ​    | Aktualisiert den Text von tx1 mit dem Wert and Text von var1   ​| ​
 +\\
 +\\
 +\\
 +
 +====Pausenbefehl (Sleep)====
 +^ Innerhalb <​foreach>​-Tabellen-Schleifen (Pause erfolgt bei jedem Durchlauf!) ^ Innerhalb <if> \\ (Kennung ist erforderlich) ^ Hinweise ^  ​
 +| %%<sleep time="​10"/>​%% ​                     | %%<sleep time="​10"/>​%% ​                 | Das Script pausiert um 10 (max. 100ms erlaubt, Werte größer als 100ms werden auf 100 gesetzt) |
 +| %%<sleep time="#​varSleep"/>​%% ​              | %%<sleep time="#​varSleep"/>​%% ​          | Das Script pausiert um den Wert der Variablen varSleep (max. 100ms) | 
 +\\
 +\\
 +\\
 +
 +=====Bedingungs-Beispiele=====
 +\\
 +Beispiele zur Prüfung mehrerer Bedingungen:​
 +<​code>​
 +<if condition="​@var1 = hallo|#var1 = 4712"> ​                         : Wenn der Text von var1 = hallo UND der Wert var1=4712 - Wenn alltrue nicht gesetzt ist, ist es WAHR         
 +<if condition="​@var1 = hallo|#var1 = 4712" alltrue="​true"> ​          : Wenn der Text von var1 = hallo UND der Wert var1=4712 ​    
 +<if condition="​@var1 = hallo|#var1 = 4712" alltrue="​false"> ​         : Wenn der Text von var1 = hallo ODER der Wert var1=4712 ​
 +</​code>​
 +\\
 +Beispiel zur Prüfung mehrerer Bedingungen;​ Variable, Status and Klassen:
 +<​code>​
 +<if condition="#​var1 < &​time"​ state="​sg sem3 = green" class="​bk 4711 = AB" alltrue="​true">​ : Wenn var1 < serialtimevalue UND der Status des Signals sem3 grün ist UND die Klasse von Block 4711 AB ist
 +</​code> ​
 +\\
 +\\
 +Beispiele zur Prüfung ganzer Tabellen:
 +<​code>​
 +<foreach table="​lclist"​ condition="#​var2%oid% < &​time|#​var1 < &​time"> ​                     : Für jeden Tabelleneintrag bei dem die Variable var2%lcid% < aktueller serialtime-Wert UND var1 < aktueller serialtime-Wert - Wenn alltrue nicht gesetzt ist, ist es WAHR         
 +<foreach table="​lclist"​ condition="#​var2%oid% < &​time|#​var1 < &​time"​ alltrue="​true"> ​      : Für jeden Tabelleneintrag bei dem die Variable var2%lcid% < aktueller serialtime-Wert UND var1 < aktueller serialtime-Wert ​   ​
 +<foreach table="​lclist"​ condition="#​var2%oid% < &​time|#​var1 < &​time"​ alltrue="​false"> ​     : Für jeden Tabelleneintrag bei dem die Variable var2%lcid% < aktueller serialtime-Wert ODER var1 < aktueller serialtime-Wert ​    
 +</​code>​
 +\\
 +\\
 +\\
 +
 +=====Sub-Scripte und Script verlassen=====
 +\\
 +Ein Sub-Script aufrufen oder das aktuelle Script verlassen:
 +\\
 +^ XML ^ Remarks ^
 +| %%<sub file="​reset.xml"/>​%% ​          | Startet das Script reset.xml ​ |         
 +| %%<exit cmt="​Raus hier!"/>​%% ​         | Verlässt dieses Script hier (im Trace findet sich "Raus hier!"​) ​ |
 +cmt=“reason” kann für Tracing verwendet werden. ​
 +\\
 +\\
 +\\
 +
 +=====Schleife unterbrechen=====
 +\\
 +Eine Schleife verlassen, wenn eine Bedingung passt:
 +\\
 +^ XML ^ Remarks ^
 +| %%<break cmt="​Its enough."​ condition="#​var1 = 4712"/>​%% ​      | Verlässt die Schleife, wenn der Wert von var1 = 4712 ist. |  ​
 +cmt=“reason” kann für Tracing verwendet werden.
 +\\
 +\\
 +\\
 +=====Aktions-Steuerung===== ​
 +\\
 +Eine existierende Aktion aufrufen, wenn eine Bedingung WAHR ist.
 +\\
 +<​code>​
 +<​actionctrl id="​test">​
 +    <​actioncond id="​sw1"​ subid=""​ state="​straight"​ type="​sw"/>​
 +</​actionctrl>​
 +</​code>​
 +Aktion "​test"​ wird aufgerufen, wenn Weiche sw1 den Status "​straight"​ hat.\\
 +Um eine existierende Aktion von Scripten mehrmals mit verschiedenen Bedingungen aufzurufen.
 +\\
 +\\
 +\\
 +=====Fahrdienstleiter- und Wagen-Befehle===== ​
 +\\
 +<​code>​
 +<car id="​car1"​ cmd="​loaded"/>​
 +<​actionctrl id="​test">​
 +    <​operator id="​op1"​ cmd="​emptycar"​ carids="​DB1"/>​
 +</​actionctrl>​
 +</​code>​
 +emptycar, loadcar, addcar, leavecar. Im Attribut Wagenkennungen (carids) muss eine kommaseparierte Liste won Wagen spezifiziert sein.
 +\\
 +Wagen-Befehle:​empty,​ loaded, maintenance ​
 +\\
 +Fahrdienstleiter-Befehle:​addcar,​ removecar, loadcar, emptycar, class 
 +\\
 +\\
 +\\
 +=====System-Befehle===== ​
 +\\
 +<​code>​
 +<sys cmd="​go"/>​
 +</​code>​
 +Befehle: stoplocs, stop, go, shutdown, resume, on, off, ebreak, resetfx, time, v0locos, shortcut(short circuit) ​
 +\\
 +\\
 +\\
 +
 +=====Beispiel-Code===== ​
 +\\
 +<​code>​
 +<​xmlscript>​
 +  <sys cmd="​go"/>​
 +  <vr id="​var1"​ value="​4712"​ text="​hallo"/>​
 +  <tx id="​tx1"​ format="​var1 is #var1 @var1"/>​
 +  <bk id="​b1"​ cmd="​classadd"​ class="​ZZ"/>​
 +  <vr id="​varX"​ text="​loco1"/>​
 +  <lc id="​@varX"​ cmd="​classadd"​ class="​ZZ"/>​
 +  <car id="​car1"​ cmd="​loaded"/>​
 +  <​actionctrl id="​test">​
 +    <​actioncond id="​sw1"​ subid=""​ state="​straight"​ type="​sw"/>​
 +  </​actionctrl>​
 +  <​operator id="​op1"​ cmd="​emptycar"​ carids="​DB1"/>​
 +  <if condition="​@var1 = hallo|#var1 = 4712">​
 +    <​then>​
 +      <tx id="​tx1"​ format="​var1 is #var1 @var1 OK!!"/>​
 +      <lc id="​loco1"​ cmd="​block"​ blockid="​b1"/>​
 +      <vr id="​var2"​ min="​10"​ max="​100"​ cmd="​random"/>​
 +      <tx id="​tx1"​ format="​var1 is #var1 @var1 OK!! #​var2"/>​
 +      <vr id="​var2"​ cmd="​start"/>​
 +      <vr id="​var3"​ text="​$tx1"/>​
 +    </​then>​
 +    <​else>​
 +      <sub file="​reset.xml"/>​
 +      <exit cmt="​Raus hier!"/>​
 +    </​else>​
 +  </if>
 +  <foreach table="​lclist">​
 +    <vr id="​var4%oid%"​ value="​4711"​ text="​empty"/>​
 +    <break cmt="​Its enough."​ condition="#​var1 = 4712"/>​
 +  </​foreach>​
 +</​xmlscript>​
 +
 +</​code>​
 +
 +=====Skriptcode,​ von Usern zur Verfügung gestellt=====
 +
 +====User jpultar====
 +Generisches Script für eine individuelle Sound-Sequenz auf DEPART in einem Block getriggert\\
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​xmlscript>​
 +
 + <​!-- Generisches Script für eine individuelle Sound-Sequenz auf DEPART in einem Block getriggert -->
 +
 +  <switch var="​%lcid%">​
 +    <case val="​491.001">​
 + <fn id="​491.001"​ group="​1"​ fndesc="​Ansage"​ fncmd="​flip"/>​
 + <sleep time="​8000"/>​
 + <fn id="​491.001"​ group="​1"​ fndesc="​Horn"​ fncmd="​flip"/> ​     ​
 +    </​case>​
 +    <case val="​2043.28">​
 + <fn id="​2043.28"​ group="​1"​ fndesc="​Motor"​ fncmd="​on"/>​
 + <sleep time="​100"/>​
 + <fn id="​2043.28"​ group="​3"​ fndesc="​Ansage"​ fncmd="​flip"/>​
 + <sleep time="​5000"/>​
 + <fn id="​2043.28"​ group="​1"​ fndesc="​Schaffner"​ fncmd="​flip"/> ​   ​
 +    </​case>​
 +    <case val="​110.328">​
 + <fn id="​110.328"​ group="​2"​ fndesc="​Ansage"​ fncmd="​flip"/>​
 + <sleep time="​5000"/>​
 + <fn id="​110.328"​ group="​1"​ fndesc="​Schaffner"​ fncmd="​flip"/>​
 + <sleep time="​1000"/>​
 + <fn id="​110.328"​ group="​2"​ fndesc="​Sanden"​ fncmd="​flip"/> ​
 +    </​case>​
 +    <case val="​1010.13">​
 + <fn id="​1010.13"​ group="​5"​ fndesc="​Schaffner"​ fncmd="​flip"/>​
 + <sleep time="​2000"/>​
 + <fn id="​1010.13"​ group="​3"​ fndesc="​Lüfter"​ fncmd="​flip"/>​
 + <sleep time="​1000"/>​
 + <fn id="​1010.13"​ group="​6"​ fndesc="​Sanden"​ fncmd="​flip"/>​
 +    </​case>​
 +    <case val="​1020.41">​
 + <fn id="​1020.41"​ group="​3"​ fndesc="​Ansage2"​ fncmd="​flip"/>​
 + <sleep time="​5000"/>​
 + <fn id="​1020.41"​ group="​2"​ fndesc="​Schaffner"​ fncmd="​flip"/>​
 +    </​case>​
 +    <case val="​5042.08">​
 + <fn id="​5042.08"​ group="​4"​ fndesc="​Ansage1"​ fncmd="​flip"/>​
 + <sleep time="​6000"/>​
 + <fn id="​5042.08"​ group="​3"​ fndesc="​Schaffner"​ fncmd="​flip"/>​
 + <sleep time="​2000"/>​
 + <fn id="​5042.08"​ group="​1"​ fndesc="​Horn tief" fncmd="​flip"/>​
 +    </​case>​
 +  </​switch>​
 +</​xmlscript>​
 +</​code>​
 +\\
 +\\
 +Script zum Starten bzw. zur Rückfahrt in einen Heimatbahnhof einer Lok oder einer Lokgruppe unter Verwendung der Lok-Klasse ​
 +in der Tabelle der Loks. Dieses frei definierbare Textfeld eignet sich sehr gut, um Gruppen zu bilden => hier im Beispiel Klasse CARGO für z. B. alle Güterzüge.
 +Start bzw. Stopp (= gehe zu Heimatbahnhof) erfolgt über einen Schalter auf dem Gleisplan mit der entsprechenden Bezeichnung.
 +Von diesen Schaltern gibt es mehrere für unterschiedliche Gruppen - so werden Güter-, Regional- und Fernzüge - ist ja frei definierbar - gestartet bzw. gestoppt.
 +Über zwei Taster als Art "​Hauptschalter"​ können alle zugeordneten Schalter ein- bzw. ausgeschaltet werden - damit startet/​stoppt man alle Züge nach Bedarf.
 +(Voraussetzung:​ Rocrail-Version 13629.)
 +\\
 +<​code>​
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +
 +<!-- Alle Start -->
 +
 +<​xmlscript>​
 + <sleep time="​300"/>​
 + <co id="​Regionalverkehr"​ cmd="​on"/>​
 + <sleep time="​300"/>​
 + <co id="​Cargoverkehr"​ cmd="​on"/>​
 + <sleep time="​300"/>​
 + <co id="​Fernverkehr"​ cmd="​on"/>​
 + <sleep time="​300"/>​
 + <co id="​BR491"​ cmd="​on"/>​
 +</​xmlscript>​
 +</​code>​
 +\\
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +
 +<!-- Alle Stop -->
 +
 +<​xmlscript>​
 + <sleep time="​300"/>​
 + <co id="​Regionalverkehr"​ cmd="​off"/>​
 + <sleep time="​300"/>​
 + <co id="​Cargoverkehr"​ cmd="​off"/>​
 + <sleep time="​300"/>​
 + <co id="​Fernverkehr"​ cmd="​off"/>​
 + <sleep time="​300"/>​
 + <co id="​BR491"​ cmd="​off"/>​
 +</​xmlscript>​
 +</​code>​
 +\\
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​xmlscript>​
 +
 + <​!-- Script zum Starten bzw. Rückfahrt in den Heimatbahnhof unter Verwendung einer Lok-Klasse -->
 + <​!-- Start / Stopp über einen Schalter mit der entsprechenden Bezeichnung -->
 + 
 +<auto cmd="​on"/>​
 +
 +<if state="​co Cargoverkehr = on">​
 + <​then>​
 + <​foreach table="​lclist"​ condition="​%lcclass% # CARGO">​
 + <lc id="​%lcid%"​ cmd="​go"/>​
 + <trace text="​%oid% => Abfahrt"/>​
 + </​foreach>​
 +                <​exit/>​
 + </​then>​
 +</if>
 +
 +<if state="​co Cargoverkehr = off">​
 +    <​then>​
 + <​foreach table="​lclist"​ condition="​%lcclass% # CARGO">​
 +
 + <​if state="​lc %oid% = home|lc %oid% ! auto" connect="​and">​
 + <​then>​
 + <lc id="​%lcid%"​ cmd="​stop"/>​
 + <​trace text="​%oid% => ist im Heimatbahnhof %lccur%"/>​
 + </​then>​
 + <​else>​
 + <lc id="​%lcid%"​ cmd="​gotoblock"​ blockid="​%lchome%"/>​
 + <lc id="​%lcid%"​ cmd="​go"/>​
 + <​trace text="​%oid% => unterwegs zum Heimatbahnhof"/>​
 + </​else>​
 + </​if>​
 +
 + </​foreach>​
 + </​then>​
 +</if>
 +</​xmlscript>​
 +</​code>​
  
xmlscripting/xmldb-de.txt · Last modified: 2018/11/12 08:56 (external edit)