OpenSCADAWiki: Doc/VCA/part4/part12 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/VCA/part4/part12 from 2015-07-23 12:07:51..

4.12 Примитивы виджетов

Любой вновь создаваемый виджет основывается на одном из нескольких примитивов (конечный элемент визуализации), путём установки родственной связи как прямо на примитив, так и посредством нескольких промежуточных пользовательских виджетов. Каждый из примитивов содержит механизм (логику) модели данных. Экземпляр виджета хранит значения свойств конфигурирования примитива, специально для себя.


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


В таблице 4.12.a приведён перечень примитивов виджетов (базовых элементов отображения).


Таблица 4.12.a. Библиотека примитивов виджетов (базовых элементов отображения)

IdНаименованиеФункция
ElFigureЭлементарные графические фигуры

Примитив является основой для отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Предусматривается поддержка следующих элементарных фигур:

  • Линия.
  • Дуга.
  • Кривая безье.
  • Заливка замкнутого пространства.

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

FormElЭлементы формы.

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

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

Каждый примитив, и виджет вообще, содержит общий набор свойств/атрибутов в составе приведенном в таблице 4.12.b:


Таблица 4.12.b. Общий набор свойств/атрибутов в виджете

IdИмяНомерЗначение
id Id - Идентификатор элемента. Атрибут только для чтения, призванный предоставить информацию об идентификаторе элемента.
path Path - Путь виджета. Атрибут только для чтения и предоставления информации об расположения элемента.
parent Parent - Предок или родитель виджета. Атрибут только для чтения и предоставления информации об расположении предка от которого наследован виджет.
root Root 1 Идентификатор виджета-примитива (базового элемента) который лежит в основе образа визуализации виджета.
name Name - Имя элемента. Модифицируемое имя элемента.
dscr Description - Описание элемента. Текстовое поле для прикрепления к виджету краткого описания.
en Enabled 5 Состояние элемента — "Включен". Отключенный элемент не отображается при исполнении.
active Active 6 Состояние элемента — "Активный". Активный элементы может получать фокус при исполнении, а значит получать клавиатурные и иные события с последующей их обработкой.
geomX Geometry:x 7 Геометрия, координата "x" положения элемента.
geomY Geometry:y 8 Геометрия, координата "y" положения элемента.
geomW Geometry:width 9 Геометрия, ширина элемента.
geomH Geometry:height 10 Геометрия, высота элемента.
geomXsc Geometry:x scale 13 Масштаб элемента по горизонтали.
geomYsc Geometry:y scale 14 Масштаб элемента по вертикали.
geomZ Geometry:z 11 Геометрия, координата "z" (уровень) элемента на странице. Также определяет порядок передачи фокуса между активными элементами.
geomMargin Geometry:margin 12 Геометрия, поля элемента.
tipTool Tip:tool 15 Текст краткой помощи или подсказки по данному элементу. Обычно реализуется как всплывающая подсказка при удержании курсора мыши над элементом.
tipStatus Tip:status 16 Текст информации о состоянии элемента или руководства к действию над элементом. Обычно реализуется в виде сообщения в строке статуса при удержании курсора мыши над элементом.
contextMenu Context menu 17

