Central Node

Central Node is a coordinator of the complete M&C system. Central Node implements the standard set of state and mode attributes defined by the SKA Control Model.

class tmcprototype.centralnode.src.centralnode.central_node.CentralNode(*args: Any, **kwargs: Any)

Central Node is a coordinator of the complete M&C system.

class AssignResourcesCommand(*args: Any, **kwargs: Any)

A class for CentralNode’s AssignResources() command.

check_allowed()

Checks whether this command is allowed to be run in current device state

Returns

True if this command is allowed to be run in current device state

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

do(argin)

Assigns resources to given subarray. It accepts the subarray id, receptor id list and SDP block in JSON string format. Upon successful execution, the ‘receptorIDList’ attribute of the given subarray is populated with the given receptors.Also checking for duplicate allocation of resources is done. If already allocated it will throw error message regarding the prior existence of resource.

Parameters

argin

The string in JSON format. The JSON contains following values:

subarrayID:

DevShort. Mandatory.

dish:

Mandatory JSON object consisting of

receptorIDList:

DevVarStringArray The individual string should contain dish numbers in string format with preceding zeroes upto 3 digits. E.g. 0001, 0002.

sdp:

Mandatory JSON object consisting of

id:

DevString The SBI id.

max_length:

DevDouble Maximum length of the SBI in seconds.

scan_types:

array of the blocks each consisting following parameters id:

DevString The scan id.

coordinate_system:

DevString

ra:

DevString

Dec:

DevString

processing_blocks:

array of the blocks each consisting following parameters id:

DevString The Processing Block id.

workflow:
type:

DevString

id:

DevString

version:

DevString

parameters:

{}

Example:

{“subarrayID”:1,”dish”:{“receptorIDList”:[“0001”,”0002”]},”sdp”:{“id”:”sbi-mvp01-20200325-00001”, “max_length”:100.0,”scan_types”:[{“id”:”science_A”,”coordinate_system”:”ICRS”,”ra”:”02:42:40.771” ,”dec”:”-00:00:47.84”,”channels”:[{“count”:744,”start”:0,”stride”:2,”freq_min”: 0.35e9,”freq_max”:0.368e9,”link_map”:[[0,0],[200,1],[744,2],[944,3]]},{“count”:744,”start”:2000, “stride”:1,”freq_min”:0.36e9,”freq_max”:0.368e9,”link_map”:[[2000,4],[2200,5]]}]},{“id”: “calibration_B”,”coordinate_system”:”ICRS”,”ra”:”12:29:06.699”,”dec”:”02:03:08.598”, “channels”:[{“count”:744,”start”:0,”stride”:2,”freq_min”:0.35e9,”freq_max”:0.368e9,”link_map”: [[0,0],[200,1],[744,2],[944,3]]},{“count”:744,”start”:2000,”stride”:1,”freq_min”:0.36e9, “freq_max”:0.368e9,”link_map”:[[2000,4],[2200,5]]}]}],”processing_blocks”:[{“id”: “pb-mvp01-20200325-00001”,”workflow”:{“type”:”realtime”,”id”:”vis_receive”,”version”: “0.1.0”},”parameters”:{}},{“id”:”pb-mvp01-20200325-00002”,”workflow”:{“type”:”realtime”, “id”:”test_realtime”,”version”:”0.1.0”},”parameters”:{}},{“id”:”pb-mvp01-20200325-00003”, “workflow”:{“type”:”batch”,”id”:”ical”,”version”:”0.1.0”},”parameters”:{},”dependencies”: [{“pb_id”:”pb-mvp01-20200325-00001”,”type”:[“visibilities”]}]},{“id”:”pb-mvp01-20200325-00004” ,”workflow”:{“type”:”batch”,”id”:”dpreb”,”version”:”0.1.0”},”parameters”:{},”dependencies”: [{“pb_id”:”pb-mvp01-20200325-00003”,”type”:[“calibration”]}]}]}}

Note: From Jive, enter above input string without any space.

Returns

A tuple containing a return code and a string in JSON format on successful assignment of given resources. The JSON string contains following values:

dish:

Mandatory JSON object consisting of

receptorIDList_success:

DevVarStringArray Contains ids of the receptors which are successfully allocated. Empty on unsuccessful allocation.

Example:

{ “dish”: { “receptorIDList_success”: [“0001”, “0002”] } }

Return type

(ResultCode, str)

Raises

DevFailed when the API fails to allocate resources.

Note: Enter input without spaces as:{“dish”:{“receptorIDList_success”:[“0001”,”0002”]}}

class InitCommand(*args: Any, **kwargs: Any)

A class for the TMC CentralNode’s init_device() method.

do()

Initializes the attributes and properties of the Central Node.

Returns

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

Return type

(ReturnCode, str)

Raises

DevFailed if error occurs while initializing the CentralNode device or if error occurs while creating device proxy for any of the devices like SubarrayNode, DishLeafNode, CSPMasterLeafNode or SDPMasterLeafNode.

class ReleaseResourcesCommand(*args: Any, **kwargs: Any)

A class for CentralNode’s ReleaseResources() command.

check_allowed()

Checks whether this command is allowed to be run in current device state

Returns

True if this command is allowed to be run in current device state

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

do(argin)

Release all the resources assigned to the given Subarray. It accepts the subarray id, releaseALL flag and receptorIDList in JSON string format. When the releaseALL flag is True, ReleaseAllResources command is invoked on the respective SubarrayNode. In this case, the receptorIDList tag is empty as all the resources of the Subarray are to be released. When releaseALL is False, ReleaseResources will be invoked on the SubarrayNode and the resources provided in receptorIDList tag, are to be released from the Subarray. The selective release of the resources when releaseALL Flag is False is not yet supported.

