From OpenSCADAWiki
Jump to: navigation, search

1 Примітиви віджетів

Будь-який наново створюваний віджет засновується на одному з декількох примітивів — кінцевому елементі візуалізації, шляхом встановлення родинних зв'язків як прямо на примітив, так і посередництвом декільком проміжних користувацьких віджетів. Кожний з примітивів містить механізм моделі даних. Екземпляр віджету зберігає значення властивостей власної конфігурації примітиву.

До завдань інтерфейсу візуалізації входить підтримка та робота з моделлю даних примітивів віджетів. Примітиви віджетів повинні бути ретельно опрацьовані та уніфіковані, з метою охопити як можна більше можливостей у як можна меншій кількості слабко пов'язаних один з одним, по призначенню, примітивів.

Таблиця. Бібліотека примітивів віджетів — базові елементи відображення

Ідентифікатор Найменування Функція
ElFigure Елементарна графічна фігура

Примітив є основою відмальовки елементарних графічних фігур зі всілякими комбінаціями їх у одному об'єкті. Передбачається підтримка наступних елементарних фігур:

  • Лінія.
  • Дуга.
  • Крива Без'є.
  • Заливка замкненого простору.

Для всіх фігур, що містяться у віджеті, встановлюються єдині властивості товщини, кольору та інше, також, передбачається можливість указання вищеперелічених атрибутів для кожної фігури окремо та їх динамізація.

FormEl Елемент форми

Включає підтримку стандартних компонентів форми:

  • Редагування рядку.
  • Редагування тексту.
  • Прапорець.
  • Кнопка.
  • Вибір з переліку.
  • Перелік.
  • Дерево.
  • Таблиця.
  • Слайдер.
  • Стрічка прокрутки.
Text Текст Елемент тексту-мітка. Характеризується типом шрифту, кольором, орієнтацією та вирівнюванням. Передбачається підтримка аргументів.
Media Медіа Елемент відображення растрових та векторних зображень різних форматів, програвання анімованих зображень, програвання аудіо-фрагментів та перегляд відео-фрагментів.
Diagram Діаграма Елемент діаграми з підтримкою можливості відображення декількох потоків у реальному часі для: трендів (часових графіків), частотного спектру, XY діаграм.
Protocol Протокол Елемент протоколу — візуалізатор повідомлень програми, з підтримкою декількох режимів роботи.
Document Документ Елемент формування звітів, журналів та іншої документації на основі доступних даних.
Box Контейнер Містить механізм розташування-включення інших віджетів для формування нових, більш складних, віджетів та сторінок кінцевої візуалізації.
Function, у планах Функція API об'єктної моделі OpenSCADA Невізуальний віджет, на боці виконання, що дозволяє включати обчислювальні функції об'єктної моделі OpenSCADA до СВУ.

Таблиця. Загальний набір властивостей/атрибутів віджету

Ідентифікатор Ім'я Номер Значення
id Ідентифікатор - Ідентифікатор елементу. Атрибут тільки для читання, прикликаний надати інформацію про ідентифікатор елементу.
path Путь - Шлях до цього віджету. Атрибут тільки для читання та надання вичерпної інформації про розташування елементу.
parent Батько - Шлях до батьківського віджету. Атрибут тільки для читання та надання інформації про розташування предку від якого успадковано віджет.
owner Власник - Власник та групи віджету, у вигляді "{власник}:{группа[,группа2,группаN]}", по замовченню "root:UI".
perm Доступ -

Права доступу до віджету, у вигляді "{користувач}{групи}{інші}" плюс ознака наслідування, що вмикає наслідування власника та його прав від вищестоящого віджету.
Де "користувач", "групи" та "інші" це:

  • "__" — немає доступу;
  • "R_" — тільки читання;
  • "RW" — читання та запис.

По замовченню 01000 — наслідування.

root Корінь 1 Ідентифікатор віджету-примітиву (базового елементу), який лежить у основі образу візуалізації віджету.
name Ім'я - Ім'я елементу. Доступне до модифікації ім'я елементу.
dscr Опис - Опис елементу. Текстове поле короткого опису.
en Ввімкнено 5 Стан "Ввімкнено" елементу. Вимкнений елемент не відображається при виконані.
active Активний 6 Стан "Активний" елементу. Активний елемент може отримувати фокус при виконанні, тобто — отримувати клавіатурні та інші події з подальшою їх обробкою.
geomX Геометрія: x 7 Геометрія, координата 'x' положення елементу.
geomY Геометрія: y 8 Геометрія, координата 'y' положення елементу.
geomW Геометрія: ширина 9 Геометрія, ширина елементу.
geomH Геометрія: висота 10 Геометрія, висота елементу.
geomXsc Геометрія: x масштаб 13 Масштаб елемента по горизонталі.
geomYsc Геометрія: y масштаб 14 Масштаб елемента по вертикалі.
geomZ Геометрія: z 11 Геометрія, координата 'z' (рівень) елемента на кадрі. Також визначає порядок передачі фокусу між активними елементами.
geomMargin Геометрія: відступ 12 Геометрія, поля-відступи елементу.
tipTool Допомога: підказка 15 Текст короткої допомоги або підказки по даному елементу. Типово реалізується як спливаюча підказка, при утримані курсору миші над елементом.
tipStatus Допомога: стан 16

Текст інформації про стан елементу або рекомендації до дії над елементом. Типово реалізується у вигляді повідомлення у рядку статусу, при утримувані курсору миші над елементом.

* Модифікація даного атрибуту з сеансу кореневої сторінки здійснює запис повідомлення до рядку статусу вікна візуалізації сеансу.
contextMenu Контекстне меню 17

Контекстне меню у вигляді переліку рядків: "{ItName}:{Signal}".
Де:

  • "ItName" — ім'я елементу;
  • "Signal" — ім'я сигналу, що формується при обрані: "usr_{Signal}".
evProc Обробка подій -

Атрибут зберігання сценарію обробки подій безпосереднього управління користувацьким інтерфейсом. Сценарій представляє собою перелік команд інтерфейсу візуалізації, що генеруються при надходженні події (атрибут event). Пряма обробка подій для управління сторінками у вигляді: "{event}:{evSrc}:{com}:{prm}". Де:

  • "event" — очікувана подія;
  • "evSrc" — джерело події;
  • "com" — команда сеансу: open, next, prev;
  • "prm" — параметр команди, де використовується:
    • pg_so — пряме ім'я бажаної сторінки, з префіксом;
    • 1 — ім'я нової сторінки у загальному шляху, без префіксу;
    • * — ім'я сторінки береться з ім'я попередньої сторінки;
    • $ — вказує на місце, відносно якого відкривається сторінка.