Конфигурация собственного контекстного меню элемента. Конфигурация записывается в виде строк пунктов контекстного меню формата: "{Имя пункта}:{". Где:

  • Имя пункта — Имя пункта меню.
  • ИдСобытия — Идентификатор события, генерируемого виджету (usr_{ при выборе пункта меню.
evProc Events process - Атрибут для хранения сценария обработки событий непосредственного управления пользовательским интерфейсом. Сценарий предстовляет собой список команд интерфейсу визуализации, генерируемых при поступлении события (атрибут event).
Дополнительные атрибуты для элементов помещённых в проект в роли страницы.
pgOpen Page:open state - Признак — "Страница открыта".
pgNoOpenProc Page:no open process - Признак — "Исполнять страницу даже если она закрыта".
pgOpenSrc Page:open source 3 Полный адрес страницы открывшей данную.
pgGrp Page:group 4 Группа страницы.
Дополнительные атрибуты режима исполнения.
event Event - Специальный атрибут для сбора событий виджета в списке, разделённом новой строкой. Данный атрибут доступен только в сеансе. Доступ к атрибуту защищён ресурсом, с целью избежания потери событий. Атрибут всегда доступен в скрипте виджета.
load Load -1 Виртуальная команда групповой загрузки данных.
focus Focus -2 Специальный атрибут индикации факта получения фокуса активным виджетом. Данный атрибут доступен только в сеансе. Атрибут этого виджета и вложенных виджетов доступен в скрипте виджета.
perm Permition -3 Виртуальный атрибут проверки прав активного пользователя на просмотр и контроль над виджетом.

4.12.1 Элементарные графические фигуры (ElFigure)

Примитив является основой для отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Учитывая широкий спектр всевозможных фигур, которые должен поддерживать примитив, и в тоже время являться достаточно простым в использовании, и, по возможности, в реализации, решено было ограничить перечень базовых фигур, используемых для построения результирующих графических объектов до таких фигур: линия, дуга, кривая Безье и заливка. Основываясь уже на этих базовых фигурах, можно строить производные фигуры комбинируя базовыми.


Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.1.


Таблица 4.12.1. Набор дополнительных свойств/атрибутов в примитиве ElFigure

IdИмяНомерЗначение
lineWdth Line:width 20 Ширина линии.
lineClr Line:color 21 Цвет линии.
lineStyle Line:style 22 Стиль линии (сплошная, пунктир, точечная).
bordWdth Border:width 23 Ширина бордюра линии. Нулевая ширина указывает на отсутствие бордюра.
bordClr Border:color 24 Цвет бордюра.
fillColor Fill:color 25 Цвет заливки.
fillImg Fill:image 26 Изображение заливки.
orient Orientation angle 28 Угол поворота содержимого виджета.
elLst Element's list 27

Список графических примитивов в формате:

  • Линия. Форма записи в списке: <line:p1 | (x | y):p2 | (x | y):[width | w{n}]:[color | c{n}]:[border_width | w{n}]:[border_color | c{n}]:[line_style | s{n}]>
  • Дуга. Форма записи в списке: <arc:p1 | (x | y):p2 | (x | y):p3 | (x | y):p4 | (x | y):p5 | (x | y):[width | w{n}]:[color | c{n}]:[border_width | w{n}]:[border_color | c{n}]:[line_style | s{n}]>
Пример дуги с назначением точек (8 Kb)
  • Кривая Безье. Форма записи в списке: <bezier:p1 | (x | y):p2 | (x | y):p3 | (x | y):p4 | (x | y):[width | w{n}]:[color | c{n}]:[border_width | w{n}]:[border_color | c{n}]:[line_style | s{n}]>
  • Заливка. Форма записи в списке: <fill:p1 | (x | y),p2 | (x | y),...,pn | (x | y):[fillClr | c{n}]:[fillImg | i{n}]>
Атрибуты для каждой точки из списка графических фигур elLst
p{n}x Point {n}:x 30+n*6 Координата "x" точки {n}.
p{n}y Point {n}:y 30+n*6+1 Координата "y" точки {n}.
w{n} Width {n} 30+n*6+2 Ширина {n}.
с{n} Color {n} 30+n*6+3 Цвет {n}.
i{n} Image {n} 30+n*6+4 Изображение {n}.
s{n} Style {n} 30+n*6+5 Стиль {n}.

4.12.2 Элементы формы (FormEl)

Примитив, предназначенный для предоставления стандартных элементов формы в распоряжение пользователя. Общий перечень атрибутов зависит от типа элемента. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.2.


Таблица 4.12.2. Набор дополнительных свойств/атрибутов в примитиве FormEl

IdИмяНомерЗначение
elType Element type 20 Тип элемента (Строка редактирования; Редактор текста; Флажок; Кнопка; Выбор из списка; Список; Слайдер; Полоса прокрутки). От его значения зависит перечень дополнительных атрибутов.
Строка редактирования:
value Value 21 Содержимое строки.
view View 22 Вид строки редактирования (Текст; Комбобокс; Целое; Вещественное; Время; Дата; Дата и время).
cfg Config 23

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

Текст — указывается шаблон ввода в формате библиотеки QT.
Комбобокс — содержит список значений редактируемого комбобокса.
Целое — содержит конфигурацию поля ввода целочисленного представления в формате: <Минимум>:<Максимум>:<Шаг изменения>:<Префикс>:<Суффикс>.
Вещественное — содержит конфигурацию поля ввода вещественного представления в формате: <Минимум>:<Максимум>:<Шаг изменения>:<Префикс>:<Суффикс>:<Число знаков после запятой>.
Время, Дата, Дата и время — формировать дату по шаблону с параметрами:
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.
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
Редактор текста:
value Value 21 Содержимое редактора.
wordWrap Word wrap 22 Автоматический перенос текста по словам.
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
Флажок:
name Name 26 Имя/метка флажка.
value Value 21 Значение флажка.
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
Кнопка:
name Name 26 Имя, надпись на кнопке.
value Value 21 Значение для фиксированной кнопки.
img Image 22 Изображение на кнопке.
color Color 23 Цвет кнопки.
colorText Color:text 27 Цвет текста.
checkable Checkable 24 Признак функционирования как фиксированная кнопка.
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
Выбор из списка:
value Value 21 Текущее значение списка.
items Items 22 Перечень элементов списка.
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
Список:
value Value 21 Выбранное значение списка.
items Items 22 Перечень элементов списка.
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
Слайдер и полоса прокрутки:
value Value 21 Положение слайдера.
cfg Config 22

Конфигурация слайдера в формате: "{VertOrient}:{Min}:{Max}:{SinglStep}:{PageStep}". Где:

  • VertOrient — признак вертикальной ориентации, по умолчанию ориентация горизонтальная;
  • Min — минимальное значение;
  • Max — максимальное значение;
  • SinglStep — размер одиночного шага;
  • PageStep — размер страничного шага.

4.12.3 Элемент текста (Text)

Данный примитив предназначен для вывода простого текста, используемого в роли меток и различных подписей. С целью простого создания частого декоративного оформления, примитив должен поддерживать обвод текста рамкой. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.3.


Таблица 4.12.3. Набор дополнительных свойств/атрибутов в примитиве Text

IdИмяНомерЗначение
backColor Background:color 20 Фоновый цвет.
backImg Background:image 21 Фоновое изображение.
bordWidth Border:width 22 Ширина бордюра.
bordColor Border:color 23 Цвет бордюра.
bordStyle Border:style 24 Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset).
font Font 25 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
color Color 26 Цвет текста.
orient Orientation angle 27 Ориентация текста, поворот на угол.
wordWrap Word wrap 28 Автоматический перенос текста по словам.
alignment Alignment 29 Выравнивание текста (Вверху слева; Вверху справа; Вверху по центру; Вверху по ширине; Внизу слева; Внизу справа; Внизу по центру; Внизу по ширине; По центру слева; По центру справа; По середине; По центру по ширине).
text Text 30 Значение текстового поля.
numbArg Arguments number 40 Количество аргументов.
Атрибуты аргументов
arg{x}val Argument {x}:value 50+10*x Значение аргумента
arg{x}tp Argument {x}:type 50+10*x+1 Тип аргумента: "Integer", "Real", "String"
arg{x}cfg Argument {x}:config 50+10*x+2

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

  • строка : [len] — ширина строки;
  • вещественное: [wdth];[form];[prec] — ширина значения, форма значения ("g","f","e");
  • целое: [len] — ширина значения.

4.12.4 Элемент отображения медиа-материалов (Media)

Данный примитив предназначен для проигрывания различных медиа-материалов, начиная от простых изображений и заканчивая полноценными аудио и видео потоками. Учитывая многообразность способов и библиотек проигрывания полноценных аудио и видео потоков, а также достаточно серьёзную трудоёмкость по имплиминтации всех этих механизмов в данный виджет, решено было на первоначальном этапе реализовать только работу с изображениями и простыми анимационными форматами изображений и видео. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.4.


Таблица 4.12.4. Набор дополнительных свойств/атрибутов в примитиве Media

backColor Background:color 20 Фоновый цвет.
backImg Background:image 21 Фоновое изображение.
bordWidth Border:width 22 Ширина бордюра.
bordColor Border:color 23 Цвет бордюра.
bordStyle Border:style 24 Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset).
src Source 25 Источник медиа-данных.
fit Fit to widget size 26 Признак — "Согласовать содержимое с размером виджета".
type Type 27 Тип медиа (Image;Movie).
areas Map areas 28 Количество активных областей.
Атрибуты видеоролика (Movie)
speed Play speed 29 Скорость проигрывания, в процентах от оригинальной скорости. Если значение меньше 1%, то проигрывание прекращается.
Активные области
area{x}shp Area {x}:shape 40+3*x Вид области (Rect;Poly;Circle).
area{x}coord Area {x}:coordinates 40+3*x+1 Координаты областей. Через запятую идут координаты: "x1,y1,x2,y2,xN,yN"
area{x}title Area {x}:title 40+3*x+2 Заголовок области.

