Трансляция состояний в события (State Event)
Отслеживание изменений состояния элементов, соответствующих по типу или гуиду какому либо фильтру состояний из таблицы соответствия. Трансляция состояний, удовлетворяющих выбранному фильтру, в события типа StateEvent.
Содержание
[убрать]Построение схемы
Для построения схемы требуется:
1. Добавить триггер EgsObjectUpdated.
- Для этого необходимо:
- 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsObjectUpdated.
- 2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
- 3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
2. Аналогично пункту 1 добавить элементы Egs Модуль EgsModule, менеджер AcuarioManager и компьютер Computer.
3. Настроить сетевой адрес компьютера.
Для этого необходимо выделить на схеме компьютер и нажать на кнопку вызова свойств элемента.
В окне свойств элемента указать ip адрес используемого компьютера в строке "Сетевой адрес".
4. Связать EgsObjectUpdated и Egs Модуль, подключив пины «Egs вход: EgsInput» у EgsObjectUpdated и «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%20Event%201.put&path=0/params/script/value;
- задействовать триггер (enabled), например: true.
- в настройках таблица соответствий типов или идентификаторов устройств набору фильтров состояний в json формате (table), см. ниже.
{ "VideoCamera": [ "alarm_*", "ok_normal" ], "4562ea51-77ff-4539-b087-3db8d52510b8": "*" }
Таблица соответствий имеет вид json объекта, ключами которого являются либо имена типов устройств, либо их идентификаторы, а значениями - соответствующие им наборы масок состояний устройства, либо одна единственная маска. Точки в именах событий (например: ok.normal) следует заменять символом подчеркивания (например: ok_normal). Настройку параметров триггера можно выполнить, открыв свойства элемента.
Маски состояний
Маски могут быть как точным именами типов или состояний так и их частями содержащими следующие контрольные символы:
? - любой одиночный символ; * - ноль или более символов; # - любая цифра от 0 до 9; [ charlist ] - любой одиночный символ в charlist; [! charlist ] - любой одиночный символ, не включенный в charlist.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Smart%20zone%201.put&path=0/params/hash/value
Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.
Алгоритм работы
- Если в зоне нет ни одного устройства: Состояние зоны устанавливается в неизвестно (none.unknown).
- Если в зоне одно устройство: Cостояние устройства транслируются в состояние зоны с автоматическим приведением к в норме (ok.normal), неисправно (error.defective), тревога (alarm.alarm).
- Если в зоне более одного устройства:
- Для перехода зоны в тревогу необходимо, чтобы в тревоге находились как минимум два устройства.
- Для перехода зоны в неисправность достаточно, чтобы хотя бы одно устройство было в состоянии неисправность, неизвестно или DEFAULT (2 тревоги приоритетнее).
- Для перехода зоны из тревоги в норму необходимо, чтобы все устройства пришли в норму.
- Для перехода зоны из неисправности в норму необходимо, чтобы пришли в норму все устройства, кроме одного, которое может быть в тревоге или норме.
- Команды activate и deactivate транслируются в соответствующие команды всех устройств.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).
2. Добавить элемент Зона и 3 IP видеокамеры, соединив пины "Зона:ZoneOutputPin" у Зоны и "Привязка к зоне:ZoneInputPin" у IP видеокамеры.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- текст скрипта (script): http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Smart%20zone%201.put&path=0/params/script/value;
- задействовать триггер (enabled): true.
5. Установить в 2 IP видеокамерах состояние "Тревога".
Результат:
В Зоне устанавливается состояние "Тревога".
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsObjectUpdated можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке:
http://maps.integra-s.com:5434/resources/typedef2017/egs/Smart%20zone%201.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "Smart Zone.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.