TalonDxLogConsumer Class

class ska_mid_cbf_mcs.talondx_log_consumer.talondx_log_consumer_device.TalonDxLogConsumer(cl, name)[source]

Bases: SKABaseDevice

TANGO device class for consuming logs from the Tango devices run on the Talon boards, converting them to the SKA format, and outputting them via the logging framework.

init_command_objects() None[source]

Sets up the command objects

create_component_manager()[source]

Create the component manager LogComponentManager

Returns:

Instance of LogComponentManager

Return type:

LogComponentManager

set_logging_level(value: LoggingLevel) None[source]

Sets logging level for the device. Both the Python logger and the Tango logger are updated. Overrides the base class attribute to accept all log levels coming from HPS devices, but still limit the logging level of TalonDxLogConsumer logs.

Parameters:

value – Logging level for logger

Raises:

LoggingLevelError – for invalid value

class LogCommand(*args: Any, **kwargs: Any)[source]

Bases: CbfFastCommand

A class for the TalonDxLogConsumer’s Log command.

do(log_message: list[str]) None[source]

Stateless hook for Log command functionality.

Parameters:

log_message – Parts of the TLS log message

Log(log_message: list[str]) None[source]

Write the log to stdout as received from TLS

Sample log: [‘1650964795495’, ‘ERROR’, ‘ska001/elt/master’, ‘TangoUtils::DeviceAttributeToCorbaAny() - A Message’, ‘’, @7f48dcc80700 [7]’]

Details of the list items here: https://tango-controls.readthedocs.io/projects/rfc/ en/latest/14/Logging.html#log-consumer

Parameters:

log_message (list[str]) – Parts of the TLS log message

class SetTalonDxLogConsumerTargetCommand(*args: Any, **kwargs: Any)[source]

Bases: CbfFastCommand

A class for the TalonDxLogConsumer’s SetTalonDxLogConsumerTarget command.

do(device_name: str) None[source]

Stateless hook for SetTalonDxLogConsumerTarget command functionality.

Parameters:

device_name – FQDN of target device

SetTalonDxLogConsumerTarget(device_name: str) None[source]

Add TalonDxLogConsumer as a logging target destination on device

Parameters:

device_name – FQDN of target device

class RemoveTalonDxLogConsumerTargetCommand(*args: Any, **kwargs: Any)[source]

Bases: CbfFastCommand

A class for the TalonDxLogConsumer’s RemoveTalonDxLogConsumerTarget command.

do(device_name: str) None[source]

Stateless hook for SetTalonDxLogConsumerTarget command functionality.

Parameters:

device_name – FQDN of target device

RemoveTalonDxLogConsumerTarget(device_name: str) None[source]

Remove TalonDxLogConsumer as a logging target destination on device

Parameters:

device_name – FQDN of target device

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

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, devices and subgroups in 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 devices and subgroups keys:

[ {"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": []}
   ]} ]
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.

Off() tuple[list[ska_control_model.result_code.ResultCode], list[str]]

Turn the device off.

To modify behaviour for this command, modify the do() method of the command class.

Returns:

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

On() tuple[list[ska_control_model.result_code.ResultCode], list[str]]

Turn device on.

To modify behaviour for this command, modify the do() method of the command class.

Returns:

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

Reset() tuple[list[ska_control_model.result_code.ResultCode], list[str]]

Reset the device.

To modify behaviour for this command, modify the do() method of the command class.

For a device that directly monitors and controls hardware, this command should put that hardware into a known state, for example by clearing buffers and loading default values into registers, or if necessary even by power-cycling and re-initialising the hardware.

Logical devices should generally implement this command to perform a sensible reset of that logical device. For example, aborting any current activities and clearing internal state.

Reset generally should not change the power state of the device or its hardware:

  • If invoking Reset() from STANDBY state, the device would usually be expected to remain in STANDBY.

  • If invoking Reset() from ON state, the device would usually be expected to remain in ON.

  • If invoking Reset() from FAULT state, the device would usually be expected to transition to ON or remain in FAULT, depending on whether the reset was successful in clearing then fault.

Reset generally should not propagate to subservient devices. For example, a subsystem controller device should implement Reset to reset the subsystem as a whole, but that probably should not result in all of the subsystem’s hardware being power-cycled.

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.

To modify behaviour for this command, modify the do() method of the command class.

Returns:

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

TangoClassClass

alias of TalonDxLogConsumerClass

TangoClassName = 'TalonDxLogConsumer'
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.

simulationMode

Read 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.

Returns:

Simulation Mode of the device.

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