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
-
cbfOutputLink
¶ 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)¶