CSP Subarrays

The core CSP functionality, configuration and execution of signal processing, is configured, controlled and monitored via subarrays.

CSP Subarray makes provision to TM to configure a subarray, select Processing Mode and related parameters, specify when to start/stop signal processing and/or generation of output products. TM accesses directly a CSP Subarray to:

  • Assign resources
  • Configure a scan
  • Control and monitor states/operations

Resources assignment

The assignment of Capabilities to a subarray (subarray composition) is performed in advance of a scan configuration. Assignable Capabilities for CSP Mid subarrays are:

  • receptors and the associated CBF Very Coarse Channelizers:each VCC processes the input from one receptor.
  • CBF Frequency Slice Processors performing one of the available Processing Mode Functions: Correlation, Pulsar Timing Beamforming, Pulsar Search Beamforming, VLBI Beamforming.
  • tied-array beams: Search Beams, Timing Beams and Vlbi Beams.

In general resource assignment to a subarray is exclusive, but in some cases (FSPs) the same Capability instance may be used in shared manner by more then one subarray.

Note: of all the listed Capabilities, only FSPs are assigned to subarrays via a scan configuration.

Inherent Capabilities

Each CSP subarray has also four permanently assigned inherent Capabilities:

  • Correlation
  • PSS
  • PST
  • VLBI

An inherent Capability can be enabled or disabled, but cannot assigned or removed to/from a subarray. They correspond to the CSP Mid Processing Modes and are configured via a scan configuration.

Scan configuration

TM provides a complete scan configuration to a subarray via an ASCII JSON encoded string. Parameters specified via a JSON string are implemented as TANGO Device attributes and can be accessed and modified directly using the buil-in TANGO method write_attribute. When a complete and coherent scan configuration is received and the subarray configuration (or re-configuration) completed, the subarray it’s ready to observe.

Control and Monitoring

Each CSP Subarray maintains and report the status and state transitions for the CSP subarray as a whole and for the individual assigned resources.

In addition to pre-configured status reporting, a CSP Subarray makes provision for the TM and any authorized client, to obtain the value of any subarray attribute.

Class Documentation

CspSubarray TANGO Device Class

CSP subarray functionality is modeled via a TANGO Device Class, named CspSubarray. This class exports a set of attributes and methods required for configuration, control and monitoring of the subarray.

class CspSubarray.CspSubarray(*args, **kwargs)

CSP subarray functionality is modeled via a TANGO Device Class, named CspSubarray. This class exports a set of attributes and methods required for configuration, control and monitoring of the subarray.

CbfSubarrayPrefix

Class property

The CBF sub-element subarray FQDN prefix.

Type: DevString

Example

mid_csp_cbf/sub_elt/subarray_

PssSubarrayPrefix

Class property

The PSS sub-element subarray FQDN prefix.

Type: DevString

Example

mid_csp_pss/sub_elt/subarray_

CspMaster

Device property

The CspMaster FQDN.

Type: DevString

scanID

Class attribute

The identification number of the scan.

Type: DevULong64

corrInherentCap

Class attribute

The CspSubarray Correlation inherent Capability FQDN.

Type: DevString

pssInherentCap

Class attribute

The CspSubarray Pss inherent Capability FQDN.

Type: DevString

pstInherentCap

Class attribute

The CspSubarray Pst inherent Capability FQDN.

Type: DevString

vlbiInherentCap

Class attribute

The CspSubarray Vlbi inherent Capability FQDN.

Type: DevString

cbfSubarrayState

Class attribute

The CBF sub-element subarray State attribute value.

Type: DevState

pssSubarrayState

Class attribute

The PSS sub-element subarray State attribute value.

Type: DevState

cbfSubarrayHealthState

Class attribute

The CBF sub-element subarray healthState attribute value.

Type: DevEnum

enum_labels: [“OK”, “DEGRADED”, “FAILED”, “UNKNOWN”, ]

pssSubarrayHealthState

Class attribute

The PSS sub-element subarray healthState attribute value.

Type: DevEnum

enum_labels: [“OK”, “DEGRADED”, “FAILED”, “UNKNOWN”, ]

cbfSubarrayObsState

Class attribute

The CBF sub-element subarray obsState attribute value.

Type: DevEnum

enum_labels: [“IDLE”, “CONFIGURING”, “READY”, “SCANNING”, “PAUSED”, “ABORTED”, “FAULT”, ]

pssSubarrayObsState

Class attribute

The PSS sub-element subarray obsState attribute value.

Type: DevEnum

