Выгрузка ролика по событию (Responsive media exporter) — различия между версиями
Mikheeva (обсуждение | вклад) |
Mikheeva (обсуждение | вклад) (→Проверка) |
||
(не показано 19 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Выгрузка ролика с видеокамеры по событию от связанного устройства. | + | Выгрузка ролика с видеокамеры по событию от связанного устройства. Скрипт работает с одной локальной базой интеграции. |
==Построение схемы== | ==Построение схемы== | ||
Строка 35: | Строка 35: | ||
4. Связать '''EgsObjectUpdated''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsObjectUpdated''' и «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''. | 4. Связать '''EgsObjectUpdated''' и '''Egs Модуль''', подключив пины «'''Egs вход: EgsInput'''» у '''EgsObjectUpdated''' и «'''Egs выход: EgsOutput'''» у '''Egs Модуля'''. | ||
− | [[File: | + | [[File:mediaExporter_2.PNG|центр|1000px]] |
− | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "''' | + | 5. Привязать пин "'''Привязка к менеджеру: ManagingContent'''" из '''Egs Модуля''' к пину "'''Менеджер устройств: ManagingContainer'''" из '''Менеджера устройств'''. |
[[File:Scheduled_com_9.PNG|центр|1000px]] | [[File:Scheduled_com_9.PNG|центр|1000px]] | ||
Строка 43: | Строка 43: | ||
6. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''. | 6. Подключить пин "'''ПО: SoftwareContent'''" из '''Менеджера устройств''' с пином "'''Установленное ПО: SoftwareContainer'''" из '''Компьютера'''. | ||
− | [[File: | + | [[File:mediaExporter.PNG|центр|1000px]] |
7. Настроить следующие параметры триггера: | 7. Настроить следующие параметры триггера: | ||
Строка 61: | Строка 61: | ||
Настройку параметров триггера можно выполнить, открыв свойства элемента. | Настройку параметров триггера можно выполнить, открыв свойства элемента. | ||
− | [[File: | + | [[File:mediaExporter_7.PNG|центр]] |
==Маски состояний== | ==Маски состояний== | ||
Строка 73: | Строка 73: | ||
==Проверка== | ==Проверка== | ||
− | После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке <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/Responsive%20media%20exporter%202.put&path=0/params/hash/value</code> |
− | ''Хэш-сумма будет совпадать только в том случае, если скрипт не был изменен.'' | + | ''Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.'' |
+ | |||
+ | ==Алгоритм работы== | ||
+ | |||
+ | #Проверяется, чтобы объект источник события соответствовал хотя бы одной маске из списка '''settings.source_types''', либо имел идентификатор из списка '''settings.source_guids'''. | ||
+ | #Проверяется, что список измененных параметров содержит состояние объекта и значение состояния соответствует хотя бы одной маске из списка '''settings.source_states'''. | ||
+ | #Если '''settings.logic_link''' равно true, выбираются все видеокамеры '''VideoCamera''', соединенные с источником события линком типа '''LogicLink'''. | ||
+ | #Если '''settings.same_space''' равно true, выбираются все видеокамеры '''VideoCamera''', связанные с тем же помещением '''Space''', что и источник события. | ||
+ | #Для выбранных камер запускается следующая асинхронная функция. | ||
+ | ##Запоминается текущее время, т.е. время события | ||
+ | ##Выдерживается пауза, равная '''settings.media_duration''' | ||
+ | ##Запускается экспорт ролика в папку '''settings.media_path''', так чтобы время события оказалось в середине ролика. | ||
+ | |||
+ | ==Примеры использования== | ||
+ | 1. По тревоге от любого датчика пожарной сигнализации создавать 10 минутные ролики со связанных линком типа '''LogicLink''' видеокамер. | ||
+ | { | ||
+ | "source_types": "FireSecurityCategory", | ||
+ | "source_guids": null, | ||
+ | "source_states": ["alarm_*"], | ||
+ | "link_type": true, | ||
+ | "same_space": false, | ||
+ | "media_path": "f:\video", | ||
+ | "media_duration": "00:10:00", | ||
+ | "url": "http://localhost:1986/axis2/services/Iv7Server" | ||
+ | } | ||
+ | |||
+ | 2. По тревоге от датчика пожарной сигнализации c идентификатором 7cd95cde-e320-456e-afc1-475899d78707 создавать 30 секундные ролики с видеокамер находящихся в том же помещении | ||
+ | { | ||
+ | "source_types": "FireSecurityCategory", | ||
+ | "source_guids": ["7cd95cde-e320-456e-afc1-475899d78707"], | ||
+ | "source_states": ["alarm_*"], | ||
+ | "link_type": false, | ||
+ | "same_space": true, | ||
+ | "media_path": "f:\video", | ||
+ | "media_duration": "00:10:00", | ||
+ | "url": "http://localhost:1986/axis2/services/Iv7Server" | ||
+ | } | ||
==Пример работы== | ==Пример работы== | ||
Строка 83: | Строка 119: | ||
1. Создать схему по выше описанному алгоритму (см. [[Поворот_связанной_поворотной_камеры_в_предустановленную_точку_по_команде_(Point_observer_1)#Построение_схемы|Построение схемы]]). | 1. Создать схему по выше описанному алгоритму (см. [[Поворот_связанной_поворотной_камеры_в_предустановленную_точку_по_команде_(Point_observer_1)#Построение_схемы|Построение схемы]]). | ||
− | [[File: | + | [[File:mediaExporter_2.PNG|центр|1000px]] |
− | 2. Добавить | + | 2. Добавить элементы Пространство, IP поворотная камера и Болид Пожарный датчик. Подключить пин "'''Привязка к расположению: PositionContent'''" из '''Болид Пожарный датчик''' с пином "'''Расположение: PositionContainer'''" из '''Пространства'''. Подключить пин "'''Привязка к расположению: PositionContent'''" из '''IP поворотная камера''' с пином "'''Расположение: PositionContainer'''" из '''Пространства''' |
− | [[File: | + | [[File:mediaExporter_3.PNG|центр|1000px]] |
3. Настроить параметр "Сетевой адрес" компьютера. | 3. Настроить параметр "Сетевой адрес" компьютера. | ||
Строка 93: | Строка 129: | ||
4. Настроить следующие параметры триггера: | 4. Настроить следующие параметры триггера: | ||
+ | #текст скрипта ('''script''') <code>http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20media%20exporter%202.put&path=0/params/script/value;</code> | ||
#задействовать триггер ('''enabled'''): true; | #задействовать триггер ('''enabled'''): true; | ||
#в настройках: | #в настройках: | ||
− | ## | + | ##тип объекта источника событий ('''source_type'''): Sensor; |
− | ## | + | ##список идентификаторов объектов источников событий ('''source_guids'''): 7e30627c-d9e6-47c4-9e49-77b4d8b9db4b (идентификатор пожарного датчика); |
− | ## | + | ##список масок имен событий, активирующих скрипт ('''source_states'''): alarm_*, error_*; |
+ | ##выгрузка ролика с камеры, связанной с источником события линком типа LogicLink ('''logic_link'''): false; | ||
+ | ##выгрузка ролика с камеры, связанной с тем же помещением Space, что и источник события ('''same_space'''): true; | ||
+ | ##путь к папке на диске для выгрузки роликов ('''media_path'''): d:\video; | ||
+ | ##продолжительность ролика, исходное событие - в середине ролика ('''media_duration'''): 00:10:00; | ||
+ | ##адрес веб-сервиса ИнтеграВидео7 ('''url'''): http://localhost:1986/axis2/services/Iv7Server. | ||
− | + | Для того чтобы получить идентификатор пожарного датчика, необходимо зайти в свойства элемента и нажать на ссылку "Болид Пожарный датчик". Идентификатор будет скопирован в буфер обмена. В данном случае это: 7e30627c-d9e6-47c4-9e49-77b4d8b9db4b. | |
− | + | [[File:mediaExporter_4.PNG|центр]] | |
− | |||
− | + | 5. Настроить параметры поворотной камеры: | |
#географические координаты ('''geo_position'''): POINT(50.22219146 53.23627474); | #географические координаты ('''geo_position'''): POINT(50.22219146 53.23627474); | ||
Строка 111: | Строка 152: | ||
#адрес URL ('''url'''): iv7://admin:fulladmin@/?udp_id=211&key2=211 rtsp://q:__root__@192.168.10.211/axis-media/media.amp?videocodec=h264&streamprofile=Balanced. | #адрес URL ('''url'''): iv7://admin:fulladmin@/?udp_id=211&key2=211 rtsp://q:__root__@192.168.10.211/axis-media/media.amp?videocodec=h264&streamprofile=Balanced. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''Результат''': | '''Результат''': | ||
− | + | Загружается ролик в указанную папку. | |
==Дополнения== | ==Дополнения== | ||
− | 1. В пункте 1 раздела [[ | + | 1. В пункте 1 раздела [[Выгрузка_ролика_по_событию_(Responsive_media_exporter)#Построение_схемы|Построение схемы]] добавление триггера '''EgsObjectUpdated''' можно осуществить по ссылке. |
Для этого необходимо: | Для этого необходимо: | ||
− | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/ | + | :1. Импортировать скрипт по следующей ссылке: <code>http://maps.integra-s.com:5434/resources/typedef2017/egs/Responsive%20media%20exporter%202.put.</code> |
:2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | :2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов". | ||
[[File:Scheduled_com_1.png|центр|1000px]] | [[File:Scheduled_com_1.png|центр|1000px]] | ||
− | :3. В открывшемся окне выбрать импортированный скрипт " | + | :3. В открывшемся окне выбрать импортированный скрипт "Responsive media exporter.put". |
− | [[File: | + | [[File:mediaExporter_5.PNG|центр]] |
:Элемент появится на рабочей области. | :Элемент появится на рабочей области. | ||
Строка 140: | Строка 175: | ||
[[File:ResponsiveCommander_3.PNG|центр|1000px]] | [[File:ResponsiveCommander_3.PNG|центр|1000px]] | ||
− | 2. В пункте 7 раздела [[ | + | 2. В пункте 7 раздела [[Выгрузка_ролика_по_событию_(Responsive_media_exporter)#Построение_схемы|Построение схемы]] редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры". |
− | [[File: | + | [[File:mediaExporter_6.PNG|центр]] |
:После этого откроется окно для редактирования параметров.'' | :После этого откроется окно для редактирования параметров.'' | ||
− | [[File: | + | [[File:mediaExporter_8.PNG|центр]] |
Текущая версия на 11:48, 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/Responsive%20media%20exporter%202.put&path=0/params/script/value;
- задействовать триггер (enabled), например: true;
- в настройках:
- тип объекта источника событий (source_type), например: FireSecurityCategory;
- список идентификаторов объектов источников событий (source_guids), например: 7cd95cde-e320-456e-afc1-475899d78707;
- список масок имен событий, активирующих скрипт (source_states), например: alarm_*, error_*;
- выгрузка ролика с камеры, связанной с источником события линком типа LogicLink (logic_link), например: true, false;
- выгрузка ролика с камеры, связанной с тем же помещением Space, что и источник события (same_space), например: true, false;
- путь к папке на диске для выгрузки роликов (media_path), например: f:\video;
- продолжительность ролика, исходное событие - в середине ролика (media_duration), например: 00:10:00;
- адрес веб-сервиса ИнтеграВидео7 (url), например: http://localhost:1986/axis2/services/Iv7Server.
Настройку параметров триггера можно выполнить, открыв свойства элемента.
Маски состояний
Маски могут быть как точным именами состояний, так и их частями, содержащими следующие контрольные символы:
? - любой одиночный символ; * - ноль или более символов; # - любая цифра от 0 до 9; [ charlist ] - любой одиночный символ в charlist; [! charlist ] - любой одиночный символ, не включенный в charlist.
Проверка
После запуска скрипта в параметре "Хеш" появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20media%20exporter%202.put&path=0/params/hash/value
Хэш-сумма будет совпадать только в том случае, если скрипт был импортирован и не был изменен.
Алгоритм работы
- Проверяется, чтобы объект источник события соответствовал хотя бы одной маске из списка settings.source_types, либо имел идентификатор из списка settings.source_guids.
- Проверяется, что список измененных параметров содержит состояние объекта и значение состояния соответствует хотя бы одной маске из списка settings.source_states.
- Если settings.logic_link равно true, выбираются все видеокамеры VideoCamera, соединенные с источником события линком типа LogicLink.
- Если settings.same_space равно true, выбираются все видеокамеры VideoCamera, связанные с тем же помещением Space, что и источник события.
- Для выбранных камер запускается следующая асинхронная функция.
- Запоминается текущее время, т.е. время события
- Выдерживается пауза, равная settings.media_duration
- Запускается экспорт ролика в папку settings.media_path, так чтобы время события оказалось в середине ролика.
Примеры использования
1. По тревоге от любого датчика пожарной сигнализации создавать 10 минутные ролики со связанных линком типа LogicLink видеокамер.
{ "source_types": "FireSecurityCategory", "source_guids": null, "source_states": ["alarm_*"], "link_type": true, "same_space": false, "media_path": "f:\video", "media_duration": "00:10:00", "url": "http://localhost:1986/axis2/services/Iv7Server" }
2. По тревоге от датчика пожарной сигнализации c идентификатором 7cd95cde-e320-456e-afc1-475899d78707 создавать 30 секундные ролики с видеокамер находящихся в том же помещении {
"source_types": "FireSecurityCategory", "source_guids": ["7cd95cde-e320-456e-afc1-475899d78707"], "source_states": ["alarm_*"], "link_type": false, "same_space": true, "media_path": "f:\video", "media_duration": "00:10:00", "url": "http://localhost:1986/axis2/services/Iv7Server" }
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).
2. Добавить элементы Пространство, IP поворотная камера и Болид Пожарный датчик. Подключить пин "Привязка к расположению: PositionContent" из Болид Пожарный датчик с пином "Расположение: PositionContainer" из Пространства. Подключить пин "Привязка к расположению: PositionContent" из IP поворотная камера с пином "Расположение: PositionContainer" из Пространства
3. Настроить параметр "Сетевой адрес" компьютера.
4. Настроить следующие параметры триггера:
- текст скрипта (script)
http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Responsive%20media%20exporter%202.put&path=0/params/script/value;
- задействовать триггер (enabled): true;
- в настройках:
- тип объекта источника событий (source_type): Sensor;
- список идентификаторов объектов источников событий (source_guids): 7e30627c-d9e6-47c4-9e49-77b4d8b9db4b (идентификатор пожарного датчика);
- список масок имен событий, активирующих скрипт (source_states): alarm_*, error_*;
- выгрузка ролика с камеры, связанной с источником события линком типа LogicLink (logic_link): false;
- выгрузка ролика с камеры, связанной с тем же помещением Space, что и источник события (same_space): true;
- путь к папке на диске для выгрузки роликов (media_path): d:\video;
- продолжительность ролика, исходное событие - в середине ролика (media_duration): 00:10:00;
- адрес веб-сервиса ИнтеграВидео7 (url): http://localhost:1986/axis2/services/Iv7Server.
Для того чтобы получить идентификатор пожарного датчика, необходимо зайти в свойства элемента и нажать на ссылку "Болид Пожарный датчик". Идентификатор будет скопирован в буфер обмена. В данном случае это: 7e30627c-d9e6-47c4-9e49-77b4d8b9db4b.
5. Настроить параметры поворотной камеры:
- географические координаты (geo_position): POINT(50.22219146 53.23627474);
- географическая высота (geo_height): 130;
- калибровочная матрица (calibrationMatrix): 0.95980984 0.28064746 -0.0014583534 -0.28058684 0.95946532 -0.026406791 -0.0060117589 0.025754692 0.99965024;
- адрес URL (url): iv7://admin:fulladmin@/?udp_id=211&key2=211 rtsp://q:__root__@192.168.10.211/axis-media/media.amp?videocodec=h264&streamprofile=Balanced.
Результат:
Загружается ролик в указанную папку.
Дополнения
1. В пункте 1 раздела Построение схемы добавление триггера EgsObjectUpdated можно осуществить по ссылке.
Для этого необходимо:
- 1. Импортировать скрипт по следующей ссылке:
http://maps.integra-s.com:5434/resources/typedef2017/egs/Responsive%20media%20exporter%202.put.
- 2. Выбрать пункт главного меню "Файл". После этого выбрать "Импорт элементов".
- 3. В открывшемся окне выбрать импортированный скрипт "Responsive media exporter.put".
- Элемент появится на рабочей области.
2. В пункте 7 раздела Построение схемы редактирование параметров элемента можно осуществить, выделив элемент правой кнопкой мыши и в контекстном меню выбрав пункт "Редактировать параметры".
- После этого откроется окно для редактирования параметров.