CbfController Class
- class ska_mid_cbf_tdc_mcs.controller.controller_device.CbfController(cl, name)[source]
Bases:
CbfDeviceCbfController TANGO device class.
Primary point of contact for monitoring and control of Mid.CBF. Implements state and mode indicators, and a set of state transition commands.
- CbfSubarray
TANGO property
- VCC
TANGO property
- FSP
TANGO property
- TalonLRU
TANGO property
- TalonBoard
TANGO property
- PowerSwitch
TANGO property
- FsSLIM
TANGO property
- VisSLIM
TANGO property
- TalonDxConfigPath
TANGO property
- HWConfigPath
TANGO property
- FsSLIMConfigPath
TANGO property
- VisSLIMConfigPath
TANGO property
- LRCTimeout
TANGO property
- MaxCapabilities
TANGO property
- sysParam
Maps Dish ID to VCC and frequency offset k. The string is in JSON format.
- sourceSysParam
Source and file path to the file to be retrieved through the Telescope Model. The string is in JSON format.
- dishToVcc
vccID’.
- Type:
Dish ID to VCC mapping. The string is in the format ‘dishID
- vccToDish
dishID’.
- Type:
VCC to Dish mapping. The string is in the format ‘vccID
- maxCapabilities
4’, ‘Subarray:1’.
- Type:
Maximum number of instances of each capability type, e.g. ‘VCC
- Type:
4’, ‘FSP
- simulationMode
Reports the simulation mode of the device. Some devices may implement both modes, while others will have simulators that set simulationMode to True while the real devices always set simulationMode to False.MCS supports setting this attribute only when Controller is in AdminMode.OFFLINE.
- is_simulationMode_allowed
Reports the simulation mode of the device. Some devices may implement both modes, while others will have simulators that set simulationMode to True while the real devices always set simulationMode to False.MCS supports setting this attribute only when Controller is in AdminMode.OFFLINE.
- validateSupportedConfiguration
Flag to indicate if a restrictive validation is requested for supported configurations, such as with Scan Configurations. Defaults to True. Setting the flag to False can cause unexpected behaviour with the system.
- is_adminMode_allowed(req_type: AttReqType) bool[source]
is_allow check for adminMode attribute adminMode is not allowed to be set when the Controller is in PowerState.On
- Parameters:
req_type – The request type (Write, Read) of the attribute call
- Returns:
A bool indicating if the command is allowed
- create_component_manager() ControllerComponentManager[source]
Create and return a component manager for this device.
- Returns:
a component manager for this device.
- class InitCommand(device: Device, logger: Logger | None = None, validator: ArgumentValidator | None = None)[source]
Bases:
InitCommandA class for the CbfController’s Init() command.
- do(*args: any, change_event_attrs: list[str] = [], archive_event_attrs: list[str] = [], **kwargs: any) tuple[ska_control_model.result_code.ResultCode, str][source]
Stateless hook for device initialisation.
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- Return type:
(ResultCode, str)
- On() tuple[list[ska_control_model.result_code.ResultCode], list[str]][source]
Turn the device on.
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- Return type:
(ResultCode, str)
- Off() tuple[list[ska_control_model.result_code.ResultCode], list[str]][source]
Turn the device off.
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- Return type:
(ResultCode, str)
- is_InitSysParam_allowed() bool[source]
Determine if InitSysParamCommand is allowed (allowed when state is OFF).
- Returns:
if InitSysParamCommand is allowed
- Return type:
- Abort() tuple[list[ska_control_model.result_code.ResultCode], list[str]]
Abort any executing long running command(s) and empty the queue.
- Returns:
A tuple containing a result code and the unique ID of the command
- AbortCommands() tuple[list[ska_control_model.result_code.ResultCode], list[str]]
Empty out long running commands in queue.
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- CheckLongRunningCommandStatus(argin: str) str
Check the status of a long running command by ID.
- Parameters:
argin – the command id
- Returns:
command status
- DebugDevice() int
Enable remote debugging of this device.
To modify behaviour for this command, modify the do() method of the command class:
DebugDeviceCommand.- Returns:
the port the debugger is listening on
- DeviceID
TANGO property
- ExecutePendingOperations() None
Execute any Tango operations that have been pushed on the queue.
The poll time is initially 5ms, to circumvent the problem of device initialisation, but is reset to 100ms after the first pass.
- GetVersionInfo() list[str]
Return the version information of the device.
To modify behaviour for this command, modify the do() method of the command class.
- Returns:
The result code and the command unique ID
- GroupDefinitions
Device property.
Each string in the list is a JSON serialised dict defining the
group_name,devicesandsubgroupsin the group. A Tango Group object is created for each item in the list, according to the hierarchy defined. This provides easy access to the managed devices in bulk, or individually.The general format of the list is as follows, with optional
devicesandsubgroupskeys:[ {"group_name": "<name>", "devices": ["<dev name>", ...]}, {"group_name": "<name>", "devices": ["<dev name>", "<dev name>", ...], "subgroups" : [{<nested group>}, {<nested group>}, ...]}, ... ]
For example, a hierarchy of racks, servers and switches:
[ {"group_name": "servers", "devices": ["elt/server/1", "elt/server/2", "elt/server/3", "elt/server/4"]}, {"group_name": "switches", "devices": ["elt/switch/A", "elt/switch/B"]}, {"group_name": "pdus", "devices": ["elt/pdu/rackA", "elt/pdu/rackB"]}, {"group_name": "racks", "subgroups": [ {"group_name": "rackA", "devices": ["elt/server/1", "elt/server/2", "elt/switch/A", "elt/pdu/rackA"]}, {"group_name": "rackB", "devices": ["elt/server/3", "elt/server/4", "elt/switch/B", "elt/pdu/rackB"], "subgroups": []} ]} ]
- InitSysParam(argin: str) tuple[list[ska_control_model.result_code.ResultCode], list[str]][source]
This command sets the Dish ID - VCC ID mapping and k values
- Parameters:
argin – the Dish ID - VCC ID mapping and frequency offset (k) in a json string.
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- Return type:
(ResultCode, str)
- LoggingLevelDefault
Device property.
Default logging level at device startup. See
LoggingLevel
- LoggingTargetsDefault
Device property.
Default logging targets at device startup. See the project readme for details.
- Reset() tuple[list[ska_control_model.result_code.ResultCode], list[str]]
Reset the device; currently unimplemented in Mid.CBF
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- SkaLevel
Device property.
Indication of importance of the device in the SKA hierarchy to support drill-down navigation: 1..6, with 1 highest.
- Standby() tuple[list[ska_control_model.result_code.ResultCode], list[str]]
Put the device into standby mode; currently unimplemented in Mid.CBF
- Returns:
A tuple containing a return code and a string message indicating status. The message is for information purpose only.
- TangoClassClass
alias of
CbfControllerClass
- TangoClassName = 'CbfController'
- adminMode
Read the Admin Mode of the device.
- It may interpret the current device condition and condition of all managed
devices to set this. Most possibly an aggregate attribute.
- Returns:
Admin Mode of the device
- buildState
Read the Build State of the device.
- Returns:
the build state of the device
- commandedState
Read the last commanded operating state of the device.
Initial string is “None”. Only other strings it can change to is “OFF”, “STANDBY” or “ON”, following the start of the Off(), Standby(), On() or Reset() long running commands.
- Returns:
commanded operating state string.
- controlMode
Read the Control Mode of the device.
The control mode of the device are REMOTE, LOCAL Tango Device accepts only from a ‘local’ client and ignores commands and queries received from TM or any other ‘remote’ clients. The Local clients has to release LOCAL control before REMOTE clients can take control again.
- Returns:
Control Mode of the device
- healthState
Read the Health State of the device.
It interprets the current device condition and condition of all managed devices to set this. Most possibly an aggregate attribute.
- Returns:
Health State of the device
- loggingLevel
Read the logging level of the device.
Initialises to LoggingLevelDefault on startup. See
LoggingLevel- Returns:
Logging level of the device.
- loggingTargets
Read the additional logging targets of the device.
Note that this excludes the handlers provided by the ska_ser_logging library defaults - initialises to LoggingTargetsDefault on startup.
- Returns:
Logging level of the device.
- longRunningCommandResult
Read the result of the completed long running command.
Reports unique_id, json-encoded result. Clients can subscribe to on_change event and wait for the ID they are interested in.
- Returns:
ID, result.
- lrcFinished
Read info of the finished long running commands.
- Returns:
a list of info JSON blobs of the finished long running commands.
- lrcProtocolVersions
Return supported protocol versions.
- Returns:
A tuple containing the lower and upper bounds of supported long running command protocol versions.
- testMode
Read the Test Mode of the device.
Either no test mode or an indication of the test mode.
- Returns:
Test Mode of the device
- versionId
Read the Version Id of the device.
- Returns:
the version id of the device