From eca5bba1d8df6576a19547d356e676b0fb164d87 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 15 Dec 2021 11:19:19 +0100 Subject: [PATCH] added try except block --- pus_tm/factory_hook.py | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/pus_tm/factory_hook.py b/pus_tm/factory_hook.py index 646744f..865b5f3 100644 --- a/pus_tm/factory_hook.py +++ b/pus_tm/factory_hook.py @@ -26,17 +26,21 @@ def ccsds_tm_handler(apid: int, raw_tm_packet: bytearray, tmtc_printer: TmTcPrin def pus_factory_hook(raw_tm_packet: bytearray, tmtc_printer: TmTcPrinter): service_type = raw_tm_packet[7] tm_packet = None - if service_type == 1: - tm_packet = Service1TMExtended.unpack(raw_telemetry=raw_tm_packet) - if service_type == 3: - tm_packet = Service3TM.unpack(raw_telemetry=raw_tm_packet, custom_hk_handling=False) - if service_type == 5: - tm_packet = Service5TM.unpack(raw_telemetry=raw_tm_packet) - if service_type == 8: - tm_packet = Service8TM.unpack(raw_telemetry=raw_tm_packet) - if service_type == 17: - tm_packet = Service17TMExtended.unpack(raw_telemetry=raw_tm_packet) - if tm_packet is None: - LOGGER.info(f'The service {service_type} is not implemented in Telemetry Factory') - tm_packet = PusTelemetry.unpack(raw_telemetry=raw_tm_packet) - tmtc_printer.print_telemetry(packet_if=tm_packet, info_if=tm_packet, print_raw_tm=False) + try: + if service_type == 1: + tm_packet = Service1TMExtended.unpack(raw_telemetry=raw_tm_packet) + if service_type == 3: + tm_packet = Service3TM.unpack(raw_telemetry=raw_tm_packet, custom_hk_handling=False) + if service_type == 5: + tm_packet = Service5TM.unpack(raw_telemetry=raw_tm_packet) + if service_type == 8: + tm_packet = Service8TM.unpack(raw_telemetry=raw_tm_packet) + if service_type == 17: + tm_packet = Service17TMExtended.unpack(raw_telemetry=raw_tm_packet) + if tm_packet is None: + LOGGER.info(f'The service {service_type} is not implemented in Telemetry Factory') + tm_packet = PusTelemetry.unpack(raw_telemetry=raw_tm_packet) + tmtc_printer.print_telemetry(packet_if=tm_packet, info_if=tm_packet, print_raw_tm=False) + except ValueError: + # TODO: Log faulty packet + LOGGER.warning("Invalid packet format detected")