Skip to content

Allow different update times in the monitoring suite (AMCMonitor)

Dylan Oliver Teague requested to merge feature/independent-mon-timers into main

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.
Edited by Laurent Petre

Merge request reports