This function searches for disagreements between the hardware
(motor controllers) and the software (device list).
If cmr() detects differences, it prompts the user
for how to proceed, unless it is called from exp_ini.exp.
In this case it follows this recipe:
- cmr() returns 1, if the device list and the controllers
contain the same values.
- cmr() trusts the device list, if all
disagreements belong to controllers containing zeros.
- cmr() trusts the controllers, if the user issued 'cmr(1)'
- If the preceding Online session ended normally (no online.lock):
- If the device list is within the limits, it is used
- Else-if the controllers are within the limits, they are used
- Else image exit due to this fatal condition
- If the preceding Online session ended by a crash:
- If the controllers are within the limits, they are used.
- Else-if the device list is with the limits, it is
loaded and vme_recover.gra is executed.
- Else image exit due to this fatal condition
cmr() writes a record to online.log which describes what
has been done.
Usage: $ret = cmr();.