Симулятор событий (State simulator 1) — различия между версиями
Mikheeva (обсуждение | вклад) (→Построение схемы) |
Mikheeva (обсуждение | вклад) |
||
(не показано 10 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Тестирование системы. | + | Тестирование системы. Скрипт работает с одной локальной базой интеграции. |
==Построение схемы== | ==Построение схемы== | ||
Строка 38: | Строка 38: | ||
[[File:StateSimulator_2.PNG|центр|1000px]] | [[File:StateSimulator_2.PNG|центр|1000px]] | ||
− | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "''' | + | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Менеджер устройств: ManagingContainer'''" из '''Менеджера устройств'''. |
[[File:Scheduled_com_9.PNG|центр|1000px]] | [[File:Scheduled_com_9.PNG|центр|1000px]] | ||
Строка 48: | Строка 48: | ||
7. Настроить следующие параметры триггера: | 7. Настроить следующие параметры триггера: | ||
− | #текст скрипта ('''script''')'' <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/State%20simulator% | + | #текст скрипта ('''script''')'' <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/State%20simulator%202.put&path=0/params/script/value;</code> |
− | |||
#единица измерения ('''period_unit'''), например: секунда; | #единица измерения ('''period_unit'''), например: секунда; | ||
#интервал в единицах измерения ('''period_count'''), например: 1; | #интервал в единицах измерения ('''period_count'''), например: 1; | ||
Строка 56: | Строка 55: | ||
#задействовать триггер ('''enabled'''), например: true; | #задействовать триггер ('''enabled'''), например: true; | ||
#в настройках: | #в настройках: | ||
− | ## | + | ##тип устройства, участвующего в симуляции ('''settings.types'''), например: Onvif_*; |
##список масок имен событий, участвующих в симуляции ('''settings.states'''), например: alarm_*, error_*; | ##список масок имен событий, участвующих в симуляции ('''settings.states'''), например: alarm_*, error_*; | ||
##клиентское время начала симуляции ('''settings.time_start'''), если не указано, используется текущее время; | ##клиентское время начала симуляции ('''settings.time_start'''), если не указано, используется текущее время; | ||
Строка 72: | Строка 71: | ||
[[File:StateSimulator_6.PNG|центр]] | [[File:StateSimulator_6.PNG|центр]] | ||
− | ==Маски | + | ==Маски состояний== |
− | Маски могут быть как точным именами | + | Маски могут быть как точным именами состояний, так и их частями, содержащими следующие контрольные символы: |
? - любой одиночный символ; | ? - любой одиночный символ; | ||
Строка 82: | Строка 81: | ||
==Проверка== | ==Проверка== | ||
− | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/State%20simulator% | + | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/State%20simulator%202.put&path=0/params/hash/valuee</code> |
''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.'' | ''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.'' | ||
Строка 88: | Строка 87: | ||
==Алгоритм работы== | ==Алгоритм работы== | ||
− | #Из объектов | + | #Из объектов типа '''settings.types''', выбирается объект с наименьшей версией. |
#Для выбранного объекта выбирается состояние, соответствующее хотя бы одной маске из списка '''settings.states'''. | #Для выбранного объекта выбирается состояние, соответствующее хотя бы одной маске из списка '''settings.states'''. | ||
#Если необходимо, рассчитывается клиентское время события. | #Если необходимо, рассчитывается клиентское время события. | ||
Строка 114: | Строка 113: | ||
#задействовать триггер ('''enabled'''): true; | #задействовать триггер ('''enabled'''): true; | ||
#в настройках: | #в настройках: | ||
− | ## | + | ##тип ('''settings.types'''): Turnstile; |
− | ##список масок имен событий, участвующих в симуляции ('''settings.states'''): alarm_ | + | ##список масок имен событий, участвующих в симуляции ('''settings.states'''): alarm_*; |
##клиентское время начала симуляции ('''settings.time_start'''): 2018-01-01T00:00:00; | ##клиентское время начала симуляции ('''settings.time_start'''): 2018-01-01T00:00:00; | ||
##клиентское время окончания симуляции ('''settings.time_stop'''): 2019-01-01T00:00:00; | ##клиентское время окончания симуляции ('''settings.time_stop'''): 2019-01-01T00:00:00; | ||
− | ##приращение клиентского времени ('''settings.time_gain'''): 00:00: | + | ##приращение клиентского времени ('''settings.time_gain'''): 00:00:10; |
##отклонение приращения клиентского времени ('''settings.time_yaw'''): 00:00:00. | ##отклонение приращения клиентского времени ('''settings.time_yaw'''): 00:00:00. | ||
− | |||
− | |||
'''Результат''': | '''Результат''': | ||
− | Состояние турникета будет устанавливаться | + | Состояние турникета будет устанавливаться в состояние "Тревога". |
==Дополнения== | ==Дополнения== | ||
Строка 132: | Строка 129: | ||
Для этого необходимо: | Для этого необходимо: | ||
− | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com/resources/typedef2017/egs/State%20simulator% | + | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/State%20simulator%202.put.</code> |
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
Текущая версия на 12:41, 6 марта 2019
Тестирование системы. Скрипт работает с одной локальной базой интеграции.
Содержание
Построение схемы
Для построения схемы требуется:
1. Добавить триггер EgsScheduled.
- Для этого необходимо:
- 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsScheduled.
- 2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
- 3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
- Также все элементы можно добавлять путем захвата и перетаскивания на рабочую область левой кнопкой мыши.
2. Аналогично пункту 1 добавить элементы Egs Модуль EgsModule, менеджер AcuarioManager и компьютер Computer.
3. Настроить сетевой адрес компьютера.
Для этого необходимо выделить на схеме компьютер и нажать на кнопку вызова свойств элемента.
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
4. Связать EgsScheduled и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsScheduled и «Egs выход: EgsOutput» у Egs Модуля.
5. Привязать пин "Привязка к менеджеру: ManagingContent" из Egs Модуля к пину "Менеджер устройств: ManagingContainer" из Менеджера устройств.
6. Подключить пин "ПО: SoftwareContent" из Менеджера устройств с пином "Установленное ПО: SoftwareContainer" из Компьютера.
7. Настроить следующие параметры триггера:
- текст скрипта (script)
http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/State%20simulator%202.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;
- в настройках:
- тип устройства, участвующего в симуляции (settings.types), например: Onvif_*;
- список масок имен событий, участвующих в симуляции (settings.states), например: alarm_*, error_*;
- клиентское время начала симуляции (settings.time_start), если не указано, используется текущее время;
- клиентское время окончания симуляции (settings.time_stop), если указано, то по его достижении симуляция останавливается;
- приращение клиентского времени (settings.time_gain), добавляется к settings.time_start на каждой итерации;
- отклонение приращения клиентского времени (settings.time_yaw).
Tекущее клиентское время итерации рассчитывается по следующей формуле:
текущее_время = предыдущее_время + приращение + случайное_число_из_интервала от - отклонение до + отклонение
Если settings.time_gain не указано и repeat более нуля, то приращение рассчитывается по следующей формуле:
приращение = (время_окончания - время_начала) / количество_итераций
Настройку параметров триггера можно выполнить, открыв свойства элемента.
Маски состояний
Маски могут быть как точным именами состояний, так и их частями, содержащими следующие контрольные символы:
? - любой одиночный символ; * - ноль или более символов; # - любая цифра от 0 до 9; [ charlist ] - любой одиночный символ в charlist; [! charlist ] - любой одиночный символ, не включенный в charlist.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/State%20simulator%202.put&path=0/params/hash/valuee
Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.
Алгоритм работы
- Из объектов типа settings.types, выбирается объект с наименьшей версией.
- Для выбранного объекта выбирается состояние, соответствующее хотя бы одной маске из списка settings.states.
- Если необходимо, рассчитывается клиентское время события.
- Изменяется состояние объекта.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).
2. Добавить элемент Турникет.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- единица измерения (period_unit): секунда;
- интервал в единицах измерения (period_count): 1;
- повторять через интервал или выполнить один раз в указанное время (repeat): 0;
- задействовать триггер (enabled): true;
- в настройках:
- тип (settings.types): Turnstile;
- список масок имен событий, участвующих в симуляции (settings.states): alarm_*;
- клиентское время начала симуляции (settings.time_start): 2018-01-01T00:00:00;
- клиентское время окончания симуляции (settings.time_stop): 2019-01-01T00:00:00;
- приращение клиентского времени (settings.time_gain): 00:00:10;
- отклонение приращения клиентского времени (settings.time_yaw): 00:00:00.
Результат:
Состояние турникета будет устанавливаться в состояние "Тревога".
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsScheduled можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке:
http://maps.integra-s.com:5434/resources/typedef2017/egs/State%20simulator%202.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "State simulator 1.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.