Любой вновь создаваемый виджет основывается на одном из нескольких примитивов (конечный элемент визуализации) путём установки родственной связи как прямо на примитив, так и посредством нескольких промежуточных пользовательских виджетов. Каждый из примитивов содержит механизм (логику) модели данных. Экземпляр виджета хранит значения свойств конфигурирования примитива специально для себя.
В задачи интерфейса визуализации входит поддержка и работа с моделью данных примитивов виджетов. Примитивы виджетов должны быть тщательно проработаны и унифицированы с целью охватить как можно больше возможностей в как можно меньшем количестве слабо связанных друг с другом по назначению примитивов.
Таблица. Библиотека примитивов виджетов (базовых элементов отображения)
Id | Наименование | Функция |
ElFigure | Элементарные графические фигуры | Примитив является основой для отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Предусматривается поддержка следующих элементарных фигур: - Линия.
- Дуга.
- Кривая безье.
- Заливка замкнутого пространства.
Для всех фигур, содержащихся в виджете, устанавливаются единые свойства толщины, цвета и т.д., но это не исключает возможность указания вышеперечисленных атрибутов для каждой фигуры отдельно. |
FormEl | Элементы формы | Включает поддержку стандартных компонентов формы: - Редактирование строки.
- Редактирование текста.
- Флажок.
- Кнопка.
- Выбор из списка.
- Список.
- Дерево.
- Таблица.
- Слайдер.
- Строка прокрутки.
|
Text | Текст | Элемент текста(метки). Характеризуется типом шрифта, цветом, ориентацией и выравниванием. |
Media | Медиа | Элемент отображения растровых и векторных изображений различных форматов, проигрывания анимированных изображений, проигрывание аудио фрагментов и просмотр видео-фрагментов. |
Diagram | Диаграмма | Элемент диаграммы с поддержкой возможности отображения нескольких потоков трендов, частотного спектра, XY диаграмм реального времени, ... . |
Protocol | Протокол | Элемент протокола, визуализатора системных сообщений с поддержкой несколько режимов работы. |
Document | Документ | Элемент формирования отчётов, журналов и другой документации на основе доступных в системе данных. |
Box | Контейнер | Содержит механизм размещения-включения других виджетов с целью формирования новых, более сложных, виджетов и страниц конечной визуализации. |
Function, в планах | Функция API объектной модели OpenSCADA | Невизуальный, на стороне исполнения, виджет, позволяющий включать вычислительные функции объектной модели OpenSCADA в СВУ. |
Таблица. Общий набор свойств/атрибутов в виджете
Id | Имя | Номер | Значение |
id | Id | - | Идентификатор элемента. Атрибут только для чтения, призванный предоставить информацию об идентификаторе элемента. |
path | Путь | - | Путь к этому виджету. Атрибут только для чтения и предоставления исчерпывающей информации об расположения элемента. |
parent | Родитель | - | Путь к родительскому виджету. Атрибут только для чтения и предоставления информации о расположении предка, от которого унаследован виджет. |
owner | Владелец | - | Владелец и группа виджета в форме "{владелец}:{группа}", по умолчанию "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 | Страница:открыта | - | Признак "Страница открыта". * Модификация из сеанса осуществляет немедленное открытие/закрытие данной страницы. |
pgNoOpenProc | Страница:обрабатывать закрытой | - | Признак "Исполнять страницу даже если она закрыта". |
pgOpenSrc | Страница:источник открытия | 3 | Полный адрес страницы, открывшей данную. * Запись/очистка адреса виджета — (инициатора открытия) осуществляет немедленное открытие/закрытие страницы. В случае записи адреса и выполнения других условий осуществляется динамическое связывание текущего виджета с инициатором. |
pgGrp | Страница:группа | 4 | Группа страницы. |
Дополнительные атрибуты режима исполнения — сеанса. |
event | Обработка событий | - | Специальный атрибут для сбора событий виджета в списке, разделённом новой строкой. Доступ к атрибуту защищён захватом ресурса с целью избежания потери событий. Атрибут всегда доступен в скрипте виджета. |
load | Загрузка | -1 | Виртуальная команда групповой загрузки данных. |
focus | Фокус | -2 | Специальный атрибут индикации факта получения фокуса активным виджетом. Атрибут этого виджета и вложенных виджетов доступен в скрипте виджета. |
perm | Доступ | -3 | Виртуальный атрибут прав активного пользователя на просмотр и контроль над виджетом. |
* — Специальная функция атрибута виджета, выполняемая в сеансе проекта при пользовательской модификации.
Движок среды визуализации предусматривает активацию атрибутов, специфичных для визуализатора. Процесс активации осуществляется при открытии сеанса визуализации для проекта и предусматривает в этом проекте: создание специфичного атрибута с указанными свойствами, если он отсутствует, и активацию для отслеживания движком среды визуализации его модификации, как для атрибутов формирования образов примитивов. С перечнем специфичных для визуализатора атрибутов можно ознакомиться в документации на соответствующий визуализатор.
Элементарные графические фигуры (ElFigure)
Примитив является основой для отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Учитывая широкий спектр всевозможных фигур, которые должен поддерживать примитив, и в тоже время являться достаточно простым в использовании и, по возможности, в реализации, решено было ограничить перечень базовых фигур, используемых для построения результирующих графических объектов до таких фигур: линия, дуга, кривая Безье и заливка замкнутых контуров. Основываясь уже на этих базовых фигурах, можно строить производные фигуры, комбинируя базовые. В рамках примитива существует возможность задания прозрачности цвета в диапазоне [0...255], где '0' — полная прозрачность.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "ElFigure"
Id | Имя | Номер | Значение |
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 — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "backLogo";
- "backLogo" — как и предыдущий;
- "file:/var/tmp/backLogo.png" — из локального файла по пути "/var/tmp/backLogo.png".
|
orient | Угол поворота | 28 | Угол поворота содержимого виджета. |
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}]]]]]"
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 — из таблицы mime-ресурсов БД.
"name" — путь файла или идентификатор mime-ресурса.
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. |
Элементы формы (FormEl)
Примитив, предназначенный для предоставления стандартных элементов формы в распоряжение пользователя. Общий перечень атрибутов зависит от типа элемента.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "FormEl"
Id | Имя | Номер | Значение |
elType | Тип элемента | 20 | Тип элемента: "Строка редактирования", "Редактор текста", "Флажок", "Кнопка", "Выбор из списка", "Список", "Дерево", "Таблица", "Слайдер", "Полоса прокрутки". От значения типа зависит перечень дополнительных атрибутов. |
Строка редактирования: |
value | Значение | 21 | Содержимое строки. |
view | Вид | 22 | Вид строки редактирования: "Текст", "Комбобокс", "Целое", "Вещественное", "Время", "Дата", "Дата и время". |
cfg | Конфигурация | 23 | Конфигурация строки. Формат значения данного поля для различных видов строки: Текст — конфигурация форматированного ввода по шаблону с параметрами: A — Необходим ASCII алфавитный символ. A-Z, a-z.
a — Разрешён но не необходим ASCII алфавитный символ.
N — Необходим ASCII алфавитно-цифровой символ. A-Z, a-z, 0-9.
n — Разрешён но не необходим ASCII алфавитно-цифровой символ.
X — Необходим любой символ.
x — Разрешён но не необходим любой символ.
9 — ASCII цифра необходима. 0-9.
0 — ASCII цифра разрешёна но не необходима.
D — ASCII цифра необходима. 1-9.
d — ASCII цифра разрешёна но не необходима (1-9).
# — ASCII цифра или знаки плюс/минус разрешёны но не необходимы.
H — Необходим символ шестнадцатиричного числа. A-F, a-f, 0-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";
- "Загрузка" — строка описания "{ШаблонФайлов}|{Заголовок}|{ФайлПоУмолчанию}" и содержимое загруженного файла. Шаблон файлов в виде "Изображение (*.png *.xpm *.jpg);;CSV-файл (*.csv)".
- "Сохранение" — строка описания "{ШаблонФайлов}|{Заголовок}|{ФайлПоУмолчанию}" и содержимое сохраняемого файла. Шаблон файлов как и выше.
|
img | Изображение | 22 | Изображение на кнопке. Имя изображения в форме "[{src}:]{name}", где: - "src" — источник изображения:
- file — прямо из локального файла по пути;
- res — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "backLogo";
- "backLogo" — как и предыдущий;
- "file:/var/tmp/backLogo.png" — из локального файла по пути "/var/tmp/backLogo.png".
|
color | Цвет | 23 | Цвет кнопки. Имя цвета в виде "{color}[-{alpha}]", где: - "color" — стандартное имя цвета или числовое представление из трёх шестнадцатеричных чисел цвета "#RRGGBB";
- "alpha" — уровень альфа-канала [0...255].
Примеры: - "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}" (детали выше). |
Таблица: |
set | Значение установки | 23 | Значение редактирования ячейки таблицы с адресом в событии "ws_TableEdit_{colN}_{rowN}". |
value | Значение | 21 | Адрес выбранного элемента. Изменение сопровождается сигналом "ws_TableChangeSel". Формат адреса зависит от режима выбора таблицы: - "Ячейка" — адрес ячейки в формате "{row}:{col}".
- "Строка", "Колонка" — номер строки-колонки или содержимое ячейки ключа строки-колонки, указанной атрибутом "keyID".
|
items | Элементы | 22 | Структура и содержимое таблицы в виде XML:
Теги: "tbl" — Таблица, свойства таблицы в целом: - "sel" — режим выбора-выделения элементов таблицы: "row" — по строкам, "col" — по колонкам, "cell" — ячейками (по умолчанию);
- "keyID" — номер ключевой строки-колонки, для получения значения выбора;
- "colsWdthFit" — подстраивать размер колонок (размер которых не фиксирован) под заполнение всей ширины таблицы;
- "hHdrVis", "vHdrVis" — установка видимости горизонтального, вертикального заголовков;
- "sortEn" — включение прямой сортировки по колонкам.
"h" — Строка заголовков, возможные атрибуты у тегов ячеек заголовка, для колонки в целом: - "width" — ширина колонки, в пикселах или процентах (10%);
- "edit" — возможность редактирования (0 или 1) ячеек колонки, по умолчанию — нет (0);
- "color" — цвет колонки в целом в виде имени цвета или его кода;
- "colorText" — цвет текста колонки в целом в виде имени цвета или его кода;
- "font" — шрифт текста колонки в целом в виде типовой строки OpenSCADA.
"r" — Строка значений, возможные атрибуты: - "color" — цвет строки в целом в виде имени цвета или его кода;
- "colorText" — цвет текста строки в целом в виде имени цвета или его кода;
- "font" — шрифт текста строки в целом в виде типовой строки OpenSCADA.
"s", "i", "r", "b" — ячейки типов данных "Строка", "Целое", "Вещественное" и "Логическое". Возможные атрибуты: - "color" — цвет фона ячейки;
- "colorText" — цвет текста ячейки в виде имени цвета или его кода;
- "font" — шрифт текста ячейки в виде типовой строки OpenSCADA;
- "img" — изображение ячейки в форме "[{src}:]{name}", детали выше;
- "edit" — возможность редактирования (0 или 1) ячейки колонки, по умолчанию — нет (0).
|
font | Шрифт | 25 | Имя шрифта в виде "{family} {size} {bold} {italic} {underline} {strike}" (детали выше). |
Слайдер и полоса прокрутки: |
value | Значение | 21 | Положение слайдера. |
cfg | Конфигурация | 22 | Конфигурация слайдера в формате: "{ВертОриент}:{Минимум}:{Максимум}:{ОдинШаг}:{СтрШаг}".
Где: - "ВертОриент" — признак вертикальной ориентации (0 или 1), по умолчанию ориентация горизонтальная;
- "Минимум" — минимальное значение;
- "Максимум" — максимальное значение;
- "ОдинШаг" — размер одного шага;
- "СтрШаг" — размер страничного шага.
|
Элемент текста (Text)
Данный примитив предназначен для вывода простого текста, используемого в роли меток и различных подписей. С целью простого создания частых декоративных оформлений примитив должен поддерживать обвод текста рамкой.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "Text"
Id | Имя | Номер | Значение |
backColor | Фон:цвет | 20 | Фоновый цвет. Имя цвета в виде "{color}[-{alpha}]", где: - "color" — стандартное имя цвета или числовое представление из трёх шестнадцатеричных чисел цвета "#RRGGBB";
- "alpha" — уровень альфа-канала [0...255], где 0 - полностью прозрачный.
Примеры: - "red" — сплошной красный цвет;
- "#FF0000" — сплошной красный цвет в цифровом коде;
- "red-127" — полупрозрачный красный цвет.
|
backImg | Фон:изображение | 21 | Фоновое изображение. Имя изображения в форме "[{src}:]{name}", где: - "src" — источник изображения:
- file — прямо из локального файла по пути;
- res — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "backLogo";
- "backLogo" — как и предыдущий;
- "file:/var/tmp/backLogo.png" — из локального файла по пути "/var/tmp/backLogo.png".
|
bordWidth | Граница:ширина | 22 | Ширина бордюра. |
bordColor | Граница:цвет | 23 | Цвет бордюра (детальнее в атрибуте 20). |
bordStyle | Граница:стиль | 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 пикселов и усиленный.
|
color | Цвет | 26 | Цвет текста (детальнее в атрибуте 20). |
orient | Угол поворота | 27 | Ориентация текста, поворот на угол. |
wordWrap | Перенос слов | 28 | Автоматический перенос текста по словам. |
alignment | Выравнивание | 29 | Выравнивание текста: "Вверху слева", "Вверху справа", "Вверху по центру", "Вверху по ширине", "Внизу слева", "Внизу справа", "Внизу по центру", "Внизу по ширине", "По центру слева", "По центру справа", "По середине", "По центру по ширине". |
text | Текст | 30 | Значение текста. Используйте "%{x}" для помещения значения аргумента "x" (от 1). |
numbArg | Количество аргументов | 40 | Количество аргументов. |
Атрибуты аргументов |
arg{x}val | Аргумент {x}:значение | 50+10*x | Значение аргумента x. |
arg{x}tp | Аргумент {x}:тип | 50+10*x+1 | Тип аргумента x: "Целый", "Вещественный", "Строка". |
arg{x}cfg | Аргумент {x}:конфигурация | 50+10*x+2 | Конфигурация аргумента x: - "Строка": {len} — ширина строки;
- "Вещественный": {wdth};{form};{prec} — ширина значения, форма значения ('g', 'e', 'f') и точность;
- "Целый": {len} — ширина значения.
|
Элемент отображения медиа-материалов (Media)
Данный примитив предназначен для проигрывания различных медиа-материалов, начиная от простых изображений и заканчивая полноценными аудио и видео потоками.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "Media"
Id | Имя | Номер | Значение |
backColor | Фон:цвет | 20 | Фоновый цвет. Имя цвета в виде "{color}[-{alpha}]", где: - "color" — стандартное имя цвета или числовое представление из трёх шестнадцатеричных чисел цвета "#RRGGBB";
- "alpha" — уровень альфа-канала [0...255], где 0 - полностью прозрачный.
Примеры: - "red" — сплошной красный цвет;
- "#FF0000" — сплошной красный цвет в цифровом коде;
- "red-127" — полупрозрачный красный цвет.
|
backImg | Фон:изображение | 21 | Фоновое изображение. Имя изображения в форме "[{src}:]{name}", где: - "src" — источник изображения:
- file — прямо из локального файла по пути;
- res — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "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 — из таблицы mime ресурсов БД;
- stream — URL потока проигрывания видео или аудио.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:workMedia" — из таблицы mime ресурсов БД для идентификатора "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;
- "Полное видео" — полное видео, аудио или поток, вроде: OGG, OGM, AVI, MKV, MPG, MP3, MP4.
|
areas | Области карты | 28 | Количество активных областей. |
Атрибуты изображения (Image) |
fit | Заполнять виджет | 26 | Признак "Согласовать содержимое с размером виджета". |
Атрибуты видеоролика (Movie) |
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. |
Элемент построения диаграмм/трендов (Diagram)
Данный примитив предназначен для построения различных диаграмм, включая графики/тренды отображения текущего процесса и архивных данных. Реализованы следующие типы диаграмм:
- "График" — строит график значений параметра от времени.
- "Спектр" — строит частотный спектр из значений параметров. Окно данных частотного спектра формируется исходя из размера виджета по горизонтали, в пикселах, и доступных данных параметров, наложенных на сетку горизонтального размера. В связи с этим минимальная частота определяется значением атрибута "tSize" — "1/tSize", а максимальная выделяемая частота определяется половинной шириной графика в пикселах умноженной на минимальную частоту "width/(2*tSize)".
- "XY" — строит двумерный график значений параметров, парами на график, где чётные по оси Y (0,2,4...) и нечётные по оси X (1,3,5...). Указанный временной диапазон данных используется в получении значений параметров оси X и Y, с последующей сортировкой по оси X и изображения.
Для всех типов диаграмм возможно, в качестве источника данных, указание:
- параметра подсистемы "Сбор Данных";
- архива значений;
- прямого блока данных пользователя.
Поддерживается режим слеживания текущих значений и значений с архива, а также возможно построение графиков параметров не имеющих архива значений, путём накопления текущих значений в буфере диаграммы и только на момент активного отображения этой диаграммы.
Процесс доступа к архивным данным оптимизирован путём ведения промежуточного буфера отображения, а также упаковки трафика данных при запросе, путем приведения данных к качеству достаточного для отображения.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "Diagram"
Id | Имя | Номер | Значение |
backColor | Фон:цвет | 20 | Фоновый цвет. Имя цвета в виде "{color}[-{alpha}]", где: - "color" — стандартное имя цвета или числовое представление из трёх шестнадцатеричных чисел цвета "#RRGGBB";
- "alpha" — уровень альфа-канала [0...255], где 0 - полностью прозрачный.
Примеры: - "red" — сплошной красный цвет;
- "#FF0000" — сплошной красный цвет в цифровом коде;
- "red-127" — полупрозрачный красный цвет.
|
backImg | Фон:изображение | 21 | Фоновое изображение. Имя изображения в форме "[{src}:]{name}", где: - "src" — источник изображения:
- file — прямо из локального файла по пути;
- res — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "backLogo";
- "backLogo" — как и предыдущий;
- "file:/var/tmp/backLogo.png" — из локального файла по пути "/var/tmp/backLogo.png".
|
bordWidth | Граница:ширина | 22 | Ширина бордюра. |
bordColor | Граница:цвет | 23 | Цвет бордюра (детальнее в атрибуте 20). |
bordStyle | Граница:стиль | 24 | Стиль бордюра: "Нет", "Точечный", "Пунктирный", "Сплошной", "Двойной", "Канавка", "Кромка", "Вдавлен", "Выступающий". |
trcPer | Период слежения (с) | 25 | Режим и периодичность слежения. |
type | Тип | 26 | Тип диаграммы: "Trend", "Спектр", "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 пикселов. |
Индивидуальные атрибуты параметров тренда/графика/XY |
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" 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" можно указать на время в секундах;
- "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). |
Элемент построения протоколов, на основе архивов сообщений (Protocol)
Данный примитив предназначен для визуализации данных архива сообщений путём формирования протоколов с различными способами визуализации, начиная от статического сканирующего просмотра и заканчивая динамическим отслеживанием протокола сообщения.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "Protocol"
Id | Имя | Номер | Значение |
backColor | Фон:цвет | 20 | Фоновый цвет. Имя цвета в виде "{color}[-{alpha}]", где: - "color" — стандартное имя цвета или числовое представление из трёх шестнадцатеричных чисел цвета "#RRGGBB";
- "alpha" — уровень альфа-канала [0...255], где 0 - полностью прозрачный.
Примеры: - "red" — сплошной красный цвет;
- "#FF0000" — сплошной красный цвет в цифровом коде;
- "red-127" — полупрозрачный красный цвет.
|
backImg | Фон:изображение | 21 | Фоновое изображение. Имя изображения в форме "[{src}:]{name}", где: - "src" — источник изображения:
- file — прямо из локального файла по пути;
- res — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "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). |
Элемент формирования отчётной документации (Document)
Примитив предназначен для формирования отчётной, оперативной и иной документации на основе шаблонов документов.
Таблица. Набор дополнительных свойств/атрибутов в примитиве "Document"
Id | Имя | Номер | Значение |
style | CSS | 20 | Правила CSS в строках, вида "body { background-color:#818181; }". |
tmpl | Шаблон | 21 | Шаблон документа в XHTML, начинается с тега "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 | Время генерации документа, секунд. Записать время для генерации документа от этой точки или нуля для перегенерации. |
n | Размер архива | 25 | Количество документов или глубина архива. |
Атрибуты включеного режима архивирования |
aCur | | - | Позиция текущего документа в архиве. Запись значения <0 производит архивацию текущего документа. |
vCur | | - | Текущий визуализируемый документ архива. Запись значения -1 — выбор следующего документа, -2 — выбор предыдущего документа. |
aDoc | документ | - | Текущий документ архива в XHTML, начинается с тега "body". |
aSize | | - | Реальный размер архива документа. |
Возможности примитива "Документ":
- Гибкое формирования структуры документа на основе языка гипертекстовой разметки.
- Формирования документов по команде или по плану в архив с последующим просмотром архива.
- Формирование документа в режиме реального времени полностью динамически и на основе архивов реальных данных за указанное время.
- Использование атрибутов виджета для передачи значений и адресов на архивы реальных данных в документ. Позволяет использовать виджет документа как шаблон для формирования отчётов с другими входными данными.
В основе любого документа лежит XHTML-шаблон. XHTML-шаблон это тег "body" WEB-страницы, содержащий статику документа в стандарте XHTML 1.0 и элементы исполняемых инструкций на одном из языков пользовательского программирования OpenSCADA в виде <?dp {procedure} ?>. Результирующий документ формируется путём исполнения процедур и вставки их результата в документ.
Источником значений исполняемых инструкций являются атрибуты виджета этого примитива, а также все механизмы языков пользовательского программирования OpenSCADA. Атрибуты могут добавляться пользователем и линковаться на реальные атрибуты параметров или-же являться автономными, значения которых будут формироваться в скрипте виджета. В случае со слинкованными атрибутами могут извлекаться значения из истории, архива.
На рис. 3.8.7.a изображена структурная схема виджета примитива "Документ". Согласно этой структуре "Документ" содержит: XHTML-шаблон, результирующие документы и скрипт обработки данных. Источником данных для скрипта и результирующих документов являются атрибуты виджета.
Рис.3.8.7.a Структурная схема примитива "Документ".
Предусматривается работа виджета в двух режимах: "Динамический" и "Архивный". Отличие архивного режима заключается в наличии архива указанной глубины и атрибутов, позволяющих управлять процессом архивирования и просмотра указанного документа в архиве.
Генерация документа всегда производится в момент установки атрибута времени time относительно установленного начального времени документа в атрибуте bTime. При выключенном архиве результирующий документ помещается непосредственно в атрибут doc. При включенном архиве результирующий документ помещается в ячейку под курсором, атрибут aCur, а так-же в doc если значение курсора архива aCur и курсора визуализируемого документа vCur совпадают. Атрибуты архивных курсоров предусматривают несколько командных значений:
- "aCur < 0" — Перемещает курсор архиватора на следующую позицию, тем самым оставляя предыдущий документ в архиве и очищая документ под курсором (если кольцевой архив замкнулся).
- "vCur == -1" — Выбор следующего документа для отображения, выбранный документ копируется в атрибут doc.
- "vCur == -2" — Выбор предыдущего документа для отображений, выбранный документ копируется в атрибут doc.
Как было указано выше динамика шаблона документа определяется вставками исполняемых инструкций вида "<?dp {procedure} ?>". В процедурах могут использоваться одноимённые атрибуты виджета и функции пользовательского интерфейса программирования OpenSCADA. Кроме атрибутов виджета зарезервированы специальные атрибуты (табл. 3.8.7.a).
Таблица 3.8.7.a. Специальные и зарезервированные элементы шаблона.
Имя | Назначение |
Атрибуты |
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". |
*.docRevers="1" | Указывает на инвертирование порядка размножения, последний сверху. |
*.docAppend="1" | Признак необходимости добавления результата выполнения процедуры в тег процедуры. Иначе результат исполнения заменяет содержимое тега. |
body.docTime | Время формирования документа. Используется для установки атрибута lTime при следующем формировании документа. Не устанавливается пользователем! |
table.export="1" | Включение возможности экспорта содержимого указанной таблицы в CSV-файл и другие табличные форматы. |
Контейнер (Box)
Примитив контейнера используется для формирования составных виджетов и/или страниц пользовательского интерфейса.
Таблица. Набор дополнительных свойств/атрибутов в примитиве Box
Id | Имя | Номер | Значение |
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 — из таблицы mime ресурсов БД.
- "name" — путь файла или идентификатор mime-ресурса.
Примеры: - "res:backLogo" — из таблицы mime ресурсов БД для идентификатора "backLogo";
- "backLogo" — как и предыдущий;
- "file:/var/tmp/backLogo.png" — из локального файла по пути "/var/tmp/backLogo.png".
|
bordWidth | Граница:ширина | 22 | Ширина бордюра. |
bordColor | Граница:цвет | 23 | Цвет бордюра (детальнее в атрибуте 20). |
bordStyle | Граница:стиль | 24 | Стиль бордюра: "Нет", "Точечный", "Пунктирный", "Сплошной", "Двойной", "Канавка", "Кромка", "Вдавлен", "Выступающий". |