enum_labels: [“IDLE”, “CONFIGURING”, “READY”, “SCANNING”, “PAUSED”, “ABORTED”, “FAULT”, ]

pssSubarrayAddr

Class attribute

The PSS sub-element subarray FQDN.

Type: DevString

cbfSubarrayAddr

Class attribute

The CBF sub-element subarray FQDN.

Type: DevString

validScanConfiguration

Class attribute

The last valid scan configuration JSON-encoded string.

Type: DevString

fsp

Class attribute

The list of receptor IDs assigned to the subarray.

Type: array of DevUShort

vcc

Class attribute

The list of VCC IDs assigned to the subarray.

Type: array of DevUShort

searchBeams

Class attribute

The list of Search Beam Capability IDs assigned to the subarray.

Type: array of DevUShort

timingBeams

Class attribute

The list of Timing Beam Capability IDs assigned to the subarray.

Type: array of DevUShort

vlbiBeams

Class attribute

The list of Vlbi Beam Capability IDs assigned to the subarray.

Type: array of DevUShort

searchBeamsState

Class attribute

The State attribue value of the Search Beam Capabilities assigned to the subarray.

Type: array of DevState

timingBeamsState

Class attribute

The State attribue value of the Timing Beam Capabilities assigned to the subarray.

Type: array of DevState

vlbiBeamsState

Class attribute

The State attribue value of the Vlbi Beam Capabilities assigned to the subarray.

Type: array of DevState

searchBeamsHealthState

Class attribute

The healthState attribute value of the Search Beams Capbilities assigned to the subarray.

Type: array of DevUShort.

References

See Common definition paragraph for corrispondences among Ushort values and label

timingBeamsHealthState

Class attribute

The healthState attribute value of the Timing Beams Capbilities assigned to the subarray.

Type: array of DevUShort.

References

See Common definition paragraph for corrispondences among Ushort values and label

vlbiBeamsHealthState

Class attribute

The healthState attribute value of the Vlbi Beams Capbilities assigned to the subarray.

Type: array of DevUShort.

References

See Common definition paragraph for corrispondences among Ushort values and healthState labels.

timingBeamsObsState

Class attribute

The obsState attribute value of the Timing Beams Capbilities assigned to the subarray.

Type: array of DevUShort.

References

See Common definition paragraph for corrispondences among Ushort values and obsState labels.

receptors

The list of receptors assigned to the subarray.

Forwarded attribute

_root_att: mid_csp_cbf/sub_elt/subarray_N/receptors

vccState

The State attribute value of the VCCs assigned to the subarray.

Forwarded attribute

_root_att: mid_csp_cbf/sub_elt/subarray_N/reportVCCState

vccHealthState

The healthState attribute value of the VCCs assigned to the subarray.

Forwarded attribute

_root_att: mid_csp_cbf/sub_elt/subarray_N/reportVCChealthState

The CBF Subarray output links information.

Forwarded attribute

_root_att: mid_csp_cbf/sub_elt/subarray_N/cbfOutputLinksDistribution

init_device()

Class method

Perform device initialization. during initiazlization the CspSubarray device : * connects to CSP Master and sub-element master devices

  • sub-element sub-array devices with the same subarray ID
  • subscribes to the sub-element subarrays State,healthState, obsState attributes for change event
always_executed_hook()
delete_device()
read_scanID()

Attribute method

Returns:The scan configuration ID.
write_scanID(value)

Note

Not yet implemented.

Attribute method

Set the scan configuration ID to the defined value.

Parameters:
  • value – the scan configuration ID
  • Type – DevUshort
Returns:

The scan configuration ID.

read_corrInherentCap()

Attribute method

Returns:The CspSubarray Correlation Inherent Capability FQDN.

Type: DevString

read_pssInherentCap()

Attribute method

Returns:The CspSubarray PSS Inherent Capability FQDN.

Type: DevString

read_pstInherentCap()

Attribute method

Returns:The CspSubarray PST Inherent Capability FQDN.

Type: DevString

read_vlbiInherentCap()

Attribute method

Returns:The CspSubarray VLBI Inherent Capability FQDN.

Type: DevString

read_cbfSubarrayState()

Attribute method

Returns:The CBF sub-element subarray State attribute value.

Type: DevState

read_pssSubarrayState()

Attribute method

Returns:The PSS sub-element subarray State attribute value.

Type: DevState

read_cbfSubarrayHealthState()

Attribute method

Returns:The CBF sub-element subarray healtState attribute value.

Type: DevUShort

