Editor de Scripts

L'editor de scripts, com el seu nom indica, s'utilitza per editar Funcions de Script.
Bàsicament consisteix en un editor de text on l'usuari pot escriure un script utilitzant un metallenguatge amb una sintaxi descrita a continuació.
L'script es pot modificar manualment si teniu una comprensió completa de la sintaxi del llenguatge, en cas contrari hi ha disponibles uns quants botons d'ajuda a la part dreta de l'editor per accelerar i facilitar la creació/edició de l'script.
Cada línia d'un script serà executada per QLC+ en un ordre seqüencial.

Controls

Activa la sortida i executa l'script per provar la seva execució
Nom de l'Script Canvia el nom de l'Script.
Quan es faci clic en aquest botó, es mostrarà una finestra emergent on podreu triar el fragment d'script que voleu inserir a la posició actual del cursor a l'editor.
Funció d'inici: obre el diàleg de selecció de Funció per seleccionar una funció que s'ha d'iniciar.
Aquesta operació afegirà automàticament un comentari al final de la línia de codi, amb el nom QLC+ de la funció seleccionada.
Funció d'aturada: obre el diàleg de selecció Funció per seleccionar una funció a aturar. Si en el moment d'executar aquesta línia de codi la funció seleccionada no s'està executant, aquesta instrucció no tindrà cap efecte.
Aquesta operació afegirà automàticament un comentari al final de la línia de codi, amb el nom QLC+ de la funció seleccionada.
Blackout: Obre el diàleg sol·licitant si s'ha d'activar o desactivar l'apagada.
Estableix Fixture: Obre el diàleg de selecció de Canals del Fixture, on podreu triar els canals que voleu controlar amb l'script. Si se seleccionen diversos canals, aquesta operació afegirà una línia de codi per a cada canal seleccionat. Per defecte, el valor DMX generat per aquesta operació serà 0 i s'haurà de canviar manualment amb l'editor de text de l'script.
Aquesta operació afegirà automàticament un comentari al final de la línia de codi, amb el nom QLC+ dels fixtures i canals seleccionats.
Ordre del sistema: Obre un diàleg de fitxer per a triar el programa/script extern a executar. Tingueu en compte que el fitxer seleccionat ha de ser executable per a ser acceptat. Un cop seleccionat un fitxer, un altre diàleg us demanarà que introduïu els arguments del programa/script. Si no es requereix cap, simplement deixeu el camp buit.
Wait: Obre un diàleg demanant el temps d'espera abans que l'script pugui executar la següent instrucció
Comentari: Obre un diàleg demanant el text del comentari a inserir a la posició del cursor a l'editor.
Un comentari té una aparença d'estil de llenguatge C: comença amb «//» i tot fins al final de la línia es considera un comentari
Nombre aleatori: Obre un diàleg que demana l'interval de valors on realitzar una aleatorització d'un nombre. El fragment de codi resultant s'inserirà a la posició actual del cursor de l'editor.
Això pot ser útil per a aleatoritzar els valors DMX establerts a través de la paraula clau setfixture. Veure més avall.
Camí de fitxer: Obre un diàleg de fitxer per a seleccionar un fitxer. El camí absolut i el nom del fitxer s'introduiran a la posició actual de l'editor.
Si un camí conté espais, s'escriurà entre cometes
Retalla el text seleccionat a l'editor per a una enganxada posterior
Copia el text seleccionat a l'editor per a una enganxada posterior
Enganxa un text prèviament tallat o copiat a la posició del cursor a l'editor
Desfés l'última operació realitzada a l'editor
Comproveu la sintaxi de l'script. Es mostrarà un missatge emergent indicant si l'script és correcte o els números de línia on s'han trobat errors de sintaxi.

Sintaxi del Llenguatge

El metallenguatge de l'script QLC+ es basa en una paraula clau:valor de , amb algunes insercions de les regles de sintaxi del llenguatge C.
Cada línia de codi és analitzada pel motor QLC+ i verificada per detectar la presència d'errors de sintaxi.
Aquí hi ha una taula que descriu cada paraula clau acceptada pel motor Script i la seva sintaxi.

startfunction

Tipus: paraula clau
Descripció: comença una funció QLC+ amb l'identificador indicat
Sintaxi: startfunction:functionID
functionID és un nombre enter de l'ID assignat per QLC+ a una Funció.
Atès que els ID no estan exposats als usuaris de QLC+, en aquest cas és convenient utilitzar el botó d'ajuda a la part dreta de l'editor, que també afegeix un comentari amb el nom de la funció.
Eventualment un usuari aprendrà l'ID d'una funció i, per tant, l'utilitzarà per afegir manualment més codi a l'script.
Exemple:

