Skript-Editor

Der Skripteditor wird, wie der Name schon sagt, zum Bearbeiten von Skript-Funktionen verwendet.
Es besteht im Wesentlichen aus einem Texteditor, in dem der Benutzer ein Skript unter Verwendung einer Metasprache mit einer unten beschriebenen Syntax schreiben kann.
Das Skript kann manuell geändert werden, wenn Sie die Syntax der Sprache vollständig verstehen. Andernfalls stehen ganz rechts im Editor einige Hilfsschaltflächen zur Verfügung, um die Erstellung/Bearbeitung des Skripts zu beschleunigen und zu erleichtern.
Jede Zeile eines Skripts wird von QLC+ in sequentieller Reihenfolge ausgeführt.

Kontrollen

Aktivieren Sie die Ausgabe und führen Sie das Skript aus, um seine Ausführung zu testen
Skriptname Ändern Sie den Namen des Skripts.
Wenn Sie auf diese Schaltfläche klicken, wird ein Popup angezeigt, in dem Sie den Skriptausschnitt auswählen können, den Sie an der aktuellen Cursorposition im Editor einfügen möchten.

Funktion starten : Öffnet den Dialog Funktionsauswahl, um eine zu startende Funktion auszuwählen.
Durch diesen Vorgang wird am Ende der Codezeile automatisch ein Kommentar mit dem QLC+-Namen der ausgewählten Funktion hinzugefügt.
Funktion stoppen: Öffnet das Dialogfeld Funktionsauswahl, um eine Funktion auszuwählen, die gestoppt werden soll. Wenn zum Zeitpunkt der Ausführung dieser Codezeile die ausgewählte Funktion nicht ausgeführt wird, hat diese Anweisung keine Auswirkung.
Durch diesen Vorgang wird am Ende der Codezeile automatisch ein Kommentar mit dem QLC+-Namen der ausgewählten Funktion hinzugefügt.
Blackout: Öffnet einen Dialog, der fragt, ob Blackout ein- oder ausgeschaltet werden soll.
Gerät festlegen : Öffnet den Auswahldialog für Fixture-Kanäle, in dem Sie die Kanäle auswählen können, die Sie mit dem Skript steuern möchten. Wenn mehrere Kanäle ausgewählt sind, fügt dieser Vorgang eine Codezeile für jeden ausgewählten Kanal hinzu. Standardmäßig ist der durch diesen Vorgang generierte DMX-Wert 0 und muss manuell mit dem Skripttexteditor geändert werden.
Durch diesen Vorgang wird am Ende der Codezeile automatisch ein Kommentar mit dem QLC+-Namen der ausgewählten Geräte und Kanäle hinzugefügt.
Systembefehl : Öffnet einen Dateidialog zur Auswahl des auszuführenden externen Programms/Skripts. Bitte beachten Sie, dass die ausgewählte Datei ausführbar sein muss, um akzeptiert zu werden. Sobald eine Datei ausgewählt wurde, werden Sie in einem weiteren Dialog aufgefordert, die Programm-/Skriptargumente einzugeben. Wenn keine erforderlich sind, lassen Sie das Feld einfach leer.
Warten: Öffnet einen Dialog, der die Wartezeit anfordert, bevor das Skript die nächste Anweisung ausführen kann
Kommentar: Öffnet einen Dialog, der den Text von anfordert Der Kommentar, der an der Cursorposition im Editor eingefügt werden soll.
Ein Kommentar sieht im C-Sprachstil aus: Er beginnt mit „//“ und alles bis zum Ende der Zeile wird dann als Kommentar betrachtet
Zufallszahl : Öffnet ein Dialogfeld, in dem der Wertebereich abgefragt wird, in dem eine Randomisierung einer Zahl durchgeführt werden soll. Der resultierende Codeausschnitt wird an der aktuellen Cursorposition des Editors eingefügt.
Dies kann nützlich sein, um DMX-Werte zu randomisieren, die über das Schlüsselwort setfixture festgelegt wurden. Siehe unten.
Dateipfad: Öffnen Sie einen Dateidialog, um eine Datei auszuwählen. Der absolute Pfad und der Dateiname werden an der aktuellen Position des Editors eingefügt.
Wenn ein Pfad Leerzeichen enthält, wird er in Anführungszeichen
geschrieben
Schneiden Sie den aktuell ausgewählten Text im Editor aus, um ihn später einzufügen
Kopieren Sie den aktuell ausgewählten Text im Editor zum späteren Einfügen
Einen zuvor ausgeschnittenen oder kopierten Text an der Cursorposition im Editor einfügen
Machen Sie den letzten am Editor ausgeführten Vorgang rückgängig
Überprüfen Sie die Skriptsyntax. Es wird eine Popup-Meldung angezeigt, die angibt, ob das Skript in Ordnung ist, oder die Zeilennummern, in denen Syntaxfehler gefunden wurden.

