From ece20bf177e154287eaed8d6674b936c90c3aae7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 Jan 2023 14:31:38 +0100 Subject: [PATCH 1/5] bump tmtccmd --- eive_tmtc/config/definitions.py | 4 ++-- eive_tmtc/config/hook.py | 2 +- setup.cfg | 2 +- tmtcc.py | 14 +++++--------- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/eive_tmtc/config/definitions.py b/eive_tmtc/config/definitions.py index d5c3bc3..570b6fa 100644 --- a/eive_tmtc/config/definitions.py +++ b/eive_tmtc/config/definitions.py @@ -17,8 +17,8 @@ CFDP_APID = 0x66 PUS_PACKET_ID = PacketId(PacketType.TM, True, PUS_APID) CFDP_PACKET_ID = PacketId(PacketType.TM, False, CFDP_APID) SPACE_PACKET_IDS = ( - PUS_PACKET_ID.raw(), - CFDP_PACKET_ID.raw(), + PUS_PACKET_ID, + CFDP_PACKET_ID, ) CFDP_LOCAL_ENTITY_ID = UnsignedByteField(byte_len=2, val=1) diff --git a/eive_tmtc/config/hook.py b/eive_tmtc/config/hook.py index bee9a59..8880569 100644 --- a/eive_tmtc/config/hook.py +++ b/eive_tmtc/config/hook.py @@ -18,7 +18,7 @@ class EiveHookObject(TmTcCfgHookBase): return get_eive_service_op_code_dict() def assign_communication_interface(self, com_if_key: str) -> Optional[ComInterface]: - from tmtccmd.config.com_if import ( + from tmtccmd.config.com import ( create_com_interface_default, create_com_interface_cfg_default, ) diff --git a/setup.cfg b/setup.cfg index a1018b6..5aa5843 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a2 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@ad526b915b58d4decdc3868be28edf0bdc12a50c#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@97e5e51101a08b21472b3ddecc2063359f7e307a#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True diff --git a/tmtcc.py b/tmtcc.py index 2323247..d8e079c 100755 --- a/tmtcc.py +++ b/tmtcc.py @@ -72,7 +72,7 @@ from tmtccmd.tc import ( FeedWrapper, TcProcedureType, TcQueueEntryType, - DefaultPusQueueHelper, + DefaultPusQueueHelper, QueueWrapper, ) from tmtccmd.config import ( default_json_path, @@ -221,8 +221,9 @@ class TcHandler(TcHandlerBase): self.pus_raw_logger = raw_pus_logger self.gui = gui self.queue_helper = DefaultPusQueueHelper( - queue_wrapper=None, - pus_apid=PUS_APID, + queue_wrapper=QueueWrapper.empty(), + tc_sched_timestamp_len=4, + default_pus_apid=PUS_APID, seq_cnt_provider=seq_count_provider, pus_verificator=pus_verificator, ) @@ -247,12 +248,7 @@ class TcHandler(TcHandlerBase): if entry_helper.is_tc: if entry_helper.entry_type == TcQueueEntryType.PUS_TC: pus_tc_wrapper = entry_helper.to_pus_tc_entry() - pus_tc_wrapper.pus_tc.seq_count = ( - 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) + # pus_tc_wrapper.pus_tc.apid = PUS_APID raw_tc = pus_tc_wrapper.pus_tc.pack() self.pus_raw_logger.log_tc(pus_tc_wrapper.pus_tc) tc_info_string = f"Sent {pus_tc_wrapper.pus_tc}" From 619bd6b71b287a3826f659822683332e66ed26d1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 Jan 2023 14:47:25 +0100 Subject: [PATCH 2/5] 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, From 28fda7cdbd2e0473e7237f603f363a0648722376 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 Jan 2023 14:53:46 +0100 Subject: [PATCH 3/5] bump tmtccmd --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 5aa5843..9c7d54e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a2 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@97e5e51101a08b21472b3ddecc2063359f7e307a#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@d350c497ee4381014ed29aef24b7524f850bef13#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From 98ba66dba2ac6ef95658eec8fe79a6d4a652f135 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 Jan 2023 17:26:48 +0100 Subject: [PATCH 4/5] disable generic printer --- eive_tmtc/pus_tm/event_handler.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/eive_tmtc/pus_tm/event_handler.py b/eive_tmtc/pus_tm/event_handler.py index e16605c..ff23b88 100644 --- a/eive_tmtc/pus_tm/event_handler.py +++ b/eive_tmtc/pus_tm/event_handler.py @@ -33,9 +33,7 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): obj_name = event_def.reporter_id.hex(sep=",") else: obj_name = obj_id_obj.name - generic_event_string = ( - f"Object {obj_name} generated Event {event_def.reporter_id} | {info.name}" - ) + generic_event_string = f"Object {obj_name} generated Event {info.name} (ID: {event_def.event_id:#04x}) at {tm.time_provider.as_date_time()}" pw.printer.file_logger.info( f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}: {generic_event_string}" ) @@ -84,4 +82,5 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): 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.pus_tm, info_if=tm.pus_tm) + # printer.handle_long_tm_print(packet_if=tm.pus_tm, info_if=tm.pus_tm) + pass From a7f11b315993c449e3504bb64ab88b4668b47d5d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 Jan 2023 17:40:25 +0100 Subject: [PATCH 5/5] update tmtccmd --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 9c7d54e..5f6c963 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a2 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@d350c497ee4381014ed29aef24b7524f850bef13#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@f0c0210fb8bd4aebcbe0e173b9c26ceb6bade587#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True