SlideShare ist ein Scribd-Unternehmen logo
1 von 3
CAQTDM, AN EPICS DISPLAY MANAGER BASED ON QT
A.C.Mezger, H.Brands, Paul Scherrer Institut, Villigen, Switzerland
ABSTRACT
At the Paul Scherrer Institut (PSI) the display manager
MEDM was used until recently for the synoptic displays
at all our facilities, not only for EPICS but also for
another, in-house built control system ACS. However
MEDM is based on MOTIF and Xt/X11, systems/libraries
that are starting to age. Moreover MEDM is difficult to
extend with new entities. Therefore a new tool has been
developed based on Qt. This reproduces the functionality
of MEDM and is now in use at several facilities. As Qt is
supported on several platforms this tool will also run on
Microsoft Windows. The MEDM data files (.adl) were
used as an initial set for the new system and were
converted into the new xml format using the parser tool
adl2ui. These were then edited further with the Qt-
Designer and displayed with the new Qt-Manager
caQtDM. The integration of new entities into the Qt
designer and therefore into the Qt based applications is
very easy, so that the system can easily be enhanced with
new widgets. New features needed for our facility were
implemented. The caQtDM application uses a C++ class
to perform the data acquisition and display; this class can
also be integrated into other applications.
INTRODUCTION
In the EPICS environment of most accelerator
laboratories graphical synoptic display tools like MEDM,
EDM as well as many others were developed. These tools
have been used for many years with success, but many of
them are currently reaching their end of life due to the
evolution of the graphic platforms. Moreover these in-
house solutions are nearly impossible to maintain and to
extend, because either a developer has to be found for the
older underlying graphic systems or because the systems
are likely to disappear in the near future [1] [2].
A new tool should therefore be independent of the
underlying graphical system and its components have to
be also as much as possible widely supported. The actual
solution for these requirements lies in the world of Qt,
which provides modern graphical support on many
platforms. Qt comes also with its own graphical editor
and a developer can easily add new widgets to it, so that
an open source (LGPL v2.1) solution that can also be
used under commercial terms is available. Most of the
work for rendering the data on the synoptic display is
then represented by the handling of the data acquisition
system.
Figure 1: Qt-Designer editor where the graphical objects are situated on the left and can be dragged on the middle
window for composing a display. The properties of the objects are display in the right corner window.
QT, A GUI FRAMEWORK
Qt framework
Qt represents a cross-platform application framework
that is widely used for developing applications with a
graphical user interface. It runs on the major desktop
platforms on top of their native display system, so that a
Qt-based application will run on these platforms with the
same look and feel. A major advantage of this system lies
in the fact that it is used by a huge community and that
very detailed documentation is available.
Qt comes with many libraries, an integrated
development environment (IDE) Qt-Creator and a user
interface designer Qt-Designer. The Qt libraries are
already included in many Linux distributions, albeit not
always with a version greater than 4.8. Where necessary
newer versions can easily be downloaded and installed. In
addition to the libraries, the Qt-Designer and Qt
development package should also be installed in order to
build graphical user interfaces and Qt-applications.
For Linux all relevant Qt-Packages have to be
downloaded and installed. Afterwards the downloaded
caQtDM package [3] must be build. For Windows, the
windows distribution of caQtDM including EPICS is all
that is needed.
Some third party libraries based on Qt like qwt for 2D
graphics and qwtplot3d for 3D graphics can be integrated
and the caQtDM package uses qwt for drawing strip
charts and x/y Cartesian plots. At PSI qwtplot3d is used
in dedicated applications to display x/y plots as a function
of time and can be integrated in caQtDM if the need for it
arises.
The current version of Qt used at PSI is Qt 4.8.2
Qt-Designer, the graphical user interface
builder of Qt
The Qt-Designer (Fig.1) allows a developer to plug-in
his own graphical objects with their methods and
properties, so that integrating new graphical control
objects is quite easy and will give the user a rich
environment for developing user interfaces. Many
graphical objects have been integrated, not only the
standard MEDM objects like strip plot, cartesian plot,
wheel switch, text monitor, bar monitor, etc. but also
some new objects for camera display, LEDS, toggles,
internal channels and many more.
The include object, called composite widget in MEDM,
can now also be represented in Qt-Designer. This was not
the case in the first versions of the plug-ins as was
presented in earlier communications [4].
The Qt-Designer gives the control display “architect” a
performant interface to draw his displays. It is
straightforward to drag an object into the editor window.
As soon as the object has been placed and resized, the
properties of the object can be edited. The most important
one is of course the process variable (called channel in
EPICS 3). This property may present a variable as in
MEDM that will be replaced by defining a macro at run
time of caQtDM.
Actually 30 control widgets are integrated, these
widgets are not directly CS-aware, but provide the
properties and methods to be used with applications. The
application caQtDM will then add the control information
coming from the control system (usually EPICS).
CAQTDM, THE DISPLAY TOOL
Requirements
caQtDM has been developed with Qt version 4.8.2 qwt
version 6.0.1 and EPICS version 3.14.12 and has been
extensively tested with these versions. Since version 3.2.0
of caQtDM the package can be built also with Qt version
5.1.0 and qwt version 6.1.0. However this version has not
yet been thoroughly tested and a bug in Qt 5.1.0 must be
patched (QTBUG-33130) in order to treat some properties
correctly.
Components
For caQtDM, many C++ classes had to be developed.
First of all, the necessary graphical objects were created.
These objects are pure graphical objects and could be
used for other purposes. The objects are plugged into the
Qt-Designer. With this tool a display description is
written that will be read by the caQtDM_Lib class that
will combine the display definitions with the control
system data. This architecture separates display
definitions and control system data acquisition; we think
that this allows to support multiple control systems in a
clean way. At our site we support simultaneously 2
control systems, EPICS and an older in house made
system ACS. caQtDM uses this class and represents the
stand-alone application for the control synoptic displays.
The architecture of the different components is shown in
figure 2.
In case of GUI applications where more logic and data
treatment is required, the above class can be integrated.
The user does not need to bother about the data
acquisition while provided by the library class. Access to
the display items and data can then be used to enhance the
application with the necessary logic.
At PSI caQtDM supports two control systems, EPICS
and our in-house made control system ACS. Additionally
a skeleton for EPICS4 can be activated by selecting the
appropriate option when building the package. Other
control systems could be easily integrated by filling the
internal data container.
Fig. 2: Architecture of the Qt synoptic display package
The adl2ui tool is included in the installation package to
convert MEDM display files to the caQtDM xml files.
This tool presents an easy and fast path to switch from
MEDM to the new synoptic display tool. However at PSI
we also modify the resulting screens in order to have a
consistent look and behavior. A style guide for developers
has therefore been written for this purpose [4].
For fast prototyping of control displays caQtDM also
supports a restricted set of instructions of our in-house
developed scripting language [5]. This allows us to
display rapidly data in a tabular way (Fig. 3) or print
several representations in a batch manner. This feature is
constantly extended.
DEVELOPING / RENDERING A DISPLAY
It has to be pointed out that the package does not consist
of a single application capable to edit and run the displays
as in other tools like MEDM, EDM,
The toolkit consists of the Qt-Designer as display editor
and caQtDM as display run time tool, the Qt-Designer
being delivered with Qt and supported by Qt.
When developing a control display from scratch, the Qt-
Designer tool is used. The various control objects are
located in the left panel and can be dropped on the user
display situated normally in the center panel.
The properties for the selected object can then be changed
in the property panel. In order to have some default styles
for the control panel a default style sheet should be loaded
for the “mainwindow”, the parent object of the control
display. This style sheet is provided by the package and
its contents can be pasted into the style sheet definition. In
the style sheet you will be able to change some styles, but
one of them represents the background of your control
display that can be changed by specifying the color with
Qwidget#centralWidget {background: rgba(187, 187,
187, 255);}
The most important property of a control object is of
course the process variable (pv) name. In case of some
objects like the strip tool several pv’s can be given
separated by a semi-column. The display rate by default
is 5 Hz and by specifying a JSON string of the following
type after the pv this rate can be modified:
{“monitor”:{“maxdisplayrate”:20}}. This is useful when
displaying camera images or when one really wants to
limit the rate for performance reasons.
Qt-Designer has also a concept of layouts that will not be
described here. Using this feature gives the possibility to
control the resizing of a display. However this feature is
normally not needed, because caQtDM will resize the
control displays hopefully correctly in all cases and will
also respect the user layout behavior.
After or during the development of the control display the
display may be viewed with its control values by the
application caQtDM (Fig 4). This application provides
also a function to reload the already displayed control
panel, so that at any time the panel can be updated.
CONCLUSIONS
Qt-Designer extended by our plug-ins and caQtDM
represents a good control system environment for
developing and rendering control system data displays
and a powerful replacement for the well known MEDM
tool used in the EPICS community. Moreover the tools
are not restricted to EPICS and other control system could
be easily supported.
Also the fact that these tools run on many platforms,
including Microsoft Windows and are not bound any
more to X-Windows, allows the package to be ready for
next generation graphical platforms like Wayland [1] and
Mir [2]. This presents a wide range of platforms and gives
thus the possibility of a rapid deployment of the tools.
ACKNOWLEDGMENT
The authors would like to thank D.Anicic (PSI)
for his valuable comments and A.Luedeke (PSI) as well
as other users for the testing of the caQtDM package.
REFERENCES
[1] Information about Wayland can be found at
http:// wayland.freedesktop.org/
[2] Information about Mir can be found at
http://unity.ubuntu.com/mir/
[3] caQtDM package can be found at
http://epics.web.psi.ch/software/caqtdm/
[4] Epics collaboration meeting at SLAC, spring 2012.
[5] Application development style guide for the SwissFEL,
A.Luedeke, internal PSI communication, August 2009
[6] Pep scripting language manual, W.Portmann, internal PSI
communication.
!grid 2
comment comment -span 1 -bg "#ffffff" " "
XHIPA:TIME formRead
comment comment -span 2 -fg "#ff00ff" Ion Source
IVVH2OF:SOLA:2 formRead %5.2f
IVGF:IST:2 formRead 5.2
#
IVMWFP:SOL:2 formRead %5.0f
IVMWFP:IST:2 formRead %5.0f
Fig. 3: Example of display generated with the scripting language
shown below

