Симулятор движения — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Проверка)
(Построение схемы)
Строка 4: Строка 4:
 
Для построения схемы требуется:
 
Для построения схемы требуется:
  
1. Добавить триггер '''EgsScheduled'''.
+
1. Загрузить триггер '''EgsScenario''' из <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Position%20Simulator.put</code> и добавить на схему через меню действие элементов > импорт элементов.  
  
:Для этого необходимо:
+
2. Перейти на вкладку "Типы элементов" и добавить из списка элементы Egs Модуль '''EgsModule''',  менеджер '''AcuarioManager''' и компьютер '''Computer'''.
 
 
:1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''EgsScheduled'''.
 
 
 
[[File:Scheduled_com_4.png|центр]]
 
 
 
:2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
 
 
 
[[File:Scheduled_com_5.png|центр]]
 
 
 
:3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
 
 
 
[[File:Scheduled_com_3.png|центр|1000px]]
 
 
 
:''Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.''
 
 
 
2. Аналогично пункту 1 добавить элементы Egs Модуль '''EgsModule''',  менеджер '''AcuarioManager''' и компьютер '''Computer'''.
 
  
 
[[File:Scheduled_com_6.PNG|центр|1000px]]
 
[[File:Scheduled_com_6.PNG|центр|1000px]]
Строка 34: Строка 18:
 
[[File:Scheduled_com_7.PNG|центр|1000px]]
 
[[File:Scheduled_com_7.PNG|центр|1000px]]
  
4. Связать '''EgsScheduled''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsScheduled''' и  «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''.
+
4. Связать '''EgsScenario''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsScenario''' и  «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''.
  
 
[[File:PositionSimulator_2.PNG|центр|1000px]]
 
[[File:PositionSimulator_2.PNG|центр|1000px]]
Строка 46: Строка 30:
 
[[File:PositionSimulator_3.PNG|центр|1000px]]
 
[[File:PositionSimulator_3.PNG|центр|1000px]]
  
7. Настроить следующие параметры триггера:
+
7. Настроить следующий параметр триггера:
  
#текст скрипта ('''script''') <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%202.put&path=0/params/script/value;</code>
+
#задействовать триггер установив галочку у параметра Включен(enabled);
#единица измерения ('''period_unit'''), например: секунда;
 
#интервал в единицах измерения ('''period_count'''), например: 1;
 
#точное время внутри интервала ('''period_time'''), например: 00:00:00, 14:30:00;
 
#повторять через интервал или выполнить один раз в указанное время ('''repeat'''), например: 0 (бесконечно), 1 (один раз), 100;
 
#задействовать триггер ('''enabled'''), например: true;
 
 
#в настройках:
 
#в настройках:
::1. данные о движении объекта в некотором формате ('''settings.input'''), например:
+
::1. settings.interval - интервал между изменениями позиции, например: 00:00:05.
 +
::2. данные о движении объекта в некотором формате ('''settings.input'''), например:
 
  ''48.39250538706612,53.08561325603247,0 48.3916008019351,53.08549340734039,0 48.39167409940283,53.0853119589439,0 48.39181445107519,53.08495754008844,0 48.39209640494313,53.08438800284189,0 48.39227957653078,53.08389896728745,0 48.39283025959841,53.08396288429309,0 48.39373600936838,53.08412382293808,0 48.39360388037241,53.08466109322499,0 48.39313385277075,53.08562609372662,0 48.39250538706612,53.08561325603247,0;
 
  ''48.39250538706612,53.08561325603247,0 48.3916008019351,53.08549340734039,0 48.39167409940283,53.0853119589439,0 48.39181445107519,53.08495754008844,0 48.39209640494313,53.08438800284189,0 48.39227957653078,53.08389896728745,0 48.39283025959841,53.08396288429309,0 48.39373600936838,53.08412382293808,0 48.39360388037241,53.08466109322499,0 48.39313385277075,53.08562609372662,0 48.39250538706612,53.08561325603247,0;
::2. регулярное выражение для разбора данных ('''settings.pattern'''), должно содержать три именованные группы с именами '''longitude''', '''latitude''' и '''altitude''', например:''
+
::3. регулярное выражение для разбора данных ('''settings.pattern'''), должно содержать три именованные группы с именами '''longitude''', '''latitude''' и '''altitude''', например:''
 
  ''(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
 
  ''(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
::3. идентификатор двигаемого объекта ('''settings.target'''), например: dd0385b7-b32a-4658-88ab-afef3743459b.
+
::4. идентификатор двигаемого объекта ('''settings.target'''), например: dd0385b7-b32a-4658-88ab-afef3743459b.
  
 
Настройку параметров триггера можно выполнить, открыв свойства элемента.
 
Настройку параметров триггера можно выполнить, открыв свойства элемента.

Версия 15:40, 7 июня 2021

Тестирование системы. Скрипт работает с одной локальной базой интеграции.

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

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

1. Загрузить триггер EgsScenario из http://maps.integra-s.com:5434/resources/typedef2017/egs/Position%20Simulator.put и добавить на схему через меню действие элементов > импорт элементов.

2. Перейти на вкладку "Типы элементов" и добавить из списка элементы Egs Модуль EgsModule, менеджер AcuarioManager и компьютер Computer.

Scheduled com 6.PNG

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

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

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

Scheduled com 7.PNG

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

PositionSimulator 2.PNG

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

Scheduled com 9.PNG

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

PositionSimulator 3.PNG

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

  1. задействовать триггер установив галочку у параметра Включен(enabled);
  2. в настройках:
1. settings.interval - интервал между изменениями позиции, например: 00:00:05.
2. данные о движении объекта в некотором формате (settings.input), например:
48.39250538706612,53.08561325603247,0 48.3916008019351,53.08549340734039,0 48.39167409940283,53.0853119589439,0 48.39181445107519,53.08495754008844,0 48.39209640494313,53.08438800284189,0 48.39227957653078,53.08389896728745,0 48.39283025959841,53.08396288429309,0 48.39373600936838,53.08412382293808,0 48.39360388037241,53.08466109322499,0 48.39313385277075,53.08562609372662,0 48.39250538706612,53.08561325603247,0;
3. регулярное выражение для разбора данных (settings.pattern), должно содержать три именованные группы с именами longitude, latitude и altitude, например:
(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
4. идентификатор двигаемого объекта (settings.target), например: dd0385b7-b32a-4658-88ab-afef3743459b.

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

PositionSimulator 6.PNG

Проверка

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

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

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

  1. Находится объект назначения с идентификатором settings.target.
  2. Данные из settings.input при помощи регулярного выражения из settings.pattern преобразовываются в список групп параметров longitude, latitude и altitude.
  3. С заданным интервалом из списка выбирается следующая группа параметров по кругу.
  4. Параметры группы записываются в соответствующие параметры объекта назначения.

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

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

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

PositionSimulator 3.PNG

2. Добавить элемент "Мужчина".

PositionSimulator 7.PNG

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

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

  1. единица измерения (period_unit): секунда;
  2. интервал в единицах измерения (period_count): 1;
  3. повторять через интервал или выполнить один раз в указанное время (repeat): 0;
  4. задействовать триггер (enabled): true;
  5. в настройках:
1. данные о движении объекта (settings.input):

50.22196217,53.23618268,0 50.22209225,53.23620757,0 50.22223978,53.23623004,0 50.22231622,53.23626456,0 50.22236718,53.23632315,0 50.22231085,53.23636007,0 50.22219015,53.23638496,0 50.22204666,53.23636007,0 50.22187902,53.23633359,0 50.22184013,53.23623807,0;

2. регулярное выражение для разбора данных (settings.pattern), должно содержать три именованные группы с именами longitude, latitude и altitude:
(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
3. идентификатор двигаемого объекта (settings.target). Для этого необходимо зайти в свойства элемента Большой корабль и нажать на ссылку "Большой корабль". Идентификатор будет скопирован в буфер обмена. В данном случае это: c9cf8cba-2520-4a2f-90e0-3f21f39cc8d0.
PositionSimulator 8.png

Результат:

В параметр "Расположение" двигаемого элемента с периодичностью в 1 секунду будут устанавливаться значения.

Дополнения

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

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

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

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

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