Merge branch 'main' of https://egit.irs.uni-stuttgart.de/eive/eive-tmtc
This commit is contained in:
commit
2793b354a6
@ -20,69 +20,67 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter):
|
|||||||
pw = PrintWrapper(printer)
|
pw = PrintWrapper(printer)
|
||||||
tm = Service5Tm.unpack(raw_telemetry=raw_tm, time_reader=CdsShortTimestamp.empty())
|
tm = Service5Tm.unpack(raw_telemetry=raw_tm, time_reader=CdsShortTimestamp.empty())
|
||||||
event_dict = get_event_dict()
|
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:
|
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 = EventInfo()
|
||||||
info.name = "Unknown event"
|
info.name = "Unknown event"
|
||||||
obj_ids = get_object_ids()
|
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:
|
if obj_id_obj is None:
|
||||||
LOGGER.warning(f"Object ID 0x{tm.reporter_id.as_hex_string} has no name")
|
LOGGER.warning(f"Object ID 0x{event_def.reporter_id.hex(sep=',')} has no name")
|
||||||
obj_name = tm.reporter_id.as_hex_string
|
obj_name = event_def.reporter_id.hex(sep=",")
|
||||||
else:
|
else:
|
||||||
obj_name = obj_id_obj.name
|
obj_name = obj_id_obj.name
|
||||||
generic_event_string = (
|
generic_event_string = f"Object {obj_name} generated Event {info.name} (ID: {event_def.event_id:#04x}) at {tm.time_provider.as_date_time()}"
|
||||||
f"Object {obj_name} generated Event {tm.event_id} | {info.name}"
|
|
||||||
)
|
|
||||||
pw.printer.file_logger.info(
|
pw.printer.file_logger.info(
|
||||||
f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}: {generic_event_string}"
|
f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}: {generic_event_string}"
|
||||||
)
|
)
|
||||||
LOGGER.info(generic_event_string)
|
LOGGER.info(generic_event_string)
|
||||||
specific_handler = True
|
specific_handler = True
|
||||||
if info.name == "MODE_TRANSITION_FAILED":
|
if info.name == "MODE_TRANSITION_FAILED":
|
||||||
reason = generic_retval_printout(tm.param_1)
|
reason = generic_retval_printout(event_def.param1)
|
||||||
for string in reason:
|
for string in reason:
|
||||||
pw.dlog(f"Reason from event parameter 1: {string}")
|
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":
|
if info.name == "SUPV_UPDATE_PROGRESS" or info.name == "WRITE_MEMORY_FAILED":
|
||||||
additional_event_info = f"Additional info: {info.info}"
|
additional_event_info = f"Additional info: {info.info}"
|
||||||
context = (
|
context = (
|
||||||
f"Progress Percent: {tm.param_1 >> 24 & 0xff} | Sequence Count: {tm.param_1 & 0xffff} "
|
f"Progress Percent: {event_def.param1 >> 24 & 0xff} | Sequence Count: {event_def.param1 & 0xffff} "
|
||||||
f"| Bytes Written: {tm.param_2}"
|
f"| Bytes Written: {event_def.param2}"
|
||||||
)
|
)
|
||||||
pw.dlog(additional_event_info)
|
pw.dlog(additional_event_info)
|
||||||
pw.dlog(context)
|
pw.dlog(context)
|
||||||
if info.name == "MODE_INFO":
|
if info.name == "MODE_INFO":
|
||||||
mode_name = "Unknown"
|
mode_name = "Unknown"
|
||||||
if obj_name == "ACS_SUBSYSTEM":
|
if obj_name == "ACS_SUBSYSTEM":
|
||||||
if tm.param_1 == Mode.OFF:
|
if event_def.param1 == Mode.OFF:
|
||||||
mode_name = "Off"
|
mode_name = "Off"
|
||||||
elif tm.param_1 == AcsMode.IDLE:
|
elif event_def.param1 == AcsMode.IDLE:
|
||||||
mode_name = "Idle"
|
mode_name = "Idle"
|
||||||
elif tm.param_1 == AcsMode.DETUMBLE:
|
elif event_def.param1 == AcsMode.DETUMBLE:
|
||||||
mode_name = "Detumble"
|
mode_name = "Detumble"
|
||||||
elif tm.param_1 == AcsMode.SAFE:
|
elif event_def.param1 == AcsMode.SAFE:
|
||||||
mode_name = "Safe"
|
mode_name = "Safe"
|
||||||
elif tm.param_1 == AcsMode.TARGET_PT:
|
elif event_def.param1 == AcsMode.TARGET_PT:
|
||||||
mode_name = "Target Pointing"
|
mode_name = "Target Pointing"
|
||||||
else:
|
else:
|
||||||
if tm.param_1 == Mode.OFF:
|
if event_def.param1 == Mode.OFF:
|
||||||
mode_name = "Off"
|
mode_name = "Off"
|
||||||
elif tm.param_1 == Mode.ON:
|
elif event_def.param1 == Mode.ON:
|
||||||
mode_name = "On"
|
mode_name = "On"
|
||||||
elif tm.param_1 == Mode.NORMAL:
|
elif event_def.param1 == Mode.NORMAL:
|
||||||
mode_name = "Normal"
|
mode_name = "Normal"
|
||||||
elif tm.param_1 == Mode.RAW:
|
elif event_def.param1 == Mode.RAW:
|
||||||
mode_name = "Raw"
|
mode_name = "Raw"
|
||||||
pw.dlog(f"Mode Number {tm.param_1}, Mode Name {mode_name}")
|
pw.dlog(f"Mode Number {event_def.param1}, Mode Name {mode_name}")
|
||||||
pw.dlog(f"Submode: {tm.param_2}")
|
pw.dlog(f"Submode: {event_def.param2}")
|
||||||
else:
|
else:
|
||||||
specific_handler = False
|
specific_handler = False
|
||||||
if info.info != "":
|
if info.info != "":
|
||||||
additional_event_info = (
|
additional_event_info = f"Additional info: {info.info} | P1: {event_def.param1} | P2: {event_def.param2}"
|
||||||
f"Additional info: {info.info} | P1: {tm.param_1} | P2: {tm.param_2}"
|
|
||||||
)
|
|
||||||
pw.dlog(additional_event_info)
|
pw.dlog(additional_event_info)
|
||||||
if not specific_handler:
|
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)
|
||||||
|
pass
|
||||||
|
10
tmtcc.py
10
tmtcc.py
@ -72,7 +72,8 @@ from tmtccmd.tc import (
|
|||||||
FeedWrapper,
|
FeedWrapper,
|
||||||
TcProcedureType,
|
TcProcedureType,
|
||||||
TcQueueEntryType,
|
TcQueueEntryType,
|
||||||
DefaultPusQueueHelper, QueueWrapper,
|
DefaultPusQueueHelper,
|
||||||
|
QueueWrapper,
|
||||||
)
|
)
|
||||||
from tmtccmd.config import (
|
from tmtccmd.config import (
|
||||||
default_json_path,
|
default_json_path,
|
||||||
@ -248,12 +249,7 @@ class TcHandler(TcHandlerBase):
|
|||||||
if entry_helper.is_tc:
|
if entry_helper.is_tc:
|
||||||
if entry_helper.entry_type == TcQueueEntryType.PUS_TC:
|
if entry_helper.entry_type == TcQueueEntryType.PUS_TC:
|
||||||
pus_tc_wrapper = entry_helper.to_pus_tc_entry()
|
pus_tc_wrapper = entry_helper.to_pus_tc_entry()
|
||||||
pus_tc_wrapper.pus_tc.seq_count = (
|
# pus_tc_wrapper.pus_tc.apid = PUS_APID
|
||||||
self.seq_count_provider.get_and_increment()
|
|
||||||
)
|
|
||||||
pus_tc_wrapper.pus_tc.apid = PUS_APID
|
|
||||||
# Add TC after Sequence Count stamping
|
|
||||||
self.pus_verificator.add_tc(pus_tc_wrapper.pus_tc)
|
|
||||||
raw_tc = pus_tc_wrapper.pus_tc.pack()
|
raw_tc = pus_tc_wrapper.pus_tc.pack()
|
||||||
self.pus_raw_logger.log_tc(pus_tc_wrapper.pus_tc)
|
self.pus_raw_logger.log_tc(pus_tc_wrapper.pus_tc)
|
||||||
tc_info_string = f"Sent {pus_tc_wrapper.pus_tc}"
|
tc_info_string = f"Sent {pus_tc_wrapper.pus_tc}"
|
||||||
|
Loading…
Reference in New Issue
Block a user