4.12.5 Элемент построения диаграмм/трендов (Diagram)

Данный примитив предназначен для построения различных диаграмм, включая и графики/тренды отображения текущего процесса и архивных данных. На данный момент реализованы следующие типы диаграмм:


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


Таблица 4.12.5. Набор дополнительных свойств/атрибутов в примитиве Diagram

IdИмяНомерЗначение
backColor Background:color 20 Фоновый цвет.
backImg Background:image 21 Фоновое изображение.
bordWidth Border:width 22 Ширина бордюра.
bordColor Border:color 23 Цвет бордюра.
bordStyle Border:style 24 Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset).
trcPer Tracing period (s) 25 Режим и периодичность слежения.
type Type 26 Тип диаграммы: "Trend".
Атрибуты тренда/графика (Trend)
tSek Time:sek 27 Текущее время, секунд.
tUSek Time:usek 28 Текущее время, микросекунды.
tSize Size, sek 29 Размер тренда, секунды.
curSek Cursor:sek 30 Положение курсора, секунды.
curUSek Cursor:usek 31 Положение курсора, микросекунды.
curColor Cursor:color 32 Цвет курсора.
sclColor Scale:color 33 Цвет шкалы/решетки.
sclHor Scale:horizontal 34 Режим горизонтальной шкалы/решетки: "No draw", "Grid;Markers" и "Grid and markers".
sclVer Scale:vertical 35 Режим вертикальной шкалы/решетки: "No draw", "Grid", "Markers", "Grid and markers", "Grid (log)", "Marker (log)", "Grid and markers (log)".
sclMarkColor Scale:Markers:color 36 Цвет маркеров шкалы/решетки.
sclMarkFont Scale:Markers:font 37 Шрифт маркеров шкалы/решетки в виде "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
valArch Value archivator 38 Архиватор архивов параметров.
parNum Parameters number 39 Количество параметров, отображаемых на одном тренде.
Индивидуальные атрибуты параметров тренда/графика
prm{X}addr Parametr {X} :address 50+10*{X} Полный адрес к параметру {X} или архиву значений.
prm{X}bordL Parametr {X} :view border:lower 50+10*{X} +1 Нижняя граница значений параметра {X}.
prm{X}bordU Parametr {X} :view border:upper 50+10*{X} +2 Верхняя граница значений параметра {X}.
prm{X}color Parametr {X} :color 50+10*{X} +3 Цвет отображения тренда параметра {X}.
prm{X}val Parametr {X} :value 50+10*{X} +4 Значение параеметра {X} под курсором.