Приклади:

  • ws_BtPress:/prev:prev:/pg_so/*/*/$
  • ws_BtPress:/next:next:/pg_so/*/*/$
  • ws_BtPress:/go_mn:open:/pg_so/*/mn/*
  • ws_BtPress:/go_graph:open:/pg_so/*/ggraph
Додаткові атрибути елементів, поміщених до проєкту у ролі сторінки.
pgOpen Сторінка: відкрита -

Ознака "Сторінка відкрита".

* Модифікація з сеансу здійснює негайне відкриття/закриття даної сторінки, та для сторінок типу "Зв'язок" Ви маєте віддавати перевагу використанню функції uiCmd() користувацького API, для керування сторінками.
pgNoOpenProc Сторінка: обробляти закритою - Ознака "Виконувати сторінку навіть якщо вона закрита".
pgOpenSrc Сторінка: джерело відкриття 3

Повня адреса сторінки, що відкрила дану.

* Запис/очищення адреси віджету (ініціатору відкриття), здійснює негайне відкриття/закриття сторінки. У випадку запису адреси, та виконання інших умов, здійснюється динамічне зв'язування поточного віджету з ініціатором. Але для сторінок типу "Зв'язок" Ви маєте віддавати перевагу використанню функції uiCmd() користувацького API, для керування сторінками.
pgGrp Сторінка: група 4 Група сторінок. ПОРОЖНЯ та "main" група передбачають використання цієї сторінки як Кореневу-основну сторінку, тож така буде замінювати інші Кореневі-головні сторінки; група "fl" призначена для використання у зовнішніх вікнах, які передбачено для багаторазового одночасного відкриття та які не мають відстежуватися на дублікати; решта передбачено для включення у контейнери-бокси або одноразового одночасного відкриття, тож вони примусово перевіряються на дублікати, коли останнє відкривається, а попередні закриваються.
Додаткові атрибути режиму виконання — сеансу.
(Віртуальні атрибути не доступні у процедурі віджету)
event Події - Спеціальний атрибут збору подій віджету у переліку, поділеному новим рядком. Доступ до атрибуту захищено критичною секцією для запобігання втрати подій. Атрибут завжди доступний у процедурі віджету.
load Завантаження -1 Віртуальна команда групового завантаження даних.
focus Фокус -2 Спеціальний атрибут індикації факту отримання фокусу, активним віджетом. Атрибут цього віджету та вкладених віджетів доступний у процедурах віджету.
perm Доступ -3 Віртуальний атрибут прав активного користувача на перегляд та контроль над віджетом.
* — Спеціальна функція атрибуту віджета, виконувана у сеансі проєкту при користувацькій модифікації.

Рушій середовища візуалізації передбачає активацію атрибутів, специфічних до візуалізатору. Процес активації здійснюється при відкритті сеансу візуалізації проєкту та передбачає, у цьому проєкті: створення специфічного атрибуту з вказаними властивостями, якщо він відсутній, та активацію відстеження його модифікації рушієм середовища візуалізації, як для атрибутів формування образів примітивів. Для безпосереднього визначення такого атрибута можна також використовувати префікс ідентифікатору атрибуту "vs_", що швидше і виключає стадію активації. З переліком специфічних до візуалізатора атрибутів можна ознайомитися у документації відповідного візуалізатора.

1.1 Елементарна графічна фігура (ElFigure)

Примітив є основою відмальовки елементарних графічних фігур з різноманітною їх комбінацією у одному об'єкті. Враховуючи широкий спектр можливих фігур, які повинен підтримувати примітив, та, у цей-же час, бути достатньо простим у використанні та, по можливості, у реалізації, було вирішено обмежити перелік базових фігур, використаних для побудови результуючих графічних об'єктів, до таких: лінія, дуга, крива Без'є та заливка замкнених контурів. Ґрунтуючись вже на цих базових фігурах, можна будувати довільні фігури, комбінуючи базові. У рамках примітиву існує можливість завдання прозорості кольору у діапазоні [0...255], де '0' — повна прозорість.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елементарна фігура (ElFigure)"

Ідентифікатор Ім'я Номер Значення
lineWdth Лінія: ширина 20 Ширина лінії.
lineClr Лінія: колір 21

Ім'я кольору у вигляді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
lineStyle Лінія: стиль 22 Стиль лінії: суцільна, пунктир, точкова.
bordWdth Границя: ширина 23 Ширина бордюру лінії. Нульова ширина вказує на відсутність бордюру.
bordClr Границя: колір 24 Колір бордюру (деталі у атрибуті 21).
fillColor Заповнення: колір 25 Колір заливки (деталі у атрибуті 21).
fillImg Заповнення: зображення 26

Ім'я зображення у вигляді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
orient Кут повороту 28 Кут повороту вмісту виджета.
mirror Віддзеркалення 29 Віддзеркалення вмісту віджету, наразі обмежене.
elLst Перелік елементів 27

Перелік графічних елементів у форматі:

  • Лінія. Загальна форма запису у переліку, для статичних та динамічних параметрів (можуть змішуватися):
"line:({x}|{y}):({x}|{y})[:{width}[:{color}[:{bord_w}[:{bord_clr}[:{line_stl}]]]]]"
"line:{p1}:{p2}[:w{n}[:c{n}[:w{n}[:c{n}[:s{n}]]]]]"
  • Дуга. Загальна форма запису у переліку, для статичних та динамічних параметрів (можуть змішуватися):
"arc:({x}|{y}):({x}|{y}):({x}|{y}):({x}|{y}):({x}|{y})[:{width}[:{color}[:{bord_w}[:{bord_clr}[:{line_stl}]]]]]"
"arc:{p1}:{p2}:{p3}:{p4}:{p5}[:w{n}[:c{n}[:w{n}[:c{n}[:s{n}]]]]]"
VCA arc.png
p1, p2 — початкова та кінцева точка еліптичної дуги, відповідно;
p3 — центр дуги;
p4 — перший радіус;
p5 — другий радіус.
  • Крива Без'є. Загальна форма запису у переліку, для статичних та динамічних параметрів (можуть змішуватися):
"bezier:({x}|{y}):({x}|{y}):({x}|{y}):({x}|{y})[:{width}[:{color}[:{bord_w}[:{bord_clr}[:{line_stl}]]]]]"
"bezier:{p1}:{p2}:{p3}:{p4}[:w{n}[:c{n}[:w{n}[:c{n}[:s{n}]]]]]"
  • Заливка. Загальна форма запису у переліку, для статичних та динамічних параметрів (можуть змішуватися):
"fill:({x}|{y}):({x}|{y}):...:({x}|{y})[:{fill_clr}[:{fill_img}]]"
"fill:{p1}:{p2}:...:{pN}[:c{n}[:i{n}]]"

Де:

