Если при срабатывании датчика (объект Луч) необходимо к тревожному сообщению прикрепить jpeg-кадр или видеофрагмент, следует помнить, что это осуществимо только после того, как текущий файл архива будет записан на диск. Чтобы сократить время ожидания (параметр Задержка (сек.), см. раздел Настройка датчиков) и обеспечить гарантированную запись по камере, можно на вкладке Программирование в ПК Интеллект создать объект Программа.

Данные программы написаны для камеры с идентификатором, равным 1, и для объекта Луч с идентификатором, также равным 1. Благодаря данным программам значение параметра Задержка можно установить равным 7 секундам.

Вариант 1. Камера снята с охраны:

OnEvent("GRAY","1","ALARM")
{
[
    if( !CheckState("CAM","1","DETACHED") )
    {
        DoReact("CAM","1","REC","rollback<1>");
        Wait(5);
        DoReact("CAM","1","REC_STOP","priority<2>");
    }
]
}

OnEvent("GRAY","1","ALARM")
{
[
    Wait(2);
    DoReact("GRAY","1","CONFIRM");
    Wait(2);
    DoReact("GRAY","1","ARM");
]
}

Вариант 2. Камера на охране:

OnEvent("GRAY","1","ALARM")
{
[
    if( !CheckState("CAM","1","DETACHED") )
    {
        DoReact("CAM","1","DISARM");
        Sleep(50);
        DoReact("CAM","1","REC","rollback<1>");
        Wait(5);
        DoReact("CAM","1","REC_STOP","priority<2>");
        Sleep(2050); // Время предзаписи в настройке камеры = 2 сек.
        DoReact("CAM","1","ARM");
    }
]
}

OnEvent("GRAY","1","ALARM")
{
[
    Wait(2);
    DoReact("GRAY","1","CONFIRM");
    Wait(2);
    DoReact("GRAY","1","ARM");
]
}

Вариант 3. Режим постоянной записи:

OnEvent("GRAY","1","ALARM")
{
[
    if( !CheckState("CAM","1","DETACHED") )
    {
        Wait(5); // Определяет через какое время надо приостановить запись, чтобы получить требуемый ролик или необходимое число кадров
        DoReact("CAM","1","REC_STOP","priority<2>");
        Sleep(2050); // Время предзаписи в настройке камеры = 2 сек.
        DoReact("CAM","1","REC","rollback<1>"); // Запускаем запись с откатом в те самые 2 сек. Т.о. данные в архиве не теряются
    }
]
}

OnEvent("GRAY","1","ALARM")
{
[
    Wait(2);
    DoReact("GRAY","1","CONFIRM");
    Wait(2);
    DoReact("GRAY","1","ARM");
]
}