User Tools

Site Tools


xmlscripting-de

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
xmlscripting-de [2019/10/14 18:55] – [Tipps] hermannkxmlscripting-de [2024/02/16 01:35] (current) rainerk
Line 1: Line 1:
-====== XML-Skripte ======+====== XMLScript ======
 [[:german#objekte|{{  :objects.png}}]][[:german|{{  :rocrail-logo-35.png}}]] [[:german#objekte|{{  :objects.png}}]][[:german|{{  :rocrail-logo-35.png}}]]
 [[german|Inhalt]] -> [[german#Objekte|Objekte]] ->  **[[timed-actions-de|Aktionen]]**  [[german|Inhalt]] -> [[german#Objekte|Objekte]] ->  **[[timed-actions-de|Aktionen]]** 
-  * [[actions-de|Aktionen definieren]] | [[actionctrl-de|Aktions-Steuerung]] | [[actionctrl-de#system-aktionen|System-Aktionen]] | [[actioncond-de|Aktions-Bedingung]] | **[[:xmlscripting-de|XML-Skripte]]** | [[action-example-de|Beispiele]] | [[level-crossing-de|Beispiel 2 Bahnübergang]] +  * [[actions-de|Aktionen definieren]] | [[actionctrl-de|Aktions-Steuerung]] | [[actionctrl-de#system-aktionen|System-Aktionen]] | [[actioncond-de|Aktions-Bedingung]] | **[[:xmlscripting-de|XMLScript]]** | [[action-example-de|Beispiele]] | [[level-crossing-de|Beispiel 2 Bahnübergang]] 
-    * [[:xmlscripting:course-de|Kurzanleitung XML-Skripting]]+    * [[:xmlscripting:course-de|Kurzanleitung XMLScript]]
     * [[:text-de#variablen|Text-Variablen]]     * [[:text-de#variablen|Text-Variablen]]
-    * [[:xmlscripting:xmldb-de|XML-Script-Beispiele]] | [[:micha68:virtualfbscript|Virtuelle Rückmelder]] | [[:micha68:extkeyboardscript-de|Externe Taster und LEDs]] | [[:micha68:ampelscript-de|Verkehrsampel]] | [[:users:nice2have:shuntingexample-de|Rangieren]] +    * [[:xmlscripting:xmldb-de|XMLScript-Beispiele]] | [[:userpages:micha68:virtualfbscript|Virtuelle Rückmelder]] | [[:userpages:micha68:extkeyboardscript-de|Externe Taster und LEDs]] | [[:userpages:micha68:ampelscript-de|Verkehrsampel]] | [[:userpages:nice2have:shuntingexample-de|Rangieren]] 
-\\ + 
-\\ +| [[:supportkey-de|{{:icons:key.png}}]] //XMLScript ist nur mit gültigem __**[[:supportkey-de|Unterstützungs-Schlüssel]]**__ verfügbar.//
 + 
 +{{:xmlscripting.png}} 
 + 
 +^  NICHT FÜR UNERFAHRENE ANWENDER ! ! !  ^ 
 + \\
  
-{{:xmlscripting.png}}\\ 
-| Ab //Rev. 15.429// ist der XML-Editor codesensitiv mit Farb-Darstellung von Knoten, Statements, Parametern, Werten, Kommentaren usw.|\\ 
- \\  
 =====Warnung===== =====Warnung=====
   - Standard-Rocrail-Funktionen nicht durch XMLScript ersetzen.   - Standard-Rocrail-Funktionen nicht durch XMLScript ersetzen.
Line 24: Line 26:
  \\  \\
 ===== Einführung ===== ===== Einführung =====
 +| :!: Es sollten immer erst die grundlegenden Rocrail-Funktionen bekannt sein, __//bevor mit XMLScript das Rad neu erfunden wird.//__ |
 +
 XML-Skripte können in Kombination mit der Aktion __**[[:actions-de#die_typen_befehle_parameter|Ext. Programm starten]]**__ benutzt werden.\\ XML-Skripte können in Kombination mit der Aktion __**[[:actions-de#die_typen_befehle_parameter|Ext. Programm starten]]**__ benutzt werden.\\
 Das primäre Ziel von XML-Skripten ist die Vereinfachung und die Reduzierung der Anzahl von Aktionen und Bedingungen.\\ Das primäre Ziel von XML-Skripten ist die Vereinfachung und die Reduzierung der Anzahl von Aktionen und Bedingungen.\\
-Das für Skripting verwendete XML ist das gleiche wie im __**[[https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en-index.html|Rocrail plan.xml]]**__.\\+Das für Skripting verwendete XML ist das gleichewie im __**[[https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en-index.html|Rocrail plan.xml]]**__.\\
  
  \\  \\
Line 38: Line 42:
  
 =====Empfehlung===== =====Empfehlung=====
-  * Die XmlScripts kurz sowie ohne lange Pausen (sleep) und lange Schleifen (loop) halten. \\ Sonst blockiert es das aufrufende Objekt bei der Bearbeitung von Ereignissen und Befehlen, wenn es nicht als __**[[:actions-de#asynchron|Asynchron]]**__ definiert ist.+  * Die XmlScripte kurz sowie ohne lange Pausen (sleep) und lange Schleifen (loop) halten. \\ Sonst blockiert es das aufrufende Objekt bei der Bearbeitung von Ereignissen und Befehlen, wenn es nicht als __**[[:actions-de#asynchron|Asynchron]]**__ definiert ist.
   * Nicht versuchen, den Automatik-Modus zu überlisten; Satttdessen eine Funktions-Erweiterung (feature request) im Forum posten, wenn etwas Grundsätzliches vermisst wird.   * Nicht versuchen, den Automatik-Modus zu überlisten; Satttdessen eine Funktions-Erweiterung (feature request) im Forum posten, wenn etwas Grundsätzliches vermisst wird.
   * Objekt-Kennungen mit Leerzeichen werden nicht unterstützt; stattdessen Unterstriche verwenden.   * Objekt-Kennungen mit Leerzeichen werden nicht unterstützt; stattdessen Unterstriche verwenden.
Line 64: Line 68:
  \\  \\
 =====Auf dem Server editieren===== =====Auf dem Server editieren=====
-Das Erzeugen und Editieren von XmlScripten auf dem Server kann über den Aktionsdialog erfolgen:\\+Das Erzeugen und Editieren von XMlScripten auf dem Server kann über den Aktionsdialog erfolgen:\\
 | {{:xmlscript:xmlscript-edit-de.png?400}} | {{:xmlscript:xmlscript-edit-error-de.png?400}} |  | {{:xmlscript:xmlscript-edit-de.png?400}} | {{:xmlscript:xmlscript-edit-error-de.png?400}} | 
 |  Öffnen des XmlScript-Editors. \\ Alternativ kann der Editor auch in der Übersicht \\  durch Doppelklick auf eine Aktion geöffnet werden.  |  \\ Nach Prüfen oder Speichern wurde ein Parser-Fehler((Die Farbmarkierung erscheint erst nach Schließen der Fehler-Meldung)) erkannt.  | \\ |  Öffnen des XmlScript-Editors. \\ Alternativ kann der Editor auch in der Übersicht \\  durch Doppelklick auf eine Aktion geöffnet werden.  |  \\ Nach Prüfen oder Speichern wurde ein Parser-Fehler((Die Farbmarkierung erscheint erst nach Schließen der Fehler-Meldung)) erkannt.  | \\
  
-Wenn das XmlScript auf dem Server noch nicht existiert, wird ein XmlScript-Skelett erzeugt:+Wenn das XMlScript auf dem Server noch nicht existiert, wird ein XMlScript-Skelett erzeugt:
 <code xml> <code xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Line 110: Line 114:
 %% %%
 \\ \\
-__** Das macht das XmlScript ungültig. **__+__** Das macht das XMlScript ungültig. **__ 
 + \\ 
 + \\ 
 +=====Aufruf-Parameter===== 
 +Auf Aufruf-Parameter kann durch Variablen mit der Benamung "%param1%...%paramN%" zugegriffen werden.\\ 
 +Siehe: __**[[:actionctrl-de#parameter|Aktions-Steuerung Parameter]]**__ \\ 
 +Beispiel-Schnipsel: 
 +<code xml> 
 +<xmlscript> 
 +  <if condition="%frombkid% # %param1%"> 
 +    <then> 
 +    </then> 
 +  </if> 
 +</xmlscript> 
 +</code> 
  \\  \\
  
Line 170: Line 189:
 </xmlscript> </xmlscript>
 </code> </code>
-Wenn die while-Schleife endlos ist, wird sie gestoppt, wenn das max-Attribut erreicht wird, das auf 100 voreingestellt ist.\\+Wenn die while-Schleife endlos ist, wird sie gestoppt, wenn das max-Attribut erreicht wird, das auf 10 voreingestellt ist.\\ 
 +Höhere Werte als 100 werden auf 100 begrenzt, um Serverblockierungen und Unfälle automatisch fahrender Lokomotiven zu vermeiden.\\ 
  
  \\  \\
Line 260: Line 281:
 Funktionen müssen auf der ersten Ebene des XMLScripts deklariert werden und eine Kennung (ID) haben.\\ Funktionen müssen auf der ersten Ebene des XMLScripts deklariert werden und eine Kennung (ID) haben.\\
 Aufruf (call) mit der gewünschten ID: ''<call id="doeIets"/>''(("doeIets" = niederländisch "mach Was"))\\ Aufruf (call) mit der gewünschten ID: ''<call id="doeIets"/>''(("doeIets" = niederländisch "mach Was"))\\
-Mehrere Funktionen sind erlaubt.\\ +Mehrere Funktionen sind erlaubt.\\ 
 +Auf Parameter kann durch ''%subparam1%''...''%subparamN%'' zugegriffen werden.\\ 
 <code xml> <code xml>
 <xmlscript> <xmlscript>
-  <function id="doeIets">+  <function id="doeIets" param="test1,test2">
     <tx id="tx1" format="function doeIets"/>     <tx id="tx1" format="function doeIets"/>
   </function>   </function>
Line 296: Line 318:
  
 ==== break ==== ==== break ====
-Beendet eine foreach-Schleife mit oder ohne Bedingung. cmt=“reason” kann für die Ablaufverfolgung (Tracing) angegeben werden. \\+Beendet eine foreach- und while-Schleife mit oder ohne Bedingung. cmt=“reason” kann für die Ablaufverfolgung (Tracing) angegeben werden. \\
 Diese Anweisung hat keinen Effekt, wenn sie nicht innerhalb einer foreach-Schleife erfolgt. \\ Diese Anweisung hat keinen Effekt, wenn sie nicht innerhalb einer foreach-Schleife erfolgt. \\
 <code xml> <code xml>
Line 341: Line 363:
 <code xml> <code xml>
 <xmlscript> <xmlscript>
-  <sub file="lib1.xml" id="doeIets"/>+  <sub file="lib1.xml" id="doeIets" param="test1,test2"/>
 </xmlscript> </xmlscript>
 </code> </code>
-Wenn die Funktions-ID auf Unterstrich, id="_", eingestellt wird, wird das gesamte XmlScript außer den Funktions-Definitionen ausgeführt.((12.545+))\\+Wenn die Funktions-ID auf Unterstrich, id="_", eingestellt wird, wird das gesamte XML-Script außer den Funktions-Definitionen ausgeführt.((12.545+))\\
 Wenn keine Funktions-ID eingestellt ist, wird die %oid% verwendet, um eine passende Funktion zu finden.\\ Wenn keine Funktions-ID eingestellt ist, wird die %oid% verwendet, um eine passende Funktion zu finden.\\
 +Auf Parameter kann durch ''%subparam1%''...''%subparamN%'' zugegriffen werden.\\ 
  \\  \\
 Bibliotheks-Beispiel **lib1.xml**: Bibliotheks-Beispiel **lib1.xml**:
Line 355: Line 378:
 </xmlscript> </xmlscript>
 </code> </code>
-Die Funktions-ID muss zum Aufruf von Funktionen aus einer XmlScript-Bibliotheks-Datei verwendet werden.\\ +Die Funktions-ID muss zum Aufruf von Funktionen aus einer XMlScript-Bibliotheks-Datei verwendet werden.\\ 
-Sehr hilfreich, wenn mehrere XmlScripte sich gemeinsam Funktionen teilen.\\  +Sehr hilfreich, wenn mehrere XMlScripte sich gemeinsam Funktionen teilen.\\  
  
  \\  \\
Line 362: Line 385:
 ====query==== ====query====
 Mit der **query**-Anweisung (Abfrage) kann eine Variable verwendet werden, um das Attribut Text oder Integer-Wert eines bestimmten Objekts zu erhalten.\\ Mit der **query**-Anweisung (Abfrage) kann eine Variable verwendet werden, um das Attribut Text oder Integer-Wert eines bestimmten Objekts zu erhalten.\\
 +Ein **query** bietet nur Objekt-Eigenschaften, aber __keine__ Laufzeit-Informationen.
 <code xml> <code xml>
   <query vr="var1" table="waybilllist" id="%oid%" get="cartype"/>   <query vr="var1" table="waybilllist" id="%oid%" get="cartype"/>
Line 374: Line 398:
 Anstelle von ''subidx'' kann auch ''subid'' verwendet werden, wenn der Sub-Knoten eine Kennung (ID) hat.\\ Anstelle von ''subidx'' kann auch ''subid'' verwendet werden, wenn der Sub-Knoten eine Kennung (ID) hat.\\
 \\ \\
-:!: Query-Variable müssen XMLScript-eindeutig sein, um unerwartete Ergebnisse zu vermeiden. :!: |+| Query-Variable müssen XMLScript-eindeutig sein, um unerwartete Ergebnisse zu vermeiden. :!: |
  
 ===Funktions-Beispiel=== ===Funktions-Beispiel===
 Die Lok-Kennung, //locid//, wird vom Block **cb4** in Variable **lcid** abgerufen.\\ Die Lok-Kennung, //locid//, wird vom Block **cb4** in Variable **lcid** abgerufen.\\
-Dr Funktions-Befehl erfordert eine Lok-Kennung, die vom Textinhalt der Variablen **@lcid** bereitgestellt wird. .\\+Der Funktions-Befehl erfordert eine Lok-Kennung, die vom Textinhalt der Variablen **@lcid** bereitgestellt wird. .\\
 <code xml> <code xml>
 <xmlscript> <xmlscript>
Line 387: Line 411:
  \\  \\
 ====set==== ====set====
-Mit der **set**-Anweisung (Einstellen)kann eine Variable verwendet werden, um das Attribut Text oder Integer-Wert eines bestimmten Objekts zu setzen.\\+Mit der **set**-Anweisung (Einstellen)kann eine Variable verwendet werden, um das Attribut Text oder Integer-Wert eines bestimmten Objekts, abhängig von ''setint'' zu setzen.\\
 <code xml> <code xml>
   <set vr="var1" table="waybilllist" id="%oid%" set="cartype" setint="false"/>   <set vr="var1" table="waybilllist" id="%oid%" set="cartype" setint="false"/>
Line 436: Line 460:
 | > | größer als; Zahlen | | > | größer als; Zahlen |
 | < | kleiner als; Zahlen | | < | kleiner als; Zahlen |
 +| ~ | enthält; Text (@var_1 ~ @var_2 ist wahr, wenn der Text in @var_2 im Text von @var_1 enthalten ist.) ab rocrail 2.1.1010  |
  
  
Line 471: Line 496:
 | Rückmelder | fb | true, false, on, off | **on** und **off** sind alternativ: **true** = **on**; **false** = **off** | | Rückmelder | fb | true, false, on, off | **on** und **off** sind alternativ: **true** = **on**; **false** = **off** |
 | Ausgang | co | on, off, active | | | Ausgang | co | on, off, active | |
 +| Ortschaft | location | free | Der 'frei'-Status prüft, ob die Lok erlaubt ist und ob ein Ortschafts-Block frei ist. |
 | Block | bk | free, !free, occupied, closed, open, reserved | | | Block | bk | free, !free, occupied, closed, open, reserved | |
 | Drehsscheibe | tt | free, occupied, closed, open, reserved, #, pending | Das Zeichen **#** steht für die aktuelle Brückenposition. \\ Der Status **pending** ist wahr, während sich die Brücke bewegt. | | Drehsscheibe | tt | free, occupied, closed, open, reserved, #, pending | Das Zeichen **#** steht für die aktuelle Brückenposition. \\ Der Status **pending** ist wahr, während sich die Brücke bewegt. |
Line 476: Line 502:
 | System | sys | go, stop | | | System | sys | go, stop | |
 | Automode | auto | on, off | | | Automode | auto | on, off | |
-| Lokomotive | lc | fwd, rev, +, -, min, mid, cruise, max, block, "//blockID//", \\ steam, diesel, electric, automobile, \\ idle, wait, automatic, f0...f28, home, shunting | **block** ist wahr, wenn die Lok in einem Block ist \\ "**//blockID//**" ist wahr, wenn die Lok in einem Block mit "//blockID//" ist | +| Lokomotive | lc | fwd, rev, +, -, min, mid, cruise, max, block, "//blockID//", \\ steam, diesel, electric, automobile, \\ idle, wait, automatic, f0...f28, home, shunting, train, !train | **block** ist wahr, wenn die Lok in einem Block ist \\ "**//blockID//**" ist wahr, wenn die Lok in einem Block mit "//blockID//" ist \\ **train** ist wahr, wenn der Lok ein Zug zugeordnet ist \\ **!train** ist wahr, wenn der Lok kein Zug zugeordnet ist | 
-| Wagen | car | empty, loaded, maintenance, cartype, waybill, "//blockID//" | Siehe Lokomotive |+| Wagen | car | empty, loaded, maintenance, cartype, waybill, f0...f28, "//blockID//" | Siehe Lokomotive |
 | Frachtschein | waybill | waiting, shipping, delivered, "//destinationID//", "//originID//" |  | | Frachtschein | waybill | waiting, shipping, delivered, "//destinationID//", "//originID//" |  |
 | Text | tx | on, off | Falls der Typ "Schalter" eingestellt ist. | | Text | tx | on, off | Falls der Typ "Schalter" eingestellt ist. |
Line 493: Line 519:
 |< >| |< >|
 ^ Objekt-Name ^ Objekt-Typ ^ Befehle ^ Status ^ Hinweise ^ Beispiel ^ ^ Objekt-Name ^ Objekt-Typ ^ Befehle ^ Status ^ Hinweise ^ Beispiel ^
-| Lok | lc | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#lc | | Das Block-Kennungs-Attribut (bkid) kann verwendet werden, um die Lok-Kennung von einem Block zu erhalten. \\ Befehl %%"regularreset"%% ist mit %%"softreset"%% gleich, aber es entfernt auch den zugewiesenen Fahrplan.|  +| Lok | lc | Alle https://wiki.rocrail.net/rocrail-snapshot/rocrail/wrapper-en.html#lc | | Das Block-Kennungs-Attribut (bkid) kann verwendet werden, um die Lok-Kennung von einem Block zu erhalten. \\ Befehl %%"regularreset"%% ist mit %%"softreset"%% gleich, aber es entfernt auch den zugewiesenen Fahrplan.|  
-| Funktion | fn | Alle und fndesc, fncmd | | Das Funktionsänderungs-Attribut (fnchanged) oder die Finktons-Beschreibung (fndesc) signalisieren, welche Funktion geändert wurde: f0…f28 (true/false) \\ Der Funktions-Befehl (fncmd) kann für on/off/flip verwendet werden. | %%<fn id="loco1" fndesc="Horn" fncmd="flip"/>%% | +| Funktion | fn | Alle und fndesc, fncmd, group 1..7 | | Das Funktionsänderungs-Attribut (fnchanged) oder die Funktions-Beschreibung (fndesc) signalisieren, welche Funktion geändert wurde: f0…f28 (true/false) \\ Der Funktions-Befehl (fncmd) kann für on/off/flip verwendet werden. \\ group wird mit Loconet benötigt| %%<fn id="loco1" fndesc="Horn" fncmd="flip" group="2"/>%% \\ F1-F4 group="1" \\ F5-F8 group="2" \\ ... \\ F25-F28 group="7" |  
-| Weiche | sw | Alle | | | <sw id="W5" cmd="close"> |+| Weiche | sw | Alle | | | <sw id="W5" cmd="close"/> |
 | Signal | sg | Alle | | | Signal | sg | Alle | |
 | Zubehör-Gruppe | accgroup | on, off, flip | | | Zubehör-Gruppe | accgroup | on, off, flip | |
-| Ausgang | co | Alle | |+| Ausgang | co | Alle | | | <co id="S1" cmd ="on"/> |
 | Gleisspannung | powercmd | on, off |  | Die ID ist die Booster-Kennung. Wenn leer, gilt der Befehl für alle Booster |  | Gleisspannung | powercmd | on, off |  | Die ID ist die Booster-Kennung. Wenn leer, gilt der Befehl für alle Booster | 
 | Block | bk | Alle, reservieren | open, closed | Im Fall des Reservieren-Befehl Lok-Kennung (lcid) verwenden. | %%<bk id="x" state="closed"/>%% | | Block | bk | Alle, reservieren | open, closed | Im Fall des Reservieren-Befehl Lok-Kennung (lcid) verwenden. | %%<bk id="x" state="closed"/>%% |
-| Rückmelder | fb | Alle, on, off, flip | |+| Rückmelder | fb | Alle, on, off, flip | | | <fb id="AF" cmd="on"/> |
 | Fahrstraße | st | go, lock, free, classset, classadd, classdel | | Die Befehle "lock" und "free" benötigen das zusätzliche Attribut **locid**="myLoco". | %%<st id="x" state="closed"/>%% | | Fahrstraße | st | go, lock, free, classset, classadd, classdel | | Die Befehle "lock" und "free" benötigen das zusätzliche Attribut **locid**="myLoco". | %%<st id="x" state="closed"/>%% |
-| Text | tx | showon, showoff | | Update-Ereignis durch Format-Attribut. \\ Die optionalen **bkid** und **lcid** können auch im Befehl verwendet werden. | %%<tx id="tx1" format="the loco id is %lcid%"/>%% | +| Text | tx | showon, showoff, blink, on, off, click | | Update-Ereignis durch Format-Attribut. \\ Die optionalen **bkid** und **lcid** können auch im Befehl verwendet werden. | %%<tx id="tx1" format="the loco id is %lcid%"/>%% \\ <text id="xyz" cmd="blink" blink="true"/>
-| Variable | vr | random, start, stop \\ start, length (for substring) | | Setzen durch Attribute: value="0" (Wert) text="zero"; (Wert-Text). \\ Um sie nur temporär anzulegen %%generated="true"%% setzen. | %%<vr id="var1" text="Rocrail"/>%% \\ %%<vr id="var2" text="@var1-XML-Scripting." tokeniser="-"/>%% \\ %%<vr id="var2" text="@var1" start="1" length="3"/>%% |+| Variable | vr | random, start, stop \\ start, length (for substring) | | Setzen durch Attribute: value="0" (Wert) text="zero"; (Wert-Text). \\ Um sie nur temporär anzulegen %%generated="true"%% setzen. \\ **Update:** mit 2.1.3268+ ist das der Standard-Wert. \\ Um sie statisch anzulegen %%generated="false"%% setzen.| %%<vr id="var1" text="Rocrail"/>%% \\ %%<vr id="var2" text="@var1-XML-Scripting." tokeniser="-"/>%% \\ %%<vr id="var2" text="@var1" start="1" length="3"/>%% |
 | Aktionskontrolle | actionctrl | | |Die Kennung in der Aktionskontrolle ist eine Referenz auf ein existierendes Objekt. Bedingungs-Kind-Knoten können hinzugefügt werden. | | Aktionskontrolle | actionctrl | | |Die Kennung in der Aktionskontrolle ist eine Referenz auf ein existierendes Objekt. Bedingungs-Kind-Knoten können hinzugefügt werden. |
 | Fahrdienstleiter | operator | emptycar, loadcar, addcar, leavecar. | |Im Wagen-Kennungs-Attribut (carids) muss eine kommaseparierte Liste von Wagen-Kennungen spezifiziert werden. | | Fahrdienstleiter | operator | emptycar, loadcar, addcar, leavecar. | |Im Wagen-Kennungs-Attribut (carids) muss eine kommaseparierte Liste von Wagen-Kennungen spezifiziert werden. |
 | System | sys | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#sys | | | System | sys | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#sys | |
 | Automat | auto | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#auto | | | Automat | auto | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#auto | |
-| Wagen | car | empty, loaded, maintenance, assignwaybill, resetwaybill, loco & function | empty, loaded, maintenance, cartype, location | %%<car id="test" cmd="assignwaybill" waybill="testbill"/>%% |+| Wagen | car | empty, loaded, maintenance, assignwaybill, resetwaybill, loco & function | empty, loaded, maintenance, cartype, location | %%<car id="test" cmd="assignwaybill" waybill="testbill"/>%% |
 | Aufstellblock | sb | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#sb | | | Aufstellblock | sb | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#sb | |
 | Fiddle Yard | seltab | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#seltab | | | Fiddle Yard | seltab | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#seltab | |
 | Ortschaft | location | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#location | | | %%<location id="Blaak" cmd="info" svalue="tx1"/>%% | | Ortschaft | location | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#location | | | %%<location id="Blaak" cmd="info" svalue="tx1"/>%% |
-| Uhr | clock | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#clock | |  // Modellzeit auf Systemzeit einstellen: // \\  %%<clock divider="1" hour="%syshour%" minute="%sysmin%"/>%%  |+| Uhr | clock | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#clock | | //Modellzeit auf Systemzeit einstellen: // \\  %%<clock divider="1" hour="%syshour%" minute="%sysmin%"/>%%  |
 | Drehscheibe | tt | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#tt | | | Drehscheibe | tt | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#tt | |
 | Extern | ext | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#ext | | | Extern | ext | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#ext | |
-| Wetter | weather | setweather, weathertheme | | +| Wetter | weather | setweather, weathertheme, go, stop | | 
-| Licht | light | flip, enable, disable | Aktiviert ein Licht von LightControl. | +| Licht | light | flip, enable, disable | Aktiviert ein Licht von LightControl. 
-| Model | model | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#model | Mit "modify" (ändern) werden die Unterknoten durch die neuen ersetzt. Auch Unterknoten werden gelöscht, wenn keine neuen vorhanden sind -> Stattdessen "change" verwenden.  | %%<model cmd="change">%% \\ %%<tx id="x" backred="255" backgreen="0" backblue="0"/>%% \\ %%</model>%% | +| Licht-Steuerung | lightctrl | go, stop | |Aktiviert / deaktiviert die Licht-Steuerung (LightControl). | %%<lightctrl cmd="go"/>%% \\ %%<lightctrl cmd="stop"/>%% 
 +| Model | model | Alle https://rocrail.net/software/rocrail-snapshot/rocrail/wrapper-en.html#model | | Kommando "modify" wird nicht unterstützt -> Stattdessen "change" verwenden.  | %%<model cmd="change">%% \\ %%<tx id="x" backred="255" backgreen="0" backblue="0"/>%% \\ %%</model>%% |  
 +| Geschwindigkeits-\\ Messstrecke | mv | reset, sets1, sets2, setdistance, setdistanceR | | | <mv cmd="sets2" s2="fb4712"/> |
  \\  \\
  
Line 549: Line 577:
 </code> </code>
  \\  \\
 +=====System-Variablen=====
 +siehe: [[https://wiki.rocrail.net/doku.php?id=text-gen-de#variablen]]
 +
 +
 +
 +
 =====Variablen-Formatierung===== =====Variablen-Formatierung=====
 Mit dem Format-Attribut ist es möglich, Variablen-Inhalt auf die gleiche Art zu formatieren, wie ''printf''.\\ Mit dem Format-Attribut ist es möglich, Variablen-Inhalt auf die gleiche Art zu formatieren, wie ''printf''.\\
Line 572: Line 606:
  
  \\  \\
-=====Variable Names===== +=====Variablen-Namen===== 
-In general variables may be named freelybut as soon as two scripts with the same variable name run at the same time the scripts may not work correctly. In those cases a script specific prefix added to the name of the variable may avoid any confusion:  +Innerhalb oben beschriebener Grenzen können Variablen-Namen frei gewählt werdenaber es kann vorkommen, daß zwei gleichnamige Variablen in zwei unterschiedlichen Skripten, die zur gleichen Zeit aufgerufen werden, Konflikte hervorrufen, Solche Fälle kann man vermeiden, indem man die Variablen-Namen je Script mit einem eigenen Präfix versieht\\ 
-  * change the original variable name from "vr_idx" \\ +  * der ursprüngliche Variablen-Name "vr_idx" \\ 
-  * within script "MyScriptNumber1.xml" to the variable name "vr_MSN1_idx" and \\ +  * wird im Script "MeinScriptNummer1.xml" geändert zu "vr_MSN1_idx" und \\ 
-  * within script "MyScriptNumber2.xml" to the variable name "vr_MSN2_idx" and so on. \\+  * wird im Script "MeinScriptNummer2.xml" geändert zu "vr_MSN2_idx" und \\ 
 +\\ 
 +=====Temporäre Variablen===== 
 +Um eine Variable  von Laufzeit zu Laufzeit in Rocrail zu speichern, muss diese Variable als „generiert“ "false" definiert werden: \\
  
-=====Variables defined as "Generated"===== +====Beispiel====
-As long as a variable does not need to store any values from runtime to runtime of Rocrail those variables can be defined as "generated": \\ +
-====Example====+
 <code xml> <code xml>
 <xmlscript> <xmlscript>
-  <vr id="vr_MSN3_lastUsedLocomotive" value="0" text="br89"/> +  <vr id="vr_MSN3_zuletztBenutzteLokomotive" value="0" text="br89" generated="false"/> 
-  <vr id="vr_MSN3_tmp" value="0" text="" generated="true"/>+  <vr id="vr_MSN3_tmp" value="0" text=""/>
 </xmlscript> </xmlscript>
 </code> </code>
-The variable "vr_MSN3_lastUsedLocomotivewill be stored within the Rocrail plan file. \\ +Die Variable "vr_MSN3_zuletztBenutzteLokomotivewird in der Rocrail Plan-Datei gespeichert. \\ 
-The variable "vr_MSN3_tmp" will not be stored within the Rocrail plan file +Die Variable "vr_MSN3_tmp" wird nicht in der Rocrail Plan-Datei gespeichert, sondern mit dem Beenden von Rocrail gelöscht\\
 \\ \\
  
xmlscripting-de.1571072113.txt.gz · Last modified: 2019/10/14 18:55 by hermannk