La lista de operadores utilizados para describir acciones:

  1. 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
    }
  2. 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"
    }
  3. 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");
       ]
    }
  4. 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");
        }
    }
  5. 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
    }
  6. 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);
        }
        ]
    }
  7. DoReactGlobal (tipo de objeto, número, estado) – función que genera reacciones de los objetos del sistema. Mientras tanto, la reacción generada se envía a todos los núcleos conectados a través de la red.

    Ejemplo. Cuando se ejecuta la macro 1, la cámara se arma.

    OnEvent("MACRO","1","RUN")
    {
        DoReactGlobal("CAM","1","ARM");
    }
  8. 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.