Детектор вхождения целей в зоны (Trace detector 1)

Материал из Integra-S Wiki
Перейти к: навигация, поиск

Определение вхождения целей в охраняемые зоны. Генерирование событий о входе цели в зону и выходе цели из зоны. Расчет и сохранение списка зон, в которые входит цель, и приоритета слежения за целью.

Зависимости

Скрипт зависит от какого-либо другого модуля поставляющего географические координаты движущихся объектов базе трекинга, т.е. меняющего параметр position у объектов наследников типа MoveableObject.

Построение схемы

Для построения схемы требуется:

1. Добавить триггер EgsScheduled.

Для этого необходимо:
1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsScheduled.
Scheduled com 4.png
2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
Scheduled com 5.png
3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
Scheduled com 3.png
Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.

2. Аналогично пункту 1 добавить элементы EgsModule, менеджер AcuarioManager и компьютер Computer.

Scheduled com 6.PNG

3. Настроить сетевой адрес компьютера.

Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента.

В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".

Scheduled com 7.PNG

4. Связать EgsScheduled и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsScheduled и «Egs выход: EgsOutput» у Egs Модуля.

TraceDetector 2.PNG

5. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Привязка к менеджеру: ManagingContainer" из Менеджера устройств.

Scheduled com 9.PNG

6. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.

TraceDetector 3.PNG

7. Настроить следующие параметры триггера:

  1. текст скрипта (script) http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Trace%20detector%201.put&path=0/params/script/value;
  2. единица измерения (period_unit), например: секунда;
  3. интервал в единицах измерения (period_count), например: 1;
  4. точное время внутри интервала (period_time), например: 00:00:00, 14:30:00;
  5. повторять через интервал или выполнить один раз в указанное время (repeat), например: 0 (бесконечно), 1 (один раз), 100;
  6. задействовать триггер (enabled), например: true;
  7. типы целей, для которых следует генерировать тревожное событие ZoneAlarm (spawn_alarm_types), например: UndefinedSeaTarget;
  8. типы целей, для которых следует генерировать нормальное событие ZoneEvent (spawn_event_types), например: ExtraLargeShip, LargeShip, SmallShip, TinyShip, Boat;
  9. типы целей с высшим приоритетом (trace_highest_types), например: ExtraLargeShip, UndefinedSeaTarget;
  10. типы целей с высоким приоритетом (trace_high_types), например: LargeShip;
  11. типы целей с нормальным приоритетом (trace_normal_types), например: SmallShip;
  12. типы целей с низким приоритетом (trace_low_types), например: TinyShip;
  13. типы целей с низшим приоритетом (trace_lowest_types), например: Boat;
  14. максимальное количество секунд с последнего обновления цели (trace_timeout), например: 500.

Настройку параметров триггера можно выполнить, открыв свойства элемента.

TraceDetector 6.PNG

8. У каждой охраняемой зоны Zone настроить следующие параметры:

  1. географический полигон зоны (area), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532));
  2. приоритет зоны (trace_priority), например: normal.

Проверка

После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Trace%20detector%201.put&path=0/params/hash/value

Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.