Sprachsyntax

Die QLC+ Script-Metasprache basiert auf einem Schlüsselwort:Wert-Modell mit einigen Einfügungen von C-Sprachsyntaxregeln.
Jede Codezeile wird von der QLC+-Engine analysiert und überprüft, um das Vorhandensein von Syntaxfehlern zu erkennen.
Hier ist eine Tabelle, die jedes von der Skript-Engine akzeptierte Schlüsselwort und seine Syntax beschreibt.v

Startfunktion

Typ: Schlüsselwort
Beschreibung: startet eine QLC+-Funktion mit der angegebenen ID
Syntax: startfunction:functionID
„functionID“ ist eine Ganzzahl der ID, die QLC+ einer Funktion zugewiesen hat.
Da QLC+-Benutzern keine IDs angezeigt werden, ist es in diesem Fall praktisch, die Hilfsschaltfläche ganz rechts im Editor zu verwenden, die auch einen Kommentar mit dem Funktionsnamen hinzufügt.
Irgendwann lernt ein Benutzer die ID einer Funktion und verwendet sie daher, um manuell mehr Code zum Skript hinzuzufügen.
Beispiel:

startfunction:2 // Grüne Szene

Stoppfunktion

Typ: Schlüsselwort
Beschreibung: Stoppt eine laufende QLC+-Funktion mit der angegebenen ID
Syntax: stopfunction:functionID
functionID ist eine Ganzzahl der ID, die QLC+ einer Funktion zugewiesen hat. Siehe startfunction description
Example:

stopfunction:0 // Grüne Szene

blackout

Type: keyword
Description: Schaltet den Blackout an oder aus.
Syntax: blackout:on|off
functionID ist eine Ganzzahl der ID, die QLC+ einer Funktion zugewiesen hat. Siehe startfunction description.
Examples:

blackout:an
blackout:aus

systemcommand

Type: keyword
Description: Führen Sie ein Programm oder ein Skript im angegebenen absoluten Pfad mit den (optionalen) bereitgestellten Argumenten aus.
Syntax:systemcommand:programPath arg:arg1 arg:arg2 ... arg:argN
programPath ist der absolute Pfad eines ausführbaren Programms oder Skripts. Zum Beispiel /usr/bin/vlc or C:\\Tools\\myTool.exe
Wenn der Pfad zu einer ausführbaren Datei Leerzeichen enthält, muss er in Anführungszeichen geschrieben werden.
_arg1 ... argN sind die Argumente, die beim Ausführen von programPath verwendet werden sollen. Wenn keine Argumente benötigt werden, sind die Schlüsselwörter arg: nicht erforderlich.
Wenn ein Argument Leerzeichen enthält, muss es in Anführungszeichen geschrieben werden.
Examples:

systemcommand:/usr/bin/vlc arg:-f arg:/home/user/video.mp4 // spielt mein Video mit VLC im Vollbildmodus ab
systemcommand:"C:\\Program Files\\Tools\\My Tool.exe" arg:"D:\\My Files\\My file.txt"

setfixture

Type: keyword
Description: Setzt einen QLC+ Fixture-Kanal auf den bereitgestellten DMX-Wert.
Syntax: setfixture:fixtureID ch:channelIndex val:DMXValue
fixtureID ist eine Ganzzahl der ID, die QLC+ einer Funktion zugewiesen hat.
Da QLC+-Benutzern keine IDs angezeigt werden, ist es in diesem Fall praktisch, die Hilfsschaltfläche ganz rechts im Editor zu verwenden, die auch einen Kommentar mit dem Geräte- und Kanalnamen hinzufügt.
Schließlich erfährt ein Benutzer die ID eines Geräts und den Index eines Kanals und kann diese daher verwenden, um manuell mehr Code zum Skript hinzuzufügen.
channelIndex ist eine Ganzzahl, die die Kanalnummer des Geräts darstellt. Die Kanalindizes beginnen hier bei 0.
DMXValue ist der tatsächliche DMX-Wert, der auf den angegebenen Gerätekanal eingestellt werden soll. Der Wert liegt zwischen 0 und 255
Example:

