Skip to content

L2SS-1151: Implement control hierarchy for device proxies

Corné Lukken requested to merge L2SS-1151-control-hierarchy into master

This patch implements the control hierarchy by having it composited into LOFARDevice. Due to the nature of integration tests that dynamically modify the control_children property the hierarchy has to initialized as part of _Initialise otherwise it would not be updated for tests utilizing the .off(); .put_property(); .boot(); test() pattern. Ideally we reduce these dynamic property changes as much as possible.

This patch adds an aps device but it is not started / stopped for the integration tests as that is not needed to iterate over the properties.

Parent properties are no longer necessary and the parent(s) are determined automatically from the children. Ideally each control device has only one parent but this is not the case. At least SDP, APS and Beamlet can have multiple parents.

Several devices are not configured to use the control hierarchy for their functionality these include: calibration, boot, observation and temperaturemanager. Boot will be replaced and become part of stationmanager while calibration always needs to access every SDP and every RECV device so the hierarchy is not needed.

Observation and temperaturemanager can not use the control hierarchy directly as setting the control_children property on those would lead to invalid parent detection. For instance the antennafield would have both observations and stationmanager as parent.

Several devices break the hierarchy by requiring to change attributes or call commands on devices. The following ticket has been opened to address this: https://support.astron.nl/jira/browse/L2SS-1364

The key problem areas include:

  • xst -> sdpfirmware
  • sst -> sdpfirmware
  • bst -> sdpfirmware
  • beamlet -> sdp
  • beamlet -> sdpdfirmware
  • tilebeam -> antennafield
  • digitalbeam -> antennafield
  • sdp -> sdpfirmware

Closes L2SS-1151

Edited by Corné Lukken

Merge request reports