Детектор вхождения целей в зоны (Trace detector 1) — различия между версиями
Mikheeva (обсуждение | вклад) (→Пример работы) |
Mikheeva (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
Скрипт зависит от какого-либо другого модуля поставляющего географические координаты движущихся объектов базе трекинга, т.е. меняющего параметр '''position''' у объектов наследников типа '''MoveableObject'''. | Скрипт зависит от какого-либо другого модуля поставляющего географические координаты движущихся объектов базе трекинга, т.е. меняющего параметр '''position''' у объектов наследников типа '''MoveableObject'''. | ||
− | == | + | ===Построение схемы== |
− | + | Для построения схемы требуется: | |
− | + | 1. Добавить триггер '''EgsScheduled'''. | |
− | + | :Для этого необходимо: | |
− | + | :1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''EgsScheduled'''. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''EgsScheduled'''. | ||
[[File:Scheduled_com_4.png|центр]] | [[File:Scheduled_com_4.png|центр]] | ||
− | 2. Дважды нажать на выбранный элемент | + | :2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента. |
− | |||
− | |||
[[File:Scheduled_com_5.png|центр]] | [[File:Scheduled_com_5.png|центр]] | ||
− | 3. Нажать кнопку "Добавить". | + | :3. Нажать кнопку "Добавить". Элемент появится на рабочей области. |
− | + | [[File:Scheduled_com_3.png|центр|1000px]] | |
− | |||
− | |||
− | + | :''Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.'' | |
− | 1 | + | 2. Аналогично пункту 1 добавить элементы '''EgsModule''', менеджер '''AcuarioManager''' и компьютер '''Computer'''. |
[[File:Scheduled_com_6.PNG|центр|1000px]] | [[File:Scheduled_com_6.PNG|центр|1000px]] | ||
− | + | 3. Настроить сетевой адрес компьютера. | |
− | Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента. | + | Для этого необходимо выделить на схеме элемент '''Computer''' и нажать на кнопку вызова свойств элемента. |
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес". | В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес". | ||
Строка 61: | Строка 37: | ||
[[File:Scheduled_com_7.PNG|центр|1000px]] | [[File:Scheduled_com_7.PNG|центр|1000px]] | ||
− | + | 4. Связать '''EgsScheduled''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsScheduled''' и «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''. | |
[[File:TraceDetector_2.PNG|центр|1000px]] | [[File:TraceDetector_2.PNG|центр|1000px]] | ||
− | + | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Привязка к менеджеру: ManagingContainer'''" из '''Менеджера устройств'''. | |
[[File:Scheduled_com_9.PNG|центр|1000px]] | [[File:Scheduled_com_9.PNG|центр|1000px]] | ||
− | + | 6. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''. | |
[[File:TraceDetector_3.PNG|центр|1000px]] | [[File:TraceDetector_3.PNG|центр|1000px]] | ||
− | + | 7. Настроить следующие параметры триггера: | |
− | '' | + | #текст скрипта ('''script''') <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Trace%20detector%201.put&path=0/params/script/value;</code> |
+ | #единица измерения ('''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. | ||
− | + | Настройку параметров триггера также можно выполнить, открыв свойства элемента. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[File:TraceDetector_6.PNG|центр]] | [[File:TraceDetector_6.PNG|центр]] | ||
− | + | 7. У каждой охраняемой зоны Zone настроить следующие параметры: | |
#географический полигон зоны ('''area'''), например: POLYGON((50.22190511 53.2362532,50.22222154 53.23630881,50.22224243 53.23622371,50.2218933105469 53.2361679077148,50.22190511 53.2362532)); | #географический полигон зоны ('''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. | #приоритет зоны ('''trace_priority'''), например: normal. | ||
Строка 141: | Строка 107: | ||
Для построения схемы необходимо: | Для построения схемы необходимо: | ||
− | 1. Создать схему по выше описанному алгоритму. | + | 1. Создать схему по выше описанному алгоритму (см. [[Детектор_вхождения_целей_в_зоны_(Trace_detector_1)#Построение_схемы|Построение схемы]]). |
[[File:TraceDetector_3.PNG|центр|1000px]] | [[File:TraceDetector_3.PNG|центр|1000px]] | ||
Строка 177: | Строка 143: | ||
Далее необходимо запустить скрипт "Симулятор движения (Position Simulator 1)", описание которого приведено на странице [[Симулятор движения (Position simulator 1)]], и настроить в свойствах триггера параметр: данные о движении объекта ('''settings.input'''): 40.72402111,-73.99108148,0. ''Элемент в Position Simulator 1 и в Trace detector 1 должен быть одним и тем же.'' | Далее необходимо запустить скрипт "Симулятор движения (Position Simulator 1)", описание которого приведено на странице [[Симулятор движения (Position simulator 1)]], и настроить в свойствах триггера параметр: данные о движении объекта ('''settings.input'''): 40.72402111,-73.99108148,0. ''Элемент в Position Simulator 1 и в Trace detector 1 должен быть одним и тем же.'' | ||
− | В | + | '''Результат''': |
+ | |||
+ | В параметр зона слежения ('''trace_zones''') будет установлена зона, в которой в данный момент находится цель. | ||
+ | |||
+ | ==Дополнения== | ||
+ | 1. В пункте 1 раздела [[Детектор_вхождения_целей_в_зоны_(Trace_detector_1)#Построение_схемы|Построение схемы]] добавление триггера '''EgsScheduled''' можно осуществить по ссылке. | ||
+ | |||
+ | Для этого необходимо: | ||
+ | |||
+ | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com/resources/typedef2017/egs/Trace%20detector%201.put.</code> | ||
+ | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
+ | |||
+ | [[File:Scheduled_com_1.png|центр|1000px]] | ||
+ | |||
+ | :3. В открывшемся окне выбрать импортированный скрипт "Trace detector 1.put". | ||
+ | |||
+ | [[File:TraceDetector_1.PNG|центр|1000px]] | ||
+ | |||
+ | :Элемент появится на рабочей области. | ||
+ | |||
+ | [[File:Scheduled_com_3.png|центр|1000px]] | ||
+ | |||
+ | 2. В пункте 7 раздела [[Детектор_вхождения_целей_в_зоны_(Trace_detector_1)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры". | ||
+ | |||
+ | [[File:TraceDetector_4.png|центр]] | ||
+ | |||
+ | :После этого откроется окно для редактирования параметров.'' | ||
+ | |||
+ | [[File:TraceDetector_5.PNG|центр|1000px]] |
Версия 17:09, 14 апреля 2018
Определение вхождения целей в охраняемые зоны. Генерирование событий о входе цели в зону и выходе цели из зоны. Расчет и сохранение списка зон, в которые входит цель, и приоритета слежения за целью.
Содержание
[убрать]Зависимости
Скрипт зависит от какого-либо другого модуля поставляющего географические координаты движущихся объектов базе трекинга, т.е. меняющего параметр position у объектов наследников типа MoveableObject.
=Построение схемы
Для построения схемы требуется:
1. Добавить триггер EgsScheduled.
- Для этого необходимо:
- 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsScheduled.
- 2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
- 3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
- Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.
2. Аналогично пункту 1 добавить элементы EgsModule, менеджер AcuarioManager и компьютер Computer.
3. Настроить сетевой адрес компьютера.
Для этого необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента.
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
4. Связать EgsScheduled и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsScheduled и «Egs выход: EgsOutput» у Egs Модуля.
5. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Привязка к менеджеру: ManagingContainer" из Менеджера устройств.
6. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.
7. Настроить следующие параметры триггера:
- текст скрипта (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.
Настройку параметров триггера также можно выполнить, открыв свойства элемента.
7. У каждой охраняемой зоны 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) будет установлена зона, в которой в данный момент находится цель.
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsScheduled можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке:
http://maps.integra-s.com/resources/typedef2017/egs/Trace%20detector%201.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "Trace detector 1.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.