S1: Add clock synth status
We should add all relevant S1 clock synth status info to the plugin (essentially everything that's reported by the butler clocks status
command - selected input, input status regs, DPLL state and other DPLL status regs).
Initial thoughts on implementation:
- Represent each clock synth with a class that inherits from
swatch::core::MonitorableObject
, adding them to the monitoring tree in the S1 processor class' constructor- Two separate classes - one for async, the other for sync - may prove for simpler than one common class since different monitoring data is relevant for the two types.
- Should include both the current & sticky reg values; in practice, right now this might mean two SWATCH metrics for most of the member variables from the
DPLLStatus
andInputStatus
structs. - Should disable the monitoring of them just after they're registered in the processor class' constructor, and in the S1 power off command
- Should enable monitoring of the async synths in the 'configure synths' command
- Should adjust the monitoring of sync synths in the recently added 'pre TCDS configure' callbacks:
- At least, enable their monitoring and set the error condition for the 'selected input' metric of
SyncSides
- At least, enable their monitoring and set the error condition for the 'selected input' metric of