LMC to MCS

MCS provides commands and attributes to turn MCS on and off (through the CBF Controller) as well as commands needed to configure and execute scans through the subarrays. (CBF Subarray)

The sequence diagram below shows the interactions between LMC and MCS to assign receptors to a subarray, configure a scan, and run a scan. It shows configuration of one Mid.CBF subarray followed by running a scan on that subarray. It ends with no receptors assigned to the subarray. The calls to write the frequency offset K and frequency offset delta F values only need to be written when there are updates to the values. They must be written to the CBF Controller before the scan configuration.

For full details of MCS Controller see CbfController.

For full details of MCS Subarray see CbfSubarray.

@startuml
'https://plantuml.com/sequence-diagram

skinparam backgroundColor #EEEBDC
skinparam sequence {
ParticipantBorderColor DodgerBlue
ParticipantBackgroundColor DeepSkyBlue
ActorBorderColor DarkGreen
ActorBackgroundColor Green
BoxBorderColor LightBlue
BoxBackgroundColor #F0FFFF
}

title TMC and Mid_CBF.LMC Scan Sequence - High Level

participant "TMC\n" as tmc #Gold
participant "CSP_Mid\n.LMC" as lmc #Thistle

box "\nMCS\n"
participant "Mid.CBF\nController" as controller
participant "Mid.CBF\nSubarray" as subarray
collections "FSP\n" as fsp
end box

note over controller        : OpState: DISABLE
note over subarray          : OpState: DISABLE
group #LemonChiffon If setting SimulationMode to FALSE
    lmc         -> controller   : Update simulationMode
end group
lmc         -> controller   : AdminMode.ONLINE
controller  -> subarray     : SimulationMode
controller  -> subarray     : AdminMode.ONLINE
group #LemonChiffon For AA1
    controller  -> fsp          :_set_fsp_function_mode()
    note right of controller
        Sets FSP's function mode based
        on configuration  requested
        in talondx-config.json
    end note
    note right of controller  
      See FSP section in Design Notes 
      for supported configurations
    end note
end group
note over subarray          : OpState: ON
note over controller        : OpState: OFF

lmc         -> controller   : InitSysParam(json_str)
controller --> lmc          : Success

lmc         -> controller   : On()
note over controller        : OpState: ON
controller --> lmc          : Success

lmc         -> subarray     : AddReceptors(list[str])
note over lmc               : Note: adds receptors without duplicates
note over subarray          : ObsState: IDLE
subarray   --> lmc          : Success

lmc         -> subarray     : ConfigureScan(json_str)


group #LemonChiffon Delay model subscription point
    subarray    -> tmc          : Unsubscribe all events
    subarray    -> tmc          : Subscribe delay model
end group

' group Doppler subscription point
' subarray    -> tmc          : subscribe Doppler phase correction
' end group

' group Jones matrix subscription point
' subarray    -> tmc          : subscribe Jones matrix
' end group

' group Timing beam subscription point
' subarray    -> tmc          : subscribe timing beam weights
' end group

note over subarray          : ObsState: READY
subarray   --> lmc          : Success

lmc         -> subarray     : Scan()
note over subarray          : ObsState: SCANNING
subarray   --> lmc          : Success

lmc         -> subarray     : EndScan()
note over subarray          : ObsState: READY
subarray   --> lmc          : Success

lmc         -> subarray     : GoToIdle()
note over subarray          : ObsState: IDLE
subarray   --> lmc          : Success

lmc         -> subarray     : RemoveAllReceptors()
note over subarray          : ObsState: EMPTY
subarray   --> lmc          : Success

lmc         -> controller   : Off()
note over controller        : OpState: OFF
controller --> lmc          : Success

lmc         -> controller   : AdminMode.OFFLINE
controller  -> subarray     : AdminMode.OFFLINE
note over subarray          : OpState: DISABLE
note over controller        : OpState: DISABLE

@enduml

CbfController Tango Commands

Command

Parameters

Return Type

Action

Supported Interface(s)

Off

None

(ResultCode, str)

Set power state to OFF for controller and
subordinate devices (subarrays, VCCs, FSPs)
Turn off power to all hardware
See also Off Sequence

InitSysParam

JSON str*

(ResultCode, str)

Initialize Dish ID to VCC ID mapping and k values
https://schema.skao.int/ska-mid-cbf-initsysparam/1.0
https://schema.skao.int/ska-mid-cbf-initsysparam/1.1

Standby

None

(ResultCode, str)

None

On

None

(ResultCode, str)

Turn on the controller and subordinate devices

* Schema for JSON string defined in the Telescope Model - Mid.CBF schemas

CbfSubarray Tango Commands

Command

Parameters

Return Type

Action

Supported Interface(s)

Abort

None

(ResultCode, str)

Change observing state to ABORTED
Send Abort to VCC
Send Abort to FSP <function mode> Subarrays
No action on hardware

AddReceptors

List[str]

(ResultCode, str)