read_pssSubarrayHealthState()

Attribute method

Returns:The PSS sub-element subarray healtState attribute value.

Type: DevUShort

read_cbfSubarrayObsState()

Attribute method

Returns:The CBF sub-element subarray obsState attribute value.

Type: DevUShort

read_pssSubarrayObsState()

Attribute method

Returns:The PSS sub-element subarray obsState attribute value.

Type: DevUShort

read_pssSubarrayAddr()

Attribute method

Returns:The PSS sub-element subarray FQDN.

Type: DevString

read_cbfSubarrayAddr()

Attribute method

Returns:The CSP sub-element subarray FQDN.

Type: DevString

read_validScanConfiguration()

Attribute method

Returns:The last programmed scan configuration.

Type: DevString (JSON-encoded)

read_fsp()

Attribute method

Returns:The list of FSP IDs assigned to the subarray.

Type: array of DevUShort.

read_vcc()

Attribute method

Returns:The list of VCC IDs assigned to the subarray.

Type: array of DevUShort.

read_searchBeams()

Attribute method

Returns:The list of Search Beam Capability IDs assigned to the subarray.

Type: array of DevUShort.

read_timingBeams()

Attribute method

Returns:The list of Timing Beam Capability IDs assigned to the subarray.

Type: array of DevUShort.

read_vlbiBeams()

Attribute method

Returns:The list of Vlbi Beam Capability IDs assigned to the subarray.

Type: array of DevUShort.

read_searchBeamsState()

Attribute method

Returns:The Search Beam Capabilities State attribute value.

Type: array of DevState

read_timingBeamsState()

Attribute method

Returns:The Timing Beam Capabilities State attribute value.

Type: array of DevState

read_vlbiBeamsState()

Attribute method

Returns:The Vlbi Beam Capabilities State attribute value.

Type: array of DevState

read_searchBeamsHealthState()

Attribute method

Returns:The Search Beam Capabilities healthState attribute value.

Type: array of DevUShort

read_timingBeamsHealthState()

Attribute method

Returns:The Timing Beam Capabilities healthState attribute value.

Type: array of DevUShort

read_vlbiBeamsHealthState()

Attribute method

Returns:The Vlbi Beam Capabilities healthState attribute value.

Type: array of DevUShort

read_timingBeamsObsState()

Attribute method

Returns:The Timing Beam Capabilities obsState attribute value.

Type: array of DevUShort

is_EndScan_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the Scan method can be issued on the subarray.

The Scan() method can be issue on a subarray if its State is ON.

Returns:True if the command can be executed, otherwise False
EndScan()

Class method End the execution of a running scan. After successful execution, the CspSubarray ObsState is IDLE.

Raises:
  • tango.DevFailed – if the subarray obsState is not SCANNING or if an exception
  • is caught during the command execution.

Note

Still to implement the check on AdminMode values: the command can be processed only when the CspSubarray is ONLINE or MAINTENANCE

is_Scan_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the Scan method can be issued on the subarray.

A scan configuration can be performed when the subarray State is ON (that is, at least one receptor is assigned to it)

Returns:True if the command can be executed, otherwise False
Scan(argin)

Class method

Start the execution of scan.

Raises:tango.DevFailed – if the subarray obsState is not READY or if an exception is caught during the command execution.

Note

Still to implement the check on AdminMode values: the command can be processed only when the CspSubarray is ONLINE or MAINTENANCE

is_AddReceptors_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the AddReceptors method can be issued on the subarray.

Receptors can be added to a Subarray when its State is OFF or ON.

Returns:True if the command can be executed, otherwise False
AddReceptors(argin)

Class method

Add the specified receptor IDs to the subarray.

The command can be executed only if the CspSubarray ObsState is IDLE.

Parameters:
  • argin – the list of receptor IDs
  • Type – array of DevUShort
Returns:

None

Raises:

tango.DevFailed – if the CbfSubarray is not available or if an exception is caught during command execution.

Note

Still to implement the check on AdminMode values: the command can be processed only when the CspSubarray is ONLINE or MAINTENANCE

is_RemoveReceptors_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the method can be issued on the subarray.

Re can be removed from a subarray when its State is ON or OFF-

Returns:True if the command can be executed, otherwise False
RemoveReceptors(argin)

Remove the receptor IDs from the subarray.

Parameters:
  • argin – The list of the receptor IDs to remove from the subarray.
  • Type – array of DevUShort
Returns:

None

Raises:

tango.DevFailed – raised if the subarray obState attribute is not IDLE, or when an exception is caught during command execution.

