Página anterior Descripción de las funciones  Descripción de las reacciones de los objetos de sistema Página siguiente

Skip to end of metadata
Go to start of metadata
En la página:
 

A continuación, se pueden encontrar algunos ejemplos de scripts.

Ejemplo 1.

Mostrar cámara activa en la pantalla del monitor análogo.

Implementación:

OnEvent ("MONITOR","1","ACTIVATE_CAM")
{
    DoReact("CAM",cam,"MUX1");
}

 

Ejemplo 2.

Iniciar y detener vigilancia PTZ mediante macros.

Implementación:

OnEvent("MACRO","1","RUN")
{
    DoReact("TELEMETRY","1.1","PATROL_PLAY","tel_prior<1>");
}
  
OnEvent("MACRO","2","RUN")
{
    DoReact("TELEMETRY","1.1","STOP","tel_prior<1>");
}

 

Ejemplo 3.

Mostrar en pantalla una cámara de alarma en el modo de monitor único.

Implementación:

OnEvent ("CAM",N,"MD_START")
{
    DoReact("MONITOR","1","ACTIVATE_CAM","cam<"+N+">");
  
    DoReact("MONITOR","1","KEY_PRESSED","key<SCREEN.1>");
}

 

Ejemplo 4.

Aquí se muestra un ejemplo de bucle infinito y la forma de detenerlo. La macro1 inicia el bucle y la macro2 lo detiene.

Implementación:

OnEvent("MACRO","1","RUN") //la macro1 se ha ejecutado
  
{
    //se necesitan corchetes para aislar la sentenciade espera en cada flujo individual
    [          
    flag=1;
    for(a=1;flag<2;a=1) //sentencia de ciclo
    {
        Sleep(500); //la sentencia de espera crea una pausa de 500 milisegundos
        ff="!!!!!!!!!!!!!!!!!!";
    }
    ]
}
  
OnEvent("MACRO","2","RUN") // la macro2 se ha ejecutado
{
    flag=2;
}

 

Ejemplo 5.

Un monitor de alarma de video de la cámara de alarma está siempre encendido.

Implementación:

OnInit()
  
{
    counter=0;
}
  
OnEvent("CAM",T,"MD_START")
  
{
    if(strequal(counter,"0"))
    {
        DoReact("MONITOR","2","REMOVE_ALL");
        DoReact("MONITOR","2","ADD_SHOW","cam<"+T+">");
    }
    counter=str(counter+1);
}
 
OnEvent("CAM",M,"MD_STOP")
{
    counter=str(counter-1);
    if(strequal(counter,"0"))
    {
        DoReact("MONITOR","2","ADD_SHOW","cam<"+M+">");
    }
}

 

Ejemplo 6.

Se reproducirá un archivo de audio a partir del momento en que aparece un evento y finalizarácuando un nuevo evento aparezca.(Una macro se ejecuta en este caso).

¡¡¡Importante!!!

Un archivo de audio no debe ser mayor que el número de segundos especificado en el operador Wait.

Implementación:

OnEvent("MACRO","1","RUN")
{
    flag=1;
  
    [
    for(i=1;flag;i=1)
    {
        DoReact("PLAYER","1","PLAY_WAV","file<C:\Program Files\Intellect\Wav\cam_alarm_1.wav>");
        Wait(3);
    }
    ]
  
}
  
OnEvent("MACRO","8","RUN")
{
    flag=0;
}

 

Ejemplo 7.

Hay 2 cámaras con dispositivos PTZ. Una cámara debe rotar a la posición predeterminada y captar una instantánea cada 15 minutos. La hora actualizada es el nombre del archivo.

Implementation:

OnTime(W,D,X,Y,H,M, "01")
  
