Status: To Do
Fix Version/s: None
Motivation: To start the setCompensationMode at the camera hexapod a specific configuration must be loaded.
Camera hexapod and rotator CSC do not accept "settingsToApply" parameter.
Sending a command similar to:
await salobj.set_summary_state(camhex, salobj.State.DISABLED, settingsToApply='default')
does not load a configuration.
Expected behavior would be that on the transition the CSC load a new configuration and set the values in the low-level controller.
Work around: switch off and on the PXI CPU using the netbooter.
Both the hexapod and rotator CSC should read configuration during the start command. Read the file config_schema.py in each package for details on which configuration items can be set and the default value for each item. The basic overview is:
- MTHexapod configuration has the model parameters.
- MTRotator rotator configuration has two following error items.
The config files are in the ts_config_mttcs package and you can see which config files are available that you can specify as values for settingsToApply. The labels you can use are published in the settingVersions event, as well (but settingsToApply can be a label name or a file name). What I see:
- MTHexapod has one config file: default.yaml and the label (in _labels.yaml) for it is "default" (as you might expect).
- MTRotator has no config files. Thus you can only specify settingsToApply="" for that CSC. This uses the defaults specified in config_schema.py.
Note: there is a proposal to overhaul the way configuration is done, so this above is likely to change at some point. After the change there will probably be a "default" file for each CSC in the appropriate ts_config_x package.
The low-level controller does not read the configuration file from the CSC. It reads its own configuration file when the application starts. Therefore, I think Russell Owen should define what is the behavior of CSC to read the settingToApply first.