continuing refactoring of printouts
This commit is contained in:
@ -6,64 +6,73 @@
|
||||
from tmtccmd.tm.service_8_fsfw_functional_cmd import Service8FsfwTm
|
||||
from spacepackets.ecss.tm import PusTelemetry
|
||||
from tmtccmd.logging import get_console_logger
|
||||
from tmtccmd.logging.pus import log_pus_tm, log_unknown_packet, PacketTypes
|
||||
from tmtccmd.logging.pus import (
|
||||
log_raw_pus_tm,
|
||||
log_raw_unknown_packet,
|
||||
PacketTypes,
|
||||
create_tmtc_logger,
|
||||
)
|
||||
|
||||
from tmtccmd.pus.service_1_verification import Service1TMExtended
|
||||
from tmtccmd.pus.service_17_test import Service17TMExtended
|
||||
from tmtccmd.tm.service_3_fsfw_housekeeping import Service3FsfwTm
|
||||
from tmtccmd.tm.service_20_fsfw_parameters import Service20FsfwTm
|
||||
from tmtccmd.tm.service_5_event import Service5Tm
|
||||
from tmtccmd.tm.service_200_fsfw_mode import Service200FsfwTm
|
||||
from tmtccmd.utility.tmtc_printer import FsfwTmTcPrinter, PrintFormats
|
||||
from tmtccmd.utility.tmtc_printer import PrintFormats, FsfwTmTcPrinter
|
||||
|
||||
from config.definitions import PUS_APID
|
||||
from .event_handler import handle_event_packet
|
||||
from .verification_handler import handle_service_1_packet
|
||||
from .hk_handling import handle_hk_packet
|
||||
|
||||
LOGGER = get_console_logger()
|
||||
|
||||
|
||||
def ccsds_tm_handler(
|
||||
apid: int, raw_tm_packet: bytes, tmtc_printer: FsfwTmTcPrinter
|
||||
) -> None:
|
||||
FSFW_PRINTER = FsfwTmTcPrinter(file_logger=create_tmtc_logger())
|
||||
|
||||
|
||||
def ccsds_tm_handler(apid: int, raw_tm_packet: bytes, _user_args: any) -> None:
|
||||
if apid == PUS_APID:
|
||||
pus_factory_hook(raw_tm_packet=raw_tm_packet, tmtc_printer=tmtc_printer)
|
||||
pus_factory_hook(raw_tm_packet=raw_tm_packet)
|
||||
|
||||
|
||||
def pus_factory_hook(raw_tm_packet: bytes, tmtc_printer: FsfwTmTcPrinter):
|
||||
def pus_factory_hook(raw_tm_packet: bytes):
|
||||
if len(raw_tm_packet) < 8:
|
||||
LOGGER.warning("Detected packet shorter than 8 bytes!")
|
||||
return
|
||||
service_type = raw_tm_packet[7]
|
||||
subservice_type = raw_tm_packet[8]
|
||||
tm_packet = None
|
||||
file_logger = FSFW_PRINTER.file_logger
|
||||
try:
|
||||
if service_type == 1:
|
||||
tm_packet = Service1TMExtended.unpack(raw_telemetry=raw_tm_packet)
|
||||
if service_type == 3:
|
||||
handle_service_1_packet(printer=FSFW_PRINTER, raw_tm=raw_tm_packet)
|
||||
elif service_type == 3:
|
||||
tm_packet = Service3FsfwTm.unpack(
|
||||
raw_telemetry=raw_tm_packet, custom_hk_handling=False
|
||||
)
|
||||
if service_type == 5:
|
||||
handle_hk_packet(hk_packet=tm_packet, packet_if=tm_packet)
|
||||
elif service_type == 5:
|
||||
tm_packet = Service5Tm.unpack(raw_telemetry=raw_tm_packet)
|
||||
if service_type == 8:
|
||||
handle_event_packet(file_logger=file_logger, tm=tm_packet)
|
||||
elif service_type == 8:
|
||||
tm_packet = Service8FsfwTm.unpack(raw_telemetry=raw_tm_packet)
|
||||
if service_type == 17:
|
||||
elif service_type == 17:
|
||||
tm_packet = Service17TMExtended.unpack(raw_telemetry=raw_tm_packet)
|
||||
if service_type == 20:
|
||||
elif service_type == 20:
|
||||
tm_packet = Service20FsfwTm.unpack(raw_telemetry=raw_tm_packet)
|
||||
if service_type == 200:
|
||||
elif service_type == 200:
|
||||
tm_packet = Service200FsfwTm.unpack(raw_telemetry=raw_tm_packet)
|
||||
if tm_packet is None:
|
||||
else:
|
||||
LOGGER.info(
|
||||
f"The service {service_type} is not implemented in Telemetry Factory"
|
||||
)
|
||||
tm_packet = PusTelemetry.unpack(raw_telemetry=raw_tm_packet)
|
||||
tm_packet.print_source_data(PrintFormats.HEX)
|
||||
LOGGER.info(f"Received packet with service {service_type}")
|
||||
log_pus_tm(packet=raw_tm_packet, srv_subservice=(service_type, subservice_type))
|
||||
# tmtc_printer.print_telemetry(
|
||||
# packet_if=tm_packet, info_if=tm_packet, print_raw_tm=False
|
||||
# )
|
||||
log_raw_pus_tm(
|
||||
packet=raw_tm_packet, srv_subservice=(service_type, subservice_type)
|
||||
)
|
||||
except ValueError:
|
||||
# TODO: Log faulty packet
|
||||
LOGGER.warning("Invalid packet format detected")
|
||||
log_unknown_packet(packet=raw_tm_packet, packet_type=PacketTypes.TM)
|
||||
log_raw_unknown_packet(packet=raw_tm_packet, packet_type=PacketTypes.TM)
|
||||
|
Reference in New Issue
Block a user