La lista de operadores utilizados para describir acciones:
DoReact (tipo de objeto, número, acción[,Parámetros]) – ejecutar acción
Ejemplo de uso:
OnEvent("GRAY","1","ON") { DoReact("GRELE","1","ON"); //cerrar el relé 1 al cerrar el sensor 1 } |
DoCommand(línea de comando) – ejecutar la línea de comando
Ejemplo de uso:
OnEvent("GRAY","1","ON") { DoCommand("notepad.exe"); //cuando el sensor 1 está cerrado ejecutar "Notepad" } |
Wait(número de segundos) – Esperar N segundos;
Sleep(número de milisegundos) – Esperar N milisegundos.
Los operadores de espera deben aparecer en un hilo único. El hilo único debe quedar en el interior de corchetes.
Ejemplo. Cuando el Sensor 1 está cerrado, el Relé 1 se cierra 5 segundos.
OnEvent("GRAY","1","ON") { [ DoReact("GRELE","1","ON"); Wait(5); DoReact("GRELE","1","OFF"); ] } |
Comprobar la función de estado:
CheckState (tipo de objeto, número, estado) – si el estado de un objeto es objetivamente preciso, el resultado es 1; de otro modo, será 0.
Se pueden usar expresiones como parámetros. Los valores constantes se deben entrecomillar.
Ejemplo. Comprobar el estado de la cámara 2 al cerrar el sensor 1 y, si el estado es “Alarmed”, cerrar el relé 1
OnEvent("GRAY","1","ON") { if(CheckState("CAM","2","ALARMED")) { DoReact("GRELE","1","ON"); } } |
Operador condicional
If(expresión) { ... // si el resultado no es igual a 0 } else { ... // si el resultado es igual a 0 } |
Se puede omitir la parte else{}
Ejemplo de uso:
OnEvent("MACRO","1","RUN") { x=5; si(x>10) {y=2;} // si "x" es superior a 10, entonces y=2 o bien{y=3;} //de otro modo y=3 } |
Operador For:
For(expression 1; expression 2; expression 3){ ... } |
La expresión 1 se ejecuta al principio del bucle; el cuerpo del bucle se ejecuta si la expresión 2 es verdadera; la expresión 3 se ejecuta después de cada ejecución del cuerpo del bucle.
Ejemplo. Cuando el sensor 1 está cerrado, el relé 1 se cierra y se abre cada segundo y esto pasará 10 veces.
OnEvent ("GRAY","1","ON") { [ for(i=0;i<10;i=str(i+1)) { DoReact("GRELE","1","ON"); Wait(1); DoReact("GRELE","1","OFF"); Wait(1); } ] } |
Ejemplo. Cuando se ejecuta la macro 1, la cámara se arma.
OnEvent("MACRO","1","RUN") { DoReactGlobal("CAM","1","ARM"); } |
NotifyEventGlobal (tipo de objeto, número, estado) – función que genera eventos. Mientras tanto, los eventos generados se envían a todos los núcleos conectados a la red.
Ejemplo. Al ejecutar la macro 1, se crea el evento “Grabación” en la cámara 1. El comando se envía a todos los núcleos como evento para su registro
OnEvent("MACRO","1","RUN") { NotifyEventGlobal("CAM","1","REC"); } |
Si no es necesario enviar un evento a todos los núcleos, utilice la función NotifyEvent. |