ska_tmc_dishleafnode.manager

Submodules

component_manager

This module provides an implementation of the Dish Leaf Node ComponentManager.

class ska_tmc_dishleafnode.manager.component_manager.DishLNComponentManager(*args: Any, **kwargs: Any)

Bases: TmcLeafNodeComponentManager

A component manager for The Dish Leaf Node component.

property actual_pointing: list

Returns the actualPointing of the dish device.

check_device_responsive() None

Checks if dish master device is responsive.

property command_in_progress: str

Method to get value of current command in progress

return: command in progress variable data rtype: str

configure(argin: str, task_callback: ska_tango_base.base.TaskCallbackType) tuple

Submit the Configure command in queue.

Returns:

a result code and message

Return type:

Tuple

convert_timestamp(timestamp_milliseconds: float) str

Converts the floating point timestamp in milliseconds to a utc timestamp with format -> %Y-%m-%d %H:%M:%S

Parameters:

timestamp_milliseconds (float) – Input timestamp with time in milliseconds

Returns:

Timestamp in string with format “%Y-%m-%d %H:%M:%S”.

Return type:

string

property dishConfiguredBand: str

Returns the dishConfiguredBand of dish device

property dishMode: ska_tmc_common.DishMode

Returns the dishMode of dish master device

async download_iers_data() None

Downloads and initialises the IERS file. Incase of error with main link, tries downloading using Mirror link.

Returns:

None

Return type:

None

property elevation_limit: bool

Returns the True if dish is within its mechanical limit.

Returns:

True if the dish is within its mechanical elevation limit, False otherwise.

Return type:

boolean

