diff --git a/config/hook_implementations.py b/config/hook_implementations.py index e83846f..893d805 100644 --- a/config/hook_implementations.py +++ b/config/hook_implementations.py @@ -114,6 +114,7 @@ class EiveHookObject(TmTcHookBase): "29": ("PLOC Supervisor: Select NVM", {OpCodeDictKeys.TIMEOUT: 2.0}), "30": ("PLOC Supervisor: Run auto EM tests", {OpCodeDictKeys.TIMEOUT: 2.0}), "31": ("PLOC Supervisor: MRAM Wipe", {OpCodeDictKeys.TIMEOUT: 2.0}), + "32": ("PLOC Supervisor: MRAM Dump", {OpCodeDictKeys.TIMEOUT: 2.0}), } service_ploc_supv_tuple = ("PLOC Supervisor", op_code_dict_srv_ploc_supv) @@ -157,7 +158,7 @@ class EiveHookObject(TmTcHookBase): from tmtccmd.config.com_if import create_communication_interface_default return create_communication_interface_default( com_if_key=com_if_key, tmtc_printer=tmtc_printer, - json_cfg_path=self.get_json_config_file_path(), space_packet_id=0x0865 + json_cfg_path=self.get_json_config_file_path() ) def perform_mode_operation(self, tmtc_backend: TmTcHandler, mode: int): diff --git a/pus_tc/ploc_supervisor.py b/pus_tc/ploc_supervisor.py index f281a25..70592d6 100644 --- a/pus_tc/ploc_supervisor.py +++ b/pus_tc/ploc_supervisor.py @@ -227,6 +227,11 @@ def pack_ploc_supv_test_into(object_id: bytearray, tc_queue: TcQueueT, op_code: command = pack_mram_wipe_cmd(object_id) command = PusTelecommand(service=8, subservice=128, ssc=46, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) + elif op_code == "32": + tc_queue.appendleft((QueueCommands.PRINT, "PLOC Supervisor: Dump MRAM")) + command = pack_mram_dump_cmd(object_id) + command = PusTelecommand(service=8, subservice=128, ssc=47, app_data=command) + tc_queue.appendleft(command.pack_command_tuple()) return tc_queue @@ -450,4 +455,13 @@ def pack_mram_wipe_cmd(object_id: bytearray) -> bytearray: command = object_id + struct.pack('!I', SupvActionIds.WIPE_MRAM) command = command + struct.pack('!I', start) command = command + struct.pack('!I', stop) + return command + +def pack_mram_dump_cmd(object_id: bytearray) -> bytearray: + start = int(input("Start address: 0x"), 16) + stop = int(input("Stop address: 0x"), 16) + command = bytearray() + command = object_id + struct.pack('!I', SupvActionIds.DUMP_MRAM) + command = command + struct.pack('!I', start) + command = command + struct.pack('!I', stop) return command \ No newline at end of file