authoring tool, power plant, animations, procedures, technical instruction, mechanical pieces, presents, hydroelectric power plant, simulation, maintenance, environment, animation, 3d environment, virtual environment, Technical Instructions, Eletronorte, virtual reality, periodic maintenance, Virtual Technical Instruction, building construction models, operation processes, Claudio C. Coutinho Fo1, textual format, virtual tim, hydroelectric power plants, real power plant, instructions, operation procedures, vertical plane, vti, training system, scenery files, 3d scene, 3d models, object, System Architecture, visualization system, execution module, camera animation, object state, position, orthogonal views, piece, 2d drawings, mesh object, Virtual Models, 3d modeling software
Virtual Technical Instructions of Maintenance and Operation of a Hydraulic Generating Unit
Pebertli N. A. Barata1, Messias J. A. Nascimento1, Manoel Ribeiro Fo1, Alcides R. S. Pamplona Jr1, Claudio C. Coutinho Fo1, Fбbio N. Silva2, Pedro I. C. Moreira2 1 Larv Laboratory of Virtual Reality Faculty of Computing Engineering UFPa Federal University of Parб 2 Eletronorte North of Brazil Electric Stations[email protected]
, [email protected]
, [email protected]
, [email protected]
, [email protected]
, [email protected]
, [email protected]
Abstract The HYDROELECTRIC POWER
plants use technical instructions of maintenance and operation to instruct maintainers and operators about the maintenance and operation procedures to be executed in their generating units. These instructions consist of well defined scripts with 2d flat drawings and of activities in textual format. This paper presents an authoring tool that allows the construction of these technical instructions in a virtual reality environment, where the user can navigate, interact and control animations in a virtual hydro generating unit built from building construction
models and mechanical and electrical pieces supplied by Eletronorte. It also presents the techniques used for the construction of the 3d models from cad models supplied by Eletronorte. In order to prove the system effectiveness, two technical instructions were built, one of operation and another of maintenance, from procedures supplied by Eletronorte. 1. Introduction The hydroelectric power plant operation demands a periodic maintenance of their generating units, which consists of the hydraulic turbine and of the synchronous generator with its auxiliary controls . The available instructions of maintenance at the hydroelectric power plant are called Technical Instructions of Maintenance or tim. They consist of well defined scripts with 2d drawings and of activities in textual format. This material does not help too much the understanding of the technicians in charge of the equipments
disassembly and assembly procedure. The Technical Instructions of Operation, tio, are also texts written in paper and have the same problems as the tim, therefore, they impel in the operators' understanding about the effects on the equipments, caused by its direct action during a maneuver. Each tim has not only equipment disassembly and assembly scripts, but also a list of preconditions, determining the states the maintenance participating equipments should have before its execution. There are hundreds of tim and tio in a hydroelectric power plant. This paper presents the development of an authoring tool that allows a technician to create a technical instruction inside a virtual environment
, called Virtual Technical Instruction (vti), of operation or maintenance. vtis use 3d models from the building construction of the power plants, just like from the equipments (turbines, generators and auxiliaries), in order to show the maintenance and operation processes. The paper also presents a methodology for the building of these 3d models, which are not trivial, using data from a real power plant. In maintenance, the disassembly and assembly sequence of these equipments is presented, with mechanical pieces details with high graphics realism together with highly educational instructions, following methodologies from  and . In operation, the procedures of the operator are presented (represented by an avatar), sometimes in front of a computer (with the presenting screens), some other times in
front of machinery (with its buttons), the result of his/her actions on the virtual world which represents the generating unit. vtis use techniques from Virtual Reality to realize the procedures of a tim and tio, inclusively with the use of avatars that show the intervention of maintainers and operators on the virtual generating unit. The focus idea of the vtis is to transform the textual description of a tim or tio into a visual and interactive demonstration of the process, turning the learning more simple and attractive. Besides the 3d environment, vtis have a relational database with all textual information contained in the tim and tio. They can be accessed by the user during the training process. To prove its effectiveness, it was used the authoring tool in the construction of a virtual tim and a virtual tio, based on a tim and on a tio from a real power plant. This paper continues organized as follows: Section 2 presents related works. Section 3 describes the architecture of the system. Section 4 describes the authoring tool. Section 5 describes the techniques used to create 3d models of the generating unit. Section 6 presents a case study
with the application of the techniques proposed in the construction of a virtual tim and of a virtual tio from a generating unit from a real hydroelectric power plant. Section 7 presents the conclusions and proposals for future works. 2. Related work The use of Virtual Reality technology in the process of training in industry has been an area of growing interest, because it allows the trainee to easily manipulate pieces of difficult visualization and access, and gives to the user the sensation of being at the real plan, using realistic piece models, the possibility to realize disassembly and assembly procedures not foreseen in manuals, and the opportunity to simulate mistake situations and to verify its results without impacting the real production. Reference  presents a virtual reality system for the maintenance of industrial equipments, starting the discussion about the problem of cad models conversion into virtual models , which allow the interaction management in virtual reality systems. Reference  proposes an authoring tool, in which the user can, through
a friendly interface, build a training system of virtual reality to the industry. Despite listing several characteristics that the authoring tool must have, authors assert that the tool did not exist yet when they wrote the text. These characteristics are: Load of interactive models generated according to a scene graph ; Allow user to add physical properties
to primitive objects; Allow user to group primitive objects into logical objects; Allow user to define joints between logical objects; Allow user to define interactive regions in the model (typically logical objects); Allow user to define animation on logical objects and associate them to interaction regions; Allow user to define a sequence of simulation and associate messages to the different steps in the sequence. The methodologies from  and  used in maintenance are three training modes: automatic, guided, and exploratory. These modes are accessed on the basis of trainee's knowledge in relation to maintenance procedures. In automatic mode, maintenance procedure steps are presented in an animation as an orientation technique for the trainee. In guided mode, the system guides the user by commands that detail the maintenance procedures. In contrast to the automatic mode, here the trainee must manually select the maintenance tasks using the mouse. In exploratory mode, the learner is already familiar with the assembly and disassembly procedures and, from this moment on, the trainee's knowledge is tested by performing tasks with no aid from the system. References [7,8,9,10] presented some techniques similar to this work. Reference  presents several techniques for the disassembly of mechanical pieces in virtual environments and reference  presents processes of industrial assembly in interactive virtual environments. Reference  presents
a visualization system of a hydroelectric unit, allowing the understanding of physical structures and monitoring of the condition to an analysis of the diagnosis of the components from the generating unit. Reference  presents a training system of a potency system, which consists of electric plants and machinery, using virtual reality techniques with 3d models. 3. System Architecture
Figure 1 shows a simplified diagram of the system architecture. Figure 1. System Architecture Diagram When entering the system, it is asked for the user's login and password, through these, the system verifies his/her profile, authorizing or not the access to certain features of the system. There are two profiles: User and Administrator. Profile user gives access to the execution module, which allows the user to run the created virtual technical instructions. Profile administrator allows the creation of new vtis, the management of users and the register the contents of the technical instructions. 3.1. Authoring Module Through the Authoring Module, the user can create new vtis in an interactive way. The module uses the loading and positioning functions that place the 3d models in the virtual world. These models are loaded from three databases, selected according to the running operation. The scenery base is composed by xml files containing the list of the pieces used in certain scenery and its positions. Once the file with the desired scenery is chosen, the loading and positioning functions access the 3d models base, which contains object model files (meshes) and its respective files of material, loading them in the position indicated in the
scenery. The base of technical instructions contains files with the technical instructions created through the authoring module. The difference between them and the scenery files is that they are initiated with the scenery files for the generation of the initial environment, and over it are created the steps that represent the technical instructions, containing animations, pop-up windows, camera displacement etc. Files of virtual technical instructions are the final product of the authoring module and once created, they can be run through the execution module. 3.2. Execution Module The execution module allows the user to run the Virtual Technical Instructions, created at the authoring module. For such, it uses the same already seen loading and positioning functions. It also allows the user with administrator profile to manage the textual content of the technical instructions, i.e. register new vtis, change his/ her data and print everything or just a portion of a technical instruction. The database of the vtis stores this information. The administrator profile still allows managing the users' data, defining their access profiles. This information is stored at the user's database. 4. Authoring Tool This module is an editor with a friendly interface, whose target is that, with few training time, the user can produce the vtis in a fast and visual way without the need for writing a line of code. Modeled objects can be loaded and configured to form the initial 3d scene of the vti at the authoring tool, which allows also to load particle systems , to change the hierarchy of objects in scene, grouping them to make manipulation easy, to change object parameters, like 3d orientation, transparency, scale and several other transformations, all of them in real time. For an exact representation of the technical instruction, the authoring module has some features that enable the creation of different animations that, at the end of the vti generation, will result on the complete visual description of the technical instruction. These animations are dependent of time and change the state of objects in the scene. These features are: Camera animation: camera navigation across
the 3d scene, going through a way, stipulated by points chosen by the user. Objects translation: the object goes through a way defined by points in a 3d scene chosen by the user. Objects rotation: the user can rotate the object, choosing parameters like initial rotation speed, final rotation speed, rotation time etc. Objects scaling: the object has its size changed along the different axis. Objects transparency animation: objects opacity is changed from a value to another in a userdefined time interval. Object contour: the object receives an effect of lightning, so that it can be emphasized in the scene. Skeleton animation : this kind of animation is created at modeling time and stays contained in the 3d model, therefore it can be loaded on the system to be constituent of the vti. Scene text panel: a textual panel is shown and/ or hidden in user-defined periods. The panel is totally customizable, where parameters can be changed, as font size or background color. Each animation can be at different or at the same object at the same time (except camera animation and of textual panel animation, which are not linked). The complete animation of the vti is composed of one or more steps. These steps are created by the user and have a duration defined by him/her, so that at the end of the defined duration for one step, the next step is loaded and then, can be animated. One step is composed by an initial scenery and by animations that will modify this scenery. The initial scenery of each step is the state of each object, of the camera and of the textual panel at the beginning of a vti step. The state of an object is characterized by its positioning, orientation, whether it has contour or not etc. The transition between two adjacent steps can be done in three ways: Normal transition: next step is loaded automatically, so that the passage from a step and other is not perceived. Fade transition: at the end of a step, it occurs the fading of the scene and at the beginning of the next step, it occurs the scene brighten. This effect is useful to demonstrate discontinuities in the animation.
Mesh transition: at the end of a step, vti waits for a user interaction (with the mouse click) with objects from the virtual world, so that, if the correct object is put in action, the next step will be loaded. The vti creator can choose one or more objects of the scene to be the transition trigger. The transition concept, in particular, gives to the vti a greater naturalness, as it provides a visual description of the process and of each of its steps. Besides that, the type of mesh transition has great importance in the user interaction along the technical instruction. For example, if a given step of an oil pump must be manually turned on by the operator through the trigger of a key. This process can be done on the authoring tool, being created a transition of the mesh kind, which will occur when the user interacts with the vti, clicking on the 3d object that represents the activating key of the pump. This characteristic makes process learning experience
more practical and realistic. Figure 2 shows a diagram that represents the concepts and relations of the elements of the vti described previously. Figure 2. Representative diagram of the vti animations structure The main interface of the authoring tool can be seen at Figure 3. The 3d environment can be found at the center of the window; the group of timelines and its markers are situated above the 3d environment; the step list of the vti is showed at the right side of the window, and the objects list of the scene is at the left side of the window. Each step created at the vti project receives a name and a miniature of its initial state
, which is presented in a step list at the program main interface, as shown in Figure 3. This list allows an easy navigation through the vti, because the user can move to any step of the animation with a single click over the step's miniature in the list. As already mentioned, a step has certain duration of time. This interval is customizable
and is represented by a timeline with start and end markers. Each step has its own timeline, see Figure 3, and one more timeline for each object in the scene, be it a mesh object, a linker object or particle. This distribution is due to the fact that an animation that modifies an object state will be represented in a timeline through its time markers. For example: adding an animation of transparency to an object A in a step P1, the timeline A of the step P1 will show 2 markers. The marker at the left (it will first happen in time) represents the start of the transparency change process
and the marker at the right represents the end of the process. The markers can be moved along the timeline, reflecting the new time values in the animation. Another example is the addition of a camera animation: each addition of an animation represents a position of the camera and where it is directed to, therefore adding three markers of camera animation at the same step, the final product of the step will be the camera dislocation along these three points in a temporal sequence. Since there is only one camera in the scene, markers are added in a special timeline, unique for each step. The timelines are important elements at the authoring tool as they give to the user a more intuitive, friendly and efficient way to configure the vti animations, eliminating the need of using scripts and even the keyboard. The authoring tool can save a vti project in disk to be used later for edition or for execution and it has some functions that ease the instructions making, like, for example, the mirror tool of a step, which switches the animations sequence, very useful in assembly procedures after a disassembly. Figure 3. Main interface of the authoring tool
The authoring tool for virtual technical instructions was entirely developed with free software. The programming language
used was C++, aided by the graphics engine OGRE3d  and by the Qt interface framework . C++ is the most popular programming language when talking about 3d applications development . ogre3d works manipulating other graphics libraries of a lower lever (gpu level), just like Direct3d and OpenGL, offering higher level functions without the need for gpu level programming. As ogre3d does not offer a good support to the user's interface, it was necessary the support of the specialized library Qt, which allowed both visual interfacing, via gui, and non-visual interfacing, via keyboard and mouse. The development process was realized in two moments: at the first one, it was made the models of structural and functional base of the system, just like the node/knot module of the 3d scene, with animation and manipulation functions and the panel module from the 3d scene that allows the visualization of the 3d environment inside a window. At the second moment, it was developed the modules that carry out the creation of the vti project. Among them, the animation steps modules are highlighted, which maintain the information of the initial scenery and of the animations and the timeline group module, which allows the step animation manipulation by the user. 5. Virtual Models from CAD As the system handled in this paper is of training and simulation of a hydroelectric power plant, the accuracy with the real environment is very important, nevertheless, the number of objects of the virtual environment is too big, as it contemplates from screws to the very building construction of the power plant. Thus, 3d models must be optimized enough, so that they do not exceed the processing capacity, at the same time they must have a sufficient amount of vertexes and faces to represent the pieces with the proper realism. Once built the 3d objects, it is necessary to set them harmoniously in the 3d environment. This task demands that a group of information be associated to each object, including position, rotation and scale. 5.1. Geometry creation Most pieces have a vectorial 2d drawing
in dwg extension files, which constitute the plans planned by the manufacturers. These drawings are important to the objects modeling, since they allow the construction of the models with the required precision. 2d drawings are imported by the 3d modeling software, acting as base to the 3d objects to be constructed. It is worth to emphasize that these drawings do not have a single scale, i.e. each drawing has its own scale, and being necessary the proper adjust. Figure 4 shows one of these 2d drawings that served as a reference to the 3d object creation, shown in Figure 5.
of the models, details that should be modeled, in the case of the non-use of textures. Figure 6 is a photograph of the turbine shaft, showing one of the coupling bases.
Figure 6. Photograph of the turbine shaft Figure 7 is the texture used to the axis base that was obtained through edition of the original photo, shown in Figure 6.
Figure 4. 2D vertical and horizontal drawing
Figure 5. 3D object in perspective 5.2. Texturing The creation process of textures was made mainly by photo edition from the power plant itself, trying to obtain a greater degree of realism. Besides increasing the model's realism, textures also had an important function in the optimization. Textures can replace in some parts
Figure 7. Edited Texture 5.3. Optimization Because of performance matters, each piece was evaluated according to its relevance inside the simulation or training considered. All models were created with the precision the situation demanded. In some cases, were created two versions to same piece; one detailed version to be used at training/simulation where the piece had a greater relevance; and one simplified version, to the situations in which its importance was secondary. In this situation, one piece is modeled in different detail levels for different training or simulation. In other cases, were created two versions of one
piece to the same training/simulation. This procedure is very useful when there are several instances of the same piece. The instance that needs to be more detailed is that one which is in focus at that training or simulation. Instances not evident can be less detailed. In this situation, the very same piece is modeled in different detail levels for the same training or the same simulation, i.e. the detailed object and the simplified object appear side by side simultaneously. Figure 8 shows instances of the object that represents a concrete construction of the dam. Only one instance is detailed. Each simplified instance has approximately 20% of the number of faces of the detailed model.
what makes impossible the different areas of the 3d environment to be able to be manipulated before the modeling of all pieces. In this context, it was necessary one more efficient method to determine the pieces' position, therefore making easier the simultaneous modeling of different areas of the power plant and, at the same time, serve as a reference for the entire environment, making easier possible corrections or addition of new pieces. The solution found was to use the 2d drawings, which represent the general plan of the whole power plant. These drawings are orthogonal sections of the entire power plant, without piece detail. Since these are vectorial drawings, the view focus amplification does not affect the sharpness of the details, allowing even screws to be perfectly visible. One of these drawings is a virtual section, shown in Figure 9, which represents the side view of the power plant. All the others are horizontal sections, representing each of the pavements.
Figure 8. Simplified instances loaded simultaneously with the detailed version 5.4. 3D environment references 2d drawings of the plans show only the particular details of a single piece, through front, side and upper orthogonal views. These drawings help the construction of the 3d model and allow the created object to have the exact dimensions. The described dimensions of these drawings can also establish the scale of each piece, but do not offer information about the positioning of the pieces inside the power plant. One way of determining the objects' position inside a 3d environment is choosing one piece to serve as reference to the others. Posterior pieces are then fit in the reference piece until the whole system is built. This solution can be efficient for a 3d environment with few objects, but it becomes unworkable for too much complex systems
. The major problem of this positioning method is that we cannot place pieces from a region that is not yet fully built,
Figure 9. Vectorial 2d drawing of the power plant genera
l section While the pieces' plans show the details in several orthogonal sections, as in Figure 4, the general drawing of the power plant shows only the side orthogonal section, wich indicates the position of any piece at the yz vertical plane. Determined the position on the vertical plane, the position on the axis perpendicular to this plane is obtained from the 2d drawing, which represents the xz plane of the pavement where the piece is. Figure 10 shows 2d drawings in two orthogonal planes. Plane yz is the side section of the entire power plant. Plane xz is the horizontal section of one of the pavements. As each one of these
planes provides two coordinates for one piece, such information is combined together to determine the three coordinates of one piece at the 3d space.
operating conditions of each equipment in all different stages, and restores the information to the relays and devices that provide the automatic start-up of the machine. In most time, the operator stays at ppoc (power plant operations center), represented in Figure 11, where he/ she controls all of the process, interacting with the computer through the keyboard, mouse and screens of the control system
Figure 10. 2d drawings used for position, scale and rotation general references 5.5. Conversion to MESH file When the modeling process is finished, it is possible to generate the mesh files, which is the format used by ogre3d. Through 3d modeling software, a script is executed to export the objects to mesh format and it creates a xml file, to be used in the authoring tool, containing the positions and rotation of each piece. The models original scale is always considered unitary; i.e. objects are exported with the correct scale, to facilitate the loading of the models by the program and to release subsequent scale adjustments. 6. Case study As case study, both virtual tio and tim, built through the proposed system, are used. The example tio deals with the start-up of a hydroelectric unit. A hydroelectric unit is composed by several equipments that complement each other. Amongst these equipments we can find: the generator, the bearings, turbine, distributer, excitation system, speed regulator, floodgate of water catch, control unit, transformers, voltage regulator and others. All of these have a direct relationship with the start of the hydroelectric unit. At the start, all of the operating sequence is made through the computer monitor, which, by the acquisition of data sent through relays e other devices, keeps the information of the
Figure 11. Power Plant Operations Center - Virtual At the very start-up, the operator directs himself/herself to the control unit room, where he/she activates a button to the remote start-up mode, after which, he/she returns to ppoc, from where he/she starts controlling the process. The vti of the machine start-up has an avatar that represents the operator (user). The user interacts with the computer check Figure 12 and with control unit, and the result of his/ her action are simulations of the unit start-up, where a 3D animation
check Figure 13 shows detailed and necessary information to the execution of start-up maneuvers, which are done through correct procedures, what asserts the perfect performance of the involved equipments. Figure 12. Control screen of the unit. The marked area has user interaction All the start-up related equipments just like the building construction of ppoc and of rooms where the equipments are installed, of a real hydro generator power plant were modeled. The description of the real start-up tio was also provided by Eletronorte. It starts with the condition of the machine delivered for the operation, and then goes through several stages,
when finally the electric energy is generated and delivered to the transmission lines. Check Figure 14. The chosen tim was the Disassembly and Assembly of the Movement Mechanism of the Guide Vanes. All of the pieces were modeled from 2d plans (dwg files), and there are hundreds, from screws to huge pieces, such as the pitman and cranks. The tim starts-up with the preconditions (initial conditions
that must be satisfied before the maneuver occurrence, so that the safety and the efficiency of the work are guaranteed), such as stop-logs placing, for the water drain of the spiral case, check Figure 15, and the entry of maintainers in the spiral case, in order to measure the opening rate of the guide vanes, check Figure 16. After that, maintainers go to the spot where they disassemble the mechanism. Check Figure 17. Figure 18 shows the mechanism to be disassembled, and one of the pieces being removed.
Figure 16. Supporter entering the spiral case Figure 17. Supporters going to the disassembly spot of the mechanism
Figure 13. Opening of the guide vanes Figure 14. Transmission lines Figure 15. Placing of the downstream Stop-Logs
Figure 18. Mechanism to be disassembled, and one of the pieces being removed 7. Conclusions This paper presented a new innovation in the field of training for operators and maintainers of generating units of hydroelectric power plants, which are the vtis, Virtual Technical Instructions. The amount of the technical instructions of operation and maintenance of a generating unit are around three hundred. To make the production of the vtis by the technical staff
easier, it was made an authoring tool, which showed up effective at the vtis' development. Reference  presents seven features that authoring tools for the construction of industrial maintenance modules, based in virtual reality should have, and the authors do not present any implementation of the proposal. The system
here presented has six of these features, and the obtained results obtained at the production of both vtis, one of operation e other of maintenance demonstrate the proposal's effectiveness. Both vtis are in implementation stage at the electric energy generating enterprise, which finances this research. The project staff is currently producing more eight vtis, chosen by the financer. As future work, it is intended to implement the functionality proposed in , not yet built, that is allow user to add physical properties to primitive objects, what will allow the appliance of dynamic equations to control the operation of machinery of the generating unit. 8. Acknowledgements This work has been performed with support from eletronorte, North of Brazil Electric Stations. 9. References  Kiameh, P., Power Generation Handbook. McGraw Hill
Professional, August, 2002, 1th Edition.  Blumel, E. Schenk, M.; et al. "Technology Enhanced Training at Workplace: A Virtual Reality Based Training System for the Technical Domain. In: 1st International Conference
on EBusiness and E-Learning Proceedings, ISBN 9957-8585-0-5, 2005, pp. 57-62.  Pamplona, A.; Ribeiro, M.; Sousa, M.; Barata, P.; Nascimento, M.; Hounsell, M. "A Virtual Reality System for Hydroelectric Generating Unit Maintenance Training and Understanding" ISCA 19th International Conference on Computer Applications
in Industry and Engineering (CAINE2006). Imperial Palace
Hotel, Las Vegas, Nevada, USA, 2006.  Oliveira, D.M. Cao, S.C. Hermida, X.F. Rodriguez, F.M. "Virtual Reality System for Industrial Training". IEEE International Symposium
on Industrial Electronics, ISBN: 978-14244-0755-2, 2007, pp. 1715-1720.  Corseuil, E. T. L., Raposo, A. B. et al. : "ENVIRON Visualization of CAD Models In a Virtual Reality Environment. In Eurographics Symposium on Virtual Environments (EG-VE)". 2004, pp. 79-82.  Li, J.R., L. P. Khoo and S. B. Tor. "Desktop virtual reality for maintenance training: an object oriented prototype system (V-REALISM)". Computers in Industry, Vol. 52 No.2, 2003, pp. 109-125.
 Pomares, J.;et all. "Virtual disassembly of products based on geometric models". Journal Computers in Industry, vol. 55, 2004, pp. 1-14.  WANG, Qing-Hui; LI, Jing-Rong. "Interactive visualization of complex dynamic virtual environments for industrial assemblies". Journal Computers in Industry, ISSN 0166-3615, vol. 57, no 4, 2006, pp. 366-377.  Guo, J., et al. "Visualization of a Hydro-Electric Generating Unit And Its Applications". Systems, Man and Cybernetics, 2003 IEEE International Conference. Vol. 3, pp. 2354-2359, 2003.  Angelov, A. N. Styczynski, Z. "A Computeraided 3D Virtual Training in Power SySTEM education
". IEEE Power Engineering Society General Meeting, 2007, ISSN: 1932-5517, 2007, pp.1-4.  Junker, G., Pro Ogre 3D Programming, Apress, USA, 2006.  Clinton, Y., Game Character Modeling and Animation with 3ds Max, Focal Press, USA, 2007.  Blanchette, J. and Summerfield, M., C++ GUI Programming with Qt 4, Prentice Hall
, USA, 2006.  Deitel, H. and Deitel, P., C++ How to Program, 6th edition, Prentice Hall, USA, 2007.