OpenSCADAWiki: Home Page En/Doc/VC Aconcept/part6/part1 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageEn/Doc/VCAconcept/part6/part1 from 2010-04-29 13:07:05..

6.1 Widgets and Libraries -- Done


The objectives of this phase are:


As the result of our work the modules of the data model (UI.VCAEngine) and visualization (UI.Vision) was created. At this stage, the modules implement the mechanisms of UI elements formation. At next stage these elements will be used to form the full-fledged visualization and control interfaces.


Lets consider the results of the each stage's implementation:

The implementation of the basis of architecture "Data model" - "Presentation(visualization)"

In accordance with the static class diagram (Fig.4.10.1) and general requirements there have been implemented the modules "UI.VCAEngine" and "UI.Vision" for the OpenSCADA system. The "UI.VCAEngine" module implements the VCA data model and is the source for subsequent presentation of these data by different mechanisms of visualization. The "UI.Vision" module provides the means of presentation(visualization), based on QT library of version 4 of the Trolltech company.


Connection between the modules of the data model and presentation(visualization) is organized by direct calls (strong links). This method of connection is selected for preliminary abstraction of features of interaction and for concentration on core problems of implementation. Later it is planned the unification and construction of these links through the control interface of OpenSCADA system (weak links). As the result it will be achieved the opportunity of separation the data model and presentation(visualization), with possibility of simultaneous maintenance of different presentation(visualization) mechanisms with the single VCA data model. In addition, it will be possible to estimate the influence of the connection's(link's) type on the performance of the VCA.

Implementation of the basic functions of the VCA data model in the UI.VCAEngine module

The module of the data model(engine) of the VCA contains the container of widgets/frames library. The module provides the predefined library of basic widgets (primitives) with the primary realization of their own properties and processing logic of these properties.


Storage of the widgets' data and widgets' libraries is implemented in the database available in the OpenSCADA system. The database is organized on data ownership to the library. Ie the separate library is stored in the separate group of tables of the one or different databases. The list of libraries of widgets is stored in the index table of the libraries with the name "VCALibs" and with the structure "Libs", of the DB section. A copy of this table is created in each database, which stores data of this module, with the list of libraries contained in the given database. The structure of the tables of the belonging to the library widgets includes:


To control the widget library and the individual widgets the configuration scripts were written on the language of control interface of ~OpenSCADA. Currently, these scripts are designed to perform only the functions of the central configuration of the VCA engine elements, but later there is plans to expand them and give them the functions of processing requests to the data model from the presentation(visualization) modules to organize the "weak links" between the "Data model" and "Prepresentation(visualization)".


The basis of virtually all elements of the engine has become an object of the abstract visualization element (VCA::Widget). At its, abstract, level the object has the following properties:


For the presentation of thelibrary of widgets the class (VCA::WdgLib) is implemented. Its main function is to maintain the library of widgets, storage and loading them from the database, providing an access to the resources(Mime-data), as well as the separation of access.


Especially for the inclusion in the library of widgets the class of the library widget (VCA::LWidget) was created, which is based on an abstract widget's class (VCA::Widget) and provides additional functions: storing the widget data in tables of the library, the redefinition of the access to the resources on the table with the mime-data of the library and storage of the embedded container widget (VCA::CWidget).


In its turn, the class of the container widget (VCA::CWidget) provides the following functions: the storage of the container widget's data in the tables of the library, the redefinition of the access to the resources on the table with the mime-data of the library and the forced mode of the simple link for all container widgets.


On the basis of the library widget's class (VCA::LWidget) it was formed an abstract class of the terminal widget (VCA::PrWidget). And on its basis the implementations of primitives of basic widgets are formed, which form the library of basic widgets, which is created by the module at initialization. The values of the properties of the basic widgets, also can be stored in the database (tables of the widget's library), forming the desired templates. In addition, the basic library of primitives can improved by the extended primitives from the modules of the presentation(visualization) interfaces, for which the basic ones are not enough. But in this case it must be taken into account that such action - the way to an incompatibility between the modules of the presentation(visualization) interfaces!

Implementation of basic functions of the development framework of the user interface in the presentation(visualization) module UI.Vision

Interface of the user interfaces' development of the module is based on MDI (Multi Document Interface) interface. This approach allows you to simultaneously edit multiple frames of various sizes. The following arrangements for managing the development are used: the toolbar, menu and context menu. Most actions are duplicated in the different mechanisms, so you can quickly find the tool by the preferred method. Navigation interfaces are implemented by the attachable windows. The configuration of toolbars and attachable windows is saved on exit and restored at startup that lets you to configure an interface for yourself.


One of the elements of the user interface, implemented as the attachable window is the browser of the widget's library. With the browser you can quickly find the widget or the library and do the necessary operations on them. The following operations are implemented: addition, deleting, configuration of widgets and libraries, as well as visual editing of the widget.


For easy management of the properties of widgets/frames the inspector of attributes(properties) of widgets is implemented. Inspector of the attributes is implemented as the attachable window, which is activated when you select the frame or widget. Window of the inspector of attributes can be conveniently positioned by attaching it to one of the sides of working window. Inspector of attributes supports the group configuration of several widgets, as well as the grouping of similar properties.


For visual editing of the frames the primary support for editing of widgets and frames is implemented. In the editor the following functions are implemented:


Example of the development window is shown in Fig. 6.1.1. At the figure you can see: the toolbar, navigator of widgets, inspector of attributes, editing window of the frame and status bar.


 (123 Kb)
Fig.6.1.1 Development window of the UI.Vision module

To configure the widgets' objects and their libraries the two dialogues are implemented: the dialogue of the widget's configuration (Fig.6.1.2) and the configuration dialog of the widget's library configuration (Fig.6.1.3). The library configuration dialog allows to set the basic properties of the library and put the mime-data in the database for subsequent using in the widgets of the library. Widget's configuration dialog allows you to set: the basic properties of the widget. individually to set the values of attributes and configure the internal procedure for computing the widget with additional(user's) properties.


 (25 Kb)
Fig.6.1.2 Dialog of the widget's library configuration.

 (32 Kb)
Fig.6.1.3 Dialog of the widget's configuration.

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