Title: EPICSQt Design Specification
Document no: 11556
Revision no: 0.2
Date: 23 June 2010
Australian Synchrotron Company ...
EPICSQt Design Specification
Revision History
Revision Date Prepared by
0 18/11/2008 Glenn Jackson
0.2 13/11/2009 Glenn Ja...
EPICSQt Design Specification
Table of Contents
1 Introduction................................
1.1 Purpose....................
1 Introduction
EPICSQt is a combination
Channel Access (CA) API extended into the graphical QT framework using C++. It is ...
EPICSQt Design Specification
Document
Qt Developers Guide
API Reference Manual
Table
1.3.1 Integrating the Qt Framework in...
EPICSQt Design Specification
2 Australian Synchrotron
2.1 AS Core EPICS Classes
The CaObject and QCaObject as well as othe...
EPICSQt Design Specification
2.3.2 QCaLineEdit
A CA aware Line Edit Widget
2.3.3 QCaPushButton
A CA aware Push Button Widg...
EPICSQt Design Specification
2.4 AS IDE Design-Time Widgets
All new Widgets specified in this design
within the Qt Designe...
Upcoming SlideShare
Loading in …5
×

Epics Qt design specification

268
-1

Published on

Published in: Engineering, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
268
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Epics Qt design specification

  1. 1. Title: EPICSQt Design Specification Document no: 11556 Revision no: 0.2 Date: 23 June 2010 Australian Synchrotron Company Limited ABN 52 126 531 271 800 Blackburn Road, Clayton Victoria 3168, Australia p +613 8540 4100 f +613 8540 4200 e info@synchrotron.org.au www.synchrotron.org.au Prepared by: Name: Glenn Jackson Title: Senior Control Systems Engineer Date: 18 November 2008 Reviewed by: Name: Andrew Rhyder Title: Senior Control Systems Engineer Date: 18 November 2009 Approved by Name: Anthony Owen Title: Control Systems Engineer Date: 18 November 2009
  2. 2. EPICSQt Design Specification Revision History Revision Date Prepared by 0 18/11/2008 Glenn Jackson 0.2 13/11/2009 Glenn Jackson Prepared by Description Glenn Jackson Initial draft Glenn Jackson Prepared document for CM
  3. 3. EPICSQt Design Specification Table of Contents 1 Introduction................................ 1.1 Purpose................................................................ 1.2 Referenced documents ................................ 1.2.1 Australian Synchrotron Documents 1.2.2 External Documents ................................ 1.3 Scope ................................................................ 1.3.1 Integrating the Qt Framework into EPICS 2 Australian Synchrotron Classes 2.1 AS Core EPICS Classes ................................ 2.1.1 CaObject Class................................ 2.1.2 QCaObject Class................................ 2.2 AS Middle-Layer Classes ................................ 2.2.1 QCaString ................................ 2.2.2 QCaInteger................................ 2.2.3 QCaFloat ................................ 2.3 AS EPICS Application Layer Widgets 2.3.1 QCaLabel ................................ 2.3.2 QCaLineEdit................................ 2.3.3 QCaPushButton ................................ 2.3.4 QCaSlider................................ 2.3.5 QCaSpinBox ................................ 2.3.6 QCaShape................................ 2.3.7 GuiPushButton................................ 2.3.8 CmdPushButton................................ 2.3.9 QCaCombo ................................ 2.3.10 ASguiForm ................................ 2.4 AS IDE Design-Time Widgets List of Figures Figure 1 - Project Overview Diagram List of Tables Table 1 - Australian Synchrotron Qt Documentation Table 2 - Design-Time Plug-ins ................................................................................................................................ ................................................................................................ ................................................................................................ stralian Synchrotron Documents ................................................................ ................................................................................................ ................................................................................................ Framework into EPICS ................................................................ Australian Synchrotron Classes............................................................................................... ................................................................................................ ................................................................................................................................ ................................................................................................ ................................................................................................ ................................................................................................................................ ................................................................................................................................ ................................................................................................................................ AS EPICS Application Layer Widgets ................................................................ ................................................................................................................................ ................................................................................................................................ ................................................................................................ ................................................................................................................................ ................................................................................................................................ ................................................................................................................................ ................................................................................................................................ ................................................................................................ ................................................................................................................................ ................................................................................................................................ Time Widgets ................................................................................................ w Diagram ................................................................ Australian Synchrotron Qt Documentation.......................................................... ins............................................................................................. ................................1 ..................................... 1 ............................................ 1 ..............................................................1 ........................................................1 ........................................ 1 .....................................................2 ...............................3 ........................................... 3 .................................3 ..............................................................3 ......................................... 3 .........................................3 ........................................3 ...........................................3 ..................................................... 3 ..........................................3 ......................................4 ...............................................................4 ..........................................4 .....................................4 .........................................4 .................................4 ...............................................................4 .......................................4 ....................................4 .................................. 5 ...................................................2 ..........................2 .............................5
  4. 4. 1 Introduction EPICSQt is a combination Channel Access (CA) API extended into the graphical QT framework using C++. It is designed for rapid development of control system graphical interfaces. Qt has been chosen by the Australian (GUI) Framework for writing software applications including GUI applications for use at the Australian Synchrotron. The control system currently in use at the Australi Physics and Industry Control System ( standard tools for writing client applications to interact with the control system. provide a quick way to monitor is required. For example, more complex client accomplished with Qt which would not be possible with EDM/MEDM. address many requirements from the facility which may be more difficult or impossible to achieve using EDM/MEDM. The Qt Framework has been discussed maintain a common code base across many synchrotron Team is in the process of a common framework for use with EPICS control systems. This facility should use a common code base for all Qt projects which will be provided Synchrotron Controls Team. Section with EPICS. 1.1 Purpose The purpose of this document 1.2 Referenced documents 1.2.1 Australian Synchrotron Documents ASP-ICS-2002-A EPICS Installation Procedure (Linux) ASP-ICS-2002-B EPICS Installation Procedure (Windows™) ASP-ICS-2009 Perforce Installation Procedure AS-DOC-0302 Qt Installation Guide AS-DOC-0303 Developer’s Guide to writing Qt 1.2.2 External Documents Qt Software http://qt.nokia.com/ EPICS Software http://www.aps.anl.gov/epics/ EPICSQt Repository http://sourceforge.net/projects/epicsqt/ Perforce Software http://www.perforce.com/ EPICS APS http://www.epics.aps.com/ EPICS CA Manual http://epics.aps.anl.gov/epics/base/R3 1.3 Scope The scope of this document is GUI applications for the Australian Sy available for using the Qt Framework at the Australian Synchrotron. The highlighted row indicates the current document and how this document relates to the available Document Qt Requirements Specification Qt Design Specification Qt Installation Guide EPICSQt is a combination of the Experimental Physics and Industrial Control System (EPICS) Channel Access (CA) API extended into the graphical QT framework using C++. It is designed for rapid development of control system graphical interfaces. by the Australian Synchrotron as an officially supported Graphical User Interface Framework for writing software applications including GUI applications for use at the Australian Synchrotron. The control system currently in use at the Australian Synchrotron is Physics and Industry Control System (EPICS). EPICS includes tools such as EDM and MEDM as the for writing client applications to interact with the control system. In some cases monitor and manipulate data, however, in many cases, additional functionality For example, more complex client-side calculations on raw, incoming data can be accomplished with Qt which would not be possible with EDM/MEDM. Qt is intended to be used to requirements from the facility which may be more difficult or impossible to achieve been discussed between several synchrotron labs. Although it is difficult to maintain a common code base across many synchrotron facilities, the Australian Synchrotron Controls a common framework for use with EPICS control systems. This facility use a common code base for all Qt projects which will be provided eam. Section 1.3 outlines the functionality available for use with integrating Qt The purpose of this document is to define the Interface between the Qt GUI framework and EPICS. Australian Synchrotron Documents EPICS Installation Procedure (Linux) EPICS Installation Procedure (Windows™) Perforce Installation Procedure Qt Installation Guide Developer’s Guide to writing Qt-CA GUIs http://qt.nokia.com/ http://www.aps.anl.gov/epics/ http://sourceforge.net/projects/epicsqt/ http://www.perforce.com/ http://www.epics.aps.com/ http://epics.aps.anl.gov/epics/base/R3-14/10-docs/CAref.html The scope of this document is to address the Requirement Specification for writing and supporting plications for the Australian Synchrotron(AS). The table below lists the documentation available for using the Qt Framework at the Australian Synchrotron. The highlighted row indicates the current document and how this document relates to the available AS Qt documentation. CM Location Description 11555 Australian Synchrotron Qt GUI Requirements. 11556 Overview of the Qt-EPICS CA functionality. 11557 Installing Qt on Windows™ and Linux operating system. of the Experimental Physics and Industrial Control System (EPICS) Channel Access (CA) API extended into the graphical QT framework using C++. It is designed for Graphical User Interface Framework for writing software applications including GUI applications for use at the Australian an Synchrotron is the Experimental tools such as EDM and MEDM as the In some cases, it can late data, however, in many cases, additional functionality side calculations on raw, incoming data can be is intended to be used to requirements from the facility which may be more difficult or impossible to achieve . Although it is difficult to facilities, the Australian Synchrotron Controls a common framework for use with EPICS control systems. This facility use a common code base for all Qt projects which will be provided by the Australian available for use with integrating Qt amework and EPICS. docs/CAref.html to address the Requirement Specification for writing and supporting . The table below lists the documentation available for using the Qt Framework at the Australian Synchrotron. The highlighted row indicates the AS Qt documentation. Description Australian Synchrotron Qt GUI Requirements. EPICS CA functionality. Installing Qt on Windows™ and Linux operating system.
  5. 5. EPICSQt Design Specification Document Qt Developers Guide API Reference Manual Table 1.3.1 Integrating the Qt Framework into Section 2 Australian Synchrotron Classes represented in the diagram. The EPICS Community and EDM/MEDM screens. Qt provides the GUI Framework required for bu Linux. The four main objectives of this project • QCaObject will make available required aspects of the EPICS C Reference Library to C++ and Qt. • QCa widgets will enable Qt Widgets to be • User interface definitions will be written to standardise the appearance and base features of all Australian Synchrotron GUIs. This will be used as the template base form for creating GUIs. • An ASGui example application CA aware widgets to be viewed by users CM Location Description 11554 Developing Qt GUIs for use in the facility. AS Doxygen Server Open-source code available for Qt Table 1 - Australian Synchrotron Qt Documentation Integrating the Qt Framework into EPICS Australian Synchrotron Classes of this document provides the details of each of the classes EPICS Community provides the C Reference Library, Channel Access and EDM/MEDM screens. Qt provides the GUI Framework required for building software under Windows and main objectives of this project are: will make available required aspects of the EPICS C Reference Library to C++ and Qt. enable Qt Widgets to be EPICS Channel Access aware. will be written to standardise the appearance and base features of all Australian Synchrotron GUIs. This will be used as the template base form for creating application will be written in Qt. This will allow User Interface definitions including CA aware widgets to be viewed by users. Figure 1 - Project Overview Diagram Description Developing Qt GUIs for use in the facility. source code available for Qt-EPICS CA API. of this document provides the details of each of the classes provides the C Reference Library, Channel Access (CA) ilding software under Windows and will make available required aspects of the EPICS C Reference Library to C++ and Qt. will be written to standardise the appearance and base features of all Australian Synchrotron GUIs. This will be used as the template base form for creating facility-wide allow User Interface definitions including
  6. 6. EPICSQt Design Specification 2 Australian Synchrotron 2.1 AS Core EPICS Classes The CaObject and QCaObject as well as other supporting classes will be responsible for making the EPICS C Reference Library available in C++. 2.1.1 CaObject Class The CaObject base class will provide While available to the developer, it based QCaObject class. It will be While the CaObject class will hide simplify CA access. All CA call encapsulated in the ‘generic’ class th stored in the native CA record. 2.1.2 QCaObject Class The QcaObject class will provide such as link status, connections and channels. CaObject class. Data can be written using status information as required. Qt data types data. 2.2 AS Middle-Layer Classes The QCaObject class will send and receive sources of data require a specific Middle layer classes provide wrappers for the QCaO type. 2.2.1 QCaString The QCaString class will be a s string data regardless of the underlying EPICS data. representation of EPICS data i 2.2.2 QCaInteger QCaInteger will be the integer specific wrapper for data regardless of the underlying EPICS data. of EPICS data is required. For example, a slider control 2.2.3 QCaFloat The QCaFloat class will be a float specific wrapper for write float data regardless of the underlying EPICS data. representation of EPICS data is r 2.3 AS EPICS Application Layer Widgets Widget classes will be provided to allow CA aware controls to be added to a GUI. 2.3.1 QCaLabel A CA aware Label Widget will be Australian Synchrotron Classes Object and QCaObject as well as other supporting classes will be responsible for making the EPICS C Reference Library available in C++. will provide a C++ wrapper around the EPICS Channel Access ( While available to the developer, it will be written mainly to provide a level of abstraction within the Qt will be recommended to be used where a Qt framework is not av will hide little CA functionality, it will use object oriented techniques to simplify CA access. All CA call-backs will be routed through a single pure virtual function. Data encapsulated in the ‘generic’ class that provides functions for extracting and interpreting the data stored in the native CA record. will provide full access to EPICS data while hiding most CA specific functionality such as link status, connections and channels. The QcaObject class will add Qt functionali CaObject class. Data can be written using Qt slots and Qt signals which will be avai status information as required. Qt data types will be used directly, or as the base class for all EPICS lasses ct class will send and receive data in the form of a QtVariant. Many consumers or specific data type and will not be able to interpret every EPICS data type. Middle layer classes provide wrappers for the QCaObject to convert the data to and a string wrapper for QCaObject variant data. This class will read or write string data regardless of the underlying EPICS data. This class will be used when a textual tion of EPICS data is required. For example, a text-edit control widget. nteger specific wrapper for QCaObject. This class will read or writ ss of the underlying EPICS data. This class will be used when an integer representation of EPICS data is required. For example, a slider control widget. The QCaFloat class will be a float specific wrapper for QCaObject variant data. This class will read or write float data regardless of the underlying EPICS data. This class will be used when a float representation of EPICS data is required. For example, a text-edit control widget. EPICS Application Layer Widgets provided to allow CA aware controls to be added to a GUI. will be inherited from the standard Qt Label Widget. Object and QCaObject as well as other supporting classes will be responsible for making the EPICS Channel Access (CA) Library. written mainly to provide a level of abstraction within the Qt recommended to be used where a Qt framework is not available. use object oriented techniques to routed through a single pure virtual function. Data will be at provides functions for extracting and interpreting the data full access to EPICS data while hiding most CA specific functionality Qt functionality to the available for data and used directly, or as the base class for all EPICS data in the form of a QtVariant. Many consumers or every EPICS data type. bject to convert the data to and from one specific This class will read or write used when a textual This class will read or write integer used when an integer representation This class will read or This class will be used when a float provided to allow CA aware controls to be added to a GUI.
  7. 7. EPICSQt Design Specification 2.3.2 QCaLineEdit A CA aware Line Edit Widget 2.3.3 QCaPushButton A CA aware Push Button Widget 2.3.4 QCaSlider A CA aware Slider Widget will be 2.3.5 QCaSpinBox A CA aware Spin-box Widget 2.3.6 QCaShape A CA aware Shape Widget will be 2.3.7 GuiPushButton A push button, based on the standard Qt Push Button Widget, Widget. 2.3.8 CmdPushButton A push button, based on the standard Qt Push Button Widget, command. 2.3.9 QCaCombo A CA aware Combo-box Widget 2.3.10 ASguiForm A Form Widget, based on the standard Qt Form will be inherited from the standard Qt Line Edit Widget A CA aware Push Button Widget will be inherited from the standard Qt PushButton Widget. will be inherited from the standard Qt Slider Widget. will be inherited from the standard Qt Spin-box Widget. will be inherited from the standard Qt Shape Widget. A push button, based on the standard Qt Push Button Widget, will be used to open a new A push button, based on the standard Qt Push Button Widget, will be used to run x Widget will be based on the standard Qt Combo Box Widget. on the standard Qt Form widget, will be able to read in a Qt User Interface file inherited from the standard Qt Line Edit Widget. inherited from the standard Qt PushButton Widget. ox Widget. used to open a new ASguiForm used to run an operating system on the standard Qt Combo Box Widget. read in a Qt User Interface file.
  8. 8. EPICSQt Design Specification 2.4 AS IDE Design-Time Widgets All new Widgets specified in this design within the Qt Designer application, or by any other application that Available design-time plug-ins are as follows: IDE Plug-in QCaLabelPlugin QCaLineEditPlugin QCaPushButtonPlugin GuiPushButtonPlugin CmdPushButtonPlugin QCaShapePlugin QCaSliderPlugin QCaSpinBoxPlugin QCaComboBoxPlugin ASguiFormPlugin Time Widgets specified in this design will have plug-in wrappers to allow the widgets to be used within the Qt Designer application, or by any other application that will use a Qt plug ins are as follows: in Base Widget QCaLabelPlugin QCaLabel QCaLineEditPlugin QCaLineEdit QCaPushButtonPlugin QCaPushButton GuiPushButtonPlugin GuiPushButton CmdPushButtonPlugin CmdPushButton QCaShapePlugin QCaShape QCaSliderPlugin QCaSlider QCaSpinBoxPlugin QCaSpinBox QCaComboBoxPlugin QCaComboBox ASguiFormPlugin ASguiForm Table 2 - Design-Time Plug-ins wrappers to allow the widgets to be used plug-in.

×