from typing import Union from tmtccmd.config.definitions import ( ServiceOpCodeDictT, ) from tmtccmd.tc.definitions import TcQueueT from tmtccmd.utility.retval import RetvalDictT from tmtccmd.pus.obj_id import ObjectIdDictT from tmtccmd.com_if.com_interface_base import CommunicationInterface from tmtccmd.core.backend import TmTcHandler from tmtccmd.config.hook import TmTcHookBase from tmtccmd.config.globals import OpCodeDictKeys from config.definitions import CustomServiceList from config.retvals import get_retval_dict class EiveHookObject(TmTcHookBase): def __init__(self, json_cfg_path: str): super().__init__(json_cfg_path=json_cfg_path) def get_service_op_code_dictionary(self) -> ServiceOpCodeDictT: from tmtccmd.config.globals import get_default_service_op_code_dict service_op_code_dict = get_default_service_op_code_dict() get_eive_service_op_code_dict(service_op_code_dict=service_op_code_dict) return service_op_code_dict def assign_communication_interface( self, com_if_key: str ) -> Union[CommunicationInterface, None]: from tmtccmd.config.com_if import create_communication_interface_default return create_communication_interface_default( com_if_key=com_if_key, json_cfg_path=self.json_cfg_path, space_packet_ids=(0x0865,), ) def perform_mode_operation(self, tmtc_backend: TmTcHandler, mode: int): from config.custom_mode_op import custom_mode_operation custom_mode_operation(mode=mode, tmtc_backend=tmtc_backend) def pack_service_queue(self, service: int, op_code: str, service_queue: TcQueueT): from pus_tc.tc_packer_hook import pack_service_queue_user pack_service_queue_user( service=service, op_code=op_code, service_queue=service_queue ) def get_object_ids(self) -> ObjectIdDictT: from config.object_ids import get_object_ids return get_object_ids() def get_retval_dict(self) -> RetvalDictT: return get_retval_dict() def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT): from pus_tc.cmd_definitions import ( add_bpx_cmd_definitions, add_core_controller_definitions, add_pcdu_cmds, add_pl_pcdu_cmds, add_imtq_cmds, add_rad_sens_cmds, add_ploc_mpsoc_cmds, add_ploc_supv_cmds, add_system_cmds, add_time_cmds, ) from pus_tc.devs.gps import GpsOpCodes from pus_tc.devs.reaction_wheels import add_rw_cmds add_bpx_cmd_definitions(cmd_dict=service_op_code_dict) add_core_controller_definitions(cmd_dict=service_op_code_dict) add_pl_pcdu_cmds(cmd_dict=service_op_code_dict) add_pcdu_cmds(cmd_dict=service_op_code_dict) add_imtq_cmds(cmd_dict=service_op_code_dict) add_rad_sens_cmds(cmd_dict=service_op_code_dict) add_rw_cmds(cmd_dict=service_op_code_dict) add_ploc_mpsoc_cmds(cmd_dict=service_op_code_dict) add_ploc_supv_cmds(cmd_dict=service_op_code_dict) add_system_cmds(cmd_dict=service_op_code_dict) add_time_cmds(cmd_dict=service_op_code_dict) op_code_dict = { GpsOpCodes.RESET_GNSS.value: ("Reset GPS", {OpCodeDictKeys.TIMEOUT: 2.0}) } service_tuple = ("GPS 0", op_code_dict) service_op_code_dict[CustomServiceList.GPS_0.value] = service_tuple service_op_code_dict[CustomServiceList.GPS_1.value] = service_tuple op_code_dict = { "0": ("ACU: Tests", {OpCodeDictKeys.TIMEOUT: 2.0}), "51": ("ACU: Print channel statistics", {OpCodeDictKeys.TIMEOUT: 2.0}), } service_tuple = ("ACU Devices", op_code_dict) service_op_code_dict[CustomServiceList.ACU.value] = service_tuple op_code_dict = { "0": ("TMP1075 Tests", {OpCodeDictKeys.TIMEOUT: 2.2}), } service_tuple = ("TMP1075 1", op_code_dict) service_op_code_dict[CustomServiceList.TMP1075_1.value] = service_tuple service_tuple = ("TMP1075 2", op_code_dict) service_op_code_dict[CustomServiceList.TMP1075_2.value] = service_tuple op_code_dict_srv_heater = { "0": ("Heater Tests", {OpCodeDictKeys.TIMEOUT: 2.0}), } service_heater_tuple = ("Heater Device", op_code_dict_srv_heater) op_code_dict_srv_star_tracker = { "0": ( "Star Tracker: Mode On, Submode Bootloader", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "1": ("Star Tracker: Mode On, Submode Firmware", {OpCodeDictKeys.TIMEOUT: 2.0}), "2": ("Star Tracker: Mode Normal", {OpCodeDictKeys.TIMEOUT: 2.0}), "3": ("Star Tracker: Mode Off", {OpCodeDictKeys.TIMEOUT: 2.0}), "4": ("Star Tracker: Mode Raw", {OpCodeDictKeys.TIMEOUT: 2.0}), "5": ("Star Tracker: Ping", {OpCodeDictKeys.TIMEOUT: 5.0}), "6": ( "Star Tracker: Switch to bootloader program", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "7": ("Star Tracker: Request temperature", {OpCodeDictKeys.TIMEOUT: 2.0}), "8": ("Star Tracker: Request version", {OpCodeDictKeys.TIMEOUT: 2.0}), "9": ("Star Tracker: Request interface", {OpCodeDictKeys.TIMEOUT: 2.0}), "10": ("Star Tracker: Request power", {OpCodeDictKeys.TIMEOUT: 2.0}), "11": ( "Star Tracker: Set subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "12": ( "Star Tracker: Boot image (requires bootloader mode)", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "13": ("Star Tracker: Request time", {OpCodeDictKeys.TIMEOUT: 2.0}), "14": ("Star Tracker: Request solution", {OpCodeDictKeys.TIMEOUT: 2.0}), "15": ("Star Tracker: Upload image", {OpCodeDictKeys.TIMEOUT: 2.0}), "16": ("Star Tracker: Download image", {OpCodeDictKeys.TIMEOUT: 2.0}), "17": ("Star Tracker: Set limit parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "18": ("Star Tracker: Set tracking parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "19": ("Star Tracker: Set mounting parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "20": ("Star Tracker: Set camera parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "22": ( "Star Tracker: Set centroiding parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "23": ("Star Tracker: Set LISA parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "24": ("Star Tracker: Set matching parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "25": ( "Star Tracker: Set validation parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "26": ("Star Tracker: Set algo parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "27": ("Star Tracker: Take image", {OpCodeDictKeys.TIMEOUT: 2.0}), "28": ("Star Tracker: Stop str helper", {OpCodeDictKeys.TIMEOUT: 2.0}), "30": ( "Star Tracker: Set name of download image", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "31": ("Star Tracker: Request histogram", {OpCodeDictKeys.TIMEOUT: 2.0}), "32": ("Star Tracker: Request contrast", {OpCodeDictKeys.TIMEOUT: 2.0}), "33": ("Star Tracker: Set json filename", {OpCodeDictKeys.TIMEOUT: 2.0}), "35": ("Star Tracker: Flash read", {OpCodeDictKeys.TIMEOUT: 2.0}), "36": ("Star Tracker: Set flash read filename", {OpCodeDictKeys.TIMEOUT: 2.0}), "37": ("Star Tracker: Get checksum", {OpCodeDictKeys.TIMEOUT: 2.0}), "49": ("Star Tracker: Request camera parameter", {OpCodeDictKeys.TIMEOUT: 2.0}), "50": ("Star Tracker: Request limits", {OpCodeDictKeys.TIMEOUT: 2.0}), "51": ( "Star Tracker: Set image processor parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "52": ( "Star Tracker: (EGSE only) Load camera ground config ", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "53": ( "Star Tracker: (EGSE only) Load camera flight config", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "54": ( "Star Tracker: Request log level parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "55": ( "Star Tracker: Request mounting parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "56": ( "Star Tracker: Request image processor parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "57": ( "Star Tracker: Request centroiding parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "58": ("Star Tracker: Request lisa parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "59": ( "Star Tracker: Request matching parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "60": ( "Star Tracker: Request tracking parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "61": ( "Star Tracker: Request validation parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "62": ("Star Tracker: Request algo parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "63": ( "Star Tracker: Request subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "64": ( "Star Tracker: Request log subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "65": ( "Star Tracker: Request debug camera parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "66": ("Star Tracker: Set log level parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "67": ( "Star Tracker: Set log subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "68": ( "Star Tracker: Set debug camera parameters", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "69": ("Star Tracker: Firmware update", {OpCodeDictKeys.TIMEOUT: 2.0}), "70": ( "Star Tracker: Disable timestamp generation", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "71": ( "Star Tracker: Enable timestamp generation", {OpCodeDictKeys.TIMEOUT: 2.0}, ), } service_star_tracker_tuple = ("Star tracker", op_code_dict_srv_star_tracker) op_code_dict_srv_ccsds_handler = { "0": ("CCSDS Handler: Set low rate", {OpCodeDictKeys.TIMEOUT: 2.0}), "1": ("CCSDS Handler: Set high rate", {OpCodeDictKeys.TIMEOUT: 2.0}), "2": ("CCSDS Handler: Enable transmitter", {OpCodeDictKeys.TIMEOUT: 2.0}), "3": ("CCSDS Handler: Disable transmitter", {OpCodeDictKeys.TIMEOUT: 2.0}), "4": ("CCSDS Handler: Set arbitrary bitrate", {OpCodeDictKeys.TIMEOUT: 2.0}), "5": ( "CCSDS Handler: Enable tx clock manipulator", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "6": ( "CCSDS Handler: Disable tx clock manipulator", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "7": ( "CCSDS Handler: Update tx data on rising edge", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "8": ( "CCSDS Handler: Update tx data on falling edge", {OpCodeDictKeys.TIMEOUT: 2.0}, ), } service_ccsds_handler_tuple = ("CCSDS Handler", op_code_dict_srv_ccsds_handler) op_code_dict_srv_pdec_handler = { "0": ("PDEC Handler: Print CLCW", {OpCodeDictKeys.TIMEOUT: 2.0}), "1": ("PDEC Handler: Print PDEC monitor", {OpCodeDictKeys.TIMEOUT: 2.0}), } service_pdec_handler_tuple = ("PDEC Handler", op_code_dict_srv_pdec_handler) op_code_dict_srv_syrlinks_handler = { "0": ("Syrlinks Handler: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}), "1": ("Syrlinks Handler: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}), "2": ("Syrlinks Handler: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}), "3": ("Syrlinks Handler: Set TX standby", {OpCodeDictKeys.TIMEOUT: 2.0}), "4": ("Syrlinks Handler: Set TX modulation", {OpCodeDictKeys.TIMEOUT: 2.0}), "5": ("Syrlinks Handler: Set TX carrier wave", {OpCodeDictKeys.TIMEOUT: 2.0}), "6": ("Syrlinks Handler: Read TX status", {OpCodeDictKeys.TIMEOUT: 2.0}), "7": ("Syrlinks Handler: Read TX waveform", {OpCodeDictKeys.TIMEOUT: 2.0}), "8": ( "Syrlinks Handler: Read TX AGC value high byte ", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "9": ( "Syrlinks Handler: Read TX AGC value low byte ", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "12": ( "Syrlinks Handler: Write LCL config", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "13": ( "Syrlinks Handler: Read RX status registers", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "14": ( "Syrlinks Handler: Read LCL config register", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "15": ( "Syrlinks Handler: Set waveform OQPSK", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "16": ( "Syrlinks Handler: Set waveform BPSK", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "17": ( "Syrlinks Handler: Set second config", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "18": ( "Syrlinks Handler: Enable debug output", {OpCodeDictKeys.TIMEOUT: 2.0}, ), "19": ( "Syrlinks Handler: Disable debug output", {OpCodeDictKeys.TIMEOUT: 2.0}, ), } service_syrlinks_handler_tuple = ( "Syrlinks Handler", op_code_dict_srv_syrlinks_handler, ) service_op_code_dict[CustomServiceList.HEATER.value] = service_heater_tuple service_op_code_dict[ CustomServiceList.STAR_TRACKER.value ] = service_star_tracker_tuple service_op_code_dict[ CustomServiceList.CCSDS_HANDLER.value ] = service_ccsds_handler_tuple service_op_code_dict[ CustomServiceList.PDEC_HANDLER.value ] = service_pdec_handler_tuple service_op_code_dict[ CustomServiceList.SYRLINKS.value ] = service_syrlinks_handler_tuple