Overview | Releases | Download | Docs | Links | Help | RecentChanges

RunController

An OnlineSoftware interface allowing hierarchical control and movement between the run states.

Discussion

Currently the SCT RunController is a simple class that is part of the CalibrationController package for historical reasons. All it does at the moment is call SctApi methods of the same name. I think that the RunController should move to same executable as the Api. Here are some reasons:

  1. The RunController is very simple, it seems to deal mostly with SctApi, so why not make it the same executable.
  2. When an error occurs, e.g. SctApi crashes, this is serious, but is not propogated up the RunController chain. Indeed, the DSA supervisor restarts the Api and you'll totally miss this if there are lots of MRS messages coming. The RunController will eventually notice that SctApi restarted, and will propogate this up, but this will take time.
  3. When we move to multiple crates, part of SctApi will move off the SBC. It would then be most natural (and in keeping with the ATLAS way of thinking) if the non-SBC part was the root controller, and the part that runs on each SBC is the crate controller. You then have a hierarchy of run controllers as expected.