x, y — пряма точка (x,y), координати у пікселях з плаваючою точкою;
p1 ... pN — динамічна точка 1...N;
width, bord_w — пряма ширина лінії та бордюру у пікселях з плаваючою точкою;
w{n} — динамічна ширина 'n';
color, bord_clr, fill_clr — прямий колір лінії, бордюру та заповнення, у вигляді назви або 32-бітного коду з альфа: {ім'я}[-{AAA}], #RRGGBB-AAA;
c{n} — динамічний колір 'n';
line_stl — прямий стиль лінії: 0-Суцільна, 1-Пунктирна, 2-Точкова;
s{n} — динамічний стиль 'n';
fill_img — пряме зображення заповнення у виді "[{src}%3A]{name}", де:
"src" — джерело зображення:
file — безпосередньо з локального файлу за шляхом;
res — з таблиці ресурсів БД.
"name" — шлях файлу або ідентифікатор ресурсу.
i{n} — динамічне зображення заповнення 'n'.

Наприклад:

  • line:(50|25):(90.5|25):2:yellow:3:green:2
  • arc:(25|50):(25|50):1:4:(25|50)::#000000-0
  • fill:(25|50):(25|50):c2:i2
  • fill:(50|25):(90.5|25):(90|50):(50|50):#d3d3d3:h_31
Атрибути кожної точки з переліку графічних фігур elLst
p{n}x Точка {n}:x 30+n*6 Координата 'x' точки n.
p{n}y Точка {n}:y 30+n*6+1 Координата 'y' точки n.
w{n} Ширина {n} 30+n*6+2 Ширина n.
с{n} Колір {n} 30+n*6+3 Колір n (деталі у атрибуті 21).
i{n} Зображення {n} 30+n*6+4 Зображення n (деталі у атрибуті 26).
s{n} Стиль {n} 30+n*6+5 Стиль n.

1.2 Елемент форми (FormEl)

Примітив, призначений для надання, у розпорядження користувача, стандартних елементів форми. Загальний перелік атрибутів залежить від типу елементу.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елемент форми (FormEl)"

Ідентифікатор Ім'я Номер Значення
elType Тип елементу 20 Тип елементу, від значення якого залежить перелік додаткових атрибутів:
  • Рядок редагування (0)
  • Редактор тексту (1)
  • Прапорець (2)
  • Кнопка (3)
  • Вибір з переліку (ComboBox) (4)
  • Перелік (5)
  • Дерево (8)
  • Таблиця (9)
  • Слайдер (6)
  • Стрічка гортання (7)
Рядок редагування:
value Значення 21 Вміст рядку.
view Вид 22 Вид рядка редагування:
  • Текст (0)
  • Комбо Бокс (1)
  • Ціле (2)
  • Реальне (3)
  • Час (4)
  • Дата (5)
  • Дата та час (6)
  • Пароль (7)
cfg Конфігурація 23

Конфігурація рядку. Формат значення даного поля для різних видів рядка:

Текст — конфігурація форматованого воду за шаблоном з параметрами (підтримується тільки Qt у UI.Vision):
A — Потрібно ASCII алфавітний символ, [A-Za-z].
a — Дозволено, але не обов'язково, ASCII алфавітний символ.
N — Потрібно ASCII алфавітно-цифровий символ, [A-Za-z0-9].
n — Дозволено, але не обов'язково, ASCII алфавітно-цифровий символ.
X — Потрібно будь-який символ.
x — Дозволено, але не обов'язково, будь-який символ.
9 — Необхідно ASCII цифру, [0-9].
0 — Дозволено, але не обов'язково, ASCII цифру.
D — Необхідно ASCII цифру, [1-9].
d — Дозволено, але не обов'язково, ASCII цифру.
# — Дозволено, але не обов'язково, ASCII цифру або знаки плюс/мінус.
H — Необхідно символ шістнадцяткового числа, [A-Fa-f0-9].
h — Дозволено, але не обов'язково, символ шістнадцяткового числа.
B — Необхідно бінарний символ, [0-1].
b — Дозволено, але не обов'язково, бінарний символ.
> — Всі наступні алфавітні символи у верхньому регістрі.
< — Всі наступні алфавітні символи у нижньому регістрі.
! — Виключення перетворення регістру.
\\ — Використовуйте у роздільниках, для екранування спеціальних символів, які перелічено.
Комбобокс — перелік значень редагованого комбо-боксу, за рядками.
Ціле — значення цілого числа у формі: "{Мінімум}:{Максимум}:{КрокЗміни}:{Префікс}:{Суфікс}".
Реальне — значення реального числа в формі: "{Мінімум}:{Максимум}:{КрокЗміни}:{Префікс}:{Суфікс}:{ЗнаківПісляКрапки}".
Час, Дата, Дата та час — формувати дату за шаблоном з параметрами:
d — номер дня (1-31);
dd — номер дня (01-31);
ddd — скорочене найменування дня ("Mon" ... "Sun");
dddd — повне найменування дня ("Monday" ... "Sunday");
M — номер місяця (1-12);
MM — номер місяця (01-12);
MMM — скорочене ім'я місяця ("Jan" ... "Dec");
MMMM — повне ім'я місяця ("January" ... "December");
yy — останні дві цифри року;
yyyy — рік повністю;
h — час (0-23);
hh — час (00-23);
m — хвилини (0-59);
mm — хвилини (00-59);
s — секунди (0-59);
ss — секунди (00-59);
AP,ap — відображати AM/PM або am/pm.
confirm Підтверджувати 24 Включення режиму підтвердження.
font Шрифт 25

Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}", де:

  • "family" — сімейство шрифту, для пробілів використовуйте символ '_', на кшталт: "Arial", "Courier", "Times_New_Roman";
  • "size" — розмір шрифту у пікселях;
  • "bold" — підсилення шрифту (0 або 1);
  • "italic" — нахиленість шрифту (0 або 1);
  • "underline" — підкреслення шрифту (0 або 1);
  • "strike" — перекреслення шрифту (0 або 1).

Приклади:

  • "Arial 10 1 0 0 0" — Arial шрифт розміром 10 пікселів та підсилений.
Редактор тексту:
value Значення 21 Вміст редактору.
wordWrap Перенесення слів 22 Автоматичний перенесення тексту за словами.
confirm Підтверджувати 24 Включення режиму підтвердження.
font Шрифт 25 Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}" (деталі вище).
Прапорець:
name Ім'я 26 Ім'я/мітка прапорця.
value Значення 21 Значення прапорця.
font Шрифт 25 Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}" (деталі вище).
Кнопка:
name Ім'я 26 Ім'я-надпис на кнопці. Допустимі символи '\n' для можливості вводу багаторядних надписів.
value Значення 21