{
    if(strequal(M,"0"))
    {
        name=H+"_"+M+"_"+S+".jpg";
        //Dispositivo PTZ 1.1 de la cámara 1
        name1="Camera1"+name;
        DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1);
        //Dispositivo PTZ 1.2 de la cámara 2
        name="Camera2"+name;
        DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name);
    }
  
    if(strequal(M,"15"))
    {
        name=H+"_"+M+"_"+S+".jpg";
        //Dispositivo PTZ 1.1 de la cámara 1
        name1="Camera1"+name;
        DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1);
        //Dispositivo PTZ 1.2 de la cámara 2
        name="Camera2"+name;
        DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name);
  
    }
  
    if(strequal(M,"30"))
  
    {
        name=H+"_"+M+"_"+S+".jpg";
        // Dispositivo PTZ 1.1 de la cámara 1
        name1="Camera1"+name;
        DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1);
        //Dispositivo PTZ 1.2 de la cámara 2
        name="Camera2"+name;
        DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name);
  
    }
  
    if(strequal(M,"45"))
  
    {
        name=H+"_"+M+"_"+S+".jpg";
        // Dispositivo PTZ 1.1 de la cámara 1
        name1="Camera1"+name;
        DoReact("TELEMETRY","1.1","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<1>,file<d:\"+name1);
        //Dispositivo PTZ 1.2 de la cámara 2
        name="Camera2"+name;
        DoReact("TELEMETRY","1.2","GO_PRESET","preset<1>,tel_prior<1>");
        DoReact("MONITOR","1","EXPORT_FRAME","cam<2>,file<d:\"+name);
  
    }
  
}

 

Ejemplo 8.

El audio que proviene de un micrófono (OLXA_LINE) no se registra simultáneamente con una cámara. Por defecto, el micrófono no está conectado.El audio se grabará cuando se active mediante sonido y la cámara lo detecte.

Nota.

Los comandos RECORD_START y RECORD_STOP se han añadido al micrófono en la versión 4.7.0 y posteriores.

La grabación de audio empieza con un arranque acústico (ACCU_START) y la detección de movimiento (MD_START) y el indicador de variable se incrementa en 1. Cuando el arranque acústico y la detección de movimiento finalizan, el indicador de variable se reduce en 1 y la grabación de audio se detiene sólo si es 0, es decir, que no existe arranque acústico o movimiento.

Implementación:

OnInit()
{
    flag=0;
}
  
OnEvent("CAM","3","MD_START")
{
    flag=str(flag+1);
    DoReact("OLXA_LINE","1","RECORD_START");
}
  
OnEvent("OLXA_LINE","1","ACCU_START")
{
    flag=str(flag+1);
    DoReact("OLXA_LINE","1","RECORD_START");
}
  
OnEvent("OLXA_LINE","1","ACCU_STOP")
{
    flag=str(flag-1);
    if(!(flag))
    {
        DoReact("OLXA_LINE","1","RECORD_STOP");
    }
}
  
OnEvent("CAM","3","MD_STOP")
{
    flag=str(flag-1);
    if(!(flag))
    {
        DoReact("OLXA_LINE","1","RECORD_STOP");
    }
}

 

Ejemplo 9.

El sistema cuenta con varias cámaras (núm).Se debe comprobar el funcionamiento de la detección de movimiento en todas las cámaras (también se puede utilizar para comprobar los sensores de seguridad).

Para resolver este problema, se puede utilizar la emulación de un conjunto lineal de símbolos (cadena), es decir, se completa una matriz de símbolos (“N” en este caso). Cuando se activa la detección de movimiento en la cámara, el elemento correspondiente de la matriz (ID de la cámara) cambia (a “Y”). Así, obtenemos una matriz de símbolos “N” (que no se habían activado) y de “Y” (que se había activado) como resultado.

Se contabiliza el número de activaciones y el mensaje con el número total de cámaras y el número de cámaras en las que la herramienta de detección se activó. La comprobación se inicia mediante la Macro1 y se detiene con la Macro2.

Implementación:

OnInit()
{
    run=0;
}
  
OnEvent("MACRO","1","RUN")
{
    run=1; flag=""; num=8;
    for(i=1;i<str(num+1);i=str(i+1))
    {
        DoReact("CAM",i,"DISARM");
        DoReact("CAM",i,"REC_STOP");
        DoReact("CAM",i,"ARM");
        flag=flag+"N";
        if(i<num)
        {
           flag=flag+"|";}
        }
}
  
OnEvent("CAM",N,"MD_START")
{
    if(run)
    {
        nn=str((N*2)-1);
        flag=strleft(flag,str(nn-1))+"Y"+strright(flag,str(((num*2)-1)-nn));
    }
}
  
OnEvent("MACRO","2","RUN")
{
    run=0; fin=0;
    for(i=1;i<str(num+1);i=str(i+1))
    {
        tmp=extract_substr(flag,"|",str(i-1));
        if(strequal(tmp,"Y"))
        {
            fin=str(fin+1);
        }
        DoReact("CAM",i,"DISARM");
    }
  
    tmp="Total:"+str(num)+"Triggered:"+str(fin);
    rez=MessageBox("",tmp,0);
  
}

 

Ejemplo 10.

Vigile varias zonas utilizando accionespredefinidas de dispositivos PTZ; la detección de movimiento se debe activar en alguna área de estas zonas.

Cámara1. 5 zonas de detección y 5 acciones predefinidas. Estos parámetros se configuran con la variable n. La Macro1 inicia la ejecución del algoritmo. La Macro2 finaliza la ejecución del algoritmo. Indicador – variable interna.

Cuando el algoritmo se inicia, la cámara cambia a predefinido1 y activa la primera zona de detección.El retraso entre estos comandos es de 200 milisegundos (para que la cámara cambie a predefinido). Transcurridos 5 segundos, la 1ª zona se desactiva y el bucle empieza de nuevo, pero con la 2ª zona y predefinido2. Y así sucesivamente hasta que vuelve a empezar desde el inicio. El algoritmo se detiene si el indicador de variable se restablece a cero (mediante la Macro2).  

Implementación:

OnEvent("MACRO","1","RUN")
{
    flag=1;
    n=5;
    [
    for(i=1;flag;i=str(i+1))
    {
        DoReact("TELEMETRY","1.1","GO_PRESET","preset<"+i+">,tel_prior<3>");
        Sleep(200);
        DoReact("CAM_ZONE","1"+i,"ARM");
        Wait(5);
        DoReact("CAM_ZONE","1"+i,"DISARM");
        if(strequal(i,n)) {i=0;}
    }
    ]
}
  
OnEvent("MACRO","2","RUN")
{
    flag=0;
}

 

Ejemplo 11.

Tenemos 2 pantallas – la primera muestra un monitor virtual con cámaras; la segunda muestra el objeto Mapa con sensores Bolid. Cuando la cámara hace saltar la alarma – se muestra la pantalla 1; cuando el sensor activa la alarma – se muestra la pantalla 2, pero solamente en el CLIENTE REMOTO.

Implementation:

OnEvent("CAM",N,"MD_START")
{
    DoReact("DISPLAY","2","DEACTIVATE","macro_slave_id<CLIENT>");
    DoReact("DISPLAY","1","ACTIVATE","macro_slave_id<CLIENT >");
}
  
OnEvent("BOLID_ZONE",M,"ALARM")
{
    DoReact("DISPLAY","1","DEACTIVATE","macro_slave_id<CLIENT >");
    DoReact("DISPLAY","2","ACTIVATE","macro_slave_id<CLIENT >");
}

 

Ejemplo 12.

Añada subtítulos al video de la cámara 1 cuando un evento de alarma aparezca en esta cámara. Cuando el evento de alarma finalice, añada subtítulos que indiquen el fin de la alarma.

Implementación:

OnEvent("CAM","1","MD_START")
{
  DoReact("CAM","1","CLEAR_SUBTITLES","title_id<1>"); //borrar todos los subtítulos del video
  DoReact("CAM","1","ADD_SUBTITLES","command<Camera 1 Alarm "+ time + "\r>,page<BEGIN>,title_id<1>"); //el parámetro time añade la hora del evento registrándola en los subtítulos
}
OnEvent("CAM","1","MD_STOP")
{
  DoReact("CAM","1","ADD_SUBTITLES","command<Camera 1 Alarm end "+ time + "\r>,page<END>,title_id<1>");
}

Nota

Cuando se estén utilizando los parámetros de página <BEGIN> y página <END>, se rellenan los campos correspondientes de la base de datos de los subtítulos– esto permite la búsqueda de datos a través del objeto de interfaz Búsqueda por títulos
  • No labels