Трансляция состояний в KKS(KKS Translator) — различия между версиями
Mikheeva (обсуждение | вклад) (→Построение схемы) |
Mikheeva (обсуждение | вклад) (→Маски состояний) |
||
(не показано 17 промежуточных версий этого же участника) | |||
Строка 63: | Строка 63: | ||
} | } | ||
} | } | ||
+ | Таблица соответствий имеет вид json объекта, ключами которого являются имена произвольных типов объектов, а значениями другие json объекты, ключами которых, в свою очередь, являются маски состояний, а значениями соответствующие KKS коды. Точки в именах событий (например: ok.normal) следует заменять символом подчеркивания (например: ok_normal). | ||
Настройку параметров триггера можно выполнить, открыв свойства элемента. | Настройку параметров триггера можно выполнить, открыв свойства элемента. | ||
[[File:kks_3.PNG|центр]] | [[File:kks_3.PNG|центр]] | ||
+ | |||
+ | ==Маски состояний== | ||
+ | Маски могут быть как точным именами типов или состояний, так и их частями, содержащими следующие контрольные символы: | ||
+ | |||
+ | ? - любой одиночный символ; | ||
+ | * - ноль или более символов; | ||
+ | # - любая цифра от 0 до 9; | ||
+ | [ charlist ] - любой одиночный символ в charlist; | ||
+ | [! charlist ] - любой одиночный символ, не включенный в charlist. | ||
==Проверка== | ==Проверка== | ||
− | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/ | + | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/KKS%20Translator%201.put&path=0/params/hash/value</code> |
− | ''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.'' | + | ''Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.'' |
==Алгоритм работы== | ==Алгоритм работы== | ||
− | # | + | #Проверяется, в списке имен измененных параметров было ли состояние объекта, т.е. параметр '''state'''. |
− | + | #Из корневого объекта таблицы соответствия выбираются все значения, ключи которых входят в список типов изменившегося элемента системы. | |
− | + | #Из выбранных подтаблиц соответствия выбираются все значения, ключи которых являются корректной маской текстового значения состояния изменившегося элемента системы. | |
− | + | #Если получившийся список не пуст - его первое значение записывается в параметр '''kks_state''' изменившегося элемента системы, иначе - ничего не происходит. | |
− | # | ||
− | # | ||
− | # | ||
− | |||
==Пример работы== | ==Пример работы== | ||
Строка 87: | Строка 93: | ||
Для построения схемы необходимо: | Для построения схемы необходимо: | ||
− | 1. Создать схему по выше описанному алгоритму (см. [[ | + | 1. Создать схему по выше описанному алгоритму (см. [[Трансляция_состояний_в_KKS(KKS_Translator)#Построение_схемы|Построение схемы]]). |
− | + | ||
− | [[File: | + | [[File:kks_5.PNG|центр|1000px]] |
− | 2. Добавить элемент | + | 2. Добавить элемент Болид пожарный датчик. |
− | [[File: | + | [[File:kks_4.PNG|центр|1000px]] |
3. Настроить параметр "Сетевой адрес" компьютера. | 3. Настроить параметр "Сетевой адрес" компьютера. | ||
Строка 100: | Строка 106: | ||
#задействовать триггер ('''enabled'''): true; | #задействовать триггер ('''enabled'''): true; | ||
− | #в настройках | + | #в настройках таблица соответствий состояний KKS кодам в json формате ('''table'''), см. ниже. |
− | + | { | |
− | + | "FireSecurityCategory": | |
− | + | { | |
− | + | "alarm*": "XF02", | |
+ | "ok_normal": "XF01", | ||
+ | } | ||
+ | } | ||
'''Результат''': | '''Результат''': | ||
− | При смене состояния | + | При смене состояния датчика, на тревогу, в его параметре "KKS состояние" будет установлен код XF02, при смене состояния на "в норме" - XF01. |
==Дополнения== | ==Дополнения== | ||
− | 1. В пункте 1 раздела [[ | + | 1. В пункте 1 раздела [[Трансляция_состояний_в_KKS(KKS_Translator)#Построение_схемы|Построение схемы]] добавление триггера '''EgsObjectUpdated''' можно осуществить по ссылке. |
Для этого необходимо: | Для этого необходимо: | ||
− | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/ | + | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/KKS%20Translator%201.put.</code> |
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
[[File:Scheduled_com_1.png|центр|1000px]] | [[File:Scheduled_com_1.png|центр|1000px]] | ||
− | :3. В открывшемся окне выбрать импортированный скрипт " | + | :3. В открывшемся окне выбрать импортированный скрипт "KKS Translator 1.put". |
− | [[File: | + | [[File:kks_6.PNG|центр|1000px]] |
:Элемент появится на рабочей области. | :Элемент появится на рабочей области. | ||
Строка 128: | Строка 137: | ||
[[File:ResponsiveCommander_3.PNG|центр|1000px]] | [[File:ResponsiveCommander_3.PNG|центр|1000px]] | ||
− | 2. В пункте 7 раздела [[ | + | 2. В пункте 7 раздела [[Трансляция_состояний_в_KKS(KKS_Translator)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры". |
− | [[File: | + | [[File:kks_7.PNG|центр]] |
:После этого откроется окно для редактирования параметров.'' | :После этого откроется окно для редактирования параметров.'' | ||
− | [[File: | + | [[File:kks_8.PNG|центр|1000px]] |
Текущая версия на 13:24, 22 мая 2019
Трансляция состояний в KKS коды в соответствии с таблицей соответствия. Скрипт работает с одной локальной базой интеграции.
Содержание
Построение схемы
Для построения схемы требуется:
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/KKS%20Translator%201.put&path=0/params/script/value;
- задействовать триггер (enabled), например: true;
- в настройках таблица соответствий состояний KKS кодам в json формате (table), см. ниже.
{ "FireSecurityCategory": { "alarm*": "XF02", ""ok_normal": "XF01", }, "SpatialObject": { "error*": "XE02", "none*": "XE02", "*": "XE01" } }
Таблица соответствий имеет вид json объекта, ключами которого являются имена произвольных типов объектов, а значениями другие json объекты, ключами которых, в свою очередь, являются маски состояний, а значениями соответствующие KKS коды. Точки в именах событий (например: ok.normal) следует заменять символом подчеркивания (например: ok_normal).
Настройку параметров триггера можно выполнить, открыв свойства элемента.
Маски состояний
Маски могут быть как точным именами типов или состояний, так и их частями, содержащими следующие контрольные символы:
? - любой одиночный символ; * - ноль или более символов; # - любая цифра от 0 до 9; [ charlist ] - любой одиночный символ в charlist; [! charlist ] - любой одиночный символ, не включенный в charlist.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/KKS%20Translator%201.put&path=0/params/hash/value
Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.
Алгоритм работы
- Проверяется, в списке имен измененных параметров было ли состояние объекта, т.е. параметр state.
- Из корневого объекта таблицы соответствия выбираются все значения, ключи которых входят в список типов изменившегося элемента системы.
- Из выбранных подтаблиц соответствия выбираются все значения, ключи которых являются корректной маской текстового значения состояния изменившегося элемента системы.
- Если получившийся список не пуст - его первое значение записывается в параметр kks_state изменившегося элемента системы, иначе - ничего не происходит.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).
2. Добавить элемент Болид пожарный датчик.
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- задействовать триггер (enabled): true;
- в настройках таблица соответствий состояний KKS кодам в json формате (table), см. ниже.
{ "FireSecurityCategory": { "alarm*": "XF02", "ok_normal": "XF01", } }
Результат:
При смене состояния датчика, на тревогу, в его параметре "KKS состояние" будет установлен код XF02, при смене состояния на "в норме" - XF01.
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsObjectUpdated можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке:
http://maps.integra-s.com:5434/resources/typedef2017/egs/KKS%20Translator%201.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "KKS Translator 1.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.