Значення, відрізняється для різних режимів:

  • "Стандарт" — параметри повтору подій при утримані {затримка}-{інтервал}, час у мілісекундах;
  • "Перемикач" — значення перемикача;
  • "Меню" — перелік адрес елементів меню виду /grp1/grp2/item1;
  • "Завантаження" — рядок опису {ШаблонФайлів}|{Заголовок}|{ФайлПоЗамовчТаЗав}|{ФайлMime} та вміст завантаженого файлу. Шаблон файлів у вигляді "Зображення (*.png *.xpm *.jpg);;CSV-файл (*.csv)".
  • "Збереження" — рядок опису {ШаблонФайлів}|{Заголовок}|{ФайлПоЗамовч}|{ФайлMime} та вміст файлу, що зберігається. Шаблон файлів як і вище.
img Зображення 22

Зображення на кнопці. Ім'я зображення у вигляді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
color Колір 23

Колір кнопки. Ім'я кольору у вигляді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
colorText Колір: текст 27 Колір тексту (деталі вище).
mode Режим 24

Режим роботи кнопки:

  • "Стандарт" — звичайна кнопка з можливістю повтору подій при утримані, параметри у "value";
  • "Перемикач" — кнопка з фіксацією, значення у "value";
  • "Меню" — відкриття меню за натиском, перелік елементів у "value";
  • "Завантаження" — організація користувацького завантаження невеликих файлів через інтерфейс візуалізації; за натиском кнопки, у цьому режимі, відкривається діалог вибору файлу завантаження, а вміст обраного файлу завантажується до атрибуту "value";
  • "Збереження" — організація користувацького збереження невеликих файлів через інтерфейс візуалізації; при запису вмісту файлу до атрибуту "value" користувачу буде відкрито діалог обрання/вказання файлу для збереження, після обрання, вміст атрибуту "value" збережеться до файлу, а "value" очиститься.
font Шрифт 25 Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}" (деталі вище).
Список:
value Значення 21 Поточне значення списку.
items Елементи 22 Перелік елементів списку.
font Шрифт 25 Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}" (деталі вище).
mult Множинний вибір 23 Дозволяти вибір множини елементів списку.
Вибір зі списку, Дерево:
value Значення 21 Поточне значення переліку.
items Елементи 22 Перелік елементів списку або ієрархічних елементів дерева у вигляді шляху "/{КАТ}/{КАТ}/{ЕЛЕМ}".
font Шрифт 25 Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}" (деталі вище).
Таблиця:
set Значення встановлення 23 Значення редагування клітинки таблиці з адресою у події "ws_TableEdit_{colN}_{rowN}".
value Значення 21

Адреса обраного елементу. Зміна супроводжується подією "ws_TableChangeSel". Формат адреси залежить від режиму обрання таблиці:

  • "Клітинка" — адреса клітинки у форматі "{row}:{col}".
  • "Рядок", "Стовпчик" — номер рядка-стовпчика або вміст клітинки ключа рядка-стовпчика, вказаного атрибутом "keyID".
items Елементи 22

Структура та вміст таблиці у вигляді XML:

<tbl>
<h><s>{Заголовок1}</s><s>{Заголовок2}</s></h>
<r><s>{Рядок1Стовпчик1Рядок}</s><i>{Рядок1Стовпчик2Ціле}</i></r>
<r><b>{Рядок2Стовпчик1Логічне}</b><r>{Рядок2Стовпчик2Реальне}</r></r>
</tbl>

Теги:

"tbl" — Таблиця, властивості таблиці загалом:
  • "sel" — режим обрання-виділення елементів таблиці: "row" — за рядками, "col" — за стовпчиками, "cell" — клітинками (по замовченню);
  • "keyID" — номер ключового рядка-стовпчика, для отримання значення вибору;
  • "colsWdthFit" — підлаштовувати розмір стовпчиків, розмір яких не фіксовано, під заповнення всієї ширини таблиці;
  • "hHdrVis", "vHdrVis" — встановлення видимості горизонтального, вертикального заголовків;
  • "sortEn" — включення прямого сортування за стовпчиками.
"h" — Рядок заголовків, можливі атрибути тегів клітинок заголовку, для стовпчика загалом:
  • "width" — ширина стовпчика, у пікселях або відсотках (10%);
  • "edit" — можливість редагування (0 або 1) клітинок стовпчика, по замовченню — ні (0);
  • "color" — колір стовпчика, загалом, у вигляді ім'я кольору або його коду;
  • "colorText" — колір тексту стовпчика, загалом, у вигляді ім'я кольору або його коду;
  • "font" — шрифт тексту стовпчика, загалом, у вигляді типового рядка OpenSCADA;
  • "prec" — точність значень клітинок реального типу у стовпчику;
  • "sort" — сортування за даним стовпчиком [0 — по зростанню-типово; 1 — по убуванню];
  • "align" — вирівнювання стовпчика щодо: "left", "right" та "center".
"r" — Рядок значень, можливі атрибути тегів клітинок заголовку, для рядка загалом:
  • "color" — колір рядку, загалом, у вигляді ім'я кольору або його коду;
  • "colorText" — колір тексту рядка, загалом, у вигляді ім'я кольору або його коду;
  • "font" — шрифт тексту рядка, загалом, у вигляді типового рядка OpenSCADA;
  • "prec" — точність значень клітинок реального типу у рядку.
"s", "t", "i", "r", "b" — клітинки типів даних: "Рядок", "Текст", "Ціле", "Реальне" та "Логічне". Можливі атрибути:
  • "color" — колір клітинки;
  • "colorText" — колір тексту клітинки, у вигляді ім'я кольору або його коду;
  • "prec" — точність значень клітинки реального типу;
  • "font" — шрифт тексту клітинки, у вигляді типового рядка OpenSCADA;
  • "img" — зображення клітинки, у вигляді "[{src}:]{name}", деталі вище;
  • "edit" — можливість редагування (0 або 1) клітинки, по замовченню — немає (0);
  • "align" — вирівнювання клітинки щодо: "left", "right" та "center".
font Шрифт 25 Ім'я шрифту у вигляді "{family} {size} {bold} {italic} {underline} {strike}" (деталі вище).
Слайдер та стрічка гортання:
value Значення 21 Положення слайдеру.
cfg Конфігурація 22

Конфігурація слайдеру у форматі: "{ВертОрієнт}:{Мінімум}:{Максимум}:{ОдинКрок}:{СторКрок}".
Де:

  • "ВертОрієнт" — ознака вертикальної орієнтації (0 або 1), по замовченню орієнтація горизонтальна;
  • "Мінімум" — мінімальне значення;
  • "Максимум" — максимальне значення;
  • "ОдинКрок" — розмір одного кроку;
  • "СторКрок" — розмір сторінкового кроку.

1.3 Елемент тексту (Text)

Даний примітив призначено для виводу простого та HTML тексту, що використовується у ролі міток та різних підписів. З метою створення декоративних оформлень, примітив підтримує обведення тексту рамкою.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елемент тексту (Text)"

