qtepics.github.io

PSI’s caQtDM Integration


Introduction
Tested Build and Run Environments
Build caQtDM and EPICS Qt on CentOs
Run EPICS Qt with caQtDM ui forms
Advantages

Introduction

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.

Tested Build and Run Environments

Software Versions:

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.

Building caQtDM and EPICS Qt on CentOs

caQtDM:

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

caQtDM

5 Reference information: http://epics.web.psi.ch/software/caqtdm/howto.html

EPICS Qt:

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.

TestDemo

Run EPICS Qt with caQtDM ui forms

Open UI Form with a mix of caQtDM and EPICS Qt Widgets:

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.

mix

Replace caQtDM widget context menu with EPICS Qt one:

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.

mix_psi

2 with AS EPICS Qt context menu after setting the above environment variable.

mix_as

Open UI forms generated by adl2ui (caQtDM tool):

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

caQtDM_motors in EPICS Qt

2 Click “More” to open a ui file motors_more.ui generated by adl2ui from motors_more.adl

caQtDM_more in EPICS Qt

3 Click “All” to open a ui file motors_all.ui generated by adl2ui from motors_all.adl

caQtDM_all in EPICS Qt

Open UI forms generated by edl2ui (caQtDM tool):

Open a ui file SXR-GUI-main.ui generated by edl2ui from SXR-GUI-main.edl

caQtDM_EDL in EPICS Qt

Advantages

For EPICS Qt users:

Now EPICS Qt Display Manager (QeGui) is able to view ui forms created using Qt, EPICS Qt and caQtDM widgets.

For caQtDM users:

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.

Last updated: Wed Nov 6 15:59:14 AEDT 2019