|
Translation and actualizing
|
Модуль |
Имя |
Версия |
Лицензия |
Источник |
Языки |
Платформы |
Тип |
Автор |
Описание
|
WebUser |
Web-интерфейс от пользователя |
0.8 |
GPL2 |
ui_WebUser.so |
en,uk,ru,de |
x86,x86_64,ARM
|
Пользовательские интерфейсы |
Роман Савоченко |
Позволяет создавать собственные пользовательские web-интерфейсы на языке OpenSCADA.
|
Модуль WebUser предоставляет пользователю механизм создания Web-страниц, а также позволяет обрабатывать иные Web-запросы на одном из внутренних языков OpenSCADA, обычно JavaLikeCalc, не прибегая к низкоуровневому программированию OpenSCADA.
Кроме принадлежности модуля системе OpenSCADA он также принадлежит и является модулем модуля транспортного протокола HTTP. Собственно, вызов WebUser производиться из Protocol.HTTP. Вызов производится посредством расширенного механизма коммуникации через экспортированные в этом модуле функции: HTTP_GET(), HTTP_POST().
Адресация страниц начинается со второго элемента URI. Это связанно с тем, что первый элемент URI используется для идентификации самого модуля пользовательского Web-интерфейса. Например URL: http://localhost.localdomain:10002/WebUser/UserPage можно расшифровать как вызов пользовательской страницы "UserPage" Web модуля WebUser на хосте localhost.localdomain через порт 10002. В случае отсутствия второго элемента URI и указания отображать индекс пользовательских страниц в конфигурации — формируется индекс страниц (рис.1).
Рис.1. Индекс пользовательских страниц.
Главная вкладка конфигурации модуля (рис.2) содержит состояние модуля, предоставляет возможность выбора страницы по умолчанию и позволяет сформировать перечень пользовательских страниц.
Рис.2. Основная вкладка конфигурации модуля.
WEB — страницы
Модуль предоставляет возможность создания реализаций множества Web-страниц в объекте "Пользовательская страница" (рис.3).
Рис.3. Главная вкладка конфигурации пользовательской страницы.
Главная вкладка содержит основные настройки пользовательского протокола:
- Раздел "Состояние" — содержит свойства, характеризующие состояние пользовательской страницы:
- Состояние — текущий режим и статистика.
- Включен — состояние страницы "Включена".
- БД — БД, в которой хранится конфигурация.
- Дата модификации — дата и время последней модификации объекта.
- Раздел "Конфигурация" — непосредственно содержит поля конфигурации:
- ID — информация об идентификаторе страницы.
- Имя — указывает имя страницы.
- Описание — краткое описание страницы и её назначения.
- Включать — указывает на состояние "Включен", в которое переводить страницу при загрузке.
Все запросы к пользовательским страницам направляются в процедуру обработки запросов пользовательской страницы, которая представлена на вкладке "Программа" объекта страницы пользователя (рис.4).
Рис.4. Вкладка "Программа" объекта пользовательской страницы.
Вкладка процедуры обработки запросов к пользовательской странице содержит поле для выбора внутреннего языка программирования OpenSCADA и поле ввода текста процедуры обработки.
Для процедуры обработки предопределены следующие переменные обмена:
- rez — Результат обработки (по умолчанию — "200 OK").
- HTTPreq — Метод HTTP запроса (GET,POST).
- url — URI запроса.
- page — Содержимое страницы Get/Post, как для запроса так и для ответа.
- sender — Отправитель запроса.
- user — Аутентифицированный пользователь.
- HTTPvars — HTTP переменные в Object. Изменённые и добавленные переменные (кроме "Date", "Server", "Accept-Ranges" и "Content-Length") будут помещены в пакет ответа.
- URLprms — Параметры URL в Object.
- cnts — Элементы содержимого для POST в Array<XMLNodeObj>.
- this — Указатель на объект этой страницы.
- prt — Указатель на объект входной части HTTP протокола.
Общий сценарий запроса пользовательской страницы:
- Внешняя сетевая станция формирует HTTP запрос с URI вида "/WebUser/{UserPage}", который попадает на транспорт OpenSCADA с значением поля конфигурации "Протокол", равного "HTTP".
- Транспорт направляет запрос на модуль транспортного протокола Protocol.HTTP.
- Модуль транспортного протокола, в соответствии с первым элементом URI, направляет запрос данному модулю.
- Данный модуль выбирает объект страницы пользователя, которая указана во втором элементе URI.
- Выполняется инициализация переменных HTTP-протокола для процедуры страницы:
- HTTPreq — устанавливается в значение строки "GET" или "POST" в зависимости от типа запроса;
- url — адрес запрашиваемого ресурса (URI);
- page — содержимое передаваемой страницы для метода "POST";
- sender — адрес отправителя запроса;
- user — идентификатор аутентифицированного пользователя, если аутентификация имела место;
- HTTPvars — разобранный перечень переменных протокола HTTP в виде свойств объекта;
- URLprms — разобранный перечень параметров URL в виде свойств объекта;
- cnts — разобранные элементы содержимого для POST в Array<XMLNodeObj> с содержимым элементов в тексте и свойствами в атрибутах XMLNodeObj.
- Вызов процедуры на исполнение, которая, обработав запрос, формирует содержимое страницы в "page" и результат запроса в "rez".
- В завершение формируется ответ с кодом возврата HTTP из "rez" и содержимым из "page", а также изменёнными и добавленными переменными протокола HTTP из HTTPvars.