#!/bin/bash if [ -z "/APSshare/epics" ]; then export EPICS_APP=/APSshare/epics/synApps_5_7/support/xxx-5-7-1 else export EPICS_APP=/usr/local/epics/synApps_5_8/support/xxx-5-8-3 fi export EPICS_APP_UI_DIR=${EPICS_APP}/xxxApp/op/ui ####################################### # support function to simplify repetitive task, # used to build up displaty path of supported modules # # usage:: # # addModule ENVIRONMENT_VARIABLE [SUBDIRECTORY] # # QTDMDP is temporary CAQTDM_DISPLAY_PATH # QTDMDP is internal to this script, no need to export. function addModule { # $1 is a symbol defined in <synApps>/configure/RELEASE # module_path is the path defined for that symbol in the RELEASE file module='$'$1 module_path=`eval echo $module` if [ "" != "${module}" ]; then if [ "" == "${QTDMDP}" ]; then QTDMDP=. fi QTDMDP=${QTDMDP}:${module_path} if [ "" != "$2" ]; then QTDMDP=${QTDMDP}/$2 fi fi } ####################################### # get environment variables for support modules output=`perl -s $EPICS_APP/release.pl -form=bash $EPICS_APP` eval $output ####################################### # add support for modules defined by environment variables # modules are *appended* to the growing list of directories if [ "" == "${ADSIMDETECTOR}" ]; then export ADSIMDETECTOR=${AREA_DETECTOR}/ADSimDetector-R2-4 fi # ======== ================ =========================== # function MODULE_VARIABLE subdirectory with .ui files # ======== ================ =========================== addModule EPICS_APP_UI_DIR addModule ALIVE ./aliveApp/op/ui addModule AREA_DETECTOR ./ADCore/ADApp/op/ui addModule ADCORE ./ADApp/op/ui/autoconvert addModule ADSIMDETECTOR ./simDetectorApp/op/ui/autoconvert addModule ASYN ./opi/caqtdm addModule AUTOSAVE ./asApp/op/ui addModule BUSY ./busyApp/op/ui addModule CALC ./calcApp/op/ui addModule CAMAC ./camacApp/op/ui addModule CAPUTRECORDER ./caputRecorderApp/op/ui addModule DAC128V ./dac128VApp/op/ui addModule DELAYGEN ./delaygenApp/op/ui addModule DEVIOCSTATS ./op/ui addModule DXP ./dxpApp/op/ui addModule IP ./ipApp/op/ui addModule IP330 ./ip330App/op/ui addModule IPUNIDIG ./ipUnidigApp/op/ui addModule LOVE ./loveApp/op/ui addModule MCA ./mcaApp/op/ui addModule MODBUS ./modbusApp/op/ui addModule MOTOR ./motorApp/op/ui addModule OPTICS ./opticsApp/op/ui addModule QUADEM ./quadEMApp/op/ui addModule SOFTGLUE ./softGlueApp/op/ui addModule SSCAN ./sscanApp/op/ui addModule STD ./stdApp/op/ui addModule VAC ./vacApp/op/ui addModule VME ./vmeApp/op/ui # ======== ================ =========================== ####################################### # optional: add support directories not associated with environment variables if [ -z "/APSshare/caqtdm" ]; then QTDMDP=${QTDMDP}:/APSshare/uisys/sr/id fi ####################################### # Define CAQTDM_DISPLAY_PATH # the .ui file directory list for caQtDM if [ "" == "${CAQTDM_DISPLAY_PATH}" ]; then export CAQTDM_DISPLAY_PATH=${QTDMDP} else # either: pre-pend to display path export CAQTDM_DISPLAY_PATH=${QTDMDP}:${CAQTDM_DISPLAY_PATH} # or: append to display path #export CAQTDM_DISPLAY_PATH=${CAQTDM_DISPLAY_PATH}:${QTDMDP} fi ####################################### # optional: support for PVs with large data sizes, such as areaDetector # This should agree with the environment variable set by the ioc # see 'putenv "EPICS_CA_MAX_ARRAY_BYTES=64008"' in iocBoot/ioc<target>/st.cmd if [ "" == "${EPICS_CA_MAX_ARRAY_BYTES}" ]; then #export EPICS_CA_MAX_ARRAY_BYTES=64008 export EPICS_CA_MAX_ARRAY_BYTES=8000100 fi ####################################### # optional: execute caQtDM in this support's ui directory cd ${EPICS_APP_UI_DIR} ####################################### # optional: override system default environment variables for Qt and Qwt # These override system defaults for Qt, Qwt # Because I'm using a local copy of Qt/Qwt, and not the system # copy, I need to set some environment variables #OVERRIDE_QT_BASE=/home/oxygen/MOONEY/Download/Qt #export QTDIR=${OVERRIDE_QT_BASE}/qt-4.8.4 #export QT_PLUGIN_PATH= #export QT_PLUGIN_PATH=${QT_PLUGIN_PATH}:${OVERRIDE_QT_BASE}/qt-4.8.4/plugins #export QT_PLUGIN_PATH=${QT_PLUGIN_PATH}:${OVERRIDE_QT_BASE}/qwt-6.0/designer/plugins/designer ####################################### # optional: other environment variables that may need local definitions # these are copied from caQtDM's source for startDM_Local #export QTCONTROLS_LIBS=`pwd`/caQtDM_Binaries #export QTBASE=${QTCONTROLS_LIBS} #export QT_PLUGIN_PATH=${QTBASE} #export CAQTDM_DISPLAY_PATH=`pwd`/caQtDM_Tests export MEDM_EXEC_LIST= # For drag-and-drop workaround at APS, need /APSshare/bin/xclip export CAQTDM_EXEC_LIST='Probe;probe &P &:UI File;echo &A:PV Name(s);echo &P:Copy PV name; echo -n &P| xclip -i -sel clip:Paste PV name;caput &P `xclip -o -sel clip`' export START_PUTRECORDER=${EPICS_APP}/start_putrecorder export MACROS_PY=${EPICS_APP_UI_DIR}/../python/macros.py export EDITOR=nedit if [ -z "/APSshare/caqtdm" ]; then export PATH=${PATH}:/APSshare/bin export QT_PLUGIN_PATH=/APSshare/caqtdm/plugins export LD_LIBRARY_PATH=/APSshare/caqtdm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/APSshare/epics/base-3.14.12.3/lib/linux-x86_64 else export QT_PLUGIN_PATH=/usr/local/epics/extensions/lib/linux-x86_64 fi ####################################### # optional: access to ioctim and bcdapc15 #export EPICS_CA_ADDR_LIST="164.54.53.99 164.54.54.88" ####################################### # start caQtDM #caQtDM -noMsg xxx.ui & # allow for command line option to specify the file to be opened caQtDM -style plastique -noMsg ${1:-xxx.ui} # TODO: what about ALL command line parameters? "$*"