IOC Deployment and Troubleshooting
This repo contains instructions for Session 2 of the Practical Beamline Controls Training.
Assumptions
- The instructions assume the user is logged into an APS-maintained Red Hat Enterprise Linux (RHEL) computer.
- The APS-maintained Red Hat Enterprise Linux (RHEL) computer has access to /APSshare
Outline
- Setup
- Deploy a new IOC
- Add simulated motors to the IOC
- Deploy the motorVMC (Virtual Motor Controller) module
- Add virtual motors to the IOC
- asyn troubleshooting
Quickstart
There is a script that outputs commands from the "Setup" section in a form that can be easily copied and pasted.
To use the script, do the following:
$ curl -O https://git.aps.anl.gov/practical_beamline_controls_training/session_2/instructions/-/raw/main/scripts/quickstart.sh
$ chmod a+x quickstart.sh
$ ./quickstart.sh
Then copy and paste the output from the script into the terminal and proceed to the "Deploy a new IOC" section.
FAQ
Why isn't mkioc used to create the training IOC?
mkioc renames files and directories (references to xxx are replaced with the desired IOC name). This makes it impossible to have a solution branch in the git repo that works for everyone.
How does the training IOC differ from one created with mkioc?
There will be fewer build errors when building an IOC created by mkioc.
The training IOC required some customization to allow the IOC's prefix to be overridden:
-
st.cmd.Linux sources override.iocsh, which overrides the default IOC prefix,
xxx:
, without requiring settings.iocsh to be edited. - the caQtDM (and MEDM) start scripts open my-xxx.ui (and my-xxx.adl) instead of xxx.ui (and xxx.adl)
- A newPrefix.sh script was added to simplify the creation of override.iocsh, my-xxx.ui and my-xxx.adl
Should I deploy beamline IOCs based on the traiing IOC?
No. Just use mkioc.
Can I complete this exercise on a computer other than an APS-maintained RHEL computer?
No.