Based on the foregoing, architectural considerations let's form the static class diagram of the VCA, given the separation of the conceptual part (engine) and the part of self-realization of the VCA (Figure 4.10.1). Table 4.10 describes the classes of the class diagram.
Table 4.10. VCA classes
Class | Responsibility | Links |
TSecurity | Provides the information about the users, and also implements their authentication in the OpenSCADA system. | It is used by the widgets and frames of the VCA to verify the access rights. |
TFunction | Is used to access the mechanism of user programming when describing the logic of derived widgets, as well as to include the API functions of the object model into the derived widgets. | Keeps the structure if parameters with the logic in the derived widgets. Passed to the module, which provides the user programming language implementation in order to connect the mechanism of processing the program's logic. |
TUI | The root object of the module of subsystem "User interfaces" which is used for integration into the kernel of the OpenSCADA system. | Is inherited by the root objects of the module of the VCA concept and by modules of implementation of the VCA interface. |
VCA::Engine | The root object of the module of the VCA concept/engine. It contains the containers of objects of the engine, as well as general methods and data. | It is used by the visualization interfaces to access the data of the projects' sessions and concepts in general. Integrates the concepts' f code of the VCA in the OpenSCADA system. |
VCA::WidgetLib | Object of the library of widgets/frames, contains the objects of library widgets (VCA::LWidget). The library of widgets structure can be freely formed by the user. | Contains the objects of library widgets (VCA::LWidget). |
VCA::Widget | Abstract object of the widget. | Is inherited by the objects of library widget(VCA::LWidget), of the container widget(VCA::CWidget), of the frame's of the project(VCA::Win) and by the objects of the execution session of the project(VCA::SessWin,VCA::SessWdg). The widget-container contains the function associated with the implementation of the user programming language. Uses the object OpenSCADA API TSecurity for managing the access rights. Uses events from an event's manager. Contact the theme's managers in order to obtain the immediate values of the fonts, colors in accordance with the current theme. |
VCA::LWidget | Object of the library widget/frame. | It is stored in the library (VCA::WidgetLib). It can contain the embedded widgets, represented by the objects of the container widgets (VCA::CWidget). |
VCA::CWidget | The object of the container widget of the library widget/frame (VCA::LWidget). In fact, it serves as link to the library widget. | It is stored in the library frame/widget (VCA::LWidget). |
VCA::Project | The object of the project of the user interface. It contains windows (VCA::Win) with the hierarchical name. | It is stored in the container of the object of concept (VCA::Engine). Contains the objects of windows (VCA::Win) of the project. |
VCA::Page | The Object of the VC interface page. It is closely related to the frame from the library of widgets, the frame itself has the elements of the interface. The object of the window itself, in addition to the frame, allows the links to the dynamics and provides the mechanism for the dynamics interleaving of the frame on the pages, with the possibility of forming the template of the dynamics. | Содержится в контейнере проекта. Наследуется от абстрактного виджета (VCA::Widget). Связывается с кадром интерфейса (VCA::LWidget) в библиотеке виджетов. |
VCA::Theme | Объект темы интерфейса визуализации. Содержит элементы темы (VCA::ThemeEl) | Содержится в контейнере объекта концепции (VCA::ConcVCA). Хранит элементы темы (VCA::ThemeEl). |
VCA::ThemeEl | Объект элемента темы. Содержит ассоциацию имени элемента с кодом цвета и шрифта. | Содержится в контейнере темы (VCA::Theme). Используется объектом виджета (VCA::Widget) для получения значений цвета и шрифта по имени элемента темы. |
VCA::EventMap | Объект карты событий. Содержит объекты событий (VCA::Event). | Содержится в контейнере объекта концепции (VCA::ConcVCA). Хранит описания событий (VCA::Event). |
VCA::Event | Объект события, содержит ассоциацию имени объекта(события) с реальным событием. | Содержится в контейнере карты событий (VCA::EventMap). |
VCA::Session | Объект сессии исполнения проекта визуализации. Открывается модулем интерфейса визуализации и использует, в дальнейшем, данные сессии для визуализации своим методом. Все вычисления интерфейсов визуализации выполяются именно в сессии. | Содержится в проекте интерфейса визуализации. Содержит объекты окон сесии с данными исполнения. Используется модулями интерфейсов визуализации для отображения данных сессии. |
VCA::SessPage | Объект страницы сессии. Содержит динамические данные окна проекта над которыми выполняет требуемые вычисления. | Содержится в объекте сессии проекта (VCA::SessProj). Наследуется от абстрактного виджета (VCA::Widget). Использует объект страницы проекта (VCA::Page) как источник исходных параметров. |
VCA::SessWdg | Объект виджета сессии. Содержит динамические данные отдельного элемента кадра над которыми выполняет требуемые вычисления. Может вкладываться один в другой в соответствии с иерархией виджетов кадра. | Содержится в объекте окна сессии (VCA::SessPage) или в высшем по иерархии объекте этого типа. Наследуется от абстрактного виджета (VCA::Widget). Использует объект библиотечного (VCA::LWidget) и/или контейнерного (VCA::CWidget) виджета как источник исходных параметров. Используется модулем интерфейса визуализации в роли источника динамических данных для визуализации. |
Vision, WebGUI | Корневые объекты модуля интерфейса визуализации, построенные на основе библиотеки QT и Web-технологий. Предоставляют доступ к средствам исполнения и разработки интерфейсов визуализации в среде используемой технологии. | Предоставляют доступ к среде исполнения и разработки. Интегрируют код интерфейса визуализации в систему OpenSCADA. |
VRunTime, WebRunTime | Объекты среды исполнения интерфейса визуализации на основе библиотеки QT и Web-технологий. Непосредственно предоставляют пользовательский интерфейс визуализации и управления. | Содержаться в корневых объектах модулей визуализации. Подключаются и используют данные объекта сеанса проекта (VCA::SesProj) концепции СВУ. В соответствии со структурой сеанса содержат множество специализированных объектов непосредственного отображения. |
VDevelop, WebDevelop | Объекты среды разработки интерфейса визуализации на основе библиотеки QT и Web-технологий. Предоставляют интерфейс инструмента над данными концепции для разработки интерфейсов ВУ. | Содержаться в корневых объектах модулей визуализации. Подключаются к объекту корня концепции СВУ (VCA::Engine) и предоставляют графический интерфейс для управления ею. В соответствии со структурой концепции содержат множество специализированных объектов управления. |
Статическая диаграмма классов (рис.4.10.1) не раскрывает всей иерархии взаимодействия объектов, основанных на абстрактном объекте VCA::Widget. Это связано с неявным наследованием данных свойств виджетов через все слои движка, а также тонкостями наследования, выстроенного путём использования данных одних виджетов в других. Для разъяснения этих особенностей изобразим исчерпывающую карту "использующего" наследования на рис 4.10.2.