2021-03-19 17:39:52 +01:00
|
|
|
import argparse
|
|
|
|
from typing import Union, Dict, Tuple
|
|
|
|
|
|
|
|
from tmtccmd.pus_tm.service_3_base import Service3Base
|
|
|
|
|
|
|
|
from tmtccmd.pus_tm.base import PusTelemetry
|
|
|
|
|
|
|
|
from tmtccmd.pus_tc.base import TcQueueT, PusTelecommand
|
|
|
|
|
|
|
|
from com_if.com_interface_base import CommunicationInterface
|
|
|
|
from core.backend import TmTcHandler
|
|
|
|
from tmtccmd.core.hook_base import TmTcHookBase
|
|
|
|
from tmtccmd.utility.tmtc_printer import TmTcPrinter
|
|
|
|
|
|
|
|
|
2021-03-19 17:42:36 +01:00
|
|
|
class EiveHookObject(TmTcHookBase):
|
2021-03-19 17:39:52 +01:00
|
|
|
|
|
|
|
def get_version(self) -> str:
|
|
|
|
from config.version import SW_NAME, VERSION_MAJOR, VERSION_MINOR, VERSION_SUBMINOR
|
|
|
|
return f"{SW_NAME} {VERSION_MAJOR}.{VERSION_MINOR}.{VERSION_SUBMINOR}"
|
|
|
|
|
|
|
|
def add_globals_pre_args_parsing(self, gui: bool = False):
|
|
|
|
from config.globals_config import add_globals_pre_args_parsing
|
|
|
|
add_globals_pre_args_parsing(gui)
|
|
|
|
|
|
|
|
def add_globals_post_args_parsing(self, args: argparse.Namespace):
|
|
|
|
from config.globals_config import add_globals_post_args_parsing
|
|
|
|
add_globals_post_args_parsing(args)
|
|
|
|
|
|
|
|
def assign_communication_interface(self, com_if: int, tmtc_printer: TmTcPrinter) -> \
|
|
|
|
Union[CommunicationInterface, None]:
|
|
|
|
from tmtccmd.defaults.com_setup import create_communication_interface_default
|
|
|
|
return create_communication_interface_default(com_if=com_if, tmtc_printer=tmtc_printer)
|
|
|
|
|
|
|
|
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 tm_user_factory_hook(self, raw_tm_packet: bytearray) -> PusTelemetry:
|
|
|
|
from pus_tm.factory_hook import tm_user_factory_hook
|
|
|
|
return tm_user_factory_hook(raw_tm_packet=raw_tm_packet)
|
|
|
|
|
|
|
|
def set_object_ids(self) -> Dict[int, bytearray]:
|
|
|
|
from config.object_ids import set_object_ids
|
|
|
|
return set_object_ids()
|
|
|
|
|
|
|
|
def pack_total_service_queue(self) -> Union[None, TcQueueT]:
|
|
|
|
from pus_tc.tc_packer_hook import create_total_tc_queue_user
|
|
|
|
return create_total_tc_queue_user()
|
|
|
|
|
|
|
|
def command_preparation_hook(self) -> Union[None, PusTelecommand]:
|
|
|
|
from custom_hooks import command_preparation_hook
|
|
|
|
return command_preparation_hook()
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def handle_service_8_telemetry(
|
|
|
|
object_id: int, action_id: int, custom_data: bytearray
|
|
|
|
) -> Tuple[list, list]:
|
|
|
|
from pus_tm.service_8_hook import user_analyze_service_8_data
|
|
|
|
return user_analyze_service_8_data(
|
|
|
|
object_id=object_id, action_id=action_id, custom_data=custom_data
|
|
|
|
)
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def handle_service_3_housekeeping(
|
|
|
|
object_id: int, set_id: int, hk_data: bytearray, service3_packet: Service3Base
|
|
|
|
) -> Tuple[list, list, bytearray, int]:
|
|
|
|
from pus_tm.hk_handling import handle_user_hk_packet
|
|
|
|
return handle_user_hk_packet(
|
|
|
|
object_id=object_id, set_id=set_id, hk_data=hk_data, service3_packet=service3_packet
|
|
|
|
)
|