Пример 1. Визуализация работы детектора длины очереди в окне Монитора видеонаблюдения

Для корректной работы скрипта в ПК Интеллект предварительно должны быть созданы и настроены объекты Детектор длины очереди (входит в состав пакета детекторов Detector Pack),  Камера и Титрователь (ниже вместо символов N, M, L нужно подставить соответствующие номера Детектора длины очереди, Камеры и Титрователя).

//Считывание события по длине очереди
if (Event.SourceType == "OCCUPANCY_COUNTER" && Event.SourceId == "N" && Event.Action == "OCCUPANCY")  //N - Номер Детектора длины очереди
{
  var n=Event.GetParam("occupancy");
//Отображение длины очереди через Титрователь в Мониторе
  DoReactStr("CAM","M","CLEAR_SUBTITLES","title_id<L>"); //M - Номер Камеры  L - Номер Титрователя
  DoReactStr("CAM","M","ADD_SUBTITLES","command<Длина очереди: "+n+" чел.\r>,page<BEGIN>,title_id<L>"); //M, L - то же
}

В результате при отображении соответствующей камеры в Мониторе на видеоизображение будет накладываться текстовое сообщение о текущей длине очереди.

Настройки шрифта, цвета и положения надписи настраиваются на панели настройки объекта Титрователь.

Примечание.

При использовании параметров page<BEGIN> и page<END> будут заполняться соответствующие поля в базе титров, что даст возможность производить поиск данных с помощью интерфейсного объекта Поиск по титрам.

Пример 2. Визуализация работы детектора подсчета посетителей в окне Монитора видеонаблюдения

Для корректной работы скрипта в ПК Интеллект предварительно должны быть созданы и настроены объекты Детектор подсчета посетителей (входит в состав пакета детекторов Detector Pack), Камера, Титрователь и Макрокоманда (ниже вместо символов N, M, L, P нужно подставить соответствующие номера Детектора подсчета посетителей, Камеры, Титрователя и Макрокоманды).

//Считывание события и подсчет вошедших посетителей 
if (Event.SourceType == "PEOPLE_COUNTER" && Event.SourceId == "N" && Event.Action == "IN") //N - Номер Детектора подсчета посетителей  
  {
    i = Itv_var("counter_i");
    k = Itv_var("counter_k");  
    i++;  
    Itv_var("counter_i")=i;
//Отображение количества посетителей через Титрователь в Мониторе
     
    DoReactStr("CAM","M","CLEAR_SUBTITLES","title_id<L>"); //M - Номер Камеры  L - Номер Титрователя
    DoReactStr("CAM","M","ADD_SUBTITLES","command<Кол-во посетителей (вх./вых.): "+i+" / "+k+"\r>,page<BEGIN>,title_id<L>"); //M, L - то же
      
  }
//Считывание события и подсчет вышедших посетителей
if (Event.SourceType == "PEOPLE_COUNTER" && Event.SourceId == "N" && Event.Action == "OUT") //N - Номер Детектора подсчета посетителей
  {
    i = Itv_var("counter_i");
    k = Itv_var("counter_k"); 
    k++;  
    Itv_var("counter_k")=k;
//Отображение количества посетителей через Титрователь в Мониторе  
   
   DoReactStr("CAM","M","CLEAR_SUBTITLES","title_id<L>"); //M - Номер Камеры  L - Номер Титрователя
   DoReactStr("CAM","M","ADD_SUBTITLES","command<Кол-во посетителей (вх./вых.): "+i+" / "+k+"\r>,page<BEGIN>,title_id<L>"); //M, L - то же
  }
