OpenSCADAWiki: Doc/VCA/part6/part1 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/VCA/part6/part1 from 2008-10-07 11:19:52..

6.1 Виджеты и их библиотеки -- Выполнено


Целями данного этапа является:


В результате проделанной работы созданы модули модели данных (UI.VCAEngine) и представления (UI.Vision). На данном этапе, модулями реализуются механизмы формирования элементов пользовательского интерфейса. На следующий этапе данные элементы будут использованы для формирования цельных интерфейсов визуализации и управления.


Рассмотрим по пунктам результаты реализации данного этапа:

Реализация основы архитектуры "Модель данных"-"Представление"

В соответствии со статической диаграммой классов (рис.6) и общими требованиями, были реализованы модули "UI.VCAEngine" и "UI.Vision", для системы OpenSCADA. Модуль "UI.VCAEngine" реализует модель данных СВУ и является источником для последующего представления этих данных различными механизмами визуализации. Модуль "UI.Vision" реализует способ представления данных, основанный на библиотеке QT версии 4, фирмы Trolltech.


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

Реализация базовых функций модели данных СВУ, в модуле UI.VCAEngine

Модуль модели данных(движка) СВУ содержит контейнер библиотек виджетов/кадров. Модулем предоставляется предопределённая библиотека базовых виджетов(примитивов) с первичной реализацией собственных свойств и логики обработки этих свойств.


Хранение данных виджетов и библиотек виджетов реализовано в БД доступных системе OpenSCADA. БД организована по принадлежности данных к библиотеке. Т.е. отдельная библиотека хранится в отдельной группе таблиц одной или разных БД. Перечень библиотек виджетов хранится в индексной таблице библиотек с именем "VCALibs" и структурой "Libs", раздела БД?. Экземпляр этой таблицы создаётся в каждой БД, где хранятся данные этого модуля, с перечнем библиотек содержащихся в конкретно взятой БД. В состав таблиц, принадлежащий библиотеке виджетов входят следующие:


Для управления библиотеками виджетов и отдельными виджетами были написаны сценарии конфигурации на языке интерфейса управления ~OpenSCADA. На данный момент эти сценарии призваны выполнять только функции централизованной конфигурации элементов движка СВУ, однако в последствии их планируется расширить и наделить функциями обработки запросов к модели данных от модулей представления, с целью организации "слабых связей" между "Моделью данных" и "Представлением".


Основой практически всех элементов движка стал объект абстрактного элемента визуализации (VCA::Widget). На своём, абстрактном, уровне объект наделён следующими свойствами:


Для представления библиотеки виджетов реализован класс (VCA::WdgLib). Основными его функциями является содержание библиотечных виджетов, хранение и загрузка их с БД, предоставление доступа к ресурсам (Mime-данные), а также разделение доступа.


Специально для включения в библиотеку виджетов был создан класс библиотечного виджета (VCA::LWidget), который основан на классе абстрактного виджета (VCA::Widget) и предоставляет дополнительные функции: хранения данных виджета в таблицах библиотеки, переопределения доступа к ресурсам на таблицу с mime-данными библиотеки и хранение вложенного контейнерного виджета (VCA::CWidget).


В свою очередь класс контейнерного виджета (VCA::CWidget) предоставляет функции: хранения данных контейнерного виджета в таблицах библиотеки, переопределения доступа к ресурсам на таблицу с mime-данными библиотеки, а также принудительный режим простой ссылки для всех контейнерных виджетов.


На основе класса библиотечного виджета (VCA::LWidget) был сформирован абстрактный класс терминального виджета (VCA::PrWidget). А уже на его основе сформированы реализации примитивов базовых виджетов, которые и сформировали библиотеку базовых виджетов, создаваемую модулем при инициализации. Значения свойств базовых виджетов, также, могут сохраняться в БД (таблицы библиотеки виджетов), формируя нужные шаблоны. Кроме того, базовая библиотека примитивов может доопределяться расширенными примитивами из модулей интерфейсов представления, которым базовых недостаточно. Но в этом случае нужно учитывать, что подобные действие - путь к несовместимости между модулями интерфейсов представления!

Реализация базовых функций среды разработки пользовательского интерфейса в модуле представления UI.Vision

Интерфейс разработки пользовательских интерфейсов, модуля, основан на MDI(Multi Document Interface) интерфейсе. Данный подход позволяет одновременно редактировать несколько кадров различных размеров. Использованы следующие механизмы управления разработкой: панели инструментов, пункты меню и контекстное меню. Большинство действий дублируются в разных механизмах, что позволяет быстро найти инструмент предпочитаемым способом. Навигационные интерфейсы реализованы присоединяемыми окнами. Конфигурация панелей инструментов и присоединяемых окон сохраняется при выходе и восстанавливается при старте, что позволяет настраивать интерфейс под себя.


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


Для удобного управления свойствами виджетов/кадров реализован инспектор атрибутов(свойств) виджетов. Инспектор атрибутов реализован как присоединяемое окно, которое активируется при выборе кадра или виджета. Окно инспектора атрибутов можно удобно расположить на виду, пришвартовав к одной из сторон рабочего окна. Инспектором атрибутов реализована поддержка групповой конфигурации нескольких виджетов, а также группирование однотипных свойств.


Для визуального редактирования кадров реализована первичная поддержка редактирования виджетов и кадров. Уже сейчас редактор позволяет редактировать кадры, основанные на примитиве "Box" и полноценно отображать примитив текстового поля "Text". В редакторе кадров реализованы функции:


Вид окна разработки приведён на рис. 8. На рисунке можно видеть: панели инструментов, навигатор виджетов, инспектор атрибутов, окно редактирования кадра и строка статуса.


Окно разработки модуля UI.Vision (102 Kb)
Рис.8 Окно разработки модуля UI.Vision

Для настройки объектов виджетов и их библиотек разработаны два диалога, диалог настройки виджета (рис.9) и диалог настройки библиотеки виджетов (рис.10). Диалог настройки библиотеки позволяет установить основные свойства и поместить mime-данные в БД, для последующего использования в виджетах библиотеки. Диалог настройки виджета позволяет установить: основные свойства виджета, индивидуально установить значения атрибутов и сконфигурировать внутреннюю процедуру вычислений виджета с дополнительными (пользовательскими) свойствами.


Диалог настройки проектов и библиотек виджетов. (28 Kb)
Рис.9 Диалог настройки библиотеки виджетов.

Диалог настройки виджета или страницы проекта. (33 Kb)
Рис.10 Диалог настройки виджета.


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