EPICS Qt Framework - Accelerator Tech...2016/02/11 · EPICS Qt Framework Andrew Starritt 1 Brief...
Transcript of EPICS Qt Framework - Accelerator Tech...2016/02/11 · EPICS Qt Framework Andrew Starritt 1 Brief...
EPICS Qt Framework
Andrew Starritt
1
Brief History
• Up-to 2009
• The Australian Synchrotron using a mixture of :
• EDM - accelerator
• MEDM - beamlines
• Delphi - accelerator/some beamlines
• MatLab & LabView also used but more for analysis rather than control.
• 2009
• Project started to consider alternatives.
• Qt chosen
• Some basic development • No real backing from the facility
• Left on the back burner.
Brief History - 2012
• A GUI working group formed to “assess the way forward for GUIs especially with respect to new beamlines”:
• Selection criteria:
• Cross platform
• Open source (development/runtime)
• Drag - drop development capability
• Channel Access capable, or capability can be developed
• Good development environment
• No obscure tool required
• Good community support with increasing user base
• Non interactive (headless build) capability
• How well can it do what the current GUIs already do.
• Scalable (large as well as small and quick).
• Extendable widget set.
Brief History - 2012
• The following frameworks were assessed:
• Qt, CSS/BOY, AS Delphi, EDM, MEDM, LabView, IDL, MatLab,
Python/Wx and GDA
• And the winner is…
Brief History - 2012
• In fact it was essentially a tie between Qt and CSS/BOY
• Delphi came 3rd, and the rest were none contenders.
• CSS/BOY seemed to be the leading contender in the EPICS community, and the group was favoring the CSS/BOY approach for that reason alone.
• Just at that time, Andrew Johnson, wrote on tech-talk “a call for expressions of interest in a collaboration to develop tools and technologies based on the QT toolkit”
• Huge positive response to this posting.
• Large Qt support base in the community
• Qt workshop planned for next EPICS collaboration meeting (April)
• Andrew Rhyder invited to attend and provide introductory training.
• 7 sites already using Qt in some fashion
• The Australian Synchrotron framework regarded as most comprehensive and well placed to fulfill user base wish list.
What type of EPICSQt user are you
• I don’t want to code – EPICSQt allows you to develop displays and present
them in a single tool that can be customised to support requirements beyond just display presentation.
• I have a bit of very specific functionality – Specialist widgets can be written and added to the standard mix of
widgets.
• I have specialist application code. – EPICSQt widgets can be included in any Qt based application.
6
Designing a GUI application
• Traditional control system
synoptic display applications
provide components for building
a view of the control system.
• EPICSQt supports user
requirements beyond a simple
view of the control system.
7
EPICSQt provides support for:
• Modelling views of EPICS control systems. (bread and butter of synoptic displays)
• User level based access to GUIs and control of GUI behaviour.
• Managing user configurations.
• Managing experimental configurations.
• Managing workflow.
8
EPICSQt Tools
• Designer – Qt’s Form designer. Creates GUIs
• QEGui – EPICS Qt’s GUI presenter
9
EPICSQt Tools – Qt Designer
• Used to create displays
• Form designer for the Qt Application Development Environment
• Typical of many modern form designers – Drag and drop components onto a form
– Graphically set up relationships between components when required
• Forms created by Qt’s Designer can be used
– When developing Qt based C++ applications
– For specialist widgets
– As EPICS Qt GUIs
• Qt forms are XML based .ui files
10
EPICSQt Tools – Qt Designer
You supply design requirements:
• GUI structure. – Resizable, or fixed size forms?
– Scroll bars, or will forms stretch and contract to fill available space?
– Common sub forms?
• Application design – Custom application menus to help
with work flow or processes?
– Different views for different user groups?
11
EPICSQt Tools – Qt Designer
EPICSQt supplies:
• Generic template forms (currently limited to geobrick, area detector – but QEImage)
• Dozens of widgets including: – EPICSQt Widgets focused on
EPICS control systems
– EPICSQt Widgets focused on application support
– Qt wigets for general form design
12
Video
13
Basic EPICSQt Monitor Widgets
• QELabel
– Displays values
– Colour coded alarm state
– Can include EGU meta data
– Can use recommended precision
14
Basic EPICSQt Monitor Widgets
• QEAnalogProgressBar
– Two flavours
• Bar
• Meter
• QEBitStatus
15
Basic EPICSQt Input Widgets
• QELineEdit
• QENumericEdit
• QEComboBox
16
Basic EPICSQt Button Widgets
• QEPushButton
– Can call system command
– Can open related display
• QERadioButton
• QECheckBox
17
Basic EPICSQt Widgets
• QERadioGroup
18
EPICSQt Tools – QEGui
• A viewer of GUIs generated using Qt Designer
• Application focused
– Customisable
– User levels
– Configuration Save/Restore
– Built in tools
– Scaling • Not restricted to EPICS Qt
widgets
19
EPICSQt Tools – QEGui
Built in tools (also widgets in own right)
• PV Properties
• Strip chart
• Scratch pad
• Message log
• Plotter
• PV Load/Save
• Archiver status and name search
20
QE Gui Built in Tools
QE Gui Built in Tools – Strip Chart
QE Gui Built in Tools – Scratch Pad
QE Gui Built in Tools - Plotter
QE Gui Built in Tools PV Load/Save
QE Gui Built in Tools – Archiver Status
QE Gui Built in Tools – Name Search
Specialist Widgets
• Additional specialist widgets can be written and made
available to Designer.
– Can be totally bespoke
– Based on an existing widget; and/or
– Include other already existing widgets.
Specialist Widgets - Example
Specialist Applications
• Easily written – QUiLoader does all the hard work.
– A display manager can service as many/few widgets requests as it
sees fit.
• I have prototyped a display manager to replace the Delphi
GUI
• Command line EPICS Qt applications also available
– qemonitor - essentially camonitor – proof of concept
– qerad – allows archives to be interogated
Specialist Applications - Example
Other tools
• PSI have produced caQtDM
– Comprises an .adl to .ui converter plus display manager.
– Widgets specially designed to mimic the MEDM widget set.
– Allows PSI to leverage of existing and extensive set of display files.
Way Forward – Happening now
• Lyncean (US) have been award a $1M grant for Qt/EPICS development
– Andrew Rhyder currently in US together with representatives from PSI and Emmanuel Mayssat to discuss merging EPICSQt and caQtDM.
– Single (web site) point of access for both systems
– Unified widget grouping within designer
– Hooks in either display manager to allow the other’s widgets to be “activated”.
– Merge or “cross connect” context menus
Way Forward – more tentative
• Python binding to QE Widgets – planned
• EPICS v4 – no immediate plans.
• Converters
– I have prototyped a basic Delphi .dfm to .ui converter
• Currently does 70% of the work
• Would like to get to 90%
– Would like to find/create and EDM to Qt converter.
• The AS accelerator GUIs have a significant number of EDM displays.
Automatic conversion - original
35
Automatic Conversion – EPICS Qt
36
EPICSQt Setup
• Available at SourceForge
– http://sourceforge.net/projects/epicsqt/
• Download windows package and run
• Or download Linux RPM, install and run
• Or download source, build and run on either platform.
• Prerequisites:
– EPICS, Qt, qwt.
37
EPICSQt Documentation
• Getting started – An overview of the ways EPICSQt can be
used and a technical summary of the various usage styles.
• Setup guide – Various ways of obtaining and installing
EPICSQt.
• User guide – QEGui – the GUI presenter application
– Widgets – the components used to build GUIs.
38
ACKNOWLEDGMENTS
39
Andrew Rhyder Ricardo Fernandes Glenn Jackson Anthony Owen
Last slide
Thank you for your
attention