Элемент - заместитель связанного устройства (Proxy item с таблицей соответствия состояний) — различия между версиями
Mikheeva (обсуждение | вклад) (→Построение схемы) |
Mikheeva (обсуждение | вклад) (→Проверка) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 66: | Строка 66: | ||
==Проверка== | ==Проверка== | ||
− | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item% | + | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%203.put&path=0/params/hash/value</code> |
− | ''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.'' | + | ''Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.'' |
==Алгоритм работы== | ==Алгоритм работы== | ||
Строка 74: | Строка 74: | ||
#При смене состояния устройства, имеющего тип из списка '''item_type''': | #При смене состояния устройства, имеющего тип из списка '''item_type''': | ||
##находятся все прокси, соединенные с устройством линком от '''item_pin''' к '''proxy_pin''' и имеющие тип из списка '''proxy_type'''; | ##находятся все прокси, соединенные с устройством линком от '''item_pin''' к '''proxy_pin''' и имеющие тип из списка '''proxy_type'''; | ||
− | ##значение состояния устройства копируется в состояние прокси; | + | ##из таблицы соответствий по маске значения состояния устройства выбирается соответствующее состояние прокси; |
+ | ##если соответствия нет, то значение состояния устройства копируется в состояние прокси как есть; | ||
##если у прокси нет такого состояния, то выбирается наиболее близкое базовое состояние из списка '''ok.normal''', '''error.defective''', '''alarm.alarm''' и '''none.unknown'''. | ##если у прокси нет такого состояния, то выбирается наиболее близкое базовое состояние из списка '''ok.normal''', '''error.defective''', '''alarm.alarm''' и '''none.unknown'''. | ||
#При смене команды прокси, имеющего тип из списка '''proxy_type''': | #При смене команды прокси, имеющего тип из списка '''proxy_type''': | ||
##находятся все устройства, соединенные с прокси линком от '''proxy_pin''' к '''item_pin''' и имеющие тип из списка '''item_type'''; | ##находятся все устройства, соединенные с прокси линком от '''proxy_pin''' к '''item_pin''' и имеющие тип из списка '''item_type'''; | ||
− | ##значение команды прокси копируется в состояние устройства; | + | ##значение команды прокси копируется в состояние устройства как есть; |
##если у устройства нет такого состояния, то выставляется значение '''DEFAULT''' и параметр помечается как не валидный. | ##если у устройства нет такого состояния, то выставляется значение '''DEFAULT''' и параметр помечается как не валидный. | ||
Строка 102: | Строка 103: | ||
##имя пина, через который устройство подключено к прокси ('''item_pin'''): zoneInputPin; | ##имя пина, через который устройство подключено к прокси ('''item_pin'''): zoneInputPin; | ||
##тип прокси ('''proxy_type'''): Zone; | ##тип прокси ('''proxy_type'''): Zone; | ||
− | ##имя пина, через который прокси подключен к устройствам ('''proxy_pin'''): zoneOutputPin | + | ##имя пина, через который прокси подключен к устройствам ('''proxy_pin'''): zoneOutputPin; |
− | + | ##таблица соответствий ('''table'''): | |
+ | |||
+ | { | ||
+ | "ok_inactive": "alarm_alarm", | ||
+ | "error_flashing": "ok_normal" | ||
+ | } | ||
'''Результат''': | '''Результат''': | ||
− | При смене состояния IP Видеокамеры | + | При смене состояния IP Видеокамеры на "Неактивен (ок)", у Зоны появится состояние "Тревога Тревога", при состоянии IP Видеокамеры "Восстановление сигнала (error)", у зоны - "В норме (ок)" |
==Дополнения== | ==Дополнения== | ||
Строка 113: | Строка 119: | ||
Для этого необходимо: | Для этого необходимо: | ||
− | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Proxy%20item% | + | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Proxy%20item%203.put.</code> |
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
Строка 126: | Строка 132: | ||
[[File:ResponsiveCommander_3.PNG|центр|1000px]] | [[File:ResponsiveCommander_3.PNG|центр|1000px]] | ||
− | 2. В пункте 7 раздела [[Элемент_-_заместитель_связанного_устройства_( | + | 2. В пункте 7 раздела [[Элемент_-_заместитель_связанного_устройства_(Proxy_item_с_таблицей_соответствия_состояний)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры". |
[[File:ProxiItem_4.png|центр]] | [[File:ProxiItem_4.png|центр]] |
Текущая версия на 11:45, 21 мая 2019
Копирование состояние от связанного устройства в прокси. Копирование команды от прокси в связанное устройство.
Построение схемы
Для построения схемы требуется:
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/Proxy%20item%203.put&path=0/params/script/value;
- задействовать триггер (enabled), например: true;
- в настройках:
- тип устройств (item_type), например: VideoCamera;
- имя пина, через который устройства подключены к прокси (item_pin), например: zoneInputPin;
- тип прокси (proxy_type), например: Zone;
- имя пина, через который прокси подключены к устройствам (proxy_pin), например: zoneOutputPin;
- таблица соответствий (table), например:
{ "ok_inactive": "alarm_alarm" }
- Таблица соответствий имеет вид json объекта, ключами которого являются маски состояний устройства, а значениями соответствующие им состояния прокси. Точки в именах событий (например: ok.normal) следует заменять символом подчеркивания (например: ok_normal).
Настройку параметров триггера можно выполнить, открыв свойства элемента.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%203.put&path=0/params/hash/value
Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.
Алгоритм работы
- При смене состояния устройства, имеющего тип из списка item_type:
- находятся все прокси, соединенные с устройством линком от item_pin к proxy_pin и имеющие тип из списка proxy_type;
- из таблицы соответствий по маске значения состояния устройства выбирается соответствующее состояние прокси;
- если соответствия нет, то значение состояния устройства копируется в состояние прокси как есть;
- если у прокси нет такого состояния, то выбирается наиболее близкое базовое состояние из списка ok.normal, error.defective, alarm.alarm и none.unknown.
- При смене команды прокси, имеющего тип из списка proxy_type:
- находятся все устройства, соединенные с прокси линком от proxy_pin к item_pin и имеющие тип из списка item_type;
- значение команды прокси копируется в состояние устройства как есть;
- если у устройства нет такого состояния, то выставляется значение DEFAULT и параметр помечается как не валидный.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).
2. Добавить элемент Зона и IP Видеокамера. Подключите пин "Привязка к зоне: ZoneInputPin" из IP Видеокамеры с пином "Зона: ZoneOutputPin" из Зоны.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- задействовать триггер (enabled): true;
- в настройках:
- тип устройств (item_type): VideoCamera;
- имя пина, через который устройство подключено к прокси (item_pin): zoneInputPin;
- тип прокси (proxy_type): Zone;
- имя пина, через который прокси подключен к устройствам (proxy_pin): zoneOutputPin;
- таблица соответствий (table):
{ "ok_inactive": "alarm_alarm", "error_flashing": "ok_normal" }
Результат:
При смене состояния IP Видеокамеры на "Неактивен (ок)", у Зоны появится состояние "Тревога Тревога", при состоянии IP Видеокамеры "Восстановление сигнала (error)", у зоны - "В норме (ок)"
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsObjectUpdated можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке:
http://maps.integra-s.com:5434/resources/typedef2017/egs/Proxy%20item%203.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "Proxy item 1.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.