2021-07-14 00:28:33 +02: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-10-13 12:08:50 +02:00
|
|
|
from spacepackets.ecss.tm import PusTelemetry
|
2021-07-14 00:28:33 +02:00
|
|
|
|
|
|
|
from tmtccmd.utility.logger import get_console_logger
|
2021-10-13 12:08:50 +02:00
|
|
|
from tmtccmd.pus.service_1_verification import Service1TMExtended
|
2021-07-14 01:04:23 +02:00
|
|
|
from tmtccmd.tm.service_2_raw_cmd import Service2TM
|
|
|
|
from tmtccmd.tm.service_3_housekeeping import Service3TM
|
|
|
|
from tmtccmd.tm.service_5_event import Service5TM
|
|
|
|
from tmtccmd.tm.service_8_functional_cmd import Service8TM
|
2021-10-13 12:08:50 +02:00
|
|
|
from tmtccmd.pus.service_17_test import Service17TMExtended
|
2021-07-14 01:04:23 +02:00
|
|
|
from tmtccmd.tm.service_20_parameters import Service20TM
|
|
|
|
from tmtccmd.tm.service_200_mode import Service200TM
|
2021-07-14 00:28:33 +02:00
|
|
|
from tmtccmd.utility.tmtc_printer import TmTcPrinter
|
|
|
|
|
|
|
|
from common_tmtc.config.definitions import PUS_APID
|
|
|
|
|
|
|
|
|
|
|
|
LOGGER = get_console_logger()
|
|
|
|
|
|
|
|
|
2021-12-14 15:46:00 +01:00
|
|
|
def ccsds_tm_handler(
|
|
|
|
apid: int, raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter
|
|
|
|
) -> None:
|
2021-07-14 00:28:33 +02:00
|
|
|
if apid == PUS_APID:
|
|
|
|
pus_packet_factory(raw_tm_packet=raw_tm_packet, tmtc_printer=tmtc_printer)
|
|
|
|
|
|
|
|
|
|
|
|
def pus_packet_factory(raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter):
|
|
|
|
service_type = raw_tm_packet[7]
|
|
|
|
tm_packet = None
|
|
|
|
if service_type == 1:
|
2021-10-13 12:08:50 +02:00
|
|
|
tm_packet = Service1TMExtended.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 2:
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = Service2TM.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 3:
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = Service3TM.unpack(raw_tm_packet, custom_hk_handling=False)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 8:
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = Service8TM.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 5:
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = Service5TM.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 17:
|
2021-10-13 12:08:50 +02:00
|
|
|
tm_packet = Service17TMExtended.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 20:
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = Service20TM.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if service_type == 200:
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = Service200TM.unpack(raw_tm_packet)
|
2021-07-14 00:28:33 +02:00
|
|
|
if tm_packet is None:
|
2021-12-14 15:46:00 +01:00
|
|
|
LOGGER.info(
|
|
|
|
"The service "
|
|
|
|
+ str(service_type)
|
|
|
|
+ " is not implemented in Telemetry Factory"
|
|
|
|
)
|
2021-09-28 16:21:20 +02:00
|
|
|
tm_packet = PusTelemetry.unpack(raw_tm_packet)
|
|
|
|
tmtc_printer.print_telemetry(packet_if=tm_packet, info_if=tm_packet)
|