SlideShare a Scribd company logo
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
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
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
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.
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
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.
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.
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.

More Related Content

PDF
Epics Qt requirements specification
PDF
FinalYearReport_Angel_Francos-2_PDF-2
PDF
#VirtualDesignMaster 3 Challenge 4 - Steven Viljoen
PDF
Samsung mdf admin guide v6.3
PDF
Install
PDF
Oep100301 lte radio network design issue 1.00
PDF
Aplplication server instalacion
Epics Qt requirements specification
FinalYearReport_Angel_Francos-2_PDF-2
#VirtualDesignMaster 3 Challenge 4 - Steven Viljoen
Samsung mdf admin guide v6.3
Install
Oep100301 lte radio network design issue 1.00
Aplplication server instalacion

Similar to Epics Qt design specification (20)

PDF
Documentation - Element and ElementVector
ODT
Using Open Source Tools For STR7XX Cross Development
PDF
Evaluation of Real-Time Communication in IoT Services by WebRTC
PDF
Ateji PX manual
PDF
PEPPOL eInvoicing Pilot Specifications
PDF
ATOLL 2.8. user guide user guide user guide
PDF
Project final report
PDF
Product description vital qip next generation v7 2_en_feb09(1)
PDF
Bsis planning guidelines_and_design_standards_10-10-07
PDF
Software requirements specifications wp2
PDF
User manual for Well Plotter 1.0
PDF
Specification skt cna ssx2-rc 20160821
PDF
Orangescrum Time Log Gold add-on User Manual
PDF
Connector python-en.a4
PDF
Embedded Systems Design With The Atmel Avr Microcontroller Steven Barrett
PDF
Version 2 1 interface SIP FFTelecoms pour interconnexion voix (version clean)
PDF
Core i7-900-ee-and-desktop-processor-series-32nm-datasheet-vol-1
PDF
AVD & FDS Proposal
PDF
Amcrest cgi sdk_api_3
PDF
thesis
Documentation - Element and ElementVector
Using Open Source Tools For STR7XX Cross Development
Evaluation of Real-Time Communication in IoT Services by WebRTC
Ateji PX manual
PEPPOL eInvoicing Pilot Specifications
ATOLL 2.8. user guide user guide user guide
Project final report
Product description vital qip next generation v7 2_en_feb09(1)
Bsis planning guidelines_and_design_standards_10-10-07
Software requirements specifications wp2
User manual for Well Plotter 1.0
Specification skt cna ssx2-rc 20160821
Orangescrum Time Log Gold add-on User Manual
Connector python-en.a4
Embedded Systems Design With The Atmel Avr Microcontroller Steven Barrett
Version 2 1 interface SIP FFTelecoms pour interconnexion voix (version clean)
Core i7-900-ee-and-desktop-processor-series-32nm-datasheet-vol-1
AVD & FDS Proposal
Amcrest cgi sdk_api_3
thesis
Ad

More from Robert-Emmanuel Mayssat (20)

PDF
Alarm management at DeltaV
PDF
Beast alarm guideline_2013
PDF
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
PDF
CSS - Alarm Management System (AMS)
PDF
Honeywell - Alarm management standards taken seriously
PDF
Sample Beamline Scientist Job Description
PDF
Sample GUI Style Guide
PDF
ALH user guide 1.2.33 (May 2013)
PDF
CSS Alarm Handler (BEAST) 2009
PDF
Storytelling for startups
PDF
The New Soft-IOC Based alarm handler at the SNS
PDF
Manual of the CSS Alarm Handler (Beast)
PDF
BEST, the CSS Alarm Handler - Performance Testing
PDF
CSS Alarm Handling
PDF
BEAST - CSS Alarm Handler Performance Tests
PDF
Web browser design template
PDF
Ipad design template
PDF
Iphone 5 design template
PDF
Pitch anything webinar
PPTX
Qtc managed-runtimes
Alarm management at DeltaV
Beast alarm guideline_2013
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS - Alarm Management System (AMS)
Honeywell - Alarm management standards taken seriously
Sample Beamline Scientist Job Description
Sample GUI Style Guide
ALH user guide 1.2.33 (May 2013)
CSS Alarm Handler (BEAST) 2009
Storytelling for startups
The New Soft-IOC Based alarm handler at the SNS
Manual of the CSS Alarm Handler (Beast)
BEST, the CSS Alarm Handler - Performance Testing
CSS Alarm Handling
BEAST - CSS Alarm Handler Performance Tests
Web browser design template
Ipad design template
Iphone 5 design template
Pitch anything webinar
Qtc managed-runtimes
Ad

Recently uploaded (20)

PDF
composite construction of structures.pdf
PDF
R24 SURVEYING LAB MANUAL for civil enggi
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Sustainable Sites - Green Building Construction
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
Lecture Notes Electrical Wiring System Components
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPT
Mechanical Engineering MATERIALS Selection
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Well-logging-methods_new................
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
additive manufacturing of ss316l using mig welding
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
composite construction of structures.pdf
R24 SURVEYING LAB MANUAL for civil enggi
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
Sustainable Sites - Green Building Construction
Automation-in-Manufacturing-Chapter-Introduction.pdf
Lecture Notes Electrical Wiring System Components
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Mechanical Engineering MATERIALS Selection
bas. eng. economics group 4 presentation 1.pptx
Well-logging-methods_new................
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
additive manufacturing of ss316l using mig welding
Embodied AI: Ushering in the Next Era of Intelligent Systems
UNIT-1 - COAL BASED THERMAL POWER PLANTS
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Foundation to blockchain - A guide to Blockchain Tech

Epics Qt design specification

  • 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. 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. 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. 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. 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. 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. 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. 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.