Assign receptors to this subarray
Turn subarray to ObsState = IDLE if no
receptor was previously assigned

ConfigureScan

JSON str*

(ResultCode, str)

Change observing state to READY
Configure attributes from input JSON
Subscribe events
Configure VCC, VCC subarray, FSP, FSP Subarray
Publish output links.
https://schema.skao.int/ska-csp-configurescan/4.1
https://schema.skao.int/ska-csp-configurescan/5.0
https://schema.skao.int/ska-csp-configurescan/6.0
https://schema.skao.int/ska-csp-configurescan/7.0
https://schema.skao.int/ska-csp-configurescan/8.1

EndScan

None

(ResultCode, str)

End the scan

ObsReset

None

(ResultCode, str)

Reset subarray scan configuration
Keep assigned receptors
Reset observing state to IDLE
If in FAULT, send Abort/ObsReset to VCC
If in FAULT, send Abort/ObsReset to
FSP <function mode> subarrays
No action on hardware

Off

None

(ResultCode, str)

Set subarray power mode to off.
Commands FSP<function mode> Subarrays
to turn off
No action on hardware power

On

None

(ResultCode, str)

Set subarry power mode to on.
Command FSP<function mode> Subarrays
to turn on

RemoveAllReceptors

None

(ResultCode, str)

Remove all receptors
Turn Subarray off if no receptors are
assigned

RemoveReceptors

List[str]

(ResultCode, str)

Remove receptors in input list
Change observing state to EMPTY if no
receptors assigned

Restart

None

(ResultCode, str)

Reset subarray scan configuration
Remove assigned receptors
Restart observing state model to EMPTY
If in FAULT, send Abort/ObsReset to VCC
If in FAULT, send Abort/ObsReset to
FSP <function mode> subarrays
No action on hardware

Scan

JSON str*

(ResultCode, str)

Start scanning
https://schema.skao.int/ska-csp-scan/2.2
https://schema.skao.int/ska-csp-scan/2.3

* Schema for JSON string defined in the Telescope Model - Mid.CBF schemas

Supported ConfigureScan Validation

The telescope model will validate AA4 ranges, but due to ongoing development, MCS supports a subset of values for the given parameters. The tables below might not contains all the fields that telscope model supports, but will contain all the fields that MCS will validate.

Currently, MCS supports Scan Configurations version 4.1 and 5.0.

See Telescope Model - Mid.CBF schemas - ska-csp-configurescan schemas

CSP Scan Configuration

Scan Configuration Parameter

AA4 Ranges (see TM)

Supported

Comment

common

See TM

See the Common Configuration subsection below

Common section, containing the parameters and the sections belonging to all CSP subsystems.
This section is forwarded to all sub-elements.
See the Common Configuration section below for the values MCS validates in this section.

midcbf

See TM

See the MidCBF Configuration subsection below

Correlator and Beamformer specific parameters.
This section contains the parameters relevant only for Mid.CBF sub-element.
This section is forwarded only to Mid.CBF subelement.
See the MidCBF Configuration section below for the values MCS validates in this section.

Common Configuration

Scan Configuration Parameter

AA4 Ranges (see TM)

Supported

Comment

subarray_id

Integer from 1 to 16 inclusive

Integer of value 1

band_5_tuning

See TM

None

Warning

This value is currently unsupported

Using this value will result in a rejected scan configuration

frequency_band

Strings of values: 1, 2, 5a, 5b

Strings of values: 1, 2

MidCBF Configuration

Scan Configuration Parameter

AA4 Ranges (see TM)

Supported

Comment

frequency_band_offset_stream1

See TM

None

Warning

This value is currently unsupported

Using this value will result in a rejected scan configuration

frequency_band_offset_stream2

See TM

None

Warning

This value is currently unsupported

Using this value will result in a rejected scan configuration

correlation

See TM

See the correlation section

Correlation specific parameters for processing regions

pst_bf

See TM

See the PST Processing Region Configuration section

PST Beam-Former specific parameters for processing regions

vlbi

TBD

None

Warning

This value is currently unsupported

Using this value will result in a rejected scan configuration

PST Processing Region Configuration

Scan Configuration Parameter

AA4 Ranges (see TM)

Supported

Comment

fsp_ids

Array of 1 to 26 fsp_id

FSP IDs 1 to 8

Note

When running in 4 FSP configuration, all 4 FSP must be configured to the same FSP Mode

Validator does not check the FSP IDs requested; However, if the scan configuration specifies a FSP for PST (or CORR) but the FSP mode assigned to the FSP device is CORR (or PST), the command will get rejected by the FSP device.

For further details see Frequency Slice Processor (FSP) and MCS Simulation Mode.

start_freq

See TM

start_freq is a Enum value that is one of:

Band 1

296862720
495075840
693235200
891448320

Band 2

891448320
1089607680
1287767040
1485980160
1684139520
Checks:
  • Must be a multiple of 53760 Hz