Ідентифікатор Ім'я Номер Значення
backColor Фон: колір 20

Фоновий колір. Ім'я кольору у виді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
backImg Фон: зображення 21

Фонове зображення. Ім'я зображення у виді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
bordWidth Границя: ширина 22 Ширина бордюру.
bordColor Границя: колір 23 Колір бордюру (детальніше у атрибуті 20).
bordStyle Границя: стиль 24 Стиль бордюру: "Немає" (0), "Точковий" (1), "Пунктирний" (2), "Суцільний" (3), "Подвійний" (4), "Канавка" (5), "Кромка" (6), "Втиснутий" (7), "Виступаючий" (8).
font Шрифт 25

Ім'я шрифту у виді "{family} {size} {bold} {italic} {underline} {strike}", де:

  • "family" — сімейство шрифту, для пробілів використовуйте символ '_', на кшталт: "Arial", "Courier", "Times_New_Roman";
  • "size" — розмір шрифту у пікселях;
  • "bold" — підсилення шрифту (0 або 1);
  • "italic" — нахиленість шрифту (0 або 1);
  • "underline" — підкреслення шрифту (0 або 1);
  • "strike" — перекреслення шрифту (0 або 1).

Приклади:

  • "Arial 10 1 0 0 0" — Arial шрифт розміром 10 пікселів та підсилений.
color Колір 26 Колір тексту (детальніше у атрибуті 20).
orient Кут повороту 27 Орієнтація тексту, кут повороту.
wordWrap Перенесення слів 28 Автоматичне перенесення тексту за словами.
alignment Вирівнювання 29 Вирівнювання тексту: "Зверху ліворуч" (0), "Зверху праворуч" (1), "Зверху у центрі" (2), "Зверху по ширині" (3), "Знизу ліворуч" (4), "Знизу праворуч" (5), "Знизу у центрі" (6), "Знизу по ширині" (7), "У центрі ліворуч" (8), "У центрі праворуч" (9), "У центрі" (10), "У центрі по ширині" (11).
inHtml В HTML 31 Відображення та підтримка вмісту аргументу text у HTML.
text Текст 30 Значення тексту. Використовуйте "%{x}" для розташування значення аргументу "x" (від 1).
numbArg Кількість аргументів 40 Кількість аргументів.
Атрибути аргументів
arg{x}val Аргумент {x}: значення 50+10*x Значення аргументу x.
arg{x}tp Аргумент {x}: тип 50+10*x+1 Тип аргументу x: "Цілий" (0), "Реальний" (1), "Рядок" (2).
arg{x}cfg Аргумент {x}: конфігурація 50+10*x+2

Конфігурація аргументу x:

  • "Рядок": {len} — ширина рядка;
  • "Реальний": {wdth};{form};{prec} — ширина, форма ('g', 'e', 'f') та точність значення;
  • "Цілий": {len} — ширина значення.

1.4 Елемент відображення медіа-матеріалів (Media)

Даний примітив призначено для програвання різних медіа-матеріалів, починаючи від простих зображень та закінчуючи повноцінними аудіо та відео потоками.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елемент відображення медіа-матеріалів (Media)"

Ідентифікатор Ім'я Номер Значення
backColor Фон: колір 20

Фоновий колір. Ім'я кольору у виді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
backImg Фон: зображення 21

Фонове зображення. Ім'я зображення у виді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
bordWidth Границя: ширина 22 Ширина бордюру.
bordColor Границя: колір 23 Колір бордюру (детальніше у атрибуті 20).
bordStyle Границя: стиль 24 Стиль бордюру: "Немає", "Точковий", "Пунктирний", "Суцільний", "Подвійний", "Канавка", "Кромка", "Втиснутий", "Виступаючий".
src Джерело 25

Ім'я джерела медіа у виді "[{src}:]{name}", де:

  • "src" — джерело:
    • file — прямо з локального, візуалізатор та рущій, файлу за шляхом;
    • res — з таблиці ресурсів БД;
    • data — безпосередньо дані у формі "data:{mime}\n{base64}";
    • stream — URL потоку програвання відео або аудіо.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:workMedia" — з таблиці ресурсів БД для ідентифікатору "workMedia";
  • "workMedia" — як і попередній;
  • "file:/var/tmp/workMedia.mng" — з локального файлу за шляхом "/var/tmp/workMedia.mng";
  • "stream:http://localhost.localhost:5050" — програвання відео або аудіо з URL.
type Тип 27

Тип медіа:

  • "Зображення" — растрове або векторне (може не підтримуватися) зображення, на кшталт: PNG, JPEG, GIF, SVG;
  • "Анімація" — просте анімоване зображення, на кшталт: GIF, MNG;
  • "Відео" — повне відео або потік, на кшталт: OGM, AVI, MKV, MPG, MP4;
  • "Аудіо" — просто аудіо або потік, на кшталт: OGG, MP3, WAV.
areas Області карти 28 Кількість активних областей.
Атрибути зображення (Image)
fit Заповнювати віджет 26 Ознака "Погоджувати вміст з розміром віджету".
Атрибути анімації-відеоролику (Animation)
fit Заповнювати віджет 26 Ознака "Погоджувати вміст з розміром віджету".
speed Швидкість програвання 29 Швидкість програвання, у відсотках від оригінальної швидкості. Якщо значення менше або дорівнює 1% то програвання припиняється.
Атрибути повноформатного відео (Full video)
play Грати 29 Відео/аудіо — "Грати".
roll Завертати програвання 30 Повторення програвання по завершенню.
pause Пауза 31 Призупиняти програвання.
size Розмір 32 Загальний розмір відео, у мілісекундах.
seek Положення 33 Позиція програвання відео, у мілісекундах.
volume Гучність 34 Гучність звуку [0...100].
Активні області
area{x}shp Область {x}: образ 40+3*x Вид області x: "Квадрат", "Полілінія", "Коло".
area{x}coord Область {x}: координати 40+3*x+1 Координати області x, через кому йдуть координати: "x1,y1,x2,y2,xN,yN".
area{x}title Область {x}: заголовок 40+3*x+2 Заголовок області x.

1.5 Елемент побудови діаграм (Diagram)

Цей примітив призначено для побудови різних діаграм у часі, включаючи графіки-тренди відображення поточного процесу та архівних даних. Реалізовано наступні типи діаграм:

  • "Графік-тренд" — будує графік значень параметру у часі.
  • "Спектр" — будує частотний спектр із значень параметрів. Вікно даних частотного спектру формується виходячи із розміру віджету по горизонталі, у пікселях, та доступних даних параметрів, накладених на ґратку горизонтального розміру. У зв'язку з цим, мінімальна виділювана частота визначається значенням атрибуту "tSize" — "1/tSize", а максимальна, половинною шириною графіка у пікселях помноженою на мінімальну частоту "width/(2*tSize)".
  • "XY" — будує двомірний графік значень параметрів, парами на графік, де парні по осі Y (0,2,4...) та непарні по осі X (1,3,5...). Вказаний діапазон часу даних використовується у отримані значень параметрів осі X та Y, з подальшим зображенням.

