User Tools

Site Tools


xmlscripting-de

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
xmlscripting-de [2018/11/12 08:56] – external edit 127.0.0.1xmlscripting-de [2019/05/05 23:35] 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 375: Line 384:
  
 ===== 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 392:
 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 418:
  
 ===== 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 427:
 :!: 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 434:
  
 ==== 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 430: Line 445:
 | 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, auto, f0...f28, home | **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 | **block** ist wahr, wenn die Lok in einem Block ist \\ "**//blockID//**" ist wahr, wenn die Lok in einem Block mit "//blockID//" ist |
 | Wagen | car | empty, loaded, maintenance, cartype, waybill, "//blockID//" | Siehe Lokomotive | | Wagen | car | empty, loaded, maintenance, cartype, waybill, "//blockID//" | Siehe Lokomotive |
 | Frachtschein | waybill | waiting, shipping, delivered, "//destinationID//", "//originID//" |  | | Frachtschein | waybill | waiting, shipping, delivered, "//destinationID//", "//originID//" |  |
Line 436: Line 451:
  
 ==== Klassen-Objekte ==== ==== Klassen-Objekte ====
 +|< >|
 ^ Objekt-Name ^ Objekt-Typ ^ ^ Objekt-Name ^ Objekt-Typ ^
 | Block | bk | | Block | bk |
Line 443: Line 459:
  
 ===== 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 475:
 | 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 517:
 </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.txt · Last modified: 2024/02/16 01:35 by rainerk