Симулятор движения (Position simulator 1) — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Пример работы)
Строка 1: Строка 1:
 
Тестирование системы.
 
Тестирование системы.
  
==Настройка==
+
==Построение схемы==
===Добавления триггера EgsScheduled===
+
Для построения схемы требуется:
  
Триггер '''EgsScheduled''' можно добавить двумя способами:
+
1. Добавить триггер '''EgsScheduled'''.
  
====Добавление триггера EgsScheduled по ссылке====
+
:Для этого необходимо:
  
Для добавления скрипта необходимо:
+
:1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''EgsScheduled'''.
 
 
1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com/resources/typedef2017/egs/Position%20simulator%201.put.</code>
 
 
 
2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
 
 
 
[[File:Scheduled_com_1.png|центр|1000px]]
 
 
 
3. В открывшемся окне выбрать импортированный скрипт "Position simulator 1.put".
 
 
 
[[File:PositionSimulator_1.PNG|центр|1000px]]
 
 
 
Элемент появится на рабочей области.
 
 
 
[[File:Scheduled_com_3.png|центр|1000px]]
 
 
 
====Добавление триггера вручную====
 
 
 
Для того чтобы добавить триггер вручную, необходимо:
 
 
 
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. Добавить элемент '''EgsModule''',  менеджер '''AcuarioManager''' и компьютер '''Computer'''.
+
2. Аналогично пункту 1 добавить элементы '''EgsModule''',  менеджер '''AcuarioManager''' и компьютер '''Computer'''.
  
 
[[File:Scheduled_com_6.PNG|центр|1000px]]
 
[[File:Scheduled_com_6.PNG|центр|1000px]]
  
2. Настроить сетевой адрес компьютера.  
+
3. Настроить сетевой адрес компьютера.  
  
Для этого  необходимо выделить на схеме элемент '''Computer''' и нажать на кнопку вызова свойств элемента.  
+
Для этого  необходимо выделить на схеме элемент Computer и нажать на кнопку вызова свойств элемента.  
  
 
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
 
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
Строка 58: Строка 34:
 
[[File:Scheduled_com_7.PNG|центр|1000px]]
 
[[File:Scheduled_com_7.PNG|центр|1000px]]
  
3. Связать '''EgsScheduled''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsScheduled''' и  «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''.
+
4. Связать '''EgsScheduled''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsScheduled''' и  «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''.
  
 
[[File:PositionSimulator_2.PNG|центр|1000px]]
 
[[File:PositionSimulator_2.PNG|центр|1000px]]
  
4. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Привязка к менеджеру: ManagingContainer'''" из '''Менеджера устройств'''.
+
5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Привязка к менеджеру: ManagingContainer'''" из '''Менеджера устройств'''.
  
 
[[File:Scheduled_com_9.PNG|центр|1000px]]
 
[[File:Scheduled_com_9.PNG|центр|1000px]]
  
5. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''.
+
6. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''.
  
 
[[File:PositionSimulator_3.PNG|центр|1000px]]
 
[[File:PositionSimulator_3.PNG|центр|1000px]]
  
''Замечание:''
+
7. Настроить следующие параметры триггера:
  
''Если скрипт не был импортирован, то для триггера необходимо настроить параметры:''
+
#текст скрипта ('''script''') <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.put&path=0/params/script/value;</code>
 
+
#тип ('''typedef''') <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.put&path=0/params/typedef/value;</code>
#''текст скрипта ('''script''')'' <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.put&path=0/params/script/value;</code>
+
#единица измерения ('''period_unit'''), например: секунда;
#''тип ('''typedef''') '' <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.put&path=0/params/typedef/value;</code>
+
#интервал в единицах измерения ('''period_count'''), например: 1;
#''единица измерения ('''period_unit'''), например: секунда;''
+
#точное время внутри интервала ('''period_time'''), например: 00:00:00, 14:30:00;
#''интервал в единицах измерения ('''period_count'''), например: 1;''
+
#повторять через интервал или выполнить один раз в указанное время ('''repeat'''), например: 0 (бесконечно), 1 (один раз), 100;
#''точное время внутри интервала ('''period_time'''), например: 00:00:00, 14:30:00;''
+
#задействовать триггер ('''enabled'''), например: true;
#''повторять через интервал или выполнить один раз в указанное время ('''repeat'''), например: 0 (бесконечно), 1 (один раз), 100;''
+
#в настройках:
#''задействовать триггер ('''enabled'''), например: true;''
+
::1. данные о движении объекта в некотором формате ('''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;
::1. ''данные о движении объекта в некотором формате ('''settings.input'''), например:''
+
::2. регулярное выражение для разбора данных ('''settings.pattern'''), должно содержать три именованные группы с именами '''longitude''', '''latitude''' и '''altitude''', например:''
  ''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;''