Для всіх типів діаграм можливе визначення, у якості джерела даних:

  • параметру підсистеми "Збір Даних";
  • архіву значень;
  • прямого блоку даних користувача.

Підтримується режим слідкування за поточними значеннями та значеннями з архіву, а також, можлива побудова графіків параметрів, що не мають архіву значень, шляхом накопичення поточних значень у буфері діаграми та тільки на момент активного відображення цієї діаграми.

Процес доступу до архівних даних оптимізовано шляхом введення проміжного буферу відображення, а також, упаковки трафіку даних при запиті, шляхом приведення даних до якості достатньої для відображення.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елемент побудови діаграм (Diagram)"

Ідентифікатор Ім'я Номер Значення
backColor Фон: колір 20

Фоновий колір. Ім'я кольору у виді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
backImg Фон: зображення 21

Фонове зображення. Ім'я зображення у виді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
bordWidth Границя: ширина 22 Ширина бордюру.
bordColor Границя: колір 23 Колір бордюру (детальніше у атрибуті 20).
bordStyle Границя: стиль 24 Стиль бордюру: "Немає", "Точковий", "Пунктирний", "Суцільний", "Подвійний", "Канавка", "Кромка", "Втиснутий", "Виступаючий".
trcPer Період стеження, секунд 25 Режим та періодичність стеження.
type Тип 26 Тип діаграми: "Графік", "Спектр", "XY".
Атрибути, загальні для всіх типів
tSek Час: секунди 27 Поточний час, секунд.
tUSek Час: мікросекунди 28 Поточний час, мікросекунди.
tSize Розмір, секунди 29 Розмір даних, секунди.
curSek Курсор: секунди 30 Положення курсору, секунди.
curUSek Курсор: мікросекунди 31 Положення курсору, мікросекунди.
curColor Курсор: колір 32 Колір курсору.
sclColor Шкала: колір 33 Колір шкали-решітки (детальніше у атрибуті 20).
sclHor Шкала: горизонтальна 34 Режим горизонтальної шкали-решітки: "Не зображувати", "Ґратка", "Маркери", "Ґратка та маркери", "Ґратка (лог)", "Маркери (лог)", "Ґратка та маркери (лог)".
sclHorScl Шкала: гориз. масштаб (%) 44 Горизонтальний масштаб графіку у відсотках, виключно для типу "XY".
sclHorSclOff Шкала: зміщ. гориз. масштабу (%) 45 Зміщення горизонтального масштабу у відсотках, виключно для типу "XY".
sclVer Шкала: вертикальна 35 Режим вертикальної шкали-решітки: "Не зображувати", "Ґратка", "Маркери", "Ґратка та маркери", "Ґратка (лог)", "Маркери (лог)", "Ґратка та маркери (лог)".
sclVerScl Шкала: верт. масштаб (%) 40 Вертикальний масштаб графіку у відсотках.
sclVerSclOff Шкала: зміщ. верт. масштабу (%) 41 Зміщення вертикального масштабу у відсотках.
sclMarkColor Шкала: Маркери: колір 36 Колір маркерів шкали-решітки (детальніше у атрибуті 20).
sclMarkFont Шкала: Маркери: шрифт 37

Шрифт маркерів шкали-решітки. Ім'я шрифту у виді "{family} {size} {bold} {italic} {underline} {strike}", де:

  • "family" — сімейство шрифту, для пробілів використовуйте символ '_', на кшталт: "Arial", "Courier", "Times_New_Roman";
  • "size" — розмір шрифту у пікселях;
  • "bold" — підсилення шрифту (0 або 1);
  • "italic" — нахиленість шрифту (0 або 1);
  • "underline" — підкреслення шрифту (0 або 1);
  • "strike" — перекреслення шрифту (0 або 1).

Приклади:

  • "Arial 10 1 0 0 0" — Arial шрифт розміром 10 пікселів та підсилений.
valArch Архіватор значень 38 Архіватор значень у вигляді "{МодульАрхівів}.{IdАрхіватору}".
valsForPix Значень на піксель 42 Кількість значень на піксель. Збільшити для розширення точності експорту на великих інтервалах часу.
parNum Кількість параметрів 39 Кількість параметрів, що відображаються на одному тренді.
Атрибути типу: "Графік"
sclHorPer Шкала: розмір гор. ґратки, секунди 43 Фіксований період ґратки горизонтальної шкали — вимикає автоматичне обчислення періоду ґратки. Активується якщо кількість періодів на загальний розмір більш двох та розмір одного періоду не менше 15 пікселів.
Індивідуальні атрибути параметрів
prm{X}addr Параметр {X}: адреса 50+10*{X}

Повна адреса до атрибуту параметру X DAQ або архіву.
Підтримується пряме встановлення даних за префіксом:

  • "data:{XMLNodeData}" — зображення з прямо встановлених даних;
  • "line:{значення}" — зображення горизонтальної лінії за значенням, не має сенсу для типу "XY".

Приклад:

  • "/DAQ/System/AutoDA/MemInfo/use" — адреса до атрибуту "use" параметру "MemInfo" об'єкту контролера "AutoDA" DAQ модуля "System";
  • "/Archive/va_CPULoad_load" — адреса до архіву "CPULoad_load";
  • "data:<d s="1" aprox="1" tm="1369465209" tm_grnd="1369465200" per="1">
0 3.14
1 3.141
5 3.1415</d>" — 10 секунд даних з періодом 1 секунда від "25.05.2013 10:00:00"; можна не вказувати "tm" та "tm_grnd", у результаті чого буде підставлено значення діапазону діаграми, також, встановленням атрибуту "s", можна вказати на час у секундах; "aprox" — апроксимувати перехід від однієї точки до іншої замість підставки попереднього значення у всі точки періодичності від упаковки;
  • "line:3.14159265" — горизонтальна лінія за значенням "3.14159265".
prm{X}bordL Параметр {X}: границя відображ.: нижня 50+10*{X}+1 Нижня границя значень параметру X.
prm{X}bordU Параметр {X}: границя відображ.: верхня 50+10*{X}+2 Верхня границя значень параметру X.
prm{X}color Параметр {X}: колір 50+10*{X}+3 Колір відображення графіку параметру X (детальніше у атрибуті 20).
prm{X}width Параметр {X}: ширина 50+10*{X}+6 Ширина лінії графіку параметра X, у пікселях.
prm{X}scl Параметр {X}: шкала 50+10*{X}+5 Режим окремої вертикальної шкали параметру X: "Глобально", "Маркери", "Ґратка та маркери", "Маркери (лог)", "Ґратка та маркери (лог)".
prm{X}val Параметр {X}: значення 50+10*{X}+4 Значення параметру X під курсором, або на поточний час, для типа "XY".
prm{X}prop Параметр {X}: властивості 50+10*{X}+7 Властивості реального архіву у вигляді "{BegArh}:{EndArh}:{DataPeriod}", де "BegArh", "EndArh", "DataPeriod" — початок, кінець та період даних архіву, у секундах, у реальному представлені, безпосередньо до мікросекунд (1e-6).