channel_count

See TM

  • The only valid value is 3700

pst_start_channel_id

Integer from 0 to 2147483647 inclusive

Same as TM;

Starting value for the channel numbering in the processing region. Used only to number channels in the output product (timing beam).
Channels in the output product are numbered sequentially starting with the pst_start_channel_id.
The channel with the centre frequency of start_freq will have a channel ID of pst_start_channel_id.
The next channel will have the channel ID of pst_start_channel_id + 1.

timing_beams

  • Only 1 timing_beam in timing_beams per processing region

Contains a list of mutiple timing_beam for this processing region.
See Timing-Beam Scan Configuration section for timing_beam specific supported values.

Correlation Processing Region Configuration

Scan Configuration Parameter

AA4 Ranges (see TM)

Supported

Comment

fsp_ids

Array of 1 to 26 fsp_id

FSP IDs 1 to 8

Note

When running in 4 FSP configuration, all 4 FSP must be configured to the same FSP Mode

Validator does not check the FSP IDs requested; However, if the scan configuration specifies a FSP for PST (or CORR) but the FSP mode assigned to the FSP device is CORR (or PST), the command will get rejected by the FSP device.

For further details see Frequency Slice Processor (FSP) and MCS Simulation Mode.

start_freq

See TM

Range: Integer from 0Hz to 1980MHz inclusive

Warning

AA0.5 Mid.CBF will produce a warning when the bandwidth [(start_freq - channel_width/2) to (start_freq + (channel_count - 1) * channel_width + channel_width/2)] of the region is outside the range of bands 1 & 2 (350MHz - 1760MHz)

channel_count

See TM

Ranges:
  • Integer from 1 to 58982 inclusive

Checks:
  • Must be a multiple of 20

channel_width

See TM for enum

Integer of exactly 13440

sdp_start_channel_id

See TM

Same as TM

No additional checks needed

integration_factor

Integer from 1 - 10 inclusive

Same as TM

No additional checks needed

output_link_map

Checks:

  • First entry start_channel_id must match the sdp_start_channel_id

[[sdp_start_channel_id, 1]]

output_port

See TM

Checks:

  • First entry start_channel_id must match the sdp_start_channel_id

  • start_channel_id’s must be multiples of 20

  • At most 20 channels can be sent to the same port per host

Timing-Beam Scan Configuration

Scan Configuration Parameter

AA4 Ranges (see TM)

Supported

Comment

timing_beam_id

1 to 16 inclusive

Same as TM

Note

Each timing_beam_id can only be used by one subarray at a time. however it can be assigned to multiple PST processing region with the Scan Configuration.

To use more than one FSP for a specific timing_beam_id, users can assigned the the timing_beam_id in other PST processing regions withing the same Scan Configuration.

receptors

See TM for valid values

  • If this optional parameter is provided, this subset of receptors must be the same subset for all PST processing regions in the Scan Configuration that has been assigned the same timing_beam_id.

  • The receptors requested must be a subset of receptors assigned to the given Subarray ID

Note

Optionally a subset of receptors to be included in the timing beam can be specified. If not specified, all receptors that belong to the subarray are included in the timing beam.

output_link_map

Ranges:
  • Start Channel ID: Integer from 0 to 14879 inclusive

  • Link ID: Positive Integer value up to uint32_max

Checks:
  • At least one output_link_map mapping required

  • Start Channel IDs are in ascending order

  • First entry start_channel_id must match the pst_start_channel_id

Single entry with link ID of 1. [[sdp_start_channel_id, 1]]

Output links to emit timing beam on for every channel, given as a list of start channel ID to link ID.
Where no value is given for concrete channel, the previous value should be used.

output_host

Ranges:
  • Start Channel ID: Integer from 0 to 2147483647 inclusive

  • Host IP: String w/ any valid IPv4 in dot-decimal notation [0.0.0.0-255.255.255.255]

Checks:
  • At least one output_host mapping required

  • Start channel IDs are in ascending order

  • In the first mapping entry, the Start Channel ID must match pst_start_channel_id

  • Only one output_host mapping allowed

  • Sequential Start Channel IDs must be in increments of 185

  • All Start Channel IDs must be divisible by 185

  • Start Channel ID Range is between pst_start_channel_id and (pst_start_channel_id + (channel_count - 185)) inclusive

output_hosts is a list of [Start Channel ID : Host IP] pairings.

output_port

Ranges:
  • Start Channel ID: Integer from 0 to 2147483647 inclusive

  • Port Number: Integer from 0 to 65535 inclusive

Checks:
  • At least one output_port mapping is required

  • The first start channel ID in the list must be pst_start_channel_id

  • Start channel IDs must be in ascending order

  • Only one output_port entry allowed

  • Sequential Start channel IDs must be in increments of 185

  • All Start Channel IDs must be divisible by 185

  • At most 3700 channels can be sent to the same port per host

output_port is a list of [Start Channel ID : Port Number] pairings.