============================== SubarrayInterface Tango Device ============================== Provides the Tango interface for an SKA subarray device. This class extends :py:class:`~.future._obs_interface.ObsInterface` with the standard subarray command set and long running command (LRC) support via :py:class:`~.long_running_commands.mixin.LRCMixin`, which supplies a :py:class:`~.executor.TaskExecutor`-backed ``task_executor`` and the associated LRC attributes. Subclasses must override the ``execute_*`` methods for each command and apply the :py:func:`~.long_running_commands.decorators.submit_lrc_task` decorator to make them long running commands. Observation state is driven by writing to the signals inherited from :py:class:`~.future._obs_interface.ObsInterface`, primarily via :py:meth:`~.ObsStateEmitMixin._update_obs_state`. The ``started_*`` and ``completed_*`` callbacks on :py:class:`~.future._subarray_interface.AbstractSubarrayInterface` manage the ``command_in_progress`` portion of the observation state automatically when using :py:func:`~.long_running_commands.decorators.submit_lrc_task`. Use :py:class:`~.future._subarray_interface.AbstractSubarrayInterface` directly only when you need to supply your own ``task_executor`` implementation (e.g. via :py:class:`~.future._component_manager_mixins.ComponentManagerLRCMixin`). Properties ---------- .. index:: single: CapabilityTypes; SubarrayInterface.CapabilityTypes .. py:attribute:: CapabilityTypes :module: SubarrayInterface Types of capability supported by this subarray. :data type: DevVarStringArray .. index:: single: LoggingLevelDefault; SubarrayInterface.LoggingLevelDefault .. py:attribute:: LoggingLevelDefault :module: SubarrayInterface Default logging level at device startup. :data type: DevUShort :default value: 4 .. index:: single: LoggingTargetsDefault; SubarrayInterface.LoggingTargetsDefault .. py:attribute:: LoggingTargetsDefault :module: SubarrayInterface Default logging targets at device startup. :data type: DevVarStringArray :default value: ['tango::logger'] .. index:: single: SubID; SubarrayInterface.SubID .. py:attribute:: SubID :module: SubarrayInterface Unique identifier for this subarray. :data type: DevString Attributes ---------- .. index:: single: State; SubarrayInterface.State .. py:attribute:: State :module: SubarrayInterface The operational state of the device as enumeration. :access: READ :data type: DevState :data format: SCALAR .. index:: single: Status; SubarrayInterface.Status .. py:attribute:: Status :module: SubarrayInterface More detailed textual information about the device's status. :access: READ :data type: DevString :data format: SCALAR .. index:: single: activationTime; SubarrayInterface.activationTime .. py:attribute:: activationTime :module: SubarrayInterface The time of activation in seconds since Unix epoch. :access: READ :data type: DevDouble :data format: SCALAR :unit: s .. index:: single: adminMode; SubarrayInterface.adminMode .. py:attribute:: adminMode :module: SubarrayInterface The Admin Mode of the device. Set by a client to mark the device for science or only engineering. :access: READ_WRITE :data type: DevEnum :data format: SCALAR .. index:: single: assignedResources; SubarrayInterface.assignedResources .. py:attribute:: assignedResources :module: SubarrayInterface The resources assigned to the device. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 512 .. index:: single: buildState; SubarrayInterface.buildState .. py:attribute:: buildState :module: SubarrayInterface Read the Build State of the device. :access: READ :data type: DevString :data format: SCALAR .. index:: single: commandedObsState; SubarrayInterface.commandedObsState .. py:attribute:: commandedObsState :module: SubarrayInterface The last commanded stable Observation State of the device. Initial value is EMPTY. The only stable states it can change to are EMPTY, IDLE, READY or ABORTED, following the start of any state transition command. :access: READ :data type: DevEnum :data format: SCALAR .. index:: single: configurationDelayExpected; SubarrayInterface.configurationDelayExpected .. py:attribute:: configurationDelayExpected :module: SubarrayInterface The expected configuration delay of the device in seconds. :access: READ :data type: DevUShort :data format: SCALAR :unit: seconds .. index:: single: configurationProgress; SubarrayInterface.configurationProgress .. py:attribute:: configurationProgress :module: SubarrayInterface The percentage configuration progress of the device. :access: READ :data type: DevUShort :data format: SCALAR :unit: % .. index:: single: configuredCapabilities; SubarrayInterface.configuredCapabilities .. py:attribute:: configuredCapabilities :module: SubarrayInterface The configured capabilities of the device. For example, ["Correlators:512", "PssBeams:4", "PstBeams:4", "VlbiBeams:0"]. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 10 .. index:: single: healthInfo; SubarrayInterface.healthInfo .. py:attribute:: healthInfo :module: SubarrayInterface Read the Health Info of the device. It provides an explanation for the currently reported Health State :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 256 .. index:: single: healthState; SubarrayInterface.healthState .. py:attribute:: healthState :module: SubarrayInterface Read the Health State of the device. It interprets the current device condition and condition of all managed devices to set this. :access: READ :data type: DevEnum :data format: SCALAR .. index:: single: loggingLevel; SubarrayInterface.loggingLevel .. py:attribute:: loggingLevel :module: SubarrayInterface Read the logging level of the device. Initialises to LoggingLevelDefault on startup. See :py:class:`~ska_control_model.LoggingLevel` :access: READ_WRITE :data type: DevEnum :data format: SCALAR .. index:: single: loggingTargets; SubarrayInterface.loggingTargets .. py:attribute:: loggingTargets :module: SubarrayInterface Read the additional logging targets of the device. Note that this excludes the handlers provided by the ska_ser_logging library defaults - initialises to LoggingTargetsDefault on startup. :access: READ_WRITE :data type: DevString :data format: SPECTRUM :max_dim_x: 4 .. index:: single: longRunningCommandIDsInQueue; SubarrayInterface.longRunningCommandIDsInQueue .. py:attribute:: longRunningCommandIDsInQueue :module: SubarrayInterface A Tango attribute backed by a software signal. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 66 .. index:: single: longRunningCommandInProgress; SubarrayInterface.longRunningCommandInProgress .. py:attribute:: longRunningCommandInProgress :module: SubarrayInterface A Tango attribute backed by a software signal. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 2 .. index:: single: longRunningCommandProgress; SubarrayInterface.longRunningCommandProgress .. py:attribute:: longRunningCommandProgress :module: SubarrayInterface A Tango attribute backed by a software signal. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 4 .. index:: single: longRunningCommandResult; SubarrayInterface.longRunningCommandResult .. py:attribute:: longRunningCommandResult :module: SubarrayInterface A Tango attribute backed by a software signal. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 2 .. index:: single: longRunningCommandStatus; SubarrayInterface.longRunningCommandStatus .. py:attribute:: longRunningCommandStatus :module: SubarrayInterface A Tango attribute backed by a software signal. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 132 .. index:: single: longRunningCommandsInQueue; SubarrayInterface.longRunningCommandsInQueue .. py:attribute:: longRunningCommandsInQueue :module: SubarrayInterface A Tango attribute backed by a software signal. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 66 .. index:: single: lrcExecuting; SubarrayInterface.lrcExecuting .. py:attribute:: lrcExecuting :module: SubarrayInterface A list of info JSON blobs of the currently executing commands. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 2 .. index:: single: lrcFinished; SubarrayInterface.lrcFinished .. py:attribute:: lrcFinished :module: SubarrayInterface A list of info JSON blobs of the finished long running commands. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 100 .. index:: single: lrcProtocolVersions; SubarrayInterface.lrcProtocolVersions .. py:attribute:: lrcProtocolVersions :module: SubarrayInterface Return supported protocol versions. :access: READ :data type: DevLong64 :data format: SPECTRUM :max_dim_x: 2 .. index:: single: lrcQueue; SubarrayInterface.lrcQueue .. py:attribute:: lrcQueue :module: SubarrayInterface A list of info JSON blobs of the commands in queue. :access: READ :data type: DevString :data format: SPECTRUM :max_dim_x: 32 .. index:: single: obsState; SubarrayInterface.obsState .. py:attribute:: obsState :module: SubarrayInterface The Observation State of the device. :access: READ :data type: DevEnum :data format: SCALAR .. index:: single: versionId; SubarrayInterface.versionId .. py:attribute:: versionId :module: SubarrayInterface Read the Version Id of the device. :access: READ :data type: DevString :data format: SCALAR Commands -------- .. index:: single: Abort; SubarrayInterface.Abort .. py:method:: Abort() -> DevVarLongStringArray :module: SubarrayInterface Abort any executing long running command(s) and empty the queue. :returns: [ResultCode.STARTED][Command ID] .. index:: single: AssignResources; SubarrayInterface.AssignResources .. py:method:: AssignResources(DevString) -> DevVarLongStringArray :module: SubarrayInterface Assign resources to this subarray. :parameter: The resources to be assigned :returns: [ResultCode][Status message or command ID] .. index:: single: CheckLongRunningCommandStatus; SubarrayInterface.CheckLongRunningCommandStatus .. py:method:: CheckLongRunningCommandStatus(DevString) -> DevString :module: SubarrayInterface Check the status of a long running command by ID. :returns: Status of the asynchronous task. .. index:: single: Configure; SubarrayInterface.Configure .. py:method:: Configure(DevString) -> DevVarLongStringArray :module: SubarrayInterface Configure the capabilities of this subarray. :parameter: The scan configuration specification :returns: [ResultCode][Status message or command ID] .. index:: single: End; SubarrayInterface.End .. py:method:: End() -> DevVarLongStringArray :module: SubarrayInterface End the scan block of this subarray. :returns: [ResultCode][Status message or command ID] .. index:: single: EndScan; SubarrayInterface.EndScan .. py:method:: EndScan() -> DevVarLongStringArray :module: SubarrayInterface End the current scan with this subarray. :returns: [ResultCode][Status message or command ID] .. index:: single: GetVersionInfo; SubarrayInterface.GetVersionInfo .. py:method:: GetVersionInfo() -> DevVarStringArray :module: SubarrayInterface Get the version information of the device. :returns: The device class name and its package information. .. index:: single: Init; SubarrayInterface.Init .. py:method:: Init() -> DevVoid :module: SubarrayInterface Reinitialise the Tango device. .. index:: single: ReleaseAllResources; SubarrayInterface.ReleaseAllResources .. py:method:: ReleaseAllResources() -> DevVarLongStringArray :module: SubarrayInterface Release all resources to tear down to an empty subarray. :returns: [ResultCode][Status message or command ID] .. index:: single: ReleaseResources; SubarrayInterface.ReleaseResources .. py:method:: ReleaseResources(DevString) -> DevVarLongStringArray :module: SubarrayInterface Delta release of assigned resources from this subarray. :parameter: The resources to be released :returns: [ResultCode][Status message or command ID] .. index:: single: Restart; SubarrayInterface.Restart .. py:method:: Restart() -> DevVarLongStringArray :module: SubarrayInterface Restart the subarray by deconfiguring and releasing all resources. :returns: [ResultCode][Status message or command ID] .. index:: single: Scan; SubarrayInterface.Scan .. py:method:: Scan(DevString) -> DevVarLongStringArray :module: SubarrayInterface Start scanning with this configured subarray. :parameter: The per-scan configuration :returns: [ResultCode][Status message or command ID]