Subarray Device

@startuml
class StationsResourceManager
StationsResourceManager : +__init__()
StationsResourceManager : +items()
StationsResourceManager : +add_to_managed()
StationsResourceManager : +release_all()
StationsResourceManager : +station_trls()
StationsResourceManager : +station_ids()
class StationBeamsResourceManager
StationBeamsResourceManager : +__init__()
StationBeamsResourceManager : +__len__()
StationBeamsResourceManager : +assign()
StationBeamsResourceManager : +configure()
StationBeamsResourceManager : +scan()
StationBeamsResourceManager : +release()
StationBeamsResourceManager : +release_all()
StationBeamsResourceManager : +station_beam_trls()
StationBeamsResourceManager : +station_trls()
class TransientBufferManager
TransientBufferManager : +__init__()
TransientBufferManager : +send()
class MccsSubarray
MccsSubarray : +__init__()
MccsSubarray : +do()
MccsSubarray : -_initialise_connections()
MccsSubarray : -_initialise_health_monitoring()
MccsSubarray : -_initialise_resource_management()
MccsSubarray : +init_command_objects()
MccsSubarray : +always_executed_hook()
MccsSubarray : +delete_device()
MccsSubarray : +health_changed()
MccsSubarray : +commandResult()
MccsSubarray : +scanId()
MccsSubarray : +stationTRLs()
MccsSubarray : +succeeded()
MccsSubarray : +check_allowed()
MccsSubarray : +Abort()
MccsSubarray : +ObsReset()
MccsSubarray : +SendTransientBuffer()
StationsResourceManager : -_devices
StationBeamsResourceManager : -_stations
MccsSubarray : -_thread
MccsSubarray : -_lock
MccsSubarray : -_interrupt
MccsSubarray : -_health_state
MccsSubarray : -_scan_id
MccsSubarray : -_command_result

ResourceManager <|-- StationsResourceManager
ResourceManager <|-- StationBeamsResourceManager
SKASubarray <|-- MccsSubarray
MccsSubarray -- TransientBufferManager
@enduml

This module implements MCCS functionality for monitoring and control of subarrays.

class MccsSubarray(*args, **kwargs)

MccsSubarray is the Tango device class for the MCCS Subarray prototype.

AbortDevice()

Abort any long-running command such as Configure() or Scan().

This will only cancel commands on this device, not further down the hierarchy, use Abort() for that use case.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

class AbortDeviceCommand(command_tracker, component_manager, callback, logger=None)

A class for MccsSubarray’s AbortDevice() command.

__init__(command_tracker, component_manager, callback, logger=None)

Initialise a new AbortCommand instance.

Parameters:
  • command_tracker (CommandTracker) – the device’s command tracker

  • component_manager (SubarrayComponentManager) – the device’s component manager

  • callback (Callable[[bool], None]) – callback to be called when this command states and finishes

  • logger (Optional[Logger]) – a logger for this command object to yuse

do(*args, **kwargs)

Stateless hook for AbortDevice() command functionality.

Parameters:
  • args (Any) – positional arguments to the command. This command does not take any, so this should be empty.

  • kwargs (Any) – keyword arguments to the command. This command does not take any, so this should be empty.

Return type:

tuple[ResultCode, str]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

class AssignResourcesCommand(command_tracker, component_manager, callback=None, logger=None)

A class for SKASubarray’s AssignResources() command.

__init__(command_tracker, component_manager, callback=None, logger=None)

Initialise a new instance.

Parameters:
  • command_tracker (CommandTracker) – the device’s command tracker

  • component_manager (SubarrayComponentManager) – the device’s component manager

  • callback (Optional[Callable]) – an optional callback to be called when this command starts and finishes.

  • logger (Optional[Logger]) – a logger for this command to log with.

class ConfigureCommand(command_tracker, component_manager, callback=None, logger=None)

A class for SKASubarray’s Configure() command.

__init__(command_tracker, component_manager, callback=None, logger=None)

Initialise a new instance.

Parameters:
  • command_tracker (CommandTracker) – the device’s command tracker

  • component_manager (SubarrayComponentManager) – the device’s component manager

  • callback (Optional[Callable]) – an optional callback to be called when this command starts and finishes.

  • logger (Optional[Logger]) – a logger for this command to log with.

End()

Deconfigure resources.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

EndScan()

Stop scanning.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

class InitCommand(*args, **kwargs)

Command class for device initialisation.

do()

Initialise the attributes and properties of MccsSubarray.

Return type:

tuple[ResultCode, str]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

ObsReset()

Reset the observation by returning to unconfigured state.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

ReleaseAllResources()

Release all resources from this subarray.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

ReleaseResources(argin)

Release resources from this subarray.

Parameters:

argin (str) – the resources to be released

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

Restart()

Restart the subarray by returning to unresourced state.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

Scan(argin)

Start scanning.

Parameters:

argin (str) – Json string containing scan_id and start_time.

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status.

class ScanCommand(command_tracker, component_manager, callback=None, logger=None)

A class for SKASubarray’s Scan() command.

__init__(command_tracker, component_manager, callback=None, logger=None)

Initialise a new instance.

Parameters:
  • command_tracker (CommandTracker) – the device’s command tracker

  • component_manager (SubarrayComponentManager) – the device’s component manager

  • callback (Optional[Callable]) – an optional callback to be called when this command starts and finishes.

  • logger (Optional[Logger]) – a logger for this command to log with.

SendTransientBuffer(argin)

Cause the subarray to send the requested segment of the transient buffer to SDP.

The requested segment is specified by:

  1. Start time (timestamp: milliseconds since UNIX epoch)

  2. End time (timestamp: milliseconds since UNIX epoch)

  3. Dispersion measure

Together, these parameters narrow the selection of transient buffer data to the period of time and frequencies that are of interest.

Additional metadata, such as the ID of a triggering Scheduling Block, may need to be supplied to allow SDP to assign data ownership correctly (TBD75).

Todo:

This method is a stub that does nothing but return a dummy string.

Parameters:

argin (list[int]) – Specification of the segment of the transient buffer to send

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

ASCII String that indicates status, for information purposes only

__init__(*args, **kwargs)

Initialise this device object.

Parameters:
  • args (Any) – positional args to the init

  • kwargs (Any) – keyword args to the init

assignedResources()

Return this subarray’s assigned resources.

Return type:

str

Returns:

this subarray’s assigned resources.

create_component_manager()

Create and return a component manager for this device.

Return type:

SubarrayComponentManager

Returns:

a component manager for this device.

healthModelParams(argin)

Set the params for health transition rules.

Parameters:

argin (str) – JSON-string of dictionary of health states

Return type:

None

init_command_objects()

Initialise the command handlers for commands supported by this device.

Return type:

None

init_device()

Initialise the device.

Return type:

None

scanId(scan_id)

Set the scanId attribute.

Parameters:

scan_id – the new scanId

Return type:

None

stationBeamTrls()

Return the TRLs of station beams assigned to this subarray.

Return type:

list[str]

Returns:

TRLs of station beams assigned to this subarray

stationTrls()

Return the TRLs of stations assigned to this subarray.

Return type:

list[str]

Returns:

TRLs of stations assigned to this subarray

subarrayBeamTrls()

Return the TRLs of subarray beams assigned to this subarray.

Return type:

list[str]

Returns:

TRLs of subarray beams assigned to this subarray

main(*args, **kwargs)

Entry point for module.

Parameters:
  • args (str) – positional arguments

  • kwargs (str) – named arguments

Return type:

int

Returns:

exit code