Подсистема реакций и сценариев (Reflex Center) — различия между версиями
Материал из Integra-S Wiki
Wikiadmin (обсуждение | вклад) (Полностью удалено содержимое страницы) |
Wikiadmin (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| + | __FORCETOC__ | ||
| + | == Назначение == | ||
| + | # Отслеживание изменения параметра объекта источника | ||
| + | # Поиск связанного с источником объекта приемника | ||
| + | # Выполнение действий с объектом приемником в соответствии с условием | ||
| + | == Описание == | ||
| + | # Скрипт можно импортировать отсюда http://maps.integra-s.com:5434/resources/typedef2017/egs/Reflex%20Center.put | ||
| + | # Скрипт должен исполняться в триггере EgsScenario в процессе менеджера AcuarioManager | ||
| + | # Триггер должен быть подключен к модулю EgsModule | ||
| + | # Модуль должен быть подключен к менеджеру AcuarioManager | ||
| + | # Менеджер должен быть подключен к компьютеру Computer | ||
| + | # У компьютера должен быть настроен параметр ip | ||
| + | # '''Параметры триггера:''' | ||
| + | ## Текст скрипта (script) - текст скрипта http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Reflex%20Center.put&path=0/params/script/value | ||
| + | ## Включен (enabled) - задействовать триггер | ||
| + | ## '''Настройки (settings) - список сценариев, имеющих следующие параметры:''' | ||
| + | ### enabled - включить/выключить сценарий | ||
| + | ### source - список гуидов и/или имен типов объектов источников | ||
| + | ### target - путь от объекта источника к объекту приемнику, см. Поиск связанных элементов | ||
| + | ### condition - условия, применяемые к объекту источник (source) | ||
| + | ### action - действия, применяемые к объекту приемника (target) | ||
| + | ### params - список параметров рефлексов в виде таблицы ключ/значение, где ключ - имя параметра рефлекса, а значение - строковая форма значения параметра, подставляется в condition и action в виде {paramname}, где paramname - имя параметра | ||
| + | ### tree - дерево из трех уровней где ключами являются значения числовых параметров condition и action, т.е. вида {0}, {1} и {2}, подходящей по смыслу ветки, где номер обозначает глубину, тогда как значение нижнего уровня подставляется вместо {3} | ||
| + | ### '''operation - список указывающий операции сервера для запуска сценария:''' | ||
| + | #### create - создание объекта | ||
| + | #### update - изменение объекта | ||
| + | #### delete - удаление объекта | ||
| + | # sсhedule - опциональный список расписаний для запуска скрипта (вместо запуска по событию) в расширенном формате cron: | ||
| + | # comment - комментарий пользователя, описание сценария | ||
| + | == Замечания == | ||
| + | # Скрипт запускается либо по расписанию (если указано), либо по событию | ||
| + | # Можно указывать несколько расписаний (так, например, можно настроить запуск действия во вторник в час дня и среду в два часа дня) | ||
| + | # Последним элементом target должен быть указан желаемый тип приемника (даже если он совпадает с источником) | ||
| + | # Формат расписания cron расширен секундами следующим образом: | ||
| + | [[File:cron.jpg|350px| центр]] | ||
| + | == Сценарии: == | ||
| + | ==== Рассчитывание скорости и направление у движущегося объекта по предыдущему и текущему значение Расположение (position) ==== | ||
| + | {"speed and heading": { | ||
| + | "enabled": true, | ||
| + | "source": [ | ||
| + | "MoveableObject" | ||
| + | ], | ||
| + | "target": [ | ||
| + | "MoveableObject" | ||
| + | ], | ||
| + | "condition": "position; true", | ||
| + | "action": "let pos0 = it[\"position\"].Trace(0) \r\nlet pos1 = it[\"position\"].Trace(1)\r\nlet secs = (pos0.DateTime - pos1.DateTime).TotalSeconds\r\nlet pos0 = try GeoPoint(string(pos0.Value)) else GeoPoint(double.NaN) \r\nlet pos1 = try GeoPoint(string(pos1.Value)) else GeoPoint(double.NaN) \r\n\r\nspeed = pos1.Distance(pos0) / secs\r\nheading = pos1.RhumbBearing(pos0) ", | ||
| + | "params": {}, | ||
| + | "tree": {}, | ||
| + | "operation": [ | ||
| + | "update" | ||
| + | ], | ||
| + | "schedule": [], | ||
| + | "comment": "" | ||
| + | }} | ||
Версия 15:24, 6 марта 2020
Содержание
Назначение
- Отслеживание изменения параметра объекта источника
- Поиск связанного с источником объекта приемника
- Выполнение действий с объектом приемником в соответствии с условием
Описание
- Скрипт можно импортировать отсюда http://maps.integra-s.com:5434/resources/typedef2017/egs/Reflex%20Center.put
- Скрипт должен исполняться в триггере EgsScenario в процессе менеджера AcuarioManager
- Триггер должен быть подключен к модулю EgsModule
- Модуль должен быть подключен к менеджеру AcuarioManager
- Менеджер должен быть подключен к компьютеру Computer
- У компьютера должен быть настроен параметр ip
- Параметры триггера:
- Текст скрипта (script) - текст скрипта http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Reflex%20Center.put&path=0/params/script/value
- Включен (enabled) - задействовать триггер
- Настройки (settings) - список сценариев, имеющих следующие параметры:
- enabled - включить/выключить сценарий
- source - список гуидов и/или имен типов объектов источников
- target - путь от объекта источника к объекту приемнику, см. Поиск связанных элементов
- condition - условия, применяемые к объекту источник (source)
- action - действия, применяемые к объекту приемника (target)
- params - список параметров рефлексов в виде таблицы ключ/значение, где ключ - имя параметра рефлекса, а значение - строковая форма значения параметра, подставляется в condition и action в виде {paramname}, где paramname - имя параметра
- tree - дерево из трех уровней где ключами являются значения числовых параметров condition и action, т.е. вида {0}, {1} и {2}, подходящей по смыслу ветки, где номер обозначает глубину, тогда как значение нижнего уровня подставляется вместо {3}
- operation - список указывающий операции сервера для запуска сценария:
- create - создание объекта
- update - изменение объекта
- delete - удаление объекта
- sсhedule - опциональный список расписаний для запуска скрипта (вместо запуска по событию) в расширенном формате cron:
- comment - комментарий пользователя, описание сценария
Замечания
- Скрипт запускается либо по расписанию (если указано), либо по событию
- Можно указывать несколько расписаний (так, например, можно настроить запуск действия во вторник в час дня и среду в два часа дня)
- Последним элементом target должен быть указан желаемый тип приемника (даже если он совпадает с источником)
- Формат расписания cron расширен секундами следующим образом:
Сценарии:
Рассчитывание скорости и направление у движущегося объекта по предыдущему и текущему значение Расположение (position)
{"speed and heading": {
"enabled": true,
"source": [
"MoveableObject"
],
"target": [
"MoveableObject"
],
"condition": "position; true",
"action": "let pos0 = it[\"position\"].Trace(0) \r\nlet pos1 = it[\"position\"].Trace(1)\r\nlet secs = (pos0.DateTime - pos1.DateTime).TotalSeconds\r\nlet pos0 = try GeoPoint(string(pos0.Value)) else GeoPoint(double.NaN) \r\nlet pos1 = try GeoPoint(string(pos1.Value)) else GeoPoint(double.NaN) \r\n\r\nspeed = pos1.Distance(pos0) / secs\r\nheading = pos1.RhumbBearing(pos0) ",
"params": {},
"tree": {},
"operation": [
"update"
],
"schedule": [],
"comment": ""
}}