Subsystem components
This section documents the Component abstraction used by CSP.LMC to interact with CSP subsystem TANGO devices.
Components act as the architectural boundary between CSP.LMC devices (Controller and Subarray) and the underlying subsystem devices (CBF, PSS, PST, Resource Manager, capabilities).
They encapsulate connection handling, attribute access, command execution, and event subscription, allowing higher-level CSP.LMC logic to operate independently from low-level TANGO details.
The current implementation combines multiple responsibilities in a single abstraction. A refactoring plan is in progress to further separate concerns and simplify the component interface.
Role in the CSP.LMC architecture
Components provide a uniform interface used by multiple architectural layers, including:
command execution and long-running command handling,
monitoring and event subscription,
state aggregation and supervision,
resource coordination.
From an architectural perspective, components should be viewed as proxies to subsystem devices rather than as part of the CSP decision logic.
Responsibilities and scope
In the current implementation, a Component may:
manage the connection lifecycle to a subsystem device;
subscribe to and receive attribute events;
cache the latest known attribute values;
forward events to the Event Manager;
execute commands and report results.
Some of these responsibilities are expected to be restructured in future iterations, with clearer separation between communication, monitoring, and supervision concerns.
Relation to monitoring and supervision
Components are the primary source of subsystem events consumed by the monitoring architecture.
They forward attribute updates to the Event Manager, which is responsible for queuing, dispatching, and normalizing events before they reach:
state and health aggregation models,
the observation supervision layer,
generic device attribute update logic.
Components themselves do not perform consistency evaluation or debouncing.