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\n

participant "\nTMC" as tmc
participant "CSP_Mid\n.LMC" as lmc

box "MCS"
participant "Mid.CBF\nController" as controller
participant "Mid.CBF\nSubarray" as subarray
end box

lmc         -> controller   : write frequencyOffsetK(ints)
controller  -> subarray     : write frequencyOffsetK(ints)
lmc         -> controller   : write frequencyOffsetDeltaF(int)
controller  -> subarray     : write frequencyOffsetDeltaF(int)
lmc         -> subarray     : AddReceptors(strs)
subarray    -> subarray     : obs state IDLE
subarray   --> lmc          : success
lmc         -> subarray     : ConfigureScan(json_str)
subarray    -> tmc          : unsubscribe all events

group Delay model subscription point
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

subarray    -> subarray     : obs state READY
subarray   --> lmc          : success

lmc         -> subarray     : Scan()
subarray    -> subarray     : obs state SCANNING
subarray   --> lmc          : success

lmc         -> subarray     : EndScan()
subarray    -> subarray     : obs state READY
subarray   --> lmc          : success

lmc         -> subarray     : RemoveAllReceptors()
subarray    -> subarray     : obs state EMPTY
subarray   --> lmc          : success

@enduml

CbfController Tango Commands

Command

Parameters

Return type

Action

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

Standby

None

(ResultCode, str)

None

On

None

(ResultCode, str)

Turn on the controller and subordinate devices

CbfSubarray Tango Commands

Command

Parameters

Return type

Action

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.

EndScan

None

(ResultCode, str)

End the scan

ObsReset

None

(ResultCode, str)

Reset subarray scan configuration
Keep assigned receptors
Change observing state to IDLE
Send ObsReset to VCC
Send 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 and
remove assigned receptors
Change observing state to EMPTY
Send ObsReset to VCC
Send ObsReset to FSP <function mode> Subarrays
No action on hardware

Scan

JSON str*

(ResultCode, str)

Start scanning