Dear all,
I have several questions regarding medm use. The goal is as the following: by clicking a button, before moving PV2, I need to check if PV1 is bigger than a safe value POS1.
If no, a warning screen starts. If yes, it moves PV2 to a new postion POS2. It is not obvious that this can be done in medm, so I tried to use medm's shell command capability.
The script, named myScript, is as the following:
VAR1=$(caget -t PV1)
if [ $VAR1 -le $POS1 ];then
medm –x warning.adl
else
caput PV2 $POS2
fi
It is implemented in the medm as 'sh myScript'. The script works fine in shell. When implemented in a medm, it just starts another medm process but does not load up the warning.adl file regardless whether the if condition is fulfilled. Is this due to some hidden
limitation in the medm shell command capability?
The second part of question is about Closing the warning.adl display. In that screen, I want that by pressing a button the PV2 will change to POS2, and at the same time
close the medm display. Again, it obvious to me that one can do it in medm so I implemented the following shell command:
caput PV2 $POS2 && xdotool search –name warning.adl windowkill
When excuted, it will change the PV as needed and kill the screen together with the medm process started in the script above – this is why I have to start another medm
process in the first place. This implementation is working fine but if one close the warning screen without killing the second medm process, all other epics screens cannot be accessed.
I need advice that is there an alternative way within mdem to accomplish what I described? And why myScript does not work in medm?
Thanks!
Yuelin Li