4.12.6 Элемент построения протоколов сообщений, на основе архивов сообщений (Protocol)

Примитив предназначен для визуализации данных архива сообщений, путём формирования протоколов с различными способами визуализации, начиная от статического сканирующего просмотра и заканчивая динамическим отслеживанием протокола сообщения. Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.6.


Таблица 4.12.6. Набор дополнительных свойств/атрибутов в примитиве Protocol

IdИмяНомерЗначение
backColor Background:color 20 Фоновый цвет.
backImg Background:image 21 Фоновое изображение.
font Font 22 Шрифт текста в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
time Time, sek 24 Текущее время, секунд.
tSize Size, sek 25 Размер запроса, секунды.
trcPer Tracing period (s) 26 Режим и периодичность слежения.
arch Archival 27 Архиватор архива сообщений.
tmpl Template 28 Шаблон запроса в архиве.
lev Level 29 Уровень сообщений.
viewOrd View order 30 Порядок отображения ("По времени", "По уровню", "По категории", "По сообщению", "По времени (обратно)", "По уровню (обратно)", "По категории (обратно)", "По сообщению (обратно)").
col View columns 31 Отображаемые колонки.
itProp Item's properties 32 Количество свойств элементов.
Индивидуальные атрибуты свойств элементов
it{X}lev Item {X}:level 40+5*{X} Критерий: уровень элемента {X}. Более или равно указанному.
it{X}tmpl Item {X}:template 41+5*{X} Критерий: шаблон категории элемента {X}. Включая специальные символы '*' и '?'.
it{X}fnt Item {X}:font 42+5*{X} Шрифт элемента {X}.
it{X}сolor Item {X}:color 43+5*{X} Цвет элемента {X}.