setfixture:0 ch:1 val:135 // Generisches RGB, Rot. Setzt den roten Kanal eines generischen RGB-Geräts auf den DMX-Wert 135

wait

Type: keyword
Description:Warten Sie die angegebene Zeit ab, bevor Sie die nächste Codezeile ausführen.
Beachten Sie, dass eine Wartezeit auch zufällig festgelegt werden kann, indem Sie der unten beschriebenen zufälligen-Syntax folgen.
Syntax: wait:time
time kann entweder eine ganze Zahl von Millisekunden oder eine Zeichenfolge sein, die die Wartezeit im QLC+-Stil darstellt: **h**m**s.**
Examples:

wait:1800 //wartet für 1 Sekunde und 800 Millisekunden
wait:03s.20 // Wartet für 3 Sekunden and 200 Millisekunden

Wartefunktionstart

Type: keyword
Description: Warten Sie, bis eine bestimmte Funktion ausgeführt wird.
Dieser Befehl benötigt ein Argument, nämlich die ID der Funktion, auf die Sie warten möchten. Sobald die angegebene Funktion ausgeführt wird oder wenn sie bereits ausgeführt wird, wird das Skript ab der nächsten Zeile weiter ausgeführt.
Syntax: waitfunctionstart:functionID
functionID ist eine Ganzzahl der ID, die QLC+ einer Funktion zugewiesen hat. Siehe startfunction description.
Examples:

waitfunctionstart:2 // Warten Sie, bis die grüne Szene beginnt

waitfunctionstop

Type: keyword
Description: Warten Sie, bis eine bestimmte Funktion nicht mehr ausgeführt wird.
Dieser Befehl benötigt ein Argument, nämlich die ID der Funktion, auf die Sie warten möchten. Sobald die angegebene Funktion nicht mehr ausgeführt wird oder wenn sie nicht bereits ausgeführt wird, wird das Skript ab der nächsten Zeile weiter ausgeführt.
Syntax: waitfunctionstart:functionID
functionID ist eine Ganzzahl der ID, die QLC+ einer Funktion zugewiesen hat. Siehe startfunction description.
Examples:

waitfunctionstop:0 // Warten Sie, bis die blaue Szene aufhört

comments

Type: Helper macro
Description: comments can be inserted at any position in the script code and they do not affect the script execution. They are normally used to give a meaning to a line of code.
QLC+ Scripts comment follow the C Language style rule of the "//" syntax. Basically everything written after "//" will be considered a comment until the end of the line of code.
So pay a particular attention to not writing meaningful code after a "//" and expect it to be run, cause it won't.
Comments can be added at the end of a Script line of code or they can take a whole line, for example to describe an entire block of code.

zufällig

Type: Hilfsmakro
Description: generiert eine zufällige Ganzzahl zwischen den angegebenen Minimal- und Maximalwerten
Syntax: random(min,max)
min ist der Mindestwert, den die Randomisierung erreichen kann. Es kann entweder eine Ganzzahl oder eine Zeitzeichenfolge sein
max ist der maximale Wert, den die Randomisierung erreichen kann. Es kann entweder eine Ganzzahl oder eine Zeitzeichenfolge sein
Examples:

wait:random(02s.00,05s.00) // Waits a random time between 2 and 5 seconds 
// set channel 3 of fixture with ID:1 to a random DMX value between 20 and 235
setfixture:1 ch:2 val:random(20,235)

stoponexit

Type: keyword
Description: controls whether functions started during the script should be stopped at the end.
Syntax: stoponexit:[true|false]
true: Alle danach gestarteten Funktionen werden gestoppt, wenn das Skript beendet ist (Standardverhalten).
false: Alle danach gestarteten Funktionen werden nach Abschluss des Skripts weiter ausgeführt.
Example:
In diesem Skriptbeispiel werden die Funktionen 1 und 3 am Ende gestoppt, die Funktionen 2 und 4 werden jedoch weiter ausgeführt.

startfunction:1 // Standardverhalten: Funktion 1 wird gestoppt

stoponexit:false
startfunction:2 // Funktion 2 läuft weiter

stoponexit:true
startfunction:3 // Funktion 3 wird gestoppt

stoponexit:false
startfunction:4 // Funktion 4 läuft weiter