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/03/13 09:38] – [Accessory erzeugen] akuhtz | tools:scripting-node-syntax [2022/09/27 08:03] (aktuell) – [Makro konfigurieren] 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 41: | Zeile 41: | ||
## ab Wizard-Build 3540 | ## ab Wizard-Build 3540 | ||
set aspect 0 accessory=${selectedAccessory} name=" | set aspect 0 accessory=${selectedAccessory} name=" | ||
+ | |||
+ | ## ab Wizard-Build 4154 | ||
+ | set feedback 10 name=" | ||
</ | </ | ||
Zeile 132: | Zeile 135: | ||
</ | </ | ||
^ config | ^ config | ||
- | | macro | repeat | + | | macro | repeat |
| | slowdown | | | slowdown | ||
| macrotime | | macrotime | ||
Zeile 192: | 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 203: | Zeile 208: | ||
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> | ||
Zeile 316: | Zeile 323: | ||
## | ## | ||
</ | </ | ||
+ | |||
+ | Um längere Texte hinterlegen zu können, kann die ''## | ||
+ | < | ||
+ | ## | ||
+ | ## | ||
+ | </ | ||
+ | |||
{{ : | {{ : | ||
Zeile 341: | Zeile 355: | ||
| '': | | '': | ||
| '': | | '': | ||
+ | | '': | ||
==== 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 355: | Zeile 384: | ||
## | ## | ||
</ | </ | ||
+ | |||
+ | 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 ==== | ==== Autor ==== | ||
Zeile 377: | Zeile 423: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
Zeile 390: | Zeile 437: | ||
* '' | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
- | + | * '' | |
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
Zeile 429: | Zeile 482: | ||
+ | ===== 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 466: | Zeile 542: | ||
====== 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 485: | Zeile 564: | ||
- | ===== 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.1552466318.txt.gz · Zuletzt geändert: 2019/03/13 09:38 von akuhtz