Description
This MR overhauls how the monitorables are updated in the AMCMonitor
application.
Instead of a single update routine, each RPC group is stored in a map along with the timer period wanted for the updates. It allows the user to configure via the AMCMonitor
XML configuration the time between updates for each monitoring group. The idea is generalized to generic monitoring groups: in this MR the SCA.MASK
, OH.MASK
, and DCS.EXPORT
groups are introduced. They asynchronously update the SCA and OH masks and publish the relevant values to the DCS DIM interface.
In order to better capture the monitorable group structure, the monitorables are now stored directly in a structured JSON object instead of a flat unordered_map
. Metadata such as the last update timestamp and duration are stored independently for each group.
The introduction of these new features allows a better understanding of the monitoring delays. In particular, the duration of an update iteration does not seem linked to the number of registers being readout. to be investigated... It could be due to firmware clock domain differences and CDC or something in the software monitoring code.
The introduction of the master JSON object also gives hope in implementing different monitorable types, compared to the usage of uint32_t
in the current software revision.
Related Issue
Closes #175 (closed)
How Has This Been Tested?
Monitoring runs like a charm on the GE1/1 integration setup. The configuration parameters are still
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
-
My code follows the code style of this project. -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the CONTRIBUTING document. -
I have added tests to cover my changes. -
All new and existing tests passed.