Weitere ähnliche Inhalte

Ähnlich wie The caQtDM powerpoint (ICALEPCS 2013)

“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...Design World
 
Ds white papers_caa_radebyexample
Ds white papers_caa_radebyexampleDs white papers_caa_radebyexample
Ds white papers_caa_radebyexampleTrần Đức
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integrationgjuljo
 
Catia product enhancement_overview_v5_r21
Catia product enhancement_overview_v5_r21Catia product enhancement_overview_v5_r21
Catia product enhancement_overview_v5_r21Jimmy Chang
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific ComputingPeter Bryzgalov
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerIOSR Journals
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerIOSR Journals
 
Implementation of embedded arm9 platform using qt and open cv for human upper...
Implementation of embedded arm9 platform using qt and open cv for human upper...Implementation of embedded arm9 platform using qt and open cv for human upper...
Implementation of embedded arm9 platform using qt and open cv for human upper...Krunal Patel
 
Embedded c lab and keil c manual
Embedded  c  lab  and keil c  manualEmbedded  c  lab  and keil c  manual
Embedded c lab and keil c manualHari K
 
A generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemA generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemConference Papers
 
hcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-systemhcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-systemIngrid Fernandez, PhD
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Ankita Tiwari
 
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...IRJET Journal
 

Ähnlich wie The caQtDM powerpoint (ICALEPCS 2013) (20)