//Обнуление счетчика по Макрокоманде (предварительно в Интеллекте должна быть создана Макрокоманда)
if (Event.SourceType == "MACRO" && Event.SourceId == "P" && Event.Action == "RUN") //P - Номер Макрокоманды
  {
    Itv_var("counter_i")=0;
    Itv_var("counter_k")=0;
    i=0;
    k=0;
//Отображение количества посетителей через Титрователь в Мониторе
      
    DoReactStr("CAM","M","CLEAR_SUBTITLES","title_id<L>"); //M - Номер Камеры  L - Номер Титрователя
    DoReactStr("CAM","M","ADD_SUBTITLES","command<Кол-во посетителей (вх./вых.): "+i+" / "+k+"\r>,page<BEGIN>,title_id<L>"); //M, L - то же
  }

В результате при отображении соответствующей камеры в Мониторе на видеоизображение будет накладываться текстовое сообщение о количестве вошедших и вышедших посетителей.

Примечание.

При использовании параметров page<BEGIN> и page<END> будут заполняться соответствующие поля в базе титров, что даст возможность искать данные с помощью интерфейсного объекта Поиск по титрам.

Настройки шрифта, цвета и положения надписи настраиваются на панели настройки объекта Титрователь (см. Настройка вывода титров поверх видеоизображения).

Для обнуления счетчика посетителей предварительно на вкладе Программирование создается объект Макрокоманда, название которой можно для удобства изменить, например, на «Обнуление счетчика посетителей».

Макрокоманду обнуления можно запускать как вручную через главное меню ПК Интеллект, так и автоматически в любое заданное время (для этого используется таблица События на панели настройки объекта Макрокоманда, где необходимо указать предварительно настроенный объект Временная зона). Подробные сведения об использовании объектов Макрокоманда и Временная зона изложены в документе Руководство Администратора.

Пример 3. Отображение камеры на мониторе по нажатию кнопки на пульте управления

Приведенный ниже пример работает только для камер, у которых в конфигурации создан пульт управления PTZ. При настройке Монитора видеонаблюдения следует для 10 кнопок джойстика выбрать действие Перейти в пресет с параметрами 1,2,3...,0 (см. Руководство по установке и настройке компонентов охранной системы, раздел Присваивание клавишам джойстика команд при помощи Монитора видеонаблюдения).

Пример. По нажатию на кнопку пульта отображать соответствующую камеру в активном Мониторе. Скрипт должен срабатывать по таймеру с ID = 1.

Примечание.

Необходимо заранее создать и настроить объект Таймер, установив значение Год равным текущему году. Настройка объекта Таймер подробно описана в документе Руководство администратора, в разделе Создание и настройка объекта Таймер.

После каждого нажатия кнопки на пульте управления необходимо ожидать нажатия следующей кнопки в течение 2 секунд. Если нажатия не произошло, то необходимо выводить на экран камеру с набранным номером.

if (Event.SourceType=="TIMER" && Event.SourceId=="1" && Event.Action=="TRIGGER")
{
  mon="1";
  DebugLogString("на монитор "+ Itv_var("cam"));
  DoReactStr("MONITOR",mon,"ACTIVATE_CAM","cam<"+Itv_var("cam")+">");
  Itv_var("cam")="";
}

if (Event.GetParam("source_type")=="TELEMETRY" && Event.GetParam("action")=="GO_PRESET")
{
  DoReactStr("TIMER","1","START","bound<2>");
  var key=Event.GetParam("param4_val");
  DebugLogString("Key:"+key);
  Itv_var("cam")=Itv_var("cam")+key;
  DebugLogString(Itv_var("cam"));
}

Пример 4. Наложение титров

По макрокоманде 1 выводить текст

«NNN

Titles»

(с переносом строки) поверх видеоизображения камеры 1, используя титрователь 1. По макрокоманде 2 отключать вывод этого текста.

if (Event.SourceType == "MACRO" && Event.SourceId == "1" && Event.Action == "RUN")
{
	DoReactStr("MONITOR","1","SET_TITLES","titles<NNN \r Titles>,cam<1>,title_id<1>");
}

if (Event.SourceType == "MACRO" && Event.SourceId == "2" && Event.Action == "RUN")
{
DoReactStr("MONITOR","1","CLEAR_TITLES","cam<1>,title_id<1>");
}
  • No labels