update event handler for tmtccmd update

This commit is contained in:
Robin Müller 2023-01-30 14:47:25 +01:00
parent ece20bf177
commit 619bd6b71b
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814
2 changed files with 26 additions and 26 deletions

View File

@ -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)

View File

@ -72,7 +72,8 @@ from tmtccmd.tc import (
FeedWrapper,
TcProcedureType,
TcQueueEntryType,
DefaultPusQueueHelper, QueueWrapper,
DefaultPusQueueHelper,
QueueWrapper,
)
from tmtccmd.config import (
default_json_path,