“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
“eXtending” the Automation Toolbox: Introduction to TwinCAT 3 Software and eX...
 
Ds white papers_caa_radebyexample
Ds white papers_caa_radebyexampleDs white papers_caa_radebyexample
Ds white papers_caa_radebyexample
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integration
 
Catia product enhancement_overview_v5_r21
Catia product enhancement_overview_v5_r21Catia product enhancement_overview_v5_r21
Catia product enhancement_overview_v5_r21
 
Altera up1
Altera up1Altera up1
Altera up1
 
UDP Report
UDP ReportUDP Report
UDP Report
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Qt for S60
Qt for S60Qt for S60
Qt for S60
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop Computer
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop Computer
 
Implementation of embedded arm9 platform using qt and open cv for human upper...
Implementation of embedded arm9 platform using qt and open cv for human upper...Implementation of embedded arm9 platform using qt and open cv for human upper...
Implementation of embedded arm9 platform using qt and open cv for human upper...
 
Qtframework
QtframeworkQtframework
Qtframework
 
Resume_Pratik
Resume_PratikResume_Pratik
Resume_Pratik
 
VS Code tools for docker
VS Code tools for dockerVS Code tools for docker
VS Code tools for docker
 
Embedded c lab and keil c manual
Embedded  c  lab  and keil c  manualEmbedded  c  lab  and keil c  manual
Embedded c lab and keil c manual
 