is_RemoveAllReceptors_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the method can be issued on the subarray.

Resources can be removed from a subarray when its State is ON or OFF-

Returns:True if the command can be executed, otherwise False
RemoveAllReceptors()

Class method.

Remove all the assigned receptors from the subarray. :returns: None

Raises:tango.DevFailed – raised if the subarray obState attribute is not IDLE or READY, or when an exception is caught during command execution.
is_ConfigureScan_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the ConfigureScan method can be issued on the subarray.

A scan configuration can be performed when the subarray State is ON (that is, at least one receptor is assigned to it)

Returns:True if the command can be executed, otherwise False
ConfigureScan(argin)

Note

Part of this code (the input string parsing) comes from the CBF project developed by J.Jjang (NRC-Canada)

Class method.

Configure a scan for the subarray.

The command can be execuced when the CspSubarray State is ON and the ObsState is IDLE or READY.

If the configuration for the scan is not correct (invalid parameters or invalid JSON) the configuration is not applied and the ObsState of the CspSubarray remains IDLE.

Parameters:argin – a JSON-encoded string with the parameters to configure a scan.
Returns:None
Raises:tango.DevFailed exception if the CspSubarray ObsState is not valid or if an exception is caught during command execution.

Note

Still to implement the check on AdminMode values: the command can be processed only when the CspSubarray is ONLINE or MAINTENANCE

AddNumOfSearchBeams(argin)

Note

Still to be implemented

Class method

Add the specified number of Search Beams capabilities to the subarray.

Parameters:argin – The number of SearchBeams Capabilities to assign to the subarray
Returns:None
RemoveNumOfSearchBeams(argin)

Note

Still to be implemented

Class method

Remove the specified number of Search Beams capabilities from the subarray.

Parameters:argin – The number of SearchBeams Capabilities to remove from the subarray. If equal to the max number of search bem capabilities (1500 for MID), all the search beams are removed.
Returns:None
AddTimingBeams(argin)

Note

Still to be implemented

Class method

Add the specified Timing Beams Capability IDs to the subarray.

Parameters:
  • argin – The list of Timing Beams Capability IDs to assign to the subarray.
  • Type – array of DevUShort
Returns:

None

AddVlbiBeams(argin)

Note

Still to be implemented

Class method

Add the specified Vlbi Beams Capability IDs to the subarray.

Parameters:
  • argin – The list of Vlbi Beams Capability IDs to assign to the subarray.
  • Type – array of DevUShort
Returns:

None

AddSearchBeamsID(argin)

Note

Still to be implemented

Class method

Add the specified Search Beams Capability IDs to the subarray. This method requires some knowledge of the internal behavior of the PSS machine, because Seach Beam capabilities with PSS pipelines belonging to the same PSS node, can’t be assigned to different subarrays.

Parameters:
  • argin – The list of Search Beams Capability IDs to assign to the subarray.
  • Type – array of DevUShort
Returns:

None

References

AddNumOfSearchBeams

RemoveSearchBeamsID(argin)

Note

Still to be implemented

Class method

Remove the specified Search Beam Capability IDs from the subarray.

Parameters:
  • argin – The list of Timing Beams Capability IDs to remove from the subarray.
  • Type – Array of unsigned short
Returns:

None

RemoveTimingBeams()

Note

Still to be implemented

Class method

Remove the specified Timing Beam Capability IDs from the subarray.

Parameters:
  • argin – The list of Timing Beams Capability IDs to remove from the subarray.
  • Type – Array of DevUShort
Returns:

None

RemoveVlbiBeams()

Note

Still to be implemented

Class method

Remove the specified Vlbi Beam Capability IDs from the subarray.

Parameters:
  • argin – The list of Timing Beams Capability IDs to remove from the subarray.
  • Type – Array of DevUShort
Returns:

None

is_EndSB_allowed()

TANGO is_allowed method: filter the external request depending on the current device state.

Check if the EndSB method can be issued on the subarray. The EndSB method can be issued on a subarrays when its State is ON.

Returns:True if the command can be executed, otherwise False
EndSB()

Class method

Set the subarray ObsState to IDLE.

The command is executed only when the CspSubarray State is ON and ObsState is READY or IDLE.

Raises:tango.DevFailed exception if the CspSubarray ObsState is not valid or if an exception is caught during command execution.

Note

Still to implement the check on AdminMode values: the command can be processed only when the CspSubarray is ONLINE or MAINTENANCE

CspSubarray.main(args=None, **kwargs)