+
  ''(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
::2. ''регулярное выражение для разбора данных ('''settings.pattern'''), должно содержать три именованные группы с именами '''longitude''', '''latitude''' и '''altitude''', например:''
+
::3. идентификатор двигаемого объекта ('''settings.target'''), например: dd0385b7-b32a-4658-88ab-afef3743459b.
  ''(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;''
 
::3. ''идентификатор двигаемого объекта ('''settings.target'''), например: dd0385b7-b32a-4658-88ab-afef3743459b.''
 
 
 
''Настройку параметров триггера также можно выполнить, нажав правой кнопкой мыши по элементу '''EgsScheduled''' и в контекстном меню выбрав пункт "Редактировать параметры".''
 
 
 
[[File:PositionSimulator_4.png|центр]]
 
  
''После этого откроется окно для редактирования параметров.''
+
Настройку параметров триггера также можно выполнить, открыв свойства элемента.
 
 
[[File:PositionSimulator_5.PNG|центр]]
 
 
 
''Также это можно выполнить, открыв свойства элемента.''
 
  
 
[[File:PositionSimulator_6.PNG|центр]]
 
[[File:PositionSimulator_6.PNG|центр]]
Строка 125: Строка 91:
 
Для построения схемы необходимо:
 
Для построения схемы необходимо:
  
1. Создать схему по выше описанному алгоритму.
+
1. Создать схему по выше описанному алгоритму (см. [[Симулятор_движения_(Position_simulator_1)#Построение_схемы|Построение схемы]]).
 
   
 
   
 
[[File:PositionSimulator_3.PNG|центр|1000px]]
 
[[File:PositionSimulator_3.PNG|центр|1000px]]
Строка 146: Строка 112:
 
::2. регулярное выражение для разбора данных ('''settings.pattern'''), должно содержать три именованные группы с именами '''longitude''', '''latitude''' и '''altitude''':
 
::2. регулярное выражение для разбора данных ('''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'''). Для этого необходимо зайти в свойства элемента Большой корабль и нажать на ссылку "Большой корабль". Идентификатор скопируется в буфер обмена. В данном случае это: 2e3b0a7a-cb77-4c93-b461-7c8672dace06.
+
::3. идентификатор двигаемого объекта ('''settings.target'''). Для этого необходимо зайти в свойства элемента Большой корабль и нажать на ссылку "Большой корабль". Идентификатор будет скопирован в буфер обмена. В данном случае это: 2e3b0a7a-cb77-4c93-b461-7c8672dace06.
  
 
[[File:PositionSimulator_8.png|центр]]
 
[[File:PositionSimulator_8.png|центр]]
  
После сохранения параметров триггера в параметре "Расположение" двигаемого элемента с периодичностью в 1 секунду будут устанавливаться значения.
+
'''Результат''':
 +
 
 +
В параметр "Расположение" двигаемого элемента с периодичностью в 1 секунду будут устанавливаться значения.
 +
 
 +
==Дополнения==
 +
1. В пункте 1 раздела [[Симулятор_движения_(Position_simulator_1)#Построение_схемы|Построение схемы]] добавление триггера '''EgsScheduled''' можно осуществить по ссылке.
 +
 
 +
Для этого необходимо:
 +
 
 +
:1. Импортировать скрипт по следующей ссылке: code>http://maps.integra-s.com/resources/typedef2017/egs/Position%20simulator%201.put.</code>
 +
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
 +
 
 +
[[File:Scheduled_com_1.png|центр|1000px]]
 +
 
 +
:3. В открывшемся окне выбрать импортированный скрипт "Outdated remover 1.put".
 +
 
 +
[[File:PositionSimulator_1.PNG|центр|1000px]]
 +
 
 +
:Элемент появится на рабочей области.
 +
 
 +
[[File:Scheduled_com_3.png|центр|1000px]]
 +
 
 +
2. В пункте 7 раздела [[Симулятор_движения_(Position_simulator_1)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
 +
 
 +
[[File:PositionSimulator_4.png|центр]]
 +
 
 +
:После этого откроется окно для редактирования параметров.''
 +
 
 +
[[File:PositionSimulator_5.PNG|центр|1000px]]

Версия 16:14, 14 апреля 2018

Тестирование системы.

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

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

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 Модуля.

PositionSimulator 2.PNG

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

Scheduled com 9.PNG

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

PositionSimulator 3.PNG

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

  1. текст скрипта (script) http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.put&path=0/params/script/value;
  2. тип (typedef) http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.put&path=0/params/typedef/value;
  3. единица измерения (period_unit), например: секунда;
  4. интервал в единицах измерения (period_count), например: 1;
  5. точное время внутри интервала (period_time), например: 00:00:00, 14:30:00;
  6. повторять через интервал или выполнить один раз в указанное время (repeat), например: 0 (бесконечно), 1 (один раз), 100;
  7. задействовать триггер (enabled), например: true;
  8. в настройках:
1. данные о движении объекта в некотором формате (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;
2. регулярное выражение для разбора данных (settings.pattern), должно содержать три именованные группы с именами longitude, latitude и altitude, например:
(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
3. идентификатор двигаемого объекта (settings.target), например: dd0385b7-b32a-4658-88ab-afef3743459b.

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

PositionSimulator 6.PNG

Маски типов и состояний

Маски могут быть как точным именами типов или состояний, так и их частями, содержащими следующие контрольные символы:

? - любой одиночный символ;
* - ноль или более символов;
# - любая цифра от 0 до 9;
[ charlist ] - любой одиночный символ в charlist;
[! charlist ] - любой одиночный символ, не включенный в charlist.

Проверка

После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Position%20simulator%201.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):
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:
(?:(?<longitude>-?\d+\.?\d*),(?<latitude>-?\d+\.?\d*),(?<altitude>-?\d+\.?\d*))\s*;
3. идентификатор двигаемого объекта (settings.target). Для этого необходимо зайти в свойства элемента Большой корабль и нажать на ссылку "Большой корабль". Идентификатор будет скопирован в буфер обмена. В данном случае это: 2e3b0a7a-cb77-4c93-b461-7c8672dace06.
PositionSimulator 8.png

Результат:

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

Дополнения

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

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

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

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

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