Readme
ReadmeReadme
Readme
 
A generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemA generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration system
 
hcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-systemhcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-system
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.
 
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
 

Mehr von Robert-Emmanuel Mayssat

CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010Robert-Emmanuel Mayssat
 
Honeywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriouslyHoneywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriouslyRobert-Emmanuel Mayssat
 
Sample Beamline Scientist Job Description
Sample Beamline Scientist Job DescriptionSample Beamline Scientist Job Description
Sample Beamline Scientist Job DescriptionRobert-Emmanuel Mayssat
 
The New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNSThe New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNSRobert-Emmanuel Mayssat
 
BEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance TestingBEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance TestingRobert-Emmanuel Mayssat
 
BEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance TestsBEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance TestsRobert-Emmanuel Mayssat
 

Mehr von Robert-Emmanuel Mayssat (20)

Alarm management at DeltaV
Alarm management at DeltaVAlarm management at DeltaV
Alarm management at DeltaV
 
Beast alarm guideline_2013
Beast alarm guideline_2013Beast alarm guideline_2013
Beast alarm guideline_2013
 
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
 
CSS - Alarm Management System (AMS)
CSS - Alarm Management System (AMS)CSS - Alarm Management System (AMS)
CSS - Alarm Management System (AMS)
 
Honeywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriouslyHoneywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriously
 
Sample Beamline Scientist Job Description
Sample Beamline Scientist Job DescriptionSample Beamline Scientist Job Description
Sample Beamline Scientist Job Description
 
Sample GUI Style Guide
Sample GUI Style Guide Sample GUI Style Guide
Sample GUI Style Guide
 
ALH user guide 1.2.33 (May 2013)
ALH user guide 1.2.33 (May 2013)ALH user guide 1.2.33 (May 2013)
ALH user guide 1.2.33 (May 2013)
 
CSS Alarm Handler (BEAST) 2009
CSS Alarm Handler (BEAST) 2009CSS Alarm Handler (BEAST) 2009
CSS Alarm Handler (BEAST) 2009
 
Storytelling for startups
Storytelling for startupsStorytelling for startups
Storytelling for startups
 
The New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNSThe New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNS
 
Manual of the CSS Alarm Handler (Beast)
Manual of the CSS Alarm Handler (Beast)Manual of the CSS Alarm Handler (Beast)
Manual of the CSS Alarm Handler (Beast)
 
BEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance TestingBEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance Testing
 
CSS Alarm Handling
CSS Alarm HandlingCSS Alarm Handling
CSS Alarm Handling
 
BEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance TestsBEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance Tests
 
Web browser design template
Web browser design templateWeb browser design template
Web browser design template
 
Ipad design template
Ipad design templateIpad design template
Ipad design template
 
Iphone 5 design template
Iphone 5 design templateIphone 5 design template
Iphone 5 design template
 
Epics Qt design specification
Epics Qt design specificationEpics Qt design specification
Epics Qt design specification
 
Epics Qt requirements specification
Epics Qt requirements specificationEpics Qt requirements specification
Epics Qt requirements specification
 

Kürzlich hochgeladen

TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 

Kürzlich hochgeladen (20)

TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 

