Слежение поворотной камерой за целями в зоне (PTZ Tracer 1)
Позиционирование и фокусировка камеры на отслеживаемой цели. Создание и сохранение фотоизображения цели.
Содержание
Зависимости
Скрипт зависит от задачи определения вхождения целей в охраняемые зоны Детектор вхождения целей в зоны (Trace detector 1).
Настройка
Добавления триггера EgsScheduledPTZTracer
Триггер EgsScheduledPTZTracer можно добавить двумя способами:
Добавление триггера EgsScheduledPTZTracer по ссылке
Для добавления скрипта необходимо:
1. Импортировать скрипт по следующей ссылке: http://maps.integra-s.com/resources/typedef2017/egs/PTZ%20Tracer%201.put.
2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
3. В открывшемся окне выбрать импортированный скрипт "PTZ Tracer 1.put".
Элемент появится на рабочей области.
Добавление триггера вручную
Для того чтобы добавить триггер вручную, необходимо:
1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsScheduledPTZTracer.
2. Дважды нажать на выбранный элемент.
После этого появится окно для добавления элемента.
3. Нажать кнопку "Добавить".
Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.
Построение схемы
Для дальнейшего построения схемы необходимо:
1. Добавить элемент EgsModule, менеджер AcuarioManager и компьютер Computer.
2. Настроить сетевой адрес компьютера.
Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента.
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
3. Связать EgsScheduledPTZTracer и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsScheduledPTZTracer и «Egs выход: EgsOutput» у Egs Модуля.
4. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Привязка к менеджеру: ManagingContainer" из Менеджера устройств.
5. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.
Замечание:
Если скрипт не был импортирован, то для триггера необходимо настроить параметры:
- текст скрипта (script)
http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Trace%20detector%201.put&path=0/params/script/value;
- единица измерения (period_unit), например: секунда;
- интервал в единицах измерения (period_count), например: 1;
- точное время внутри интервала (period_time), например: 00:00:00, 14:30:00;
- повторять через интервал или выполнить один раз в указанное время (repeat), например: 0 (бесконечно), 1 (один раз), 100;
- задействовать триггер (enabled), например: true;
- типы целей, для которых следует генерировать тревожное событие ZoneAlarm (spawn_alarm_types), например: UndefinedSeaTarget;
- типы целей, для которых следует генерировать нормальное событие ZoneEvent (spawn_event_types), например: ExtraLargeShip, LargeShip, SmallShip, TinyShip, Boat;
- типы целей с высшим приоритетом (trace_highest_types), например: ExtraLargeShip, UndefinedSeaTarget;
- типы целей с высоким приоритетом (trace_high_types), например: LargeShip;
- типы целей с нормальным приоритетом (trace_normal_types), например: SmallShip;
- типы целей с низким приоритетом (trace_low_types), например: TinyShip;
- типы целей с низшим приоритетом (trace_lowest_types), например: Boat;
- максимальное количество секунд с последнего обновления цели (trace_timeout), например: 500.
Настройку параметров триггера также можно выполнить, нажав правой кнопкой мыши по элементу EgsScheduled и в контекстном меню выбрав пункт "Редактировать параметры".
После этого откроется окно для редактирования параметров.
Также это можно выполнить, открыв свойства элемента.
6. У каждой охраняемой зоны Zone настроить следующие параметры:
- географический полигон зоны (area), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532));
- приоритет зоны (trace_priority), например: normal.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Trace%20detector%201.put&path=0/params/hash/value
Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.
Алгоритм работы
- Типы из параметров триггера spawn_alarm_types, spawn_event_types, trace_highest_types, trace_high_types, trace_normal_types, trace_low_types и trace_lowest_types объединяются в общий список отслеживаемых типов целей.
- Bсе типы целей должны быть унаследованы от MoveableObject.
- Выбираются все зоны из всех баз, подключенных к серверу.
- Перебирает все зоны, у которых параметр trace_priority, установлен в значение, отличное от DEFAULT.
- Далее для каждой полученной зоны:
- в памяти создается список идентификаторов целей, находящихся в этой зоне в данный момент;
- выполняет запрос на сервер getObjectsByPoligon с параметром зоны area, списком отслеживаемых типов целей и параметром триггера trace_timeout;
- полученный список идентификаторов целей в зоне сравнивается с сохраненным;
- вычисляются цели, вошедшие в зону и вышедшие из нее;
- по полученным спискам идентификаторов в базе трекинга находятся цели т.е. объекты типа MoveableObject;
- обновляется параметр цели trace_zones, т.е. список идентификаторов зон, в которых в данный момент находится цель;
- в соответствии с параметрами trace_highest_types, trace_high_types, trace_normal_types, trace_low_types и trace_lowest_types проставляется определенный приоритет цели в параметр trace_priority;
- в соответствии с параметрами spawn_alarm_types и spawn_event_types генерируются события ZoneAlarm или ZoneEvent, содержащие следующие параметры:
- owner - идентификатор зоны;
- server - идентификатор сервера трекинга;
- position - географическая позиция цели;
- detector - идентификатор триггера;
- action - действие: enter или exit;
- target - идентификатор цели;
- target_type - тип цели;
- target_info - краткая информация о цели.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму.
2. Добавить элементы Зона и Большой корабль.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- единица измерения (period_unit): секунда;
- интервал в единицах измерения (period_count): 1;
- повторять через интервал или выполнить один раз в указанное время (repeat): 0;
- задействовать триггер (enabled): true;
- в настройках:
- список масок имен типов (settings.types): BOLID_*;
- флаг включения алгоритма для тех. осмотров (settings.maintenance): true;
- флаг включения алгоритма для проверок (settings.verification): false;
- типы целей, для которых следует генерировать тревожное событие ZoneAlarm (spawn_alarm_types): UndefinedSeaTarget;
- типы целей, для которых следует генерировать нормальное событие ZoneEvent (spawn_event_types): LargeShip;
- типы целей с высшим приоритетом (trace_highest_types): ExtraLargeShip;
- типы целей с высоким приоритетом (trace_high_types): LargeShip;
- типы целей с нормальным приоритетом (trace_normal_types): SmallShip;
- типы целей с низким приоритетом (trace_low_types): TinyShip;
- типы целей с низшим приоритетом (trace_lowest_types): Boat;
- максимальное количество секунд с последнего обновления цели (trace_timeout): 500;
5. Настроить следующие параметры Зоны:
- географический полигон зоны (area): POLYGON((40.72408616 -74.00867677,40.72994019 -73.99022317,40.72564728 -73.97709107,40.71764613 -73.97880769,40.72408616 -74.00867677));
- приоритет зоны (trace_priority), например: normal.
Далее необходимо запустить скрипт "Симулятор движения (Position Simulator 1)", описание которого приведено на странице Симулятор движения (Position simulator 1), и настроить в свойствах триггера параметр: данные о движении объекта (settings.input): 40.72402111,-73.99108148,0. Элемент в Position Simulator 1 и в Trace detector 1 должен быть одним и тем же.
В результате в параметр зона слежения (trace_zones) будет установлена зона, в которой в данный момент находится цель.