4.12.7 Элемент формирования отчётной документации (Document)

Примитив предназначен для формирования отчётной, оперативной и иной документации на основе шаблонов документов.Перечень дополнительных свойств/атрибутов данного примитива приведён в таблице 4.12.7.


Таблица 4.12.7. Набор дополнительных свойств/атрибутов в примитиве Document

Id Имя Номер Значение
style CSS 20 Стиль документа (CSS).
tmpl Template 21 XHTML исходный шаблон документа.
doc Document 22 Псевдо-виртуальный атрибут текущего (выбранного) документа.
font Font 26 Базовый шрифт текста документа в полной записи "{Family} {Size} {Bold} {Italic} {Underline} {Strikeout}".
bTime Time:begin 24 Время начала документа, секунд.
time Time:current 23 Время генерации документа, секунд.
n Archive size 25 Количество документов или глубина архива.
Атрибуты включеного режима архивирования
aCur Cursor:archive - Позиция текущего документа в архиве. Запись значения <0 производит архивацию текущего документа.
vCur Cursor:view - Текущий визуализируемый документ архива. Запись значения -1 -- выбор следующего документа, -2 -- выбор предыдущего документа.
Атрибуты архива
doc{X} Document {X} - Архивный документ X (0...(n-1))

Action source page doesn't exist yet(/Doc / VCA / part 4 / part 12 / doc?)

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

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


Таблица 4.12.8. Набор дополнительных свойств/атрибутов в примитиве Box

IdИмяНомерЗначение
pgOpenSrc Page:open source 3 Полный адрес страницы, которая включена внутрь данного контейнера.
pgGrp Page:group 4 Группа контейнера страниц.
backColor Background:color 20 Фоновый цвет.
backImg Background:image 21 Фоновое изображение.
bordWidth Border:width 22 Ширина бордюра.
bordColor Border:color 23 Цвет бордюра.
bordStyle Border:style 24 Стиль бордюра (None;Dotted;Dashed;Solid;Double;Groove;Ridge;Inset;Outset).

 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]