qt epics development framework - cern · the qca framework provides a qt based c++ framework for...

1
Australian Synchrotron Qt EPICS Development Framework A. Rhyder, A. Owen, G. Jackson QCa. A cross-platform application and GUI framework based on Qt for accessing EPICS data using Channel Access. The QCa framework provides a Qt based C++ framework for easy CA access to EPICS data. It provides access to EPICS data at several levels from programmatic reading and writing of data using Qt’s signals and slots through to EPICS aware Qt user interface plugins such as push buttons, sliders, and text widgets. Rich, robust, intuitive, form editor Allows interaction with MEDM / EDM and other applications Integration with other Qt plugins Any application that can load Qt UI files can display EPICS GUIs Code rich GUI development Use existing EPICS display and control widgets for rapid and consistant development Develop speciality EPICS widgets using Qt friendly EPICS data classes Include as much or as little application specific code as required Console app development Full access to EPICS data Hides most CA specific functionality unless required Qt signals and slots used for data reading and writing QCa Framework AsGui Console Applications Widget based GUI Applications Other plugin based GUI Applications Datatype Independent EPICS Access: QCaString QCaInteger QCaFloating EPICS Aware Qt Widgets: QCaLabel QCaLineEdit QCaPushButton QCaShape QSpinBox QCaSlider QCaComboBox QCaPlot EPICS Aware Qt Plugins: QCaLabelPlugin QCaLineEditPlugin QCaPushButtonPlugin QCaShapePlugin QCaSpinBoxPlugin QCaSliderPlugin QCaPlotPluginPlugin QCaComboBoxPluginPlugin CA Library C++ CA Library Access: CaObject GUI Support Qt Widgets: CmdPushButton GuiPushButton AsGuiForm Link GUI Support Qt Plugins : CmdPushButtonPlugin GuiPushButtonPlugin AsGuiFormPlugin LinkPlugin User Interface Files Qt Designer Type of access to CA data C++ access to the CA library. Qt based access to CA. Data type independent access. EPICS aware graphical widgets. EPICS aware graphical Qt plugins. GUI support widgets Functionality Provides convenient C++ access to the CA library. Hides CA specific functionality. Adds Qt func- tionality such as signals and slots. Hides EPICS data types, providing read and write conversions where required. Implements graphical Qt based widgets that provide access to EPICS data. Adds Qt plugin interfaces to EPICS aware widgets. Implements Qt based widgets that support control system GUIs. These widgets do not access the CA library. Main classes CaObject QCaObject QCaInteger QCaString QCaFloating QCaLabel QCaLineEdit QCaPushButton QCaShape QCaSlider QCaSpinBox QCaComboBox QCaPlot QCaLabelPlugin QCaLineEditPlugin QCaPushButtonPlugin QCaShapePlugin QCaSliderPlugin QCaSpinBoxPlugin QCaCoomboBoxPlugin QCaPlotPlugin AsGuiForm GuiPushButton CmdPushButton Link Typical QCa class usage Framework available for download at: http://sourceforge.net/projects/epicsqt/ Code Free GUI development

Upload: others

Post on 25-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Qt EPICS Development Framework - CERN · The QCa framework provides a Qt based C++ framework for easy CA access to EPICS data. It provides access to EPICS data at several levels from

Australian Synchrotron

Qt EPICS Development FrameworkA. Rhyder, A. Owen, G. Jackson

QCa. A cross-platform application and GUI framework based on Qt for accessing EPICS data using Channel Access.

The QCa framework provides a Qt based C++ framework for easy CA access to EPICS data. It provides access to EPICS data at several levels from programmatic reading and writing of data using Qt’s signals and slots through to EPICS aware Qt user interface plugins such as push buttons, sliders, and text widgets.

• Rich, robust, intuitive, form editor• Allows interaction with MEDM / EDM and other applications• Integration with other Qt plugins• Any application that can load Qt UI �les can display EPICS GUIs

Code rich GUI development

• Use existing EPICS display and control widgets for rapid and consistant development• Develop speciality EPICS widgets using Qt friendly EPICS data classes• Include as much or as little application speci�c code as required

Console app development

• Full access to EPICS data• Hides most CA specific functionality unless required• Qt signals and slots used for data reading and writing

Qt Framework

QCa Framework

AsGui

Console Applications

Widget based GUI Applications

Other plugin based GUI Applications

Datatype Independent EPICS Access:QCaStringQCaIntegerQCaFloating

EPICS Aware Qt Widgets:QCaLabel

QCaLineEditQCaPushButton

QCaShapeQSpinBoxQCaSlider

QCaComboBoxQCaPlot

EPICS Aware Qt Plugins:QCaLabelPlugin

QCaLineEditPluginQCaPushButtonPlugin

QCaShapePluginQCaSpinBoxPluginQCaSliderPlugin

QCaPlotPluginPluginQCaComboBoxPluginPlugin

CA Library

C++ CA Library Access: CaObject

GUI Support Qt Widgets:CmdPushButtonGuiPushButton

AsGuiFormLink

GUI Support Qt Plugins

:CmdPushButtonPluginGuiPushButtonPlugin

AsGuiFormPluginLinkPlugin

User Interface Files

Qt Designer

Type of access to CA dataC++ access to the CA library.

Qt based access to CA.

Data type independent access.

EPICS aware graphical widgets.

EPICS aware graphical Qt plugins.

GUI support widgets

Functionality

Provides convenient C++ access to the CA library.

Hides CA specific functionality. Adds Qt func-tionality such as signals and slots.

Hides EPICS data types, providing read and write conversions where required.

Implements graphical Qt based widgets that provide access to EPICS data.

Adds Qt plugin interfaces to EPICS aware widgets.

Implements Qt based widgets that support control system GUIs. These widgets do not access the CA library.

Main classes

CaObject

QCaObject

QCaIntegerQCaStringQCaFloating

QCaLabelQCaLineEditQCaPushButtonQCaShapeQCaSliderQCaSpinBoxQCaComboBoxQCaPlot

QCaLabelPluginQCaLineEditPluginQCaPushButtonPluginQCaShapePluginQCaSliderPluginQCaSpinBoxPluginQCaCoomboBoxPluginQCaPlotPlugin

AsGuiFormGuiPushButtonCmdPushButtonLink

Typical QCa class usage

Framework available for download at:http://sourceforge.net/projects/epicsqt/

Code Free GUI development