endscan(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the EndScan command for execution.

Parameters:

task_callback – Callback function to handle task status.

Type:

TaskCallbackType

Return type:

Tuple

get_device() ska_tmc_common.DishDeviceInfo

Return the device info of the monitoring loop with name dev_name

Returns:

a device info

Return type:

DishDeviceInfo

get_track_process_event_status() bool

Returns track process event status

Returns:

Status of track process event.

Return type:

bool

is_abortcommands_allowed() bool

Checks whether this command is allowed It checks that the device is in the right state to execute this command and that all the component needed for the operation are not unresponsive

Returns:

True if this command is allowed

Return type:

boolean

is_configure_allowed() bool

Checks if the given command is allowed in current operational state.

Returns:

True if the command is allowed in the current operational state, False otherwise.

Return type:

boolean

is_endscan_allowed() Union[bool, ska_tmc_common.CommandNotAllowed, ska_tmc_common.DeviceUnresponsive]

Checks if the given command is allowed in current operational state.

Returns:

True if this command is allowed to be run in current dish mode, raises CommandNotAllowed in case is is not allowed and DeviceUnresponsive in case Device is not responsive.

Return type:

Union[bool, CommandNotAllowed, DeviceUnresponsive]

is_off_allowed() bool

Checks if the given command is allowed in current operational state.

Returns:

True if the command is allowed in the current operational state, False otherwise.

Return type:

boolean

is_scan_allowed() Union[bool, ska_tmc_common.CommandNotAllowed, ska_tmc_common.DeviceUnresponsive]

Checks if the given command is allowed in current operational state.

Returns:

True if this command is allowed to be run in current dish mode, raises CommandNotAllowed in case is is not allowed and DeviceUnresponsive in case Device is not responsive.

Return type:

Union[bool, CommandNotAllowed, DeviceUnresponsive]

is_set_kvalue_allowed() bool

Checks whether this command is allowed It checks that the device is responsive before invoking command.

Returns:

True if this command is allowed

Return type:

boolean

is_setoperatemode_allowed() bool

Checks if the given command is allowed in current operational state.

Returns:

True if the command is allowed in the current operational state, False otherwise.

Return type:

boolean

is_setstandbyfpmode_allowed() bool

Checks if the given command is allowed in current operational state.

Return type:

boolean

is_setstandbylpmode_allowed() bool

Checks if the given command is allowed in current operational state.

Return type:

boolean

is_setstowmode_allowed() bool

Checks if the given command is allowed in current operational state.

Returns:

True if the command is allowed in the current operational state, False otherwise.

Return type:

boolean

is_track_allowed() bool

Checks if the given command is allowed in current operational state.

Returns:

True if the command is allowed in the current operational state, False otherwise.

Return type:

boolean

is_trackloadstaticoff_allowed() bool

Checks if the command TrackLoadStaticOff is allowed.

Returns:

True if the command ‘TrackLoadStaticOff’ is allowed, False otherwise.

Return type:

boolean

is_trackstop_allowed() bool

Checks if the given command is allowed in current operational state.

Returns:

True if the command is allowed in the current operational state, False otherwise.

Return type:

boolean

property kValue: int

Returns the k-value

property kValueValidationResult: int

Returns the k-value validation result

Returns:

The k-value validation result

Return type:

int

off(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the Off command for execution.

Return type:

Tuple

perform_reverse_transform(value_list)

Performs the reverse transform and publishes it on the actualPointing attribute.

Parameters:

value_list ((List[float])) – A list containing timestamp in milliseconds,azimuth, and elevation.

Returns:

None

Return type:

None

property pointingState: ska_tmc_common.PointingState

Returns the pointingState of dish master device

process_actual_pointing() None

Process the achieved pointing data to calculate actual pointing.

Returns:

None

Return type:

None

reset_track_process_event() None

Resets track process event

Returns:

None.

Return type:

NoneType

async run_init_threads() None

Await for the completion of beolw tasks

scan(argin: str, task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the Scan command for execution.

Parameters:
  • argin – JSON string containing offsets in the form of param.

  • task_callback – Callback function to handle task status.

Type:

str

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

set_dish_id(dish_master_fqdn: str) None

Find out dish number from DishMasterFQDN property e.g. ska001/elt/master

set_track_process_event() None

Sets event for track process.

Returns:

None.

Return type:

NoneType

setoperatemode(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the SetOperateMode command for execution.

Parameters:

task_callback – Callback function to handle task status.

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

setstandbyfpmode(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Initializes the attributes and properties of the DishLeafNode.

Returns:

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

setstandbylpmode(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the SetStandbyLPMode command for execution.

Parameters:

task_callback – Callback function to handle task status.

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

setstowmode(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the SetStowMode command for execution.

Parameters:

task_callback – Callback function to handle task status.

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

start_init_operations() None

This method assures proper execution of kvalue validation and iers data download.

stop_event_receiver() None

Stops the Event Receiver

Returns:

None

stop_executors_and_cleanup_memory() None

Method to clean up the code, stop running threads/sub-processes

Returns:

None

Return type:

None

track(argin: str, task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the Track command for execution.

Parameters:
  • argin – JSON string containing offsets in the form of param.

  • task_callback – Callback function to handle task status.

Type:

str

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

track_load_static_off(argin: str, task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the TrackLoadStaticOff command for execution

Parameters:

argin – JSON string containing offsets in the form of param.

Type:

str

Task_callback:

Callback function to handle task status.

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

track_process(ra_value: str, dec_value: str, command_obj: ska_tmc_dishleafnode.commands.configure_command.Configure | ska_tmc_dishleafnode.commands.track_command.Track) None

This method manages calculation and writing of programTrackTable attribute on DishMaster at the required frequency.

Parameters:
  • ra_value (str) – Right Ascension of the source in hours:minutes:sec.

  • dec_value (str) – Declination of the source in degree:arc_minutes:arc_sec.

  • command_obj (Configure or Track.) – Command Object which is used to set desired_pointing.

Returns:

None

Return type:

None

trackstop(task_callback: ska_tango_base.base.TaskCallbackType) Tuple[ska_tango_base.executor.TaskStatus, str]

Submits the TrackStop command for execution.

Parameters:

task_callback – Callback function to handle task status.

Type:

TaskCallbackType

Returns:

A tuple containing TaskStatus and a message string.

Return type:

Tuple

update_device_configured_band(configured_band: ska_tmc_common.Band) None

Update the configured band of the given dish and call the relative callbacks if available.

Parameters:

configured_band (Band) – Configured band of the dish device

update_device_dish_mode(dish_mode: ska_tmc_common.DishMode) None

Update the dish mode of the given dish and call the relative callbacks if available.

Parameters:

dishMode (DishMode) – Dish mode of the device

update_device_long_running_command_status(lrc_status: Tuple[List[str], List[str]]) None

Method to update task callback based on long running command status event data.

Parameters:

lrc_status – longRunningCommandStatus attribute event data

Type:

(Tuple[List[str], List[str]])

update_device_ping_failure(device_info: ska_tmc_common.DeviceInfo, exception: str) None

Set a device to failed and call the relative callback if available

Parameters:
  • device_info (DeviceInfo) – a device info

  • exception – an exception

Type:

Exception

Return type:

None

update_device_pointing_state(pointingState: ska_tmc_common.PointingState) None

Update the pointing state of the given dish and call the relative callbacks if available.

Parameters:

pointingState (PointingState) – Pointing state of the dish device

Returns:

None

Return type:

None

async update_kvalue_validation_result() None

This method informs the k-value validation result to central node after DLN start/restart.

Returns:

None

Return type:

None

update_ping_info(ping: int, device_name: str) None

Update a device with the correct ping information.

Parameters:
  • dev_name (str) – name of the device

  • ping (int) – device response time

Return type:

None

update_program_track_table(program_track_table: List) None

This method writes the programTrackTable attribute on dish master device.

Parameters:

program_track_table (list) – It a list of TAI time, Az and El for expected number of TAI times (TrackTableEntries).

Returns:

None

Return type:

None

ska_tmc_dishleafnode.manager.program_track_table_calculator module

Module for programTrackTable calculator.

class ska_tmc_dishleafnode.manager.program_track_table_calculator.ProgramTrackTableCalculator(component_manager, logger: Logger)

Bases: object

Class for programTrackTableCalculator.

calculate_program_track_table(ra_value: str, dec_value: str, azel_converter: AzElConverter) list

This method calculates programTrackTable.

Parameters:
  • ra_value (str) – Right Ascension of the source in hours:minutes:sec.

  • dec_value (str) – Declination of the source in degree:arc_minutes:arc_sec.

Returns:

list in the form of [TAI1, Az1, El1, TAI2, Az2, El2,,,,,,TAIn, Azn, Eln].

Return type:

list

calculate_time_stamp_list() tuple

This methods calculates an list of requested timestamps (TrackTableEntries) with a requested time difference (PointingCalculationPeriod) and corresponding list of time in TAI format.

Returns:

Tuple with list of timestamps (UTC) in string format and timestamp in TAI format.

Return type:

tuple

convert_timestamp(timestamp_seconds: float) str

Converts the floating point timestamp in seconds to a utc timestamp with format -> %Y-%m-%d %H:%M:%S

Parameters:

timestamp_seconds (float) – Input timestamp with time in seconds

Returns:

Timestamp with format “%Y-%m-%d %H:%M:%S”.

Return type:

string

convert_utc_to_tai(utc_time: float) float

This method converts utc time to tai format time. :param: utc_time: time in utc (seconds) :type utc_time: float :returns: Time in TAI format (seconds) :rtype: float

point(timestamp: str) list

This method converts Target RaDec coordinates to the AzEl coordinates. It is called continuously from Configure command (in a thread) at interval of 50ms till the StopTrack command is invoked.

Parameters:

timestamp (str) – utc timestamp

Returns:

Azimuth and Elevation coordinates (Az, El) of source.

Return type:

list

ska_tmc_dishleafnode.manager.event_receiver module

Event Receiver for Dish Leaf Node

class ska_tmc_dishleafnode.manager.event_receiver.DishLNEventReceiver(*args: Any, **kwargs: Any)

Bases: EventReceiver

The DishLNEventReceiver class has the responsibility to receive events from the dish master managed by the Dish Leaf Node.

The ComponentManager uses to handle events methods for the attribute of interest. For each of them a callback is defined.

handle_achieved_pointing_event(event_flag: tango.EventData) None

Method to handle and update the latest value of achievedPointing attribute.

Parameters:

event_flag (tango.EventType.CHANGE_EVENT) – To flag the change in event for achievedPointing.

Returns:

None

Return type:

NoneType

handle_configured_band_event(event_flag: tango.EventData) None

Method to handle and update the latest value of configuredBand attribute.

Parameters:

event_flag (tango.EventType.CHANGE_EVENT) – To flag the change in event for configuredBand.

Returns:

None

Return type:

NoneType

handle_dish_mode_event(event_flag: tango.EventData) None

Method to handle and update the latest value of dishMode attribute.

Parameters:

event_flag (tango.EventType.CHANGE_EVENT) – To flag the change in event for dishMode.

Returns:

None

Return type:

NoneType

handle_long_running_command_status(event_data: tango.EventData) None

Method to handle and update the latest value of longRunningCommandStatus attribute.

Parameters:

event_flag (tango.EventType.CHANGE_EVENT) – To flag the change in event.

Returns:

None

Return type:

NoneType

handle_pointing_state_event(event_flag: tango.EventData) None

Method to handle and update the latest value of pointingState attribute.

Parameters:

event_flag (tango.EventType.CHANGE_EVENT) – To flag the change in event for pointingState.

Returns:

None

Return type:

NoneType

run() None
subscribe_events(dev_info: ska_tmc_common.DishDeviceInfo, attribute_dictionary=None) None

ska_tmc_dishleafnode.manager.dish_kvalue_validation_manager module

Class for managing dish kvalue validation during initialization/restart of device

class ska_tmc_dishleafnode.manager.dish_kvalue_validation_manager.DishkValueValidationManager(component_manager, logger)

Bases: object

Class for dish kValue validation during dish leaf node initialization/restart

get_dish_ln_memorized_kvalue() int

Return memorized kvalue dish leaf node :return: int

get_dish_manager_kvalue() int

Get kValue attribute value of dish manager :return: int

is_dish_manager_ready() bool

Wait and check if dish manager is ready :return: bool

validate_dish_kvalue() None

Validate kvalue of dish leaf node and dish manager :return: None