The caQtDM powerpoint (ICALEPCS 2013)

  • 1. CAQTDM, AN EPICS DISPLAY MANAGER BASED ON QT A.C.Mezger, H.Brands, Paul Scherrer Institut, Villigen, Switzerland ABSTRACT At the Paul Scherrer Institut (PSI) the display manager MEDM was used until recently for the synoptic displays at all our facilities, not only for EPICS but also for another, in-house built control system ACS. However MEDM is based on MOTIF and Xt/X11, systems/libraries that are starting to age. Moreover MEDM is difficult to extend with new entities. Therefore a new tool has been developed based on Qt. This reproduces the functionality of MEDM and is now in use at several facilities. As Qt is supported on several platforms this tool will also run on Microsoft Windows. The MEDM data files (.adl) were used as an initial set for the new system and were converted into the new xml format using the parser tool adl2ui. These were then edited further with the Qt- Designer and displayed with the new Qt-Manager caQtDM. The integration of new entities into the Qt designer and therefore into the Qt based applications is very easy, so that the system can easily be enhanced with new widgets. New features needed for our facility were implemented. The caQtDM application uses a C++ class to perform the data acquisition and display; this class can also be integrated into other applications. INTRODUCTION In the EPICS environment of most accelerator laboratories graphical synoptic display tools like MEDM, EDM as well as many others were developed. These tools have been used for many years with success, but many of them are currently reaching their end of life due to the evolution of the graphic platforms. Moreover these in- house solutions are nearly impossible to maintain and to extend, because either a developer has to be found for the older underlying graphic systems or because the systems are likely to disappear in the near future [1] [2]. A new tool should therefore be independent of the underlying graphical system and its components have to be also as much as possible widely supported. The actual solution for these requirements lies in the world of Qt, which provides modern graphical support on many platforms. Qt comes also with its own graphical editor and a developer can easily add new widgets to it, so that an open source (LGPL v2.1) solution that can also be used under commercial terms is available. Most of the work for rendering the data on the synoptic display is then represented by the handling of the data acquisition system. Figure 1: Qt-Designer editor where the graphical objects are situated on the left and can be dragged on the middle window for composing a display. The properties of the objects are display in the right corner window.
  • 2. QT, A GUI FRAMEWORK Qt framework Qt represents a cross-platform application framework that is widely used for developing applications with a graphical user interface. It runs on the major desktop platforms on top of their native display system, so that a Qt-based application will run on these platforms with the same look and feel. A major advantage of this system lies in the fact that it is used by a huge community and that very detailed documentation is available. Qt comes with many libraries, an integrated development environment (IDE) Qt-Creator and a user interface designer Qt-Designer. The Qt libraries are already included in many Linux distributions, albeit not always with a version greater than 4.8. Where necessary newer versions can easily be downloaded and installed. In addition to the libraries, the Qt-Designer and Qt development package should also be installed in order to build graphical user interfaces and Qt-applications. For Linux all relevant Qt-Packages have to be downloaded and installed. Afterwards the downloaded caQtDM package [3] must be build. For Windows, the windows distribution of caQtDM including EPICS is all that is needed. Some third party libraries based on Qt like qwt for 2D graphics and qwtplot3d for 3D graphics can be integrated and the caQtDM package uses qwt for drawing strip charts and x/y Cartesian plots. At PSI qwtplot3d is used in dedicated applications to display x/y plots as a function of time and can be integrated in caQtDM if the need for it arises. The current version of Qt used at PSI is Qt 4.8.2 Qt-Designer, the graphical user interface builder of Qt The Qt-Designer (Fig.1) allows a developer to plug-in his own graphical objects with their methods and properties, so that integrating new graphical control objects is quite easy and will give the user a rich environment for developing user interfaces. Many graphical objects have been integrated, not only the standard MEDM objects like strip plot, cartesian plot, wheel switch, text monitor, bar monitor, etc. but also some new objects for camera display, LEDS, toggles, internal channels and many more. The include object, called composite widget in MEDM, can now also be represented in Qt-Designer. This was not the case in the first versions of the plug-ins as was presented in earlier communications [4]. The Qt-Designer gives the control display “architect” a performant interface to draw his displays. It is straightforward to drag an object into the editor window. As soon as the object has been placed and resized, the properties of the object can be edited. The most important one is of course the process variable (called channel in EPICS 3). This property may present a variable as in MEDM that will be replaced by defining a macro at run time of caQtDM. Actually 30 control widgets are integrated, these widgets are not directly CS-aware, but provide the properties and methods to be used with applications. The application caQtDM will then add the control information coming from the control system (usually EPICS). CAQTDM, THE DISPLAY TOOL Requirements caQtDM has been developed with Qt version 4.8.2 qwt version 6.0.1 and EPICS version 3.14.12 and has been extensively tested with these versions. Since version 3.2.0 of caQtDM the package can be built also with Qt version 5.1.0 and qwt version 6.1.0. However this version has not yet been thoroughly tested and a bug in Qt 5.1.0 must be patched (QTBUG-33130) in order to treat some properties correctly. Components For caQtDM, many C++ classes had to be developed. First of all, the necessary graphical objects were created. These objects are pure graphical objects and could be used for other purposes. The objects are plugged into the Qt-Designer. With this tool a display description is written that will be read by the caQtDM_Lib class that will combine the display definitions with the control system data. This architecture separates display definitions and control system data acquisition; we think that this allows to support multiple control systems in a clean way. At our site we support simultaneously 2 control systems, EPICS and an older in house made system ACS. caQtDM uses this class and represents the stand-alone application for the control synoptic displays. The architecture of the different components is shown in figure 2. In case of GUI applications where more logic and data treatment is required, the above class can be integrated. The user does not need to bother about the data acquisition while provided by the library class. Access to the display items and data can then be used to enhance the application with the necessary logic. At PSI caQtDM supports two control systems, EPICS and our in-house made control system ACS. Additionally a skeleton for EPICS4 can be activated by selecting the appropriate option when building the package. Other control systems could be easily integrated by filling the internal data container. Fig. 2: Architecture of the Qt synoptic display package
  • 3. The adl2ui tool is included in the installation package to convert MEDM display files to the caQtDM xml files. This tool presents an easy and fast path to switch from MEDM to the new synoptic display tool. However at PSI we also modify the resulting screens in order to have a consistent look and behavior. A style guide for developers has therefore been written for this purpose [4]. For fast prototyping of control displays caQtDM also supports a restricted set of instructions of our in-house developed scripting language [5]. This allows us to display rapidly data in a tabular way (Fig. 3) or print several representations in a batch manner. This feature is constantly extended. DEVELOPING / RENDERING A DISPLAY It has to be pointed out that the package does not consist of a single application capable to edit and run the displays as in other tools like MEDM, EDM, The toolkit consists of the Qt-Designer as display editor and caQtDM as display run time tool, the Qt-Designer being delivered with Qt and supported by Qt. When developing a control display from scratch, the Qt- Designer tool is used. The various control objects are located in the left panel and can be dropped on the user display situated normally in the center panel. The properties for the selected object can then be changed in the property panel. In order to have some default styles for the control panel a default style sheet should be loaded for the “mainwindow”, the parent object of the control display. This style sheet is provided by the package and its contents can be pasted into the style sheet definition. In the style sheet you will be able to change some styles, but one of them represents the background of your control display that can be changed by specifying the color with Qwidget#centralWidget {background: rgba(187, 187, 187, 255);} The most important property of a control object is of course the process variable (pv) name. In case of some objects like the strip tool several pv’s can be given separated by a semi-column. The display rate by default is 5 Hz and by specifying a JSON string of the following type after the pv this rate can be modified: {“monitor”:{“maxdisplayrate”:20}}. This is useful when displaying camera images or when one really wants to limit the rate for performance reasons. Qt-Designer has also a concept of layouts that will not be described here. Using this feature gives the possibility to control the resizing of a display. However this feature is normally not needed, because caQtDM will resize the control displays hopefully correctly in all cases and will also respect the user layout behavior. After or during the development of the control display the display may be viewed with its control values by the application caQtDM (Fig 4). This application provides also a function to reload the already displayed control panel, so that at any time the panel can be updated. CONCLUSIONS Qt-Designer extended by our plug-ins and caQtDM represents a good control system environment for developing and rendering control system data displays and a powerful replacement for the well known MEDM tool used in the EPICS community. Moreover the tools are not restricted to EPICS and other control system could be easily supported. Also the fact that these tools run on many platforms, including Microsoft Windows and are not bound any more to X-Windows, allows the package to be ready for next generation graphical platforms like Wayland [1] and Mir [2]. This presents a wide range of platforms and gives thus the possibility of a rapid deployment of the tools. ACKNOWLEDGMENT The authors would like to thank D.Anicic (PSI) for his valuable comments and A.Luedeke (PSI) as well as other users for the testing of the caQtDM package. REFERENCES [1] Information about Wayland can be found at http:// wayland.freedesktop.org/ [2] Information about Mir can be found at http://unity.ubuntu.com/mir/ [3] caQtDM package can be found at http://epics.web.psi.ch/software/caqtdm/ [4] Epics collaboration meeting at SLAC, spring 2012. [5] Application development style guide for the SwissFEL, A.Luedeke, internal PSI communication, August 2009 [6] Pep scripting language manual, W.Portmann, internal PSI communication. !grid 2 comment comment -span 1 -bg "#ffffff" " " XHIPA:TIME formRead comment comment -span 2 -fg "#ff00ff" Ion Source IVVH2OF:SOLA:2 formRead %5.2f IVGF:IST:2 formRead 5.2 # IVMWFP:SOL:2 formRead %5.0f IVMWFP:IST:2 formRead %5.0f Fig. 3: Example of display generated with the scripting language shown below