Introduction
Tested Build and Run Environments
Build caQtDM and EPICS Qt on CentOs
Run EPICS Qt with caQtDM ui forms
Advantages
This page provides information regarding the integration of PSI’s caQtDM functionality into the EPICS Qt framework’s diaplay manager: QeGui.
caQtDM is developed by PSI who state: “caQtDM offers a collection of special widgets in order to display and control system data in various ways. The widgets have been inspired from the well known MEDM package used at many EPICS sites”. It is one of very mature Qt-based Display Managers. In order to get benefits from PSI’s caQtDM, we have integrated the caQtDM functionality into our EPICS Qt Display Manager: Qegui Application.
The aim of this integration is to allow EPICS Qt users to design UI forms using both of PSI’s caQtDM widgets and EPICS Qt widgets. Now QeGui of EPICS Qt is able to display Qt ui forms generated by adl2ui conversion tool from PSI’s caQtDM.
Please note: we have dropped support for caQtDM version 3, and cuurently support only version 4.
The caQtDM and EPICS Qt have been built, run and tested with the following sets of software versions.
No. | OS | QT | EPICS Base | QWT | caQtDM | EPICS Qt |
---|---|---|---|---|---|---|
1 | Linux Centos 7.3 | Qt 5.8 | EPICS 3.15.5 | Qwt 6.1.3 | caQtDM 4.2.4 | EPICS Qt 3.7.2 |
2 | Linux Centos 7.7 | Qt 5.10 | EPICS 7.0.3 | Qwt 6.1.3 | caQtDM 4.2.4 | EPICS Qt 3.7.2 |
Note: Other combinations of software versions might work as well but we haven’t tried them yet.
1 Download caQtDM4.2.4 from https://github.com/caqtdm/caqtdm/releases
2 Environment variables setup:
Update caQtDM_Env file in the caQtDM root directory: <your location>/caQtDM4.2.4/
Tips: only update the followings for this integration purpose based on your software environment. The following show values as an illustrative example only. Please set these value to suit your local environment.
QTHOME=/opt/Qt/5.8; # update your Qt location
QWTHOME=/usr/local/qwt-6.1.3; # update your Qwt location
QWTINCLUDE=/usr/local/qwt-6.1.3/include; # update your Qwt include location
QWTVERSION=6.1.3; # update your Qwt version
EPICS_BASE=/home/guest/Downloads/base-3.15.5; # update your epics base location
EPICS_HOST_ARCH=linux-x86_64; # add your ARCH if not defined
PYTHONVERSION=2.7; # update your python version location <br>
3 Build
Go to the caQtDM root directory: <your location>/caQtDM4.2.4/
and run Build cmd: ./caQtDM_BuildAll.
4 Test Run caQtDM:
Run cmd: ./startDM_Local
and the following window screen will be pop up
5 Reference information: http://epics.web.psi.ch/software/caqtdm/howto.html
1 Follow the build documentation:
Download and Build section in https://qtepics.github.io/getting_started.html
2 Set two ADDITIONAL environment variables before building EPICS Qt display manager QeGui:
export QE_CAQTDM=<your location>/caqtdm-4.2.4 # define your caQtDM root
export QE_CAQTDM_MAJOR_VERSION=4 # the caQtDM version
3 Test Run EPICS Qt
Run cmd: ./qegui -v
QEGui version: 3.7.1 (Production) Nov 4 2019 11:37:18 (using QT 5.10.0)
Framework version: 3.7.1 (Production) Nov 4 2019 12:44:01 (using QT 5.10.0)
Attributes: Archiver Appliance, PV Access, caQtDm integration
Support packages: EPICS 7.0.3, ACAI 1.5.4 and QWT 6.1.3
Library path: /opt/Qt5.10/5.10.0/gcc_64/lib
Plugin path: /opt/Qt5.10/5.10.0/gcc_64/plugins
Note the caQtDm integration in the Attributes line.
4 Now QeGui should be able to view ui forms generated by adl2ui conversion tool provided with from PSI’s caQtDM or ui forms created using both EPICS Qt and caQtDM widgets.
Let’s open a test.ui file from the directory of <your location>/caQtDM4.2.4/caQtDM_Test.
You can see that the caQtDM Demo ui form is loaded in the QeGui application window.
Now you can create a ui form using Qt Designer with both of widget sets. The following screens are shown as a very simple example: The upper one is monitoring using an EPICST Qt QELabel, thee second one monitoring using a PSI caLineEdit.
For EPICS Qt users, you can set a runtime environment variable for getting the familiar face of EPICS Qt context menu on caQtDM widgets.
export QEGUI_CAQTDM_CONTEXT_MENU=1
The following screens are shown that the context menu has been replaced:
1 with PSI caQtDM own context menu.
2 with AS EPICS Qt context menu after setting the above environment variable.
With caQtDm integration enabled, QEGui will connect file open request signals generated by the PSI caQtDm widgets to a slot within QEgui to allow these request to be handled.
1 Open a ui file motors.ui generated by adl2ui from motors.adl
2 Click “More” to open a ui file motors_more.ui generated by adl2ui from motors_more.adl
3 Click “All” to open a ui file motors_all.ui generated by adl2ui from motors_all.adl
Open a ui file SXR-GUI-main.ui generated by edl2ui from SXR-GUI-main.edl
Now EPICS Qt Display Manager (QeGui) is able to view ui forms created using Qt, EPICS Qt and caQtDM widgets.
EPICS Qt Display Manager (QeGui) can be an option to be used for viewing ui forms created using caQtDM widgets. Using EPICS Qt Display Manager, you will get extra application functionality and its built-in EPICS related tools.
Note: Building EPICS Qt with caQtDM will give you extra log messages from
caQtDM system if you run QeGui (EPICS Qt Display Manager) from a console.