2020-12-17 17:50:00 +01:00
|
|
|
"""
|
|
|
|
@brief This file transfers control of TM parsing to the user
|
|
|
|
@details Template configuration file. Copy this folder to the TMTC commander root and adapt
|
|
|
|
it to your needs.
|
|
|
|
"""
|
2021-03-19 17:39:52 +01:00
|
|
|
from tmtccmd.pus_tm.service_8_functional_cmd import Service8TM
|
2021-04-10 22:59:51 +02:00
|
|
|
from tmtccmd.ecss.tm import PusTelemetry
|
2021-05-17 17:42:04 +02:00
|
|
|
from tmtccmd.utility.logger import get_logger
|
2020-12-17 17:50:00 +01:00
|
|
|
|
2021-03-19 17:39:52 +01:00
|
|
|
from tmtccmd.pus_tm.service_1_verification import Service1TM
|
2021-06-15 15:23:27 +02:00
|
|
|
from tmtccmd.pus_tm.service_3_housekeeping import Service3TM
|
2021-03-19 17:39:52 +01:00
|
|
|
from tmtccmd.pus_tm.service_5_event import Service5TM
|
|
|
|
from tmtccmd.pus_tm.service_17_test import Service17TM
|
2021-06-21 17:30:37 +02:00
|
|
|
from tmtccmd.utility.tmtc_printer import TmTcPrinter
|
|
|
|
|
|
|
|
from config.definitions import PUS_APID
|
2020-12-17 17:50:00 +01:00
|
|
|
|
|
|
|
LOGGER = get_logger()
|
|
|
|
|
|
|
|
|
2021-06-21 17:30:37 +02:00
|
|
|
def ccsds_tm_handler(apid: int, raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter) -> None:
|
|
|
|
if apid == PUS_APID:
|
|
|
|
pus_factory_hook(raw_tm_packet=raw_tm_packet, tmtc_printer=tmtc_printer)
|
|
|
|
|
|
|
|
|
|
|
|
def pus_factory_hook(raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter):
|
2020-12-17 17:50:00 +01:00
|
|
|
service_type = raw_tm_packet[7]
|
2021-06-21 17:30:37 +02:00
|
|
|
tm_packet = None
|
2020-12-17 17:50:00 +01:00
|
|
|
if service_type == 1:
|
2021-06-21 17:30:37 +02:00
|
|
|
tm_packet = Service1TM(raw_tm_packet)
|
2021-03-01 12:14:04 +01:00
|
|
|
if service_type == 3:
|
2021-06-21 17:30:37 +02:00
|
|
|
tm_packet = Service3TM(raw_tm_packet)
|
2020-12-17 17:50:00 +01:00
|
|
|
if service_type == 5:
|
2021-06-21 17:30:37 +02:00
|
|
|
tm_packet = Service5TM(raw_tm_packet)
|
2021-02-09 12:35:10 +01:00
|
|
|
if service_type == 8:
|
2021-06-21 17:30:37 +02:00
|
|
|
tm_packet = Service8TM(raw_tm_packet)
|
2020-12-17 17:50:00 +01:00
|
|
|
if service_type == 17:
|
2021-06-21 17:30:37 +02:00
|
|
|
tm_packet = Service17TM(raw_tm_packet)
|
|
|
|
if tm_packet is None:
|
|
|
|
LOGGER.info(f'The service {service_type} is not implemented in Telemetry Factory')
|
|
|
|
tm_packet = PusTelemetry(raw_tm_packet)
|
|
|
|
tmtc_printer.print_telemetry(packet=tm_packet)
|