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

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Алгоритм работы)
Строка 106: Строка 106:
 
==Алгоритм работы==
 
==Алгоритм работы==
  
#Проверяется, чтобы объект источник события соответствовал хотя бы одной маске из списка '''settings.source_types''', либо имел идентификатор из списка '''settings.source_guids'''.
+
#При смене состояния устройства, имеющего тип из списка '''item_types''':
#Проверяется, что список измененных параметров содержит состояние объекта, и значение состояния соответствует хотя бы одной маске из списка '''settings.source_states'''.
+
##находятся все прокси, соединенные с устройством линком от '''item_pin''' к '''proxy_pin''' и имеющие тип из списка '''proxy_types''';
#Если в '''settings.link_type''' указан тип линка и '''settings.link_same_side''' равен '''false''':
+
##значение состояния устройства копируется в состояние прокси;
##выбираются все объекты, находящиеся с ранее выбранными по разную сторону линка '''settings.link_type''';
+
##если у прокси нет такого состояния, то выбирается наиболее близкое базовое состояние из списка '''ok.normal''', '''error.defective''', '''alarm.alarm''' и '''none.unknown'''.
##выбранным объектам в поле '''command''' записывается команда '''settings.target_command'''.
+
#При смене команды прокси, имеющего тип из списка '''proxy_types''':
#Если в '''settings.link_type''' указан тип линка и '''settings.link_same_side''' равен '''true''':
+
##находятся все устройства, соединенные с прокси линком от '''proxy_pin''' к '''item_pin''' и имеющие тип из списка '''item_types''';
##выбираются все объекты, находящиеся с ранее выбранными по одну сторону линка '''settings.link_type''';
+
##значение команды прокси копируется в состояние устройства;
##выбранным объектам в поле '''command''' записывается команда '''settings.target_command'''.
+
##если у устройства нет такого состояния, то выставляется значение '''DEFAULT''' и параметр помечается как не валидный.
#Если в '''settings.link_type''' не указан тип линка:
 
##выбираются все объекты типов, соответствующих хотя бы одной маске из списка '''settings.target_types''', либо имеющие идентификатор из списка '''settings.target_guids'''.
 
##выбранным объектам в поле '''command''' записывается команда '''settings.target_command'''.
 
  
 
==Пример работы==
 
==Пример работы==

Версия 17:27, 10 апреля 2018

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


Настройка

Добавления триггера EgsObjectUpdated

Триггер EgsObjectUpdated можно добавить двумя способами:

Добавление триггера EgsObjectUpdated по ссылке

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

1. Импортировать скрипт по следующей ссылке: http://maps.integra-s.com/resources/typedef2017/egs/Proxy%20item%201.put.

2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".

Scheduled com 1.png

3. В открывшемся окне выбрать импортированный скрипт "Proxy item 1.put".

ProxiItem 1.PNG

Элемент появится на рабочей области.

ResponsiveCommander 3.PNG

Добавление триггера вручную

Для того чтобы добавить триггер вручную, необходимо:

1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент EgsObjectUpdated.

ResponsiveCommander 2.png

2. Дважды нажать на выбранный элемент.

После этого появится окно для добавления элемента.

Scheduled com 5.png

3. Нажать кнопку "Добавить".

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

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

Для дальнейшего построения схемы необходимо:

1. Добавить элемент EgsModule, менеджер AcuarioManager и компьютер Computer.

ResponsiveCommander 4.PNG

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

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

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

Scheduled com 7.PNG

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

ProxiItem 2.PNG

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

Scheduled com 9.PNG

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

ProxiItem 3.PNG

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

  1. задействовать триггер (enabled), например: true;
  2. в настройках:
    1. список масок имен типов устройств (item_types), например: VideoCamera;
    2. имя пина, через который устройства подключены к прокси (item_pin), например: zoneInputPin;
    3. список масок имен типов прокси (proxy_types), например: Zone;
    4. имя пина, через который прокси подключены к устройствам (proxy_pin), например: zoneOutputPin.

Замечание:

Если скрипт не был импортирован, то для триггера необходимо настроить параметры:

  1. текст скрипта (script) http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%201.put&path=0/params/script/value;
  2. тип (typedef) http://maps.integra-s.com/resources/typedef2017/jsonpath.php?url=/egs/Proxy%20item%201.put&path=0/params/typedef/value.

Настройку параметров триггера также можно выполнить, нажав правой кнопкой мыши по элементу EgsObjectUpdated и в контекстном меню выбрав пункт "Редактировать параметры".

ProxiItem 4.png

После этого откроется окно для редактирования параметров.

ProxiItem 5.PNG

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

ProxiItem 6.PNG

Проверка

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

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

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

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

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

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

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

ResponsiveCommander 6.PNG

2. Добавить элемент Турникет и Болид Пожарный датчик.

ResponsiveCommander 10.PNG

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

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

  1. список масок имен типов источников событий (source_types): [];
  2. список масок имен событий, активирующих скрипт (source_states): alarm_*;
  3. имя типа линка, соединяющего источник и приемник (link_type): "";
  4. флаг, указывающий по одну или по разные стороны линка находятся источник события и приемник команды (link_same_side): false;
  5. список масок имен типов приемников команд (target_types): [];
  6. список идентификаторов объектов приемников команд (target_guids). В данном случае это турникет с идентификатором: 70500b89-8b04-46b3-9173-6a48ecd78e61;
  7. отправляемая команда (target_command): open_out;
  8. список идентификаторов объектов источников событий (source_guids).

Для этого необходимо зайти в свойства пожарного датчика и нажать на ссылку "Болид Пожарный датчик". Идентификатор скопируется в буфер обмена. В данном случае это: 2ff2420d-a001-4d59-99b7-4ca66d507e6f.

ResponsiveCommander 11.png

После сохранения параметров по тревоге от датчика пожарной сигнализации выполнится команда "открыть на выход" турникет .