API пользовательского программирования движка визуализации представлено группой функций непосредственно в модуле движка СВУ. Вызов этих функций из скриптов виджетов может осуществляться прямо по идентификатору функции, поскольку их область имён указывается для контекста скриптов виджетов.
Описание: Возвращает список виджетов в контейнере виджетов или список дочерних виджетов. Если установлено <pg> то возвращается список страниц для проектов и сеансов.
Параметры:
ID | Имя | Тип | Режим | По умолчанию |
list | Список | Строка | Возврат | |
addr | Адрес | Строка | Вход | |
pg | Страницы | Bool | Вход | 0 |
Описание: Проверка на присутствие узла, включая виджеты, атрибуты и другие.
Параметры:
ID | Имя | Тип | Режим | По умолчанию |
rez | Результат | Bool | Возврат | |
addr | Адрес | Строка | Вход |
Описание: Возвращает список атрибутов виджета. Если установлен <noUser> тогда возвращаются только не пользовательские атрибуты.
Параметры:
ID | Имя | Тип | Режим | По умолчанию |
list | Список | Строка | Возврат | |
addr | Адрес | Строка | Вход | |
noUser | Без пользовательских | Bool | Вход | 1 |
Описание: Запрос значения атрибута виджета. Запрос может осуществляться как указанием полного адреса атрибута в <addr>, так и отдельно адреса виджета в <addr>, а идентификатора атрибута в <attr>.
Параметры:
ID | Имя | Тип | Режим | По умолчанию |
val | Значение | Строка | Возврат | |
addr | Адрес | Строка | Вход | |
attr | Атрибут | Bool | Вход |
Описание: Установка значения атрибута виджета. Установка может осуществляться как указанием полного адреса атрибута в <addr>, так и отдельно адреса виджета в <addr>, а идентификатора атрибута в <attr>.
Параметры:
ID | Имя | Тип | Режим | По умолчанию |
addr | Адрес | Строка | Вход | |
val | Значение | Строка | Вход | |
attr | Атрибут | Bool | Вход |
Сервисные интерфейсы это интерфейсы доступа к системе OpenSCADA посредством интерфейса управления OpenSCADA из внешних систем. Данный механизм положен в основу всех механизмов обмена внутри OpenSCADA, реализованных посредством слабых связей и стандартного протокола обмена OpenSCADA.
С целью предоставления унифицированного, группового и сравнительно быстрого доступа к значениям атрибутов визуальных элементов предусмотрена сервисная функция визуального элемента "/serv/attr" и команды получения/установки значений атрибутов: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> и <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>. Атрибуты данных команд, предусматривающие различные механизмы запроса, представим в таблице 4.14.2.a.
Таблица 4.14.2.a Атрибуты команд получения/установки атрибутов визуальных элементов
Id | Имя | Значение |
Команда запроса визуальных атрибутов виджета: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> | ||
tm | Время/счётчик изменений | Установка времени/счётчика изменений для запроса только изменившихся атрибутов. |
<el id="{attr}" p="{a_id}">{val}</el> | Формирование дочерних элементов с результатами атрибутов | В дочернем элементе указываются: строковых идентификатор {attr} атрибута, индекс {a_id} атрибута и его значение {val}. |
Команда установки визуальных атрибутов виджета: <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> | ||
<el id="{attr}">{val}</el> | Установка атрибутов | В дочерних элементах указывается идентификатор атрибута {attr} и его значение {val}. |
С целью оптимизации трафика сетевого взаимодействия путём исключения мелких запросов, а использования одного, но большого запроса создан групповой запрос значений атрибутов визуальных элементов. Группировка данного запроса подразумевает запрос атрибутов всей ветви виджета, включая и вложенные элементы. Для данного запроса предусмотрена сервисная команда "/serv/attrBr". Запрос данной сервисной команды эквивалентен сервисной команде "/serv/attr" и выглядит следующим образом:
<get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattrBr"/>
Результат:
<el id="{attr}" p="{a_id}">{val}</el> -- Элементы с результатами атрибутов. В элементе указываются: строковых идентификатор {attr} атрибута, индекс {a_id} атрибута и его значение {val}.
<w id="{wid}" lnkPath="{lnk_path}">{childs+attrs}</w> -- Элементы с дочерними виджетами и их атрибутами. В элементе указываются идентификатор дочернего виджета {wid} и путь виджета на который ссылается данный виджет если он является ссылкой {lnk_path}.
С целью унификации и оптимизации доступа к страницам предусмотрена сервисная функция сеанса "/serv/pg" и команды запроса перечня открытых страниц (<openlist path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); открытия страницы (<open path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); и закрытия страницы <close path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>).
Результатом запроса перечня открытых страниц являются дочерние элементы <el>{OpPage}</el> содержащие полный путь открытой страницы. Кроме перечня открытых страниц запрос возвращает значение текущего счётчика вычисления сеанса в атрибуте <tm>. Если данный атрибут устанавливается при запросе, то для каждой открытой страницы возвращается список изменённых, с момента указанного значения счётчика, виджетов открытой страницы.
Для предоставления механизма глобального контроля за сигнализацией сеанса предусмотрена сервисная функция сеанса "/serv/alarm" и команды запроса статуса сигналов (<get path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>); и квитации сигналов (<quittance path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>).
Запрос статуса сигналов возвращает обобщённое состояние сигналов, а так-же дополнительную информацию для звуковой сигнализации. Дополнительная информация звуковой сигнализации предоставляет текущий ресурс, звуковой файл, для воспроизведения и обеспечивает отслеживание последовательности сигнализации и квитации отдельных файлов звуковых сообщений.
Запрос на квитацию выполняет квитацию указанного виджета, атрибут <wdg>, в соответствии с шаблоном, атрибут <tmpl>.
Для предоставления унифицированного механизма манипуляции сеансами, визуализаторам СВУ, в модуле движка СВУ (VCAEngin) предусмотрена сервисная функция "/serv/sess" и команды запроса перечня открытых сеансов, подключения/создания нового сеанса и отключения/удаления сеанса: <list path="/UI/VCAEngine/%2fserv%2fsess"/>, <connect path="/UI/VCAEngine/%2fserv%2fsess"/> и <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> соответственно. Атрибуты данных команд, предусматривающие различные механизмы запроса, представим в таблице 4.14.2.b.
Таблица 4.14.2.b. Атрибуты команд механизма манипуляции сеансами
Id | Имя | Значение |
Команда запроса перечня открытых сеансов для проекта: <list path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
prj | Указание проекта | Указывает проект для которого возвращать перечень открытых сеансов. |
<el>{Session}</el> | Контроль перечня сеансов | В дочерних элементах указываются сеансы, открытые для запрошенного проекта. |
Команда подключения/открытия сеанса: <connect path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
sess | Установка и контроль имени сеанса | Если атрибут определён, то производится подключение к существующему сеансу, иначе создание нового сеанса. В случае открытия нового сеанса в данный атрибут помещается его имя. |
prj | Установка имени проекта | Используется для открытия нового сеанса для указанного проекта и если атрибут {sess} не указан. |
Команда отключения/закрытия сеанса: <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
sess | Установка имени сеанса | Указывает имя сеанса от которого выполняется отключение или закрытие. Сеансы, не являющиеся фоновыми и к которым ни один из визуализаторов не подключен автоматически закрываются. |
С целью оптимизации производительности локального и особенно сетевого взаимодействия предусмотрена сервисная функция "/serv/wlbBr" и команда запроса дерева библиотек виджетов: <get path="/UI/VCAEngine/%2fserv%2fwlbBr"/>. Результатом запроса является дерево с элементами библиотек виджетов, теги <wlb>. Внутри тегов библиотек виджетов содержаться тег иконки <ico> и теги виджетов библиотеки <w>. Теги виджетов, в свою очередь, содержат тег иконки и теги дочерних виджетов <cw>.