epics qt framework - accelerator tech...2016/02/11  · epics qt framework andrew starritt 1 brief...

40
EPICS Qt Framework Andrew Starritt 1

Upload: others

Post on 25-Jul-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

EPICS Qt Framework

Andrew Starritt

1

Page 2: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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.

Page 3: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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.

Page 4: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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…

Page 5: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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.

Page 6: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 7: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 8: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 9: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

EPICSQt Tools

• Designer – Qt’s Form designer. Creates GUIs

• QEGui – EPICS Qt’s GUI presenter

9

Page 10: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 11: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 12: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 13: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Video

13

Page 14: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Basic EPICSQt Monitor Widgets

• QELabel

– Displays values

– Colour coded alarm state

– Can include EGU meta data

– Can use recommended precision

14

Page 15: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Basic EPICSQt Monitor Widgets

• QEAnalogProgressBar

– Two flavours

• Bar

• Meter

• QEBitStatus

15

Page 16: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Basic EPICSQt Input Widgets

• QELineEdit

• QENumericEdit

• QEComboBox

16

Page 17: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Basic EPICSQt Button Widgets

• QEPushButton

– Can call system command

– Can open related display

• QERadioButton

• QECheckBox

17

Page 18: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Basic EPICSQt Widgets

• QERadioGroup

18

Page 19: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 20: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 21: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools

Page 22: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools – Strip Chart

Page 23: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools – Scratch Pad

Page 24: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools - Plotter

Page 25: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools PV Load/Save

Page 26: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools – Archiver Status

Page 27: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

QE Gui Built in Tools – Name Search

Page 28: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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.

Page 29: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Specialist Widgets - Example

Page 30: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 31: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Specialist Applications - Example

Page 32: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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.

Page 33: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 34: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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.

Page 35: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Automatic conversion - original

35

Page 36: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Automatic Conversion – EPICS Qt

36

Page 37: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 38: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

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

Page 39: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

ACKNOWLEDGMENTS

39

Andrew Rhyder Ricardo Fernandes Glenn Jackson Anthony Owen

Page 40: EPICS Qt Framework - Accelerator Tech...2016/02/11  · EPICS Qt Framework Andrew Starritt 1 Brief History • Up-to 2009 • The Australian Synchrotron using a mixture of : • EDM

Last slide

Thank you for your

attention