startfunction:2 //Escena verda

stopfunction

Tipus: paraula clau
Descripció: atura una funció QLC+ en execució amb l'identificador indicat
Sintaxi: stopfunction:functionID
functionID és un nombre enter de l'ID assignat per QLC+ a una Funció. Veure startfunction descripció
Exemple:

stopfunction:0 // Escena blava

blackout

Tipus: paraula clau
Descripció: activa o desactiva el blackout,
Sintaxi: blackout:on|off
functionID és un nombre enter de l'ID assignat per QLC+ a una funció. Vegeu startfunction descripció.
Exemples:

blackout:on
blackout:off

systemcommand

Tipus: paraula clau
Descripció: executeu un programa o un script al camí absolut proporcionat amb els arguments (opcionals) proporcionats.
Sintaxi:systemcommand:programPath arg:arg1 arg:arg2 ... arg:argN
programPath és el camí absolut d'un programa executable o script. Per exemple /usr/bin/vlc o C:\\Tools\\myTool.exe
Si el camí a un executable conté espais, s'ha d'escriure entre cometes.
.arg1 ... argN són els arguments que s'han d'utilitzar en executar programPath. Si no es necessiten arguments, llavors les paraules clau arg: no són necessàries.
Si un argument contanca espais, s'ha d'escriure entre cometes.
Exemples:

systemcommand:/usr/bin/vlc arg:-f arg:/home/usuari/vídeo.mp4 // reprodueix el meu vídeo amb el VLC a pantalla completa
systemcommand:"C:\\Fitxers de programa\\Eines\\My Tool.exe" arg:"D:\\My Files\\My file.txt"

setfixture

Tipus: paraula clau
Descripció: estableix un canal d'un fixture de QLC+ al valor DMX proporcionat.
Sintaxi: setfixture:fixtureID ch:channelIndex val:DMXValue:br< fixtureID és un nombre enter de l'ID assignat per QLC+ a una funció.
Atès que els ID no estan exposats als usuaris de QLC+, en aquest cas és convenient utilitzar el botó d'ajuda a la part dreta de l'editor, que també afegeix un comentari amb el nom del fixture i del canal.
Eventualment un usuari aprendrà l'ID d'un fixture i l'índex d'un canal i, per tant, els utilitzarà per afegir manualment més codi a l'script.
channelIndex és un nombre enter que representa el número de canal fixture. Els índexs dels canals comencen des de 0.
DMXValue és el valor real DMX que s'ha d'establir al canal fixture especificat. Va del 0 al 255
Exemple:

setfixture:0 ch:1 val:135 // RGB genèric, vermell. Estableix el canal vermell d'un fixture RGB genèric al valor DMX 135

wait

Tipus: paraula clau
Descripció: espereu el temps proporcionat abans d'executar la següent línia de codi.
Tingueu en compte que el temps d'espera també es pot assignar a l'atzar, seguint la sintaxi random que es descriu a continuació.
Sintaxi: wait:temps El
temps pot ser un nombre enter de mil·lisegons o una cadena que representa el temps d'espera a la manera QLC+: **h**m**s.**
Exemples:

wait:1800 // espera 1 segon i 800 mil·lisegons
wait:03s.20 // Espera 3 segons i 200 mil·lisegons

comentaris

Tipus: macro d'ajuda
Descripció: els comentaris es poden inserir en qualsevol posició del codi de l'script i no afecten l'execució de l'script. Normalment s'utilitzen per donar un significat a una línia de codi.
Els comentaris dels scripts QLC+ segueixen la regla de l'estil de llenguatge C de la sintaxi "//". Bàsicament tot el que s'escriu després de "//" es considerarà un comentari fins al final de la línia de codi.
Així que presteu una atenció particular a no escriure codi significatiu després d'una "//" i espereu que s'executi, perquè no ho farà.
Els comentaris es poden afegir al final d'una línia de codi de Script o poden prendre una línia sencera, per exemple per descriure un bloc de codi sencer.

random

Tipus: macro d'ajuda
Descripció: genera un nombre enter aleatori entre els valors mínims i màxims proporcionats
Sintaxi: random(min,max)
min és el valor mínim que pot assolir l'aleatorització. Pot ser un nombre enter o una cadena de temps
max és el valor màxim que pot assolir l'aleatorització. Pot ser un nombre enter o una cadena de temps
Exemples:

wait:random(02s.00,05s.00) // Espera un temps aleatori entre 2 i 5 segons
// estableix el canal 3 del fixture amb ID:1 a un valor DMX aleatori entre 20 i 235
setfixture:1 ch:2 val:random(20,235)