Элемент - заместитель связанного устройства (Proxy item с таблицей соответствия состояний) — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Новая страница: «Копирование состояние от связанного устройства в прокси. Копирование команды от прокси…»)
 
(Проверка)
 
(не показано 6 промежуточных версий этого же участника)
Строка 48: Строка 48:
 
7. Настроить следующие параметры триггера:
 
7. Настроить следующие параметры триггера:
  
#текст скрипта ('''script''') <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%202.put&path=0/params/script/value;</code>
+
#текст скрипта ('''script''') <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%203.put&path=0/params/script/value;</code>
 
#задействовать триггер ('''enabled'''), например: true;
 
#задействовать триггер ('''enabled'''), например: true;
 
#в настройках:
 
#в настройках:
Строка 54: Строка 54:
 
##имя пина, через который устройства подключены к прокси ('''item_pin'''), например: zoneInputPin;
 
##имя пина, через который устройства подключены к прокси ('''item_pin'''), например: zoneInputPin;
 
##тип прокси ('''proxy_type'''), например: Zone;
 
##тип прокси ('''proxy_type'''), например: Zone;
##имя пина, через который прокси подключены к устройствам ('''proxy_pin'''), например: zoneOutputPin.
+
##имя пина, через который прокси подключены к устройствам ('''proxy_pin'''), например: zoneOutputPin;
 +
##таблица соответствий ('''table'''), например:
 +
{
 +
    "ok_inactive": "alarm_alarm"
 +
}
 +
 
 +
::Таблица соответствий имеет вид json объекта, ключами которого являются маски состояний устройства, а значениями соответствующие им состояния прокси. Точки в именах событий (например: ok.normal) следует заменять символом подчеркивания (например: ok_normal).
  
 
Настройку параметров триггера можно выполнить, открыв свойства элемента.
 
Настройку параметров триггера можно выполнить, открыв свойства элемента.
Строка 60: Строка 66:
  
 
==Проверка==
 
==Проверка==
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%202.put&path=0/params/hash/value</code>
+
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%203.put&path=0/params/hash/value</code>
  
''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.''
+
''Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.''
  
 
==Алгоритм работы==
 
==Алгоритм работы==
Строка 68: Строка 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''' и параметр помечается как не валидный.
  
Строка 96: Строка 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)", у зоны - "В норме (ок)"
  
 
==Дополнения==
 
==Дополнения==
Строка 107: Строка 119:
 
Для этого необходимо:
 
Для этого необходимо:
  
:1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Proxy%20item%202.put.</code>
+
:1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Proxy%20item%203.put.</code>
 
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
 
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
  
Строка 120: Строка 132:
 
[[File:ResponsiveCommander_3.PNG|центр|1000px]]
 
[[File:ResponsiveCommander_3.PNG|центр|1000px]]
  
2. В пункте 7 раздела [[Элемент_-_заместитель_связанного_устройства_(Proxy_item_1)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
+
2. В пункте 7 раздела [[Элемент_-_заместитель_связанного_устройства_(Proxy_item_с_таблицей_соответствия_состояний)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
  
 
[[File:ProxiItem_4.png|центр]]
 
[[File:ProxiItem_4.png|центр]]

Текущая версия на 11:45, 21 мая 2019

Копирование состояние от связанного устройства в прокси. Копирование команды от прокси в связанное устройство.

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

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

1. Добавить триггер EgsObjectUpdated.

Для этого необходимо:
1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsObjectUpdated.
ResponsiveCommander 2.png
2. Дважды нажать на выбранный элемент, после чего появится окно для добавления элемента.
Scheduled com 5.png
3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
ResponsiveCommander 3.PNG

2. Аналогично пункту 1 добавить элементы Egs Модуль EgsModule, менеджер AcuarioManager и компьютер Computer.

ResponsiveCommander 4.PNG

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

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

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

Scheduled com 7.PNG

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

ProxiItem 2.PNG

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

Scheduled com 9.PNG

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

ProxiItem 3.PNG

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

  1. текст скрипта (script) http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%203.put&path=0/params/script/value;
  2. задействовать триггер (enabled), например: true;
  3. в настройках:
    1. тип устройств (item_type), например: VideoCamera;
    2. имя пина, через который устройства подключены к прокси (item_pin), например: zoneInputPin;
    3. тип прокси (proxy_type), например: Zone;
    4. имя пина, через который прокси подключены к устройствам (proxy_pin), например: zoneOutputPin;
    5. таблица соответствий (table), например:
{
   "ok_inactive": "alarm_alarm" 
}
Таблица соответствий имеет вид json объекта, ключами которого являются маски состояний устройства, а значениями соответствующие им состояния прокси. Точки в именах событий (например: ok.normal) следует заменять символом подчеркивания (например: ok_normal).

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

ProxiItem 6.PNG

Проверка

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

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

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

  1. При смене состояния устройства, имеющего тип из списка item_type:
    1. находятся все прокси, соединенные с устройством линком от item_pin к proxy_pin и имеющие тип из списка proxy_type;
    2. из таблицы соответствий по маске значения состояния устройства выбирается соответствующее состояние прокси;
    3. если соответствия нет, то значение состояния устройства копируется в состояние прокси как есть;
    4. если у прокси нет такого состояния, то выбирается наиболее близкое базовое состояние из списка ok.normal, error.defective, alarm.alarm и none.unknown.
  2. При смене команды прокси, имеющего тип из списка proxy_type:
    1. находятся все устройства, соединенные с прокси линком от proxy_pin к item_pin и имеющие тип из списка item_type;
    2. значение команды прокси копируется в состояние устройства как есть;
    3. если у устройства нет такого состояния, то выставляется значение DEFAULT и параметр помечается как не валидный.

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

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

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

ProxiItem 3.PNG

2. Добавить элемент Зона и IP Видеокамера. Подключите пин "Привязка к зоне: ZoneInputPin" из IP Видеокамеры с пином "Зона: ZoneOutputPin" из Зоны.

ProxiItem 7.PNG

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

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

  1. задействовать триггер (enabled): true;
  2. в настройках:
    1. тип устройств (item_type): VideoCamera;
    2. имя пина, через который устройство подключено к прокси (item_pin): zoneInputPin;
    3. тип прокси (proxy_type): Zone;
    4. имя пина, через который прокси подключен к устройствам (proxy_pin): zoneOutputPin;
    5. таблица соответствий (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. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
Scheduled com 1.png
3. В открывшемся окне выбрать импортированный скрипт "Proxy item 1.put".
ProxiItem 1.PNG
Элемент появится на рабочей области.
ResponsiveCommander 3.PNG

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

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