tools:scripting-node-syntax
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
tools:scripting-node-syntax [2019/01/08 21:33] – [Port-Typ ändern] akuhtz | tools:scripting-node-syntax [2024/08/26 09:35] (aktuell) – [Makro konfigurieren] delete macro akuhtz | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
**Basisbefehle** sind Anweisungen an den Knoten, bestimmte Einstellungen durchzuführen (z.B. bei einem Lichtport die Helligkeit einzustellen). Basisbefehle bestehen aus einem Anweisungswort und zugehörigen Parametern. Befehle und Parameter müssen gültige Anweisungen ergeben, sonst wird die Anweisung nicht ausgeführt. | **Basisbefehle** sind Anweisungen an den Knoten, bestimmte Einstellungen durchzuführen (z.B. bei einem Lichtport die Helligkeit einzustellen). Basisbefehle bestehen aus einem Anweisungswort und zugehörigen Parametern. Befehle und Parameter müssen gültige Anweisungen ergeben, sonst wird die Anweisung nicht ausgeführt. | ||
- | **Templatebefehle** sind vorgelagerte Anweisungen zur Textersetzung. Es wird die Templatesyntax [[https:// | + | **Templatebefehle** sind vorgelagerte Anweisungen zur Textersetzung. Es wird die Templatesyntax |
**Menübefehle** sind nochmal vorgelagert und werden verwendet, um ein Menü anzuzeigen, in welchem Parameter vom Benutzer abgefragt werden - wie z.B. welche Ports verwendet werden sollen. Diese Parameter werden internen Variablen zugewiesen und können dann mit Hilfe der Templates ausgewertet werden. | **Menübefehle** sind nochmal vorgelagert und werden verwendet, um ein Menü anzuzeigen, in welchem Parameter vom Benutzer abgefragt werden - wie z.B. welche Ports verwendet werden sollen. Diese Parameter werden internen Variablen zugewiesen und können dann mit Hilfe der Templates ausgewertet werden. | ||
Zeile 27: | Zeile 27: | ||
==== Label zuweisen ==== | ==== Label zuweisen ==== | ||
- | Label sind Namen von Ports, Macros und Accessorys. Die Zuweisung der Namen erfolgt mit dem // | + | Label sind Namen von Ports, Macros, Accessories |
< | < | ||
## change the label | ## change the label | ||
Zeile 38: | Zeile 38: | ||
## ab Wizard-Build 3032 | ## ab Wizard-Build 3032 | ||
set flag 3 name=" | set flag 3 name=" | ||
+ | |||
+ | ## ab Wizard-Build 3540 | ||
+ | set aspect 0 accessory=${selectedAccessory} name=" | ||
+ | |||
+ | ## ab Wizard-Build 4154 | ||
+ | set feedback 10 name=" | ||
</ | </ | ||
Zeile 58: | Zeile 64: | ||
reselect | reselect | ||
</ | </ | ||
+ | |||
+ | Ab Build 3489:\\ | ||
+ | Um einen Knoten-Reset nur dann auszulösen wenn der Knoten den //Pending Restart// Fehler gesetzt hat, muss folgender Befehl verwendet werden: | ||
+ | < | ||
+ | restart pendingonly=[true|false] delay=3000 | ||
+ | </ | ||
+ | Wenn '' | ||
+ | Falls der //Pending Restart// Fehler nicht gesetzt ist, werden diese Anweisungen übersprungen. | ||
==== Port konfigurieren ==== | ==== Port konfigurieren ==== | ||
Zeile 121: | Zeile 135: | ||
</ | </ | ||
^ config | ^ config | ||
- | | macro | repeat | + | | macro | repeat |
| | slowdown | | | slowdown | ||
| macrotime | | macrotime | ||
Zeile 173: | Zeile 187: | ||
## Servobewegung abwarten mit Portnummer | ## Servobewegung abwarten mit Portnummer | ||
- | add step ptype=servoQueryMove | + | add step ptype=moveServoQuery |
</ | </ | ||
Zeile 181: | Zeile 195: | ||
| servo | start | | | servo | start | | ||
| switch | on / off | | | switch | on / off | | ||
- | | light | on / off / up / down / neon/ blinka / blinkb / flasha / flashb / doubleflash | | + | | switchpair | on / off | |
+ | | light | on / off / up / down / neon / blinka / blinkb / flasha / flashb / doubleflash | ||
+ | | input | query0 / query1 | ||
| accessoryOkay | no_feedback / query0 / query1 | | | accessoryOkay | no_feedback / query0 / query1 | | ||
| backlight | start | | | backlight | start | | ||
Zeile 188: | Zeile 204: | ||
| delay | - | | | delay | - | | ||
| randomDelay | - | | | randomDelay | - | | ||
- | | moveservoquery | + | | moveServoQuery |
Für die Typen '' | Für die Typen '' | ||
- | Folgendes ist noch nicht, bzw. nur in den Testversionen implementiert: | + | Weitere Beispiele: |
- | ^ ptype | + | < |
- | | input | query0 | + | add step ptype=accessoryOkay |
+ | </code> | ||
+ | |||
+ | |||
+ | Makro löschen: | ||
+ | < | ||
+ | delete macro 0 | ||
+ | |||
+ | delete macro $currentMacroIndex | ||
+ | set macro ${currentMacroIndex} name="" | ||
+ | </ | ||
Zeile 205: | Zeile 232: | ||
add aspect 0 macroname=%weiche1Gerade% | add aspect 0 macroname=%weiche1Gerade% | ||
add aspect 1 macronumber=1 | add aspect 1 macronumber=1 | ||
+ | |||
+ | ## set the name of the aspect | ||
+ | add aspect 2 macronumber=2 aspectname=" | ||
</ | </ | ||
+ | |||
Das Startup-Verhalten eines Accessorys kann mit folgendem Befehl definiert werden: | Das Startup-Verhalten eines Accessorys kann mit folgendem Befehl definiert werden: | ||
< | < | ||
config accessory startup aspect=1 | config accessory startup aspect=1 | ||
</ | </ | ||
- | Als Startup-Verhalten ist die Zuweisung eines Aspekts (aspect=1), das Wiederherstellen des letzten Begriffes (config accessory startup restore) oder keine Aktion (config accessory startup none) möglich. | + | Als Startup-Verhalten ist die Zuweisung eines Aspekts ('' |
:!: Das Accessory wird auf den Knoten übertragen und permanent gespeichert! | :!: Das Accessory wird auf den Knoten übertragen und permanent gespeichert! | ||
+ | |||
+ | Accessory löschen erfolgt mit folgendem Befehl: | ||
+ | < | ||
+ | ## delete the accessory: Remove all steps and set the params to default values | ||
+ | delete accessory 0 | ||
+ | set accessory ${currentAccessoryIndex} name="" | ||
+ | </ | ||
+ | |||
===== Templatebefehle | ===== Templatebefehle | ||
Zeile 305: | Zeile 344: | ||
## | ## | ||
</ | </ | ||
+ | |||
+ | Um längere Texte hinterlegen zu können, kann die ''## | ||
+ | < | ||
+ | ## | ||
+ | ## | ||
+ | </ | ||
+ | |||
{{ : | {{ : | ||
Zeile 330: | Zeile 376: | ||
| '': | | '': | ||
| '': | | '': | ||
+ | | '': | ||
==== VID/PID prüfen ==== | ==== VID/PID prüfen ==== | ||
+ | |||
+ | Mit der Kombination aus PID / VID [[http:// | ||
+ | |||
+ | Die VID (Vendor-ID) und PID (Product-ID) sind Bestandteil der UID (Unique-ID). | ||
+ | |||
+ | Beispiel: | ||
+ | < | ||
+ | V 0D P 84002100 << UID | ||
+ | ^ ^ | ||
+ | ¦ ¦ | ||
+ | ¦ ------- 0x84 --> 132 << PID | ||
+ | ¦ | ||
+ | ------------ 0x0D --> | ||
+ | </ | ||
Um die VID und PID zu prüfen, kann die ''## | Um die VID und PID zu prüfen, kann die ''## | ||
Zeile 345: | Zeile 406: | ||
</ | </ | ||
- | Ab Wizard Build 2827 | + | Die Angabe der VID(PID kann auch als Hex-Zahl erfolgen mit '' |
+ | < | ||
+ | ## ab Wizard-Build 4154 | ||
+ | ## | ||
+ | </ | ||
+ | |||
+ | ==== Firmware-Version prüfen ==== | ||
+ | |||
+ | ## ab Wizard-Build 4490 | ||
+ | |||
+ | Um die Firmware-Version zu prüfen, kann die ''## | ||
+ | < | ||
+ | ## | ||
+ | </ | ||
+ | |||
+ | Mit der obigen Anweisung wird geprüft ob der Knoten eine Firmware-Version >= min und Firmware-Version < max hat. Der max Wert ist also exclusive. Ist dies nicht der Fall wird eine Fehlermeldung angezeigt. Die Werte für die Firmware-Version müssen im Format #.#.# angegeben werden. | ||
+ | |||
+ | ==== Autor ==== | ||
+ | |||
+ | Mit der Anweisung ''## | ||
+ | < | ||
+ | ## | ||
+ | </ | ||
+ | |||
====== Vordefinierte Variablen | ====== Vordefinierte Variablen | ||
Scripte - gerade wenn sie universell für verschiedene Knoten formuliert sein sollen - brauchen auch Informationen über den Zielknoten. Deshalb gibt es vordefinierte Variablen, die man im Script auswerten kann. | Scripte - gerade wenn sie universell für verschiedene Knoten formuliert sein sollen - brauchen auch Informationen über den Zielknoten. Deshalb gibt es vordefinierte Variablen, die man im Script auswerten kann. | ||
Zeile 359: | Zeile 444: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
Zeile 371: | Zeile 457: | ||
* '' | * '' | ||
* '' | * '' | ||
- | + | * '' | |
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
Zeile 408: | Zeile 503: | ||
+ | ===== Sprachabhängige Fehlermeldung ===== | ||
+ | |||
+ | Eine sprachabhängige Fehlermeldung kann durch Auswertung der '' | ||
+ | < | ||
+ | #if ($node_macro_size < $led_count) | ||
+ | #if ($user_lang == " | ||
+ | $exceptionThrower.throwUserDefined(" | ||
+ | #else | ||
+ | $exceptionThrower.throwUserDefined(" | ||
+ | #end | ||
+ | #end | ||
+ | </ | ||
+ | |||
+ | ===== Formattierung von Zahlen ===== | ||
+ | |||
+ | Mit folgender Erweiterung '' | ||
+ | |||
+ | < | ||
+ | set switch ${switchPort0} name=" | ||
+ | set switch ${switchPort1} name=" | ||
+ | </ | ||
+ | |||
+ | Weitere Info siehe [[https:// | ||
====== Tricks mit Velocity ====== | ====== Tricks mit Velocity ====== | ||
Zeile 445: | Zeile 563: | ||
====== Textreste | ====== Textreste | ||
- | **Tipps zu velocity**\\ | + | **Tipps zu velocity** |
- | Der Kontext ist eine Map< | + | |
- | Die #set-Zeilen im Script legen dann die Variablen in den Kontext rein und diese werden dann später beim Ersetzen verwendet. Die aufgerufene Funktion kann die Werte mit dem Key wieder rausholen. | + | Der Kontext ist eine '' |
+ | |||
+ | Die '' | ||
Erläuterung hierzu: https:// | Erläuterung hierzu: https:// | ||
- | Text wieder anzeigen: velocityEngine.Evaluate() | + | Text wieder anzeigen: |
Alles ab hier ist noch Sammelsurium ! | Alles ab hier ist noch Sammelsurium ! | ||
Zeile 464: | Zeile 585: | ||
- | ===== Script Header | + | ===== Macro Level ===== |
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | |||
- | Jedes Script hat mit einem Header in der ersten Zeile zu beginnen. In diesem Header wird festgelegt für welchen Knotentyp und für welche Script Engine Version das Script erstellt wurde. | ||
- | |||
- | < | ||
- | <Head PID=125 VID=13 VER=1.0> | ||
- | </ | ||
- | |||
- | Mit der Kombination aus PID / VID [[http:// | ||
Zusätzlich ist der Macro-Level zu prüfen. Der Macro-Level bezeichnet den Funktionsumfang der Makro-Engine und wird vom Knoten per Feature bekannt gegeben. | Zusätzlich ist der Macro-Level zu prüfen. Der Macro-Level bezeichnet den Funktionsumfang der Makro-Engine und wird vom Knoten per Feature bekannt gegeben. |
tools/scripting-node-syntax.1546979626.txt.gz · Zuletzt geändert: 2019/01/08 21:33 von akuhtz