From 619bd6b71b287a3826f659822683332e66ed26d1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 Jan 2023 14:47:25 +0100 Subject: [PATCH] update event handler for tmtccmd update --- eive_tmtc/pus_tm/event_handler.py | 49 +++++++++++++++---------------- tmtcc.py | 3 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/eive_tmtc/pus_tm/event_handler.py b/eive_tmtc/pus_tm/event_handler.py index fada99d..e16605c 100644 --- a/eive_tmtc/pus_tm/event_handler.py +++ b/eive_tmtc/pus_tm/event_handler.py @@ -20,20 +20,21 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): pw = PrintWrapper(printer) tm = Service5Tm.unpack(raw_telemetry=raw_tm, time_reader=CdsShortTimestamp.empty()) event_dict = get_event_dict() - info = event_dict.get(tm.event_id) + event_def = tm.event_definition + info = event_dict.get(event_def.event_id) if info is None: - LOGGER.warning(f"Event ID {tm.event_id} has no information") + LOGGER.warning(f"Event ID {event_def.event_id} has no information") info = EventInfo() info.name = "Unknown event" obj_ids = get_object_ids() - obj_id_obj = obj_ids.get(tm.reporter_id.as_bytes) + obj_id_obj = obj_ids.get(event_def.reporter_id) if obj_id_obj is None: - LOGGER.warning(f"Object ID 0x{tm.reporter_id.as_hex_string} has no name") - obj_name = tm.reporter_id.as_hex_string + LOGGER.warning(f"Object ID 0x{event_def.reporter_id.hex(sep=',')} has no name") + obj_name = event_def.reporter_id.hex(sep=",") else: obj_name = obj_id_obj.name generic_event_string = ( - f"Object {obj_name} generated Event {tm.event_id} | {info.name}" + f"Object {obj_name} generated Event {event_def.reporter_id} | {info.name}" ) pw.printer.file_logger.info( f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}: {generic_event_string}" @@ -41,48 +42,46 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): LOGGER.info(generic_event_string) specific_handler = True if info.name == "MODE_TRANSITION_FAILED": - reason = generic_retval_printout(tm.param_1) + reason = generic_retval_printout(event_def.param1) for string in reason: pw.dlog(f"Reason from event parameter 1: {string}") - pw.dlog(f"Mode, sequence or table: {tm.param_2:#08x}") + pw.dlog(f"Mode, sequence or table: {event_def.param2:#08x}") if info.name == "SUPV_UPDATE_PROGRESS" or info.name == "WRITE_MEMORY_FAILED": additional_event_info = f"Additional info: {info.info}" context = ( - f"Progress Percent: {tm.param_1 >> 24 & 0xff} | Sequence Count: {tm.param_1 & 0xffff} " - f"| Bytes Written: {tm.param_2}" + f"Progress Percent: {event_def.param1 >> 24 & 0xff} | Sequence Count: {event_def.param1 & 0xffff} " + f"| Bytes Written: {event_def.param2}" ) pw.dlog(additional_event_info) pw.dlog(context) if info.name == "MODE_INFO": mode_name = "Unknown" if obj_name == "ACS_SUBSYSTEM": - if tm.param_1 == Mode.OFF: + if event_def.param1 == Mode.OFF: mode_name = "Off" - elif tm.param_1 == AcsMode.IDLE: + elif event_def.param1 == AcsMode.IDLE: mode_name = "Idle" - elif tm.param_1 == AcsMode.DETUMBLE: + elif event_def.param1 == AcsMode.DETUMBLE: mode_name = "Detumble" - elif tm.param_1 == AcsMode.SAFE: + elif event_def.param1 == AcsMode.SAFE: mode_name = "Safe" - elif tm.param_1 == AcsMode.TARGET_PT: + elif event_def.param1 == AcsMode.TARGET_PT: mode_name = "Target Pointing" else: - if tm.param_1 == Mode.OFF: + if event_def.param1 == Mode.OFF: mode_name = "Off" - elif tm.param_1 == Mode.ON: + elif event_def.param1 == Mode.ON: mode_name = "On" - elif tm.param_1 == Mode.NORMAL: + elif event_def.param1 == Mode.NORMAL: mode_name = "Normal" - elif tm.param_1 == Mode.RAW: + elif event_def.param1 == Mode.RAW: mode_name = "Raw" - pw.dlog(f"Mode Number {tm.param_1}, Mode Name {mode_name}") - pw.dlog(f"Submode: {tm.param_2}") + pw.dlog(f"Mode Number {event_def.param1}, Mode Name {mode_name}") + pw.dlog(f"Submode: {event_def.param2}") else: specific_handler = False if info.info != "": - additional_event_info = ( - f"Additional info: {info.info} | P1: {tm.param_1} | P2: {tm.param_2}" - ) + additional_event_info = f"Additional info: {info.info} | P1: {event_def.param1} | P2: {event_def.param2}" pw.dlog(additional_event_info) if not specific_handler: - printer.handle_long_tm_print(packet_if=tm, info_if=tm) + printer.handle_long_tm_print(packet_if=tm.pus_tm, info_if=tm.pus_tm) diff --git a/tmtcc.py b/tmtcc.py index d8e079c..5e475b8 100755 --- a/tmtcc.py +++ b/tmtcc.py @@ -72,7 +72,8 @@ from tmtccmd.tc import ( FeedWrapper, TcProcedureType, TcQueueEntryType, - DefaultPusQueueHelper, QueueWrapper, + DefaultPusQueueHelper, + QueueWrapper, ) from tmtccmd.config import ( default_json_path,