Skip to content

Commit 9351f1e

Browse files
authored
Merge pull request #317 from silkenelson/enh/add_hxxdg1ipm
replace um6_ipm w hxx_ipm and hx2_sb1 with em3l0
2 parents cde9423 + 8ac11b8 commit 9351f1e

File tree

1 file changed

+27
-18
lines changed

1 file changed

+27
-18
lines changed

scripts/ipmConfigEpics

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,29 @@
33
export EPICS_CA_MAX_ARRAY_BYTES=8388608
44
ulimit -c unlimited
55

6-
hx2Ipm='hx2_ipm'
7-
um6Ipm='um6_ipm um6_dio'
6+
em3l0='em3l0'
7+
um6Ipm='hxxdg1_ipm um6_dio'
88
dg2Ipm='hfxdg2_ipm'
99
xcsIpm='decmono ipmmono diomono pim3 pim3m ipm3 pim4 ipm4 snddio ipm5 pim5 ipmgonLD ipmlamLD usrdio'
1010
xppIpm='diomono decmono ipm2 ipm3 pim3 diodeU'
1111
cxiIpm='pim3m dg2ipm dg3ipm usrdio'
1212
mfxIpm='dg1ipm dg2ipm usrdio'
1313
mecIpm='ipm1 ipm2 ipm3 hxm_pim pim2 pim3 tc1_imb1 usr_imb1 usr_imb2 las_imb1 las_imb2'
14-
lfeIpm='um6_ipm hfxdg2_ipm pim3m'
14+
lfeIpm='hxxdg1_ipm hfxdg2_ipm pim3m'
1515

1616
ipmList()
1717
{
1818
printf 'Possible boxes:\n'
1919
if [[ $hutch == 'xcs' ]]; then
20-
for box in $hx2Ipm $um6Ipm $dg2Ipm $xcsIpm; do echo "$box"; done
20+
for box in $em3l0 $um6Ipm $dg2Ipm $xcsIpm; do echo "$box"; done
2121
elif [[ $hutch == 'xpp' ]]; then
22-
for box in $hx2Ipm $xppIpm; do echo "$box"; done
22+
for box in $em3l0 $xppIpm; do echo "$box"; done
2323
elif [[ $hutch == 'cxi' ]]; then
24-
for box in $hx2Ipm $um6Ipm $dg2Ipm $cxiIpm; do echo "$box"; done
24+
for box in $em3l0 $um6Ipm $dg2Ipm $cxiIpm; do echo "$box"; done
2525
elif [[ $hutch == 'mfx' ]]; then
26-
for box in $hx2Ipm $um6Ipm $mfxIpm; do echo "$box"; done
26+
for box in $em3l0 $um6Ipm $mfxIpm; do echo "$box"; done
2727
elif [[ $hutch == 'mec' ]]; then
28-
for box in $hx2Ipm $um6Ipm $mecIpm; do echo "$box"; done
28+
for box in $em3l0 $um6Ipm $mecIpm; do echo "$box"; done
2929
elif [[ $hutch == 'lfe' ]]; then
3030
for box in $lfeIpm; do echo "$box"; done
3131
else
@@ -42,15 +42,14 @@ if [ $# -lt 1 ]; then
4242
fi
4343

4444
# Shared IPMs
45-
if [[ $1 == 'hx2_ipm' ]]; then
46-
IOC="IOC:HX2:SB1:BMMON"
47-
BASE='HX2:SB1:BMMON'
48-
EVR='HX2:SB1:BMMON:EVR'
49-
WAVE8='hx2_ipm'
50-
elif [[ $1 == 'um6_ipm' ]]; then #aka xcs ipm1
51-
BASE="XCS:DG1:IMB:01"
52-
IOC="XCS:R04:IOC:34"
53-
EVR="XCS:R04:EVR:34"
45+
if [[ $1 == 'em3l0' ]]; then
46+
BASE='EM3L0:IPM:W8:01'
47+
WAVE8V3='em3l0'
48+
elif [[ $1 == 'hxxdg1_ipm' ]]; then #aka xcs ipm1
49+
IOC="IOC:HXX:DG1:BMMON"
50+
BASE='HXX:DG1:BMMON'
51+
EVR='HXX:DG1:BMMON:EVR'
52+
WAVE8='hxxipm'
5453
elif [[ $1 == 'um6_dio' ]]; then #aka xcs ipm1
5554
BASE="XCS:DG1:IMB:02"
5655
IOC="XCS:R04:IOC:34"
@@ -251,7 +250,17 @@ fi
251250
# Attempt to read the :SUM PV and open a GUI if successful and exits if not. Uses wave8 or ipimb accordingly
252251
ipmGUI(){
253252
if caget "${BASE}":SUM > /dev/null 2>&1; then
254-
if [ ${#WAVE8} -gt 0 ]; then
253+
if [ ${#WAVE8V3} -gt 0 ]; then
254+
cmdName=$(caget -St "${BASE}":LAUNCH_EDM)
255+
# Validate cmdName: allow only safe characters (alphanum, underscore, dash, slash, period)
256+
if [[ "$cmdName" =~ ^[a-zA-Z0-9_./-]+$ ]]; then
257+
echo calling edm main screen from: "$cmdName"
258+
$cmdName
259+
else
260+
echo "Error: Unsafe command detected in LAUNCH_EDM PV: '$cmdName'. Aborting."
261+
exit 1
262+
fi
263+
elif [ ${#WAVE8} -gt 0 ]; then
255264
/reg/g/pcds/pyps/apps/wave8/latest/wave8 --base "$BASE" --evr "$EVR" --ioc "$IOC"
256265
else
257266
/reg/g/pcds/controls/pycaqt/ipimb/ipimb --base "$BASE" --ioc "$IOC" --evr "$EVR"

0 commit comments

Comments
 (0)