Parameters

argin

The string in JSON format. The JSON contains following values:

subarrayID:

DevShort. Mandatory.

releaseALL:

Boolean(True or False). Mandatory. True when all the resources to be released from Subarray.

receptorIDList:

DevVarStringArray. Empty when releaseALL tag is True.

Example:
{

“subarrayID”: 1, “releaseALL”: true, “receptorIDList”: []

}

Note: From Jive, enter input as:

{“subarrayID”:1,”releaseALL”:true,”receptorIDList”:[]} without any space.

Returns

A tuple containing a return code and a string in josn format on successful release of all the resources. The JSON string contains following values:

releaseALL:

Boolean(True or False). If True, all the resources are successfully released from the Subarray.

receptorIDList:

DevVarStringArray. If releaseALL is True, receptorIDList is empty. Else list returns resources (device names) that are noe released from the subarray.

Example:

argout = {

”ReleaseAll” : True, “receptorIDList” : []

}

rtype

(ResultCode, str)

raises

ValueError if input argument json string contains invalid value KeyError if input argument json string contains invalid key DevFailed if the command execution or command invocation on SubarrayNode is not successful

StandByTelescope()

This command invokes SetStandbyLPMode() command on DishLeafNode, StandBy() command on CspMasterLeafNode and SdpMasterLeafNode and Off() command on SubarrayNode and sets CentralNode into OFF state.

class StandByTelescopeCommand(*args: Any, **kwargs: Any)

A class for CentralNode’s StandByTelescope() command.

check_allowed()

Checks whether this command is allowed to be run in current device state

Returns

True if this command is allowed to be run in current device state

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

do()

Sets the CentralNode into OFF state. Invokes the respective command on lower level nodes adn devices.

Returns

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

The message is for information purpose only.

Return type

(ResultCode, str)

Raises

DevFailed if error occurs while invoking command on any of the devices like SubarrayNode, DishLeafNode, CSPMasterLeafNode or SDpMasterLeafNode

class StartUpTelescopeCommand(*args: Any, **kwargs: Any)

A class for CentralNode’s StartupCommand() command.

check_allowed()

Checks whether this command is allowed to be run in current device state

Returns

True if this command is allowed to be run in current device state

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

do()

Setting the startup state to TRUE enables the telescope to accept subarray commands as per the subarray model. Set the CentralNode into ON state.

Parameters

argin – None.

Returns

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

The message is for information purpose only.

Return type

(ResultCode, str)

Raises

DevFailed if error occurs while invoking command on any of the devices like SubarrayNode, DishLeafNode, CSPMasterLeafNode or SDpMasterLeafNode

StowAntennas(argin)

This command stows the specified receptors.

class StowAntennasCommand(*args: Any, **kwargs: Any)

A class for CentralNode’s StowAntennas() command.

check_allowed()

Checks whether this command is allowed to be run in current device state

Returns

True if this command is allowed to be run in current device state

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

do(argin)

Invokes the command SetStowMode on the specified receptors.

Parameters

argin – List of Receptors to be stowed.

Returns

None

Raises

DevFailed if error occurs while invoking command of DishLeafNode ValueError if error occurs if input argument json string contains invalid value

always_executed_hook()

Internal construct of TANGO.

delete_device()

Internal construct of TANGO.

health_state_cb(evt)

Retrieves the subscribed Subarray health state, aggregates them to calculate the telescope health state.

Parameters

evt – A TANGO_CHANGE event on Subarray healthState.

Returns

None

Raises

KeyError if error occurs while setting Subarray healthState

init_command_objects()

Initialises the command handlers for commands supported by this device.

is_AssignResources_allowed()

Checks whether this command is allowed to be run in current device state.

Returns

True if this command is allowed to be run in current device state

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

is_ReleaseResources_allowed()

Checks whether this command is allowed to be run in current device state.

Returns

True if this command is allowed to be run in current device state.

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state

is_StandByTelescope_allowed()

Checks whether this command is allowed to be run in current device state.

Returns

True if this command is allowed to be run in current device state.

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state.

is_StartUpTelescope_allowed()

Checks whether this command is allowed to be run in current device state.

Returns

True if this command is allowed to be run in current device state.

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state.

is_StowAntennas_allowed()

Checks whether this command is allowed to be run in current device state.

Returns

True if this command is allowed to be run in current device state.

Return type

boolean

Raises

DevFailed if this command is not allowed to be run in current device state.

obs_state_cb(evt)

Retrieves the subscribed Subarray observation state. When the Subarray obsState is EMPTY, the resource allocation list gets cleared.

Parameters

evt – A TANGO_CHANGE event on Subarray obsState.

Returns

None

Raises

KeyError in Subarray obsState callback

read_activityMessage()

Internal construct of TANGO. Returns activity message.

read_subarray1HealthState()

Internal construct of TANGO. Returns Subarray1 health state.

read_subarray2HealthState()

Internal construct of TANGO. Returns Subarray2 health state.

read_subarray3HealthState()

Internal construct of TANGO. Returns Subarray3 health state.

read_telescopeHealthState()

Internal construct of TANGO. Returns the Telescope health state.

write_activityMessage(value)

Internal construct of TANGO. Sets the activity message.

tmcprototype.centralnode.src.centralnode.central_node.main(args=None, **kwargs)

Runs the CentralNode. :param args: Arguments internal to TANGO

Parameters

kwargs – Arguments internal to TANGO

Returns

CentralNode TANGO object.