1.6 Елемент побудови протоколів на основі архівів повідомлень (Protocol)

Цей примітив призначено для візуалізації даних архіву повідомлень шляхом формування протоколів з різними способами візуалізації, починаючи від статичного сканувального перегляду та закінчуючи динамічним стеженням.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елемент побудови протоколів на основі архівів повідомлень (Protocol)"

Ідентифікатор Ім'я Номер Значення
backColor Фон: колір 20

Фоновий колір. Ім'я кольору у виді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
backImg Фон: зображення 21

Фонове зображення. Ім'я зображення у виді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
font Шрифт 22

Ім'я шрифту у виді "{family} {size} {bold} {italic} {underline} {strike}", де:

  • "family" — сімейство шрифту, для пробілів використовуйте символ '_', на кшталт: "Arial", "Courier", "Times_New_Roman";
  • "size" — розмір шрифту у пікселях;
  • "bold" — підсилення шрифту (0 або 1);
  • "italic" — нахиленість шрифту (0 або 1);
  • "underline" — підкреслення шрифту (0 або 1);
  • "strike" — перекреслення шрифту (0 або 1).

Приклади:

  • "Arial 10 1 0 0 0" — Arial шрифт розміром 10 пікселів та підсилений.
headVis Заголовок видимий 23 Видимість заголовку таблиці.
time Час, секунди 24 Поточний час, секунди.
tSize Розмір, секунди 25 Розмір запиту даних, секунди. Встановіть значення у '0' для отримання всіх порушень, для "lev" < 0.
trcPer Період стеження, секунди 26 Режим та періодичність стеження.
arch Архіватор 27 Архіватор повідомлень у вигляді "{МодульАрхівів}.{IdАрхіватору}".
tmpl Шаблон 28

Шаблон категорії або регулярний вираз "/{re}/". Для шаблона зарезервовано символи:

  • '*' — множина будь-яких, група символів;
  • '?' — будь-який, один символ;
  • '\\' — використовуйте для екранування спеціальних символів.
lev Рівень 29 Рівень повідомлень. Встановіть значення < 0 для отримання поточних порушень.
viewOrd Порядок відображення 30 Порядок відображення: "За часом", "За рівнем", "За категорією", "За повідомленням", "За часом (обернений)", "За рівнем (обернений)", "За категорією (обернений)", "За повідомленням (обернений)".
col Показати стовпчики 31

Перелік видимих та порядок стовпчиків, поділених символом ';'. Передбачаються стовпчики:

  • "pos" — номер рядку;
  • "tm" — дата та час повідомлення;
  • "utm" — мікросекундна частина часу повідомлення;
  • "lev" — рівень повідомлення;
  • "cat" — категорія повідомлення;
  • "mess" — текст повідомлення.
itProp Властивості елементу 32 Кількість властивостей елементу.
Індивідуальні атрибути властивостей елемента
it{X}lev Елемент {X}: рівень 40+5*{X} Критерій: рівень елементу X більш або дорівнює вказаному.
it{X}tmpl Елемент {X}: шаблону 40+5*{X}+1 Критерій: шаблон категорії елементу X (детальніше у атрибуті 28).
it{X}fnt Елемент {X}: шрифт 40+5*{X}+2 Шрифт елементу X (детальніше у атрибуті 22).
it{X}сolor Елемент {X}: кольору 40+5*{X}+3 Колір елементу X (детальніше у атрибуті 20).

1.7 Елемент формування звітної документації (Document)

Примітив призначено для формування звітної, оперативної та іншої документації на основі шаблонів документів.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Елемент формування звітної документації (Document)"

Ідентифікатор Ім'я Номер Значення
style CSS 20 Правила CSS в рядках, виду "body { background-color:#818181; }".
tmpl Шаблон 21

Шаблон документу у XHTML, починаючи з тегу "body" та включаючи процедурні вставки:

<body docProcLang="JavaLikeCalc.JavaScript">
  <h1>Значення<?dp return wCod+1.314;?></h1>
</body>
doc Документ 22 Фінальний документ у XHTML, починається з тегу "body".
font Шрифт 26

Базовий шрифт тексту документа. Ім'я шрифту у виді "{family} {size} {bold} {italic} {underline} {strike}", де:

  • "family" — сімейство шрифту, для пробілів використовуйте символ '_', на кшталт: "Arial", "Courier", "Times_New_Roman";
  • "size" — розмір шрифту у пікселях;
  • "bold" — підсилення шрифту (0 або 1);
  • "italic" — нахиленість шрифту (0 або 1);
  • "underline" — підкреслення шрифту (0 або 1);
  • "strike" — перекреслення шрифту (0 або 1).

Приклади:

  • "Arial 10 1 0 0 0" — Arial шрифт розміром 10 пікселів та підсилений.
bTime Час: початок 24 Час початку документу, секунди.
time Час: поточне 23 Час генерації документу, секунди. Записати час для генерації документа від цієї точки або нуль для перегенерації.
process У процесі 27 Ознака процесу формування документу окремим потоком.
n Розмір архіву 25 Кількість документів або глибина архіву.
Атрибути увімкненого режиму архівування
aCur Архів: курсор: поточний - Позиція поточного документу у архіві. Запис значення <0 здійснює архівацію поточного документу.
vCur Архів: курсор: вид -

Поточний візуалізований документ архіву. Запис значення:

  • -1 — вибір наступного документу;
  • -2 — вибір попереднього документу.
aDoc Архів: поточний документ - Поточний документ архіву у XHTML, починається з тегу "body".
aSize Архів: розмір - Реальний розмір архіву документу.

Можливості примітиву "Документ":

  • Гнучке формування структури документу на основі мови гіпертекстової розмітки, що надає підтримку широких можливостей форматування документів.
  • Формування документів за командою або розкладом, що необхідно для формування звітної документації до архіву, з подальшим переглядом архіву.
  • Формування документів у режимі реального часу, для надання їх повністю динамічно та на основі архівів за вказаний час.
  • Використання атрибутів віджету для передачі у документ значень та адрес на архіви, що дозволяє використовувати віджет документу як шаблон, при формуванні звітів з іншими вхідними даними.

