diff --git a/eive_tmtc/tmtc/core.py b/eive_tmtc/tmtc/core.py index 04fb68c..c0cadd4 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -144,7 +144,7 @@ def add_core_controller_definitions(defs: TmtcDefinitionWrapper): def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): if op_code in OpCodes.REBOOT_XSC: reboot_self, chip_select, copy_select = determine_reboot_params() - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=reboot_self, chip=chip_select, @@ -158,24 +158,24 @@ def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): ) ) if op_code in OpCodes.XSC_REBOOT_SELF: - perform_reboot_cmd(q=q, reboot_self=True) + add_xsc_reboot_cmd(q=q, reboot_self=True) if op_code in OpCodes.XSC_REBOOT_0_0: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_0_NOM ) if op_code in OpCodes.XSC_REBOOT_0_1: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_1_GOLD, ) if op_code in OpCodes.XSC_REBOOT_1_0: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, copy=Copy.COPY_0_NOM ) if op_code in OpCodes.XSC_REBOOT_1_1: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, @@ -314,27 +314,33 @@ def pack_obsw_update_cmd(action_id: int) -> PusTelecommand: ) -def perform_reboot_cmd( +def add_xsc_reboot_cmd( q: DefaultPusQueueHelper, reboot_self: bool, chip: Chip = Chip.NONE, copy: Copy = Copy.NONE, ): - tc_data = bytearray() if reboot_self: q.add_log_cmd("Packing reboot command for current image") + else: + q.add_log_cmd(f"Packing reboot command for chip {chip} and copy {copy}") + q.add_pus_tc(create_xsc_reboot_cmds(reboot_self, chip, copy)) + + +def create_xsc_reboot_cmds( + reboot_self: bool, + chip: Chip = Chip.NONE, + copy: Copy = Copy.NONE, +) -> PusTelecommand: + tc_data = bytearray() + if reboot_self: tc_data.append(True) else: tc_data.append(False) tc_data.append(chip) tc_data.append(copy) - q.add_log_cmd(f"Packing reboot command for chip {chip} and copy {copy}") - q.add_pus_tc( - make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.XSC_REBOOT, - user_data=tc_data, - ) + return make_fsfw_action_cmd( + object_id=CORE_CONTROLLER_ID, action_id=ActionIds.XSC_REBOOT, user_data=tc_data )