Mit den Avio-Scripten lassen sich mathematische oder logische sowie komplexe Funktionen programmieren, die das Spektrum des Avio-System deutlich erweitern. Für häufig benötigte Grundfunktionen wie zum Beispiel Vergleich, logisches Und/Oder, Addition, Multiplikation etc. werden fertige Scripte mitgeliefert. Mit der Programmiersprache Lua können Sie jedoch auch eigene Scripte schreiben und nahezu beliebige Funktionen realisieren. Ein Lua-Entwicklungs-Tool ist im Lieferumfang einer Wings Engine enthalten. Für die separate Anwendung können Sie eine Dongle-basierte Lizenz für den Avio Service erwerben.
Folgende Avio-Knoten unterstützen Avio-Scripte:
Wings Vioso RX
Wings Vioso RX
Wings IOboxen (Firmware vom 05. Juni 2013 oder neueren Datums notwendig)
Avio Service
Wie Sie den Avio-Knoten die Scripte hinzufügen, erfahren Sie im nachfolgenden Thema unten.
Eine weitergehende Einführungen in Avio-Scripte und in die Programmiersprache Lua finden Sie in einem PDF, das sich auch gut ausdrucken lässt, siehe AvioScript.pdf
Um Scripte verwenden zu können, müssen Sie diese zunächst auswählen und installieren, so dass Sie im Avio Manager verfügbar sind.
Öffnen Sie den Avio Manager. Klicken Sie mit der rechten Maustaste auf den Knoten, bei dem Sie ein oder mehrere Scripte installieren möchten, und wählen Sie Open in Web Browser, worauf die Web-Oberfläche erscheint. Hinweis: Die Installation von Scripten ist bei Wings Vioso RX, Wings IOboxen und beim Avio Service möglich und hier werden die Informationen und eingehenden Verbindungen auch gespeichert. Die Scripte sind prinzipiell systemweit mit allen Avio-Channels verwendbar.
Klicken Sie links auf Scripts, worauf die Seite für die Skripte erscheint. Um ein Skript auszuwählen, klicken Sie rechts bei Installed Scripts auf Add a script, worauf die Auswahlliste erscheint. Unter Add existing scripts finden Sie die mitgelieferten Skripte. Weiter unten in der Liste unter Add custom scripts finden Sie benutzerdefinierte Scripte, die Sie ggf. schon importiert haben.
Wenn Sie in der Liste ein Skript klicken, erscheinen eine kurze Beschreibung der Funktion und die verfügbaren Parameter. Bei Name können Sie angeben, mit welcher Bezeichnung das Script im Avio Manager erscheinen soll.
Nachdem Sie alles konfiguriert haben, klicken Sie auf Save, worauf es in der Liste Installed Scripts erscheint und im Avio Manager unter dem entsprechnden Knoten im Ordner Avio Script sichtbar ist.
Wenn Sie den Ordner Avio Script und das Script geöffnet haben, können Sie dessen Funktionalität nutzen, indem Sie Inputs und Outputs entsprechend mit anderen Avio Channels verknüpfen, siehe auch Wings Avio Manager im Überblick.
Neue Skripte können Sie auch im Avio Manager hinzufügen, indem Sie rechts im Editor mit der rechten Maustaste auf einen Port des gewünschten Knoten klicken und Add Script
... klicken.
Wie zuvor schon erwähnt, werden einige Scripte für Häufig benötige Standardfunktionen mit geliefert. Folgende Scripte sind verfügbar:
16 Bit to 8 ...die zur Wandlung eines 16 Bit Streams in einen MSB- und einen LSB-Stream, z. B. für DMX-Signale.
Add ...dient zur Addition zweier Werte, wobei ein Wert fest vorgegeben werden kann.
Append To File ...schreibt den Wert eines Channels in eine Textdatei, wenn der Input auf 1 gesetzt wird. Pfad und für die Textdatei werden im Script definiert.
AND ...ist eine logische Und-Funktion. Sie besitzt zwei oder mehr Inputs (Parameter NrOfInputs) und wenn der Wert aller Inputs jeweils 1 ist, wird der Output auf 1 gesetzt.
ApplyValue ...mit diesem Script werden Werte oder Strings, die bei input value bzw. input string gesetzt wurden, an output value bzw. output string gesendet, wenn der Channel activate auf 1 gesetzt wird.
Average ...ermittelt den Durchschnitt aller Werte der Input-Channels. Die Anzahl der gewünschten Input-Channels wird bei NrOfInputs angegeben.
ChangesOnly ...meldet nur Änderungen.
Compare ...dient zum Vergleichen zweier Werte. Wenn beide Werte gleich sind, wird der Output auf 1 gesetzt.
Convert Range ...konvertiert den Bereich Range 1 in den Bereich Range 2. Beide Bereiche werden jeweils durch die Angabe von Minimum und Maximum definiert.
Counter with Reset ...ist ein Zähler mit Reset-Channel. Funktionsweise wie Counter (siehe unten), jedoch kann der Output-Wert mit dem Channel Reset zurückgesetzt werden.
Counter with Set ...ist ein Zähler mit Set-Channel. Funktionsweise wie Counter (siehe unten), jedoch kann der Output-Wert mit dem Channel set value gesetzt werden.
Counter ...ist ein Zähler, der einen vorgegebenen Wert (Parameter Increment) dem aktuellen Output hinzuaddiert oder abzieht.
DataStore ...speichert Werte oder Texte, die an das Script gesendet werden. Dies ist nützlich, wenn die letzten Werte auch nach einem Neustart noch verfügbar sein sollen. Sie können angeben, wie viele Channels für die Speicherung von Werten und Texten verfügbar sein sollen. Die Channels erscheinen in getrennten Ports DataStoreNum und DataStoreText. Die Verbindungen sind folgendermaßen zu ziehen: Wertquelle numValue bzw. txtValue
Wertziel (z. B. Statusbar).
Debounce ...setzt den Output auf 1 und nach dem definierten Delay wieder auf 0. Während des Delays werden die eingehenden Input-Werte ignoriert (im Unterschied zum Script Wipe Contact). Mit dem Script lässt sich beispielsweise unahängig von der Dauer eines Tastendrucks eine bestimmte "Haltezeit" eines Schalters erzielen.
Delay ...dient zum Verzögern von Befehlen um eine definierte Zeit (Parameter Delay). Es können mehrere Outputs angelegt werden (Parameter NrOfInputs), die dann nacheinander um den Delay-Wert verzögert ausgeben, also nicht gleichzeitig. Wenn der Input-Channel 1 ist, werden die Outputs mit der angegebenen Verzögerung auf 1 gesetzt. Wenn während der Abarbeitung des Delays der Input erneut auf 1 gesetzt wird, erfolgt nach diesem Durchlauf ein erneuter Durchlauf des Delays.
DelayNoPendingValues ...wie oben bei Delay, jedoch wird der Input während der Abarbeitung des Delays ignoriert, es findet also in jedem Fall nur ein Durchlauf statt.
DetectArea ...erkennt, ob die Eingänge mit dem vorgegebenen Bereich übereinstimmen.
Division ...nimmt eine Division vor (Dividend : Divisor), wobei die Werte von Dividend und Divisor auch vorgegeben werden können.
Download Webfile ...lädt eine Datei von einer bestimmten URL und speichert sie im angegebenen Ordner. Der Link zur Datei wird über den Wert im Knoten angegeben, weitere Optionen.
Email ...sendet eine Information per E-Mail an die angegebene Adresse (nur bei Avio Service und Wings Vioso RX verfügbar).
ExecuteIfAllowed ...die Weitergabe einer Information wird für eine definierte Zeit gesperrt.
Extract Date Time ...extrahiert Datums- und Zeitinformationen von einem ISO 8601-Datumsformat (z. B. 2014 12 01T14: 02: 24 + 01: 00), weitere Infos...
GestureRecognition ...erkennt verschiedenen Gesten von x und y-Koordinaten.
Get Area ...detektiert, ob der Mauszeiger innerhalb oder außerhalb einer Fläche liegt und setzt den Output-Wert auf 1, wenn der Mauszeiger innerhalb der Fläche liegt. Die Fläche wird durch zwei Punkte im Koordinatensystem festgelegt und ist Teil einer Gesamtfläche. Die Größe der Gesamtfläche wird bei Width und Height festgelegt. Sie bezieht sich auf den gesamten Desktop. Beide Flächen stehen in Relation zueinander.
Get Rotation ...ermittelt aus den Koordinaten zweier Punkte den Winkel der verbindenden Linie und gibt den Wert als Gradzahl aus.
Increment Decrement With Hold ...erhöht oder reduziert einen Wert um einen definierbaren Betrag, wenn der Plus- oder Minus-Channel kurz auf 1 geschaltet wird. Wenn ein Channel dauerhaft auf 1 steht, wird der Wert in einem definierbaren Intervall verändert. Der zulässige Wertebereich ist ebenfalls definierbar.
L_AcousticsLA8 ...dient zur Steuerung der Audio-Endstufen LAcoustics LA4/LA8.
Multiplexer ...ist ein Umschalter für mehrere Inputs (Parameter NrOfInputs). Über den Channel Select Input kann bestimmt werden, welchen der Inputs der Output ausgibt.
Multiplication ...multipliziert zwei Werte, ein Wert kann vorgegeben werden.
Not ...führt eine logische Umkehrfunktion aus. Wenn der Input 1 ist, gibt der Output 0 aus und wenn der Input 0 ist, gibt der Output 1 aus.
Or ...führt eine logische Oder-Funktion aus. Der Output gibt 1 aus, sobald einer Inputs 1 ist. Die Anzahl der Inputs kann vorgegeben werden (Parameter NrOfInputs).
ParseIseoVariableFile ...dient zum Auslesen von IseoVariabelen-Textdateien. Das Skript analysiert zum Initialisieren die angegebene Textdatei und erstellt je enthaltener Variable einen Textchannel. Die einzelnen Variablenwerte sind im bekannten Format gespeichert: [Variablenname]|[Variablenwert], also z.B.:
%time%|13:45:32
%date%|21.10.2014
%dmxValue1%|245
Daraus entstehen die Channels time, date und dmxValue1. Obwohl die Channels Textchannels sind, werden die Texte von Avio ggf. als Zahl interpretiert, wenn man den Channel z. B. auf eine Statusbar zieht.
Password Request ...ermöglicht eine Passwortabfrage.
PJLinkPower ...dient zum Ein-/Ausschalten von Projektoren, die PJLink unterstützen.
Ramp ...dient zur Veränderung eines Wertes zu einem Zielwert in einer vorgegebenen Zeit.
Scene Call Delayed ...setzt 8 Outputs auf den Wert, der bei jeweils Default Output angegeben ist, wenn der Input = 1 ist, wobei die Channels ihre Werte jeweils um den Wert Default delay verzögert ausgeben.
Scene Call ...setzt 8 Outputs auf den Wert, der bei jeweils Default Output angegeben ist, wenn der Input = 1 ist.
ScLanDmxUpd ...simuliert auf relativ einfache Art und Weise ein SC LAN Modul. Es kann lediglich SC LAN-Werte entgegen nehmen und diese mittels Avio-Channel darstellen. Änderungen am Avio-Channel werden wieder über das SC LAN-Protokoll übertragen, weitere Infos...
Set Text ...sendet einen zuvor definierten Text, wenn der Input 1 ist.
Set Value when Value Reached ...setzt den Output auf den definierten Wert Default output, wenn der Input-Wert über dem angegebenen Schwellwert Default input liegt. Liegt der Input-Wert darunter, wird am Output 0 ausgegeben.
Set Value ...setzt den Output auf den vorgegebenen Wert, wenn der Input 1 ist.
Smoother ...sorgt für weiche Übergänge, wenn z. B. ein DMX-Channel von verschiedenen Wertquellen gesteuert werden soll. InputDirect wird immer durchgeschrieben und unterbricht das Smoothing, InputSmothing nähert sich diesem Wert mit der Fadetime an.
SNTP ...liefert die aktuelle Zeit, die es von einem vorher definierten Server erhalten hat, weitere Infos...
Start Program ...startet das angegebene Programm, wenn der Wert auf 1 gesetz wird. Es können auch Parameter für den Programmstart übergeben werden. Hinweis: Dieses Script ist nicht auf IOboxen verfügbar.
Subtract ...führt eine Subtraktion aus. Die Werte dafür können fest vorgegeben werden.
Time To String ...dient zur Wandlung von Millisekunden in das Format Stunden:Minuten:Sekunden 000:00:00. Der Channel Input Integer wird mit den gewünschten Zeit-Channels von der gewünschten Timelines verbunden und bei Output hh:mm:ss steht das gewandelte Zeitformat zur weiteren Verknüpfung zur Verfügung, siehe auch Avio-Ressourcen von Wings Vioso.
Trapezoid ... erzeugt einen Fade-In, hält den Wert für bestimmte Zeit und macht dann einen Fade-Out. Die Ein- und Ausblenddauer (Millisekunden) sowie die Haltezeit (Sekunden) kann vorgegeben werden.
UpTime ... zählt die Minuten und speichert sie in der angegebenen Datei, es geht nach dem Neustart weiter, so dass die Dauer periodischen Abläufe erfasst werden kann.
Wake on Lan ...weckt den PC mit der angegebenen Mac-Adresse auf, wenn der Wert auf 1 gesetzt wird.
Weather ...gibt die Wetterdaten von http://free.worldweatheronline.com für einen definierbaren Ort und Voraussagezeitraum aus. Für diesen Service ist ein Konto und ein Freigabecode des Webseiten-Betreibers erforderlich (nur bei Avio Service und Wings Vioso RX verfügbar).
Webrequest ...ruft die angegebene Internet-Adresse auf (URL). Dafür muss auch die Aktion zunächst ausgeführt werden, indem im Port Start der Channel Start auf 1 gesetzt wird.
WingsRXLogDeltacastResolution ... analysiert die Wings RX Logdatei auf Deltacast Resolution Einträge.
WingsRXLogLoadingError ... analysiert die Wings RX Logdatei auf gemeldete Lade- und Decodierfehler.
Wipe Contact ...setzt einen Output auf 1 und nach dem definierten Delay wieder auf 0; damit lässt beispielsweise unahängig von der Dauer eines Tastendrucks eine bestimmte "Haltezeit" eines Schalters erzielen.
Write File ...schreibt den Wert in eine Textdatei, wenn sich der Wert geändert hat. Dateiname und Speicherort müssen zuvor angegeben werden. Dieses Script wird nur vom Avio Service und von Wings Vioso RX unterstützt.
Einige Scripte sind nicht bei allen Avio-Knoten verfügbar, siehe Hinweise bei den Scripten.
Eine weitergehende Einführung in Avio-Scripte und in die Programmiersprache Lua finden Sie in einem PDF, das sich auch gut ausdrucken lässt, siehe AvioScript.pdf
siehe auch