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 revision Previous revision
Next revision
Previous revision
xmlscripting-de [2018/12/06 11:36]
rjversluis [Status-Objekte]
xmlscripting-de [2019/05/12 23:45] (current)
rainerk
Line 16: Line 16:
 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 __**[[http://​rocrail.net/​software/​rocrail-snapshot/​rocrail/​wrapper-en-index.html|Rocrail plan.xml]]**__.\\+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]]**__.\\
  
  \\  \\
Line 359: Line 359:
 </​code>​ </​code>​
 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.\\
- +\\ 
 +===Funktions-Beispiel=== 
 +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. .\\ 
 +<code xml> 
 +<​xmlscript>​ 
 +  <query vr="​lcid"​ table="​bklist"​ id="​cb4"​ get="​locid"/>​ 
 +  <fn id="​@lcid"​ fnchanged="​3"​ f3="​true"/>​ 
 +</​xmlscript>​ 
 +</​code> ​
  \\  \\
 ====set==== ====set====
Line 371: Line 380:
 </​code>​ </​code>​
 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.\\
- +
  \\  \\
 +====clock====
 +|< >|
 +| 15401+ |
 +Mit dem "clock get"​-Befehl:​
 +<code xml>
 +  <clock cmd="​get"/> ​
 +</​code>​
 +werden drei Variable aktualisiert.
 +|< >|
 +^ Variablen-Name ^ Wert ^ Text ^
 +| modeltime | Stunde * 3600 + Minute * 60 + Sekunden | hh:mm.ss |
 +| realtime | Stunde * 3600 + Minute * 60 + Sekunden | hh:mm.ss |
 +| systemtick | Anzahl von 10ms seit Rocrail-Server-Start | - |
 +Der systemtick läuft bei 4294967295 (119,3 Stunden) auf 32bit und 18446744073709551615 auf 64bit-Systemen über.\\
  
 + \\
 ===== Format von Bedingungen ===== ===== Format von Bedingungen =====
 +|< >|
 | Wert | Komparator | Wert |\\ | Wert | Komparator | Wert |\\
 Weitere Bedingungen müssen mit einem //​Pipe//​-Zeichen (senkrechter Strich: | ) ohne zusätzliche Leerzeichen getrennt werden.\\ Weitere Bedingungen müssen mit einem //​Pipe//​-Zeichen (senkrechter Strich: | ) ohne zusätzliche Leerzeichen getrennt werden.\\
Line 382: Line 407:
 Für mögliche Variable siehe: __**[[:​text-gen-de#​variablen|Text-Variable]]**__ \\ Für mögliche Variable siehe: __**[[:​text-gen-de#​variablen|Text-Variable]]**__ \\
 \\ \\
 +|< >|
 ^ System-Variablen ^^ ^ System-Variablen ^^
 | &time | Modell-Zeit in Sekunden | | &time | Modell-Zeit in Sekunden |
  
  \\  \\
 +|< >|
 ^ Komparatoren ^^ ^ Komparatoren ^^
 | = | gleich; Zahlen | | = | gleich; Zahlen |
Line 406: Line 433:
  
 ===== Format von Status/​Klassen ===== ===== Format von Status/​Klassen =====
 +|< >|
 | Objekt-Typ | | Objekt-Kennung ohne Leerzeichen | | Komparator | | Status-/​Klassen-Wert |\\ | Objekt-Typ | | Objekt-Kennung ohne Leerzeichen | | Komparator | | Status-/​Klassen-Wert |\\
 Die Werte müssen mit Leerzeichen getrennt werden.\\ Die Werte müssen mit Leerzeichen getrennt werden.\\
Line 414: Line 442:
 :!: Objekt-Kennungen dürfen __keine Leerzeichen__ enthalten! Stattdessen z.B. Unterstriche oder Punkte verwenden.\\ :!: Objekt-Kennungen dürfen __keine Leerzeichen__ enthalten! Stattdessen z.B. Unterstriche oder Punkte verwenden.\\
 \\ \\
 +|< >|
 ^ Komparatoren ^^ ^ Komparatoren ^^
 |  =  | Status: gleich | |  =  | Status: gleich |
Line 420: Line 449:
  
 ==== Status-Objekte ==== ==== Status-Objekte ====
 +|< >|
 ^ Objekt-Name ^ Objekt-Typ ^ Status-Werte ^ Hinweis ^ ^ Objekt-Name ^ Objekt-Typ ^ Status-Werte ^ Hinweis ^
 | Signal | sg | red, green, yellow, white, blank, aspect number | | | Signal | sg | red, green, yellow, white, blank, aspect number | |
Line 436: Line 466:
  
 ==== Klassen-Objekte ==== ==== Klassen-Objekte ====
 +|< >|
 ^ Objekt-Name ^ Objekt-Typ ^ ^ Objekt-Name ^ Objekt-Typ ^
 | Block | bk | | Block | bk |
Line 443: Line 474:
  
 ===== Befehle ===== ===== Befehle =====
 +|< >|
 ^ Objekt-Name ^ Objekt-Typ ^ Befehle ^ Status ^ Hinweise ^ Beispiel ^ ^ Objekt-Name ^ Objekt-Typ ^ Befehle ^ Status ^ Hinweise ^ Beispiel ^
-| Lok | lc | Alle http://​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://​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.| ​
 | 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 | | 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"/>​%% |
 | Weiche | sw | Alle | | | <sw id="​W5"​ cmd="​close">​ | | Weiche | sw | Alle | | | <sw id="​W5"​ cmd="​close">​ |
Line 458: Line 490:
 | 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 http://​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 http://​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 http://​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 http://​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 http://​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 http://​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 http://​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 http://​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 | |
 | Licht | light | flip, enable, disable | Aktiviert ein Licht von LightControl. | | Licht | light | flip, enable, disable | Aktiviert ein Licht von LightControl. |
-| Model | model | Alle http://​rocrail.net/​software/​rocrail-snapshot/​rocrail/​wrapper-en.html#​model | Mit "​modify"​ (modifizieren) können die Unterknoten Attribute enthalten, die in den Objekten zusammengeführt werden. | %%<model cmd="​change">​%% \\ %%<tx id="​x"​ backred="​255"​ backgreen="​0"​ backblue="​0"/>​%% \\ %%</​model>​%% | +| Model | model | Alle https://​rocrail.net/​software/​rocrail-snapshot/​rocrail/​wrapper-en.html#​model | Mit "​modify"​ (modifizieren) können die Unterknoten Attribute enthalten, die in den Objekten zusammengeführt werden. | %%<model cmd="​change">​%% \\ %%<tx id="​x"​ backred="​255"​ backgreen="​0"​ backblue="​0"/>​%% \\ %%</​model>​%% | 
  \\  \\
  
Line 500: Line 532:
 </​code>​ </​code>​
  \\  \\
 +=====Variablen-Formatierung=====
 +Mit dem Format-Attribut ist es möglich, Variablen-Inhalt auf die gleiche Art zu formatieren,​ wie ''​printf''​.\\
 +====Beispiel====
 +<code xml>
 +<​xmlscript>​
 +  <vr id="​var1"​ value="​3"​ text="​Hello"/>​
 +  <vr id="​var2"​ value="​5"​ text="​RocrailFans"/>​
 +  <vr id="​var3"​ format="​%s%02d:​%04d%s"​ text="​@var1 #var1 #var2 @var2"/>​
 +  <trace text="​@var3"/>​
 +</​xmlscript>​
 +</​code>​
 +Ausgabe __mit__ dem Format-Attribut sieht so aus:
 +<​code>​
 +Hello03:​0005RocrailFans
 +</​code>​
 +Ausgabe __ohne__ das Format-Attribut sieht so aus:
 +<​code>​
 +Hello 3 5 RocrailFans
 +</​code>​
  
 +
 +
 + \\
 =====Tipps===== =====Tipps=====
 ====Regelkonformes XML ==== ====Regelkonformes XML ====
 Um das XML-Skript auf Konformität zu überprüfen,​ kann es mit einem Web-Browser geöffnet werden.\\ Um das XML-Skript auf Konformität zu überprüfen,​ kann es mit einem Web-Browser geöffnet werden.\\
 Einige Zeichen müssen dafür durch Escape-Codes ersetzt werden: Einige Zeichen müssen dafür durch Escape-Codes ersetzt werden:
 +|< >|
 ^ Zeichen ^ Code ^ ^ Zeichen ^ Code ^
 |  <  | &lt; | |  <  | &lt; |
xmlscripting-de.1544092597.txt.gz · Last modified: 2018/12/06 11:36 by rjversluis