Алгоритм работы

  1. Типы из параметров триггера spawn_alarm_types, spawn_event_types, trace_highest_types, trace_high_types, trace_normal_types, trace_low_types и trace_lowest_types объединяются в общий список отслеживаемых типов целей.
  2. Bсе типы целей должны быть унаследованы от MoveableObject.
  3. Выбираются все зоны из всех баз, подключенных к серверу.
  4. Перебирает все зоны, у которых параметр trace_priority, установлен в значение, отличное от DEFAULT.
  5. Далее для каждой полученной зоны:
    1. в памяти создается список идентификаторов целей, находящихся в этой зоне в данный момент;
    2. выполняет запрос на сервер getObjectsByPoligon с параметром зоны area, списком отслеживаемых типов целей и параметром триггера trace_timeout;
    3. полученный список идентификаторов целей в зоне сравнивается с сохраненным;
    4. вычисляются цели, вошедшие в зону и вышедшие из нее;
    5. по полученным спискам идентификаторов в базе трекинга находятся цели т.е. объекты типа MoveableObject;
    6. обновляется параметр цели trace_zones, т.е. список идентификаторов зон, в которых в данный момент находится цель;
    7. в соответствии с параметрами trace_highest_types, trace_high_types, trace_normal_types, trace_low_types и trace_lowest_types проставляется определенный приоритет цели в параметр trace_priority;
    8. в соответствии с параметрами spawn_alarm_types и spawn_event_types генерируются события ZoneAlarm или ZoneEvent, содержащие следующие параметры:
      1. owner - идентификатор зоны;
      2. server - идентификатор сервера трекинга;
      3. position - географическая позиция цели;
      4. detector - идентификатор триггера;
      5. action - действие: enter или exit;
      6. target - идентификатор цели;
      7. target_type - тип цели;
      8. target_info - краткая информация о цели.

Пример работы

Для построения схемы необходимо:

1. Создать схему по выше описанному алгоритму (см. Построение схемы).

TraceDetector 3.PNG

2. Добавить элементы Зона и Большой корабль.

TraceDetector 7.PNG

3. Настроить параметр "Сетевой адрес" компьютера.

4. Настроить следующие параметры триггера:

  1. единица измерения (period_unit): секунда;
  2. интервал в единицах измерения (period_count): 1;
  3. повторять через интервал или выполнить один раз в указанное время (repeat): 0;
  4. задействовать триггер (enabled): true;
  5. в настройках:
    1. список масок имен типов (settings.types): BOLID_*;
    2. флаг включения алгоритма для тех. осмотров (settings.maintenance): true;
    3. флаг включения алгоритма для проверок (settings.verification): false;
    4. типы целей, для которых следует генерировать тревожное событие ZoneAlarm (spawn_alarm_types): UndefinedSeaTarget;
    5. типы целей, для которых следует генерировать нормальное событие ZoneEvent (spawn_event_types): LargeShip;
    6. типы целей с высшим приоритетом (trace_highest_types): ExtraLargeShip;
    7. типы целей с высоким приоритетом (trace_high_types): LargeShip;
    8. типы целей с нормальным приоритетом (trace_normal_types): SmallShip;
    9. типы целей с низким приоритетом (trace_low_types): TinyShip;
    10. типы целей с низшим приоритетом (trace_lowest_types): Boat;
    11. максимальное количество секунд с последнего обновления цели (trace_timeout): 500;

5. Настроить следующие параметры Зоны:

  1. географический полигон зоны (area): POLYGON((40.72408616 -74.00867677,40.72994019 -73.99022317,40.72564728 -73.97709107,40.71764613 -73.97880769,40.72408616 -74.00867677));
  2. приоритет зоны (trace_priority), например: normal.

Далее необходимо запустить скрипт "Симулятор движения (Position Simulator 1)", описание которого приведено на странице Симулятор движения (Position simulator 1), и настроить в свойствах триггера параметр: данные о движении объекта (settings.input): 40.72402111,-73.99108148,0. Элемент в Position Simulator 1 и в Trace detector 1 должен быть одним и тем же.

Результат:

В параметр зона слежения (trace_zones) будет установлена зона, в которой в данный момент находится цель.

Дополнения

1. В пункте 1 раздела Построение схемы добавление триггера EgsScheduled можно осуществить по ссылке.

Для этого необходимо:

1. Импортировать скрипт по следующей ссылке: http://maps.integra-s.com/resources/typedef2017/egs/Trace%20detector%201.put.
2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
Scheduled com 1.png
3. В открывшемся окне выбрать импортированный скрипт "Trace detector 1.put".
TraceDetector 1.PNG
Элемент появится на рабочей области.
Scheduled com 3.png

2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".

TraceDetector 4.png
После этого откроется окно для редактирования параметров.
TraceDetector 5.PNG