У основі будь-якого документу лежить XHTML-шаблон. XHTML-шаблон це тег "body" WEB-сторінки, що містить статику документу у стандарті XHTML 1.0 та елементи виконувальних інструкцій на мові користувацького програмування OpenSCADA, у вигляді <?dp {procedure} ?>. Результуючий документ формується шляхом виконання процедур та вставки їх результату у документ.

Джерелом значень виконуваних інструкцій є атрибути віджету цього примітиву, а також всі механізми мови користувацького програмування OpenSCADA. Атрибути можуть додаватися користувачем та лінкуватися на реальні атрибути параметрів або-ж бути автономними, значення яких будуть формуватися у процедурі віджету. У випадку зі злінкованими атрибутами, значення можуть вийматися з архіву-історії.

На рисунку зображено структурну схему віджету примітива "Документ". Згідно цієї структури, "Документ" містить: XHTML-шаблон, результатні документи та процедуру обробки даних. Джерелом даних процедури та результатних документів є атрибути віджету.

Рисунок. Структурна схема примітиву "Документ".

Передбачено роботу віджету у двох режимах: "Динамічний" та "Архівний". Відмінністю архівного режиму є наявність архіву визначеної глибини та атрибутів, що дозволяють керувати процесом архівування та перегляду вказаного документу у архіві.

Генерація документу завжди здійснюється у момент встановлення атрибуту часу time відносно встановленого раніш початкового часу документу у атрибуті bTime. При вимкненому архіві, результатний документ поміщається безпосередньо у атрибут doc. При увімкненому архіві, результатний документ поміщається до клітинки під курсором, атрибут aCur, а також у doc, якщо значення курсору архіву aCur та курсору візуалізованого документу vCur збігаються. Атрибути архівних курсорів передбачають декілька командних значень:

  • "aCur < 0" — переміщує курсор архіватору на наступну позицію, тим самим залишаючи попередній документ у архіві та очищаючи документ під курсором, якщо кільцевий архів замкнувся.
  • "vCur == -1" — вибір наступного документу для відображення, обраний документ копіюється до атрибуту doc.
  • "vCur == -2" — вибір попереднього документу для відображення, обраний документ копіюється до атрибуту doc.

Як було вказано вище, динаміка шаблону документа визначається вставками виконуваних інструкцій виду "<?dp {procedure} ?>". У процедурах можуть використовуватися однойменні атрибути віджету та функції користувацького інтерфейсу програмування OpenSCADA. Крім атрибутів віджету, зарезервовано спеціальні атрибути, дивись таблицю.

Таблиця. Спеціальні та зарезервовані елементи шаблону.

Ім'я Призначення
Атрибути
rez Атрибут результату виконання процедури, вміст якого поміщається у дерево документа.
lTime Час останнього формування. Якщо документ формується вперше то lTime дорівнює bTime.
rTime Містить час перебируваних значень, секунди, визначається всередині тегів з атрибутом "docRept".
rTimeU Містить час перебируваних значень, мікросекунди, визначається всередині тегів з атрибутом "docRept".
rPer Містить період перебору значень, атрибут "docRept".
mTime, mTimeU, mLev, mCat, mVal

Визначаються всередині тегів з атрибутом "docAMess" при розборі повідомлень архіву повідомлень:

mTime — час повідомлення, секунди;
mTimeU — час повідомлення, мікросекунди;
mLev — рівень повідомлення;
mCat — категорія повідомлення;
mVal — значення повідомлення.
Спеціальні теги
Спеціальні атрибути стандартних тегів
body.docProcLang Мова виконуваних процедур документу, по замовченню це "JavaLikeCalc.JavaScript".
*.docRept="1s" Тег з указаним атрибутом розмножується, при формуванні, шляхом зсуву часу у атрибуті "rTime" на значення, вказане у даному атрибуті.
*.docAMess="1:PLC*" Вказує на необхідність розмноження тегу з атрибутом, повідомленнями з архіву повідомлень за вказаний інтервал часу, згідно рівня "1" та шаблону запиту "PLC*", за категорією повідомлення. У шаблоні запиту можуть вказуватися регулярні вирази у вигляді "/{re}/". Для даного тегу, у процесі розмноження, визначаються атрибути: "mTime", "mTimeU", "mLev", "mCat" и "mVal".
*.docAMessArchs="ArchMod0.Archivator0[;ArchModN.ArchivatorN]" Доповнює атрибут "*.docAMess" переліком архіваторів для читання повідомлень.
*.docRevers="1" Вказує на інвертування порядку розмноження — останній нагорі.
*.docAppend="1" Ознака необхідності додання результату виконання процедури до тегу процедури. Інакше результат виконання заміняє вміст тегу.
body.docTime Час формування документу, використовується для встановлення атрибуту lTime при наступному формуванні документа. Не встановлюється користувачем!
table.export="1" Ввімкнення можливості експорту вмісту вказаної таблиці у CSV-файл або інші табличні формати.

1.8 Контейнер (Box)

Примітив контейнеру, використовується для формування складених віджетів та/або сторінок користувацького інтерфейсу.

Таблиця. Набір додаткових властивостей/атрибутів примітиву "Контейнер (Box)"

Ідентифікатор Ім'я Номер Значення
pgOpenSrc Сторінка: джерело відкриття 3 Повна адреса сторінки, яка включена усередину даного контейнеру.
pgGrp Сторінка: група 4 Група контейнеру включених сторінок. Лише сторінки у такій групі включатимуться до цього боксу як контейнеру.
backColor Фон: колір 20

Фоновий колір. Ім'я кольору у виді "{color}[-{alpha}]", де:

  • "color" — стандартне ім'я кольору або його числове представлення з трьох шістнадцяткових чисел окремих кольорів "#RRGGBB";
  • "alpha" — рівень альфа-каналу [0...255], де 0 — повністю прозорий.

Приклади:

  • "red" — суцільний червоний колір;
  • "#FF0000" — суцільний червоний колір у цифровому коді;
  • "red-127" — напівпрозорий червоний колір.
backImg Фон: зображення 21

Фонове зображення. Ім'я зображення у виді "[{src}:]{name}", де:

  • "src" — джерело зображення:
    • file — прямо з локального файлу за шляхом;
    • res — з таблиці ресурсів БД.
  • "name" — шлях файлу або ідентифікатор ресурсу.

Приклади:

  • "res:backLogo" — з таблиці ресурсів БД для ідентифікатору "backLogo";
  • "backLogo" — як і попередній;
  • "file:/var/tmp/backLogo.png" — з локального файлу за шляхом "/var/tmp/backLogo.png".
bordWidth Границя: ширина 22 Ширина бордюру.
bordColor Границя: колір 23 Колір бордюру (детальніше у атрибуті 20).
bordStyle Границя: стиль 24 Стиль бордюру: "Немає", "Точковий", "Пунктирний", "Суцільний", "Подвійний", "Канавка", "Кромка", "Втиснутий", "Виступаючий".