TalonDxComponentManager Class

The TalonDxComponentManager is used to configure and start up Tango device servers on the Talon boards. These actions are performed during the On command of the CbfController. Note that these actions are not executed when the simulationMode of the CbfController is set to 1 (this is the default). Prior to sending the On command to the CbfController, the simulationMode should be set to 0 if it is desired to test the command with the Talon boards in the loop.

class ska_mid_cbf_mcs.controller.talondx_component_manager.TalonDxComponentManager(talondx_config_path: str, hw_config_path: str, simulation_mode: SimulationMode, logger: Logger)[source]

Bases: object

A component manager for the Talon-DX boards. Used to configure and start the Tango applications on the HPS of each board.

configure_talons() ResultCode[source]

Performs all actions to configure the Talon boards after power on and start the HPS device servers. This includes: copying the device server binaries and FPGA bitstream to the Talon boards, starting the HPS master device server and sending the configure command to each DsHpsMaster.

Returns:

ResultCode.FAILED if any operations failed, else ResultCode.OK

_read_config() ResultCode[source]

Read in the configuration files for the Talon boards and the hardware

Returns:

ResultCode.FAILED if any operations failed, else ResultCode.OK

_configure_talon_thread(talon_cfg)[source]
_setup_tango_host_file() None[source]

Copy the hps_master_mcs.sh file from mnt into mnt/talondx-config

Returns:

ResultCode.OK if all artifacts were copied successfully, otherwise ResultCode.FAILED

_secure_copy(ssh_client: paramiko.SSHClient, src: str, dest: str) None[source]

Execute a secure file copy to the specified target address.

Parameters:
  • ssh_client – SSH client for the Talon board we are trying to SCP to

  • src – Source file path

  • dest – Destination file path

Raises:

SCPException – if the file copy fails

_configure_talon_networking(talon_cfg) ResultCode[source]

Configure the networking of the boards including DNS nameserver and ifconfig for default gateway

Returns:

ResultCode.OK if all artifacts were copied successfully, otherwise ResultCode.FAILED

_copy_binaries_and_bitstream(talon_cfg) ResultCode[source]

Copy the relevant device server binaries and FPGA bitstream to each Talon board.

Returns:

ResultCode.OK if all artifacts were copied successfully, otherwise ResultCode.FAILED

_start_hps_master(talon_cfg) ResultCode[source]

Start the DsHpsMaster on each Talon board.

Returns:

ResultCode.OK if all HPS masters were started successfully, otherwise ResultCode.FAILED

_create_hps_master_device_proxies(talon_cfg) ResultCode[source]

Attempt to create a device proxy to each DsHpsMaster device.

Returns:

ResultCode.OK if all proxies were created successfully, otherwise ResultCode.FAILED

_configure_hps_master(talon_cfg) ResultCode[source]

Send the configure command to all the DsHpsMaster devices.

Returns:

ResultCode.OK if all configure commands were sent successfully, otherwise ResultCode.FAILED

_clear_talon(talon_cfg) ResultCode[source]

Clear the Talon board by sending a script to the Talon that kills all device processes

Returns:

ResultCode.OK if script was sent successfully, otherwise ResultCode.FAILED

_generate_kill_script(talon_cfg) str[source]

Generate a script to kill all device processes on the Talon board

Returns:

the script to kill all device processes

shutdown() ResultCode[source]

Shutdown the DsHpsMaster device with shutdown code 3. For reference, shutdown command codes:

  1. Child Tango DSs only

  2. Child and HPS Master Tango DSs

  3. Child and HPS Master Tango DSs, reboot Talon DX board

  4. Child and HPS Master Tango DSs, shut down Talon DX board

Returns:

ResultCode.OK if all configure commands were sent successfully, otherwise ResultCode.FAILED

_shutdown_talon_thread(talon_cfg)[source]