Skip to content

Introduce dynamic layout in the monitoring suite Web UI

Laurent Petre requested to merge feature/dynamic-monitoring-layout into main


This merge request aims at implementing a dynamic layout in the monitoring suite Web UI in order to cope with differences between setups/systems/firmware/... as described in #202 (closed). In addition to the proposal of using the layout tree, this MR also uses information retrieved from the backend board. Indeed, we want to ensure that the metrics all OptoHybrids are displayed even if some would be missing from the layout tree for any reason.

This is mainly done via two new experimental concepts:

  • The introduction of the RPC server facts to provide the client with contextual information from each backend board.
  • The simplification of the classes related to the Web interface to avoid tight coupling and useless back and forth between the AbcWeb and Abc classes.

Combined with #128 & !329 (new !131 (closed) & !251 (closed)), the monitoring suite will be foremost in the experimentations.

Breaking change: Since the monitoring suite now retrieves information from the RPC server to build the layout while configuring, the RPC server must be started - like before - and the firmware must be loaded - new! - first. This change is mitigated in two ways: (1) defaults layout values are provided so the Web UI loads properly before configuration, exposing all metrics, and (2) the FSM can be recovered from the Failed state by direct reconfiguration.

Related Issue

Fixes #202 (closed).

How Has This Been Tested?

Works like a charm on the B904 integration setup (without frontend at the moment).

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)


  • 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