diff --git a/config/cmd_definitions.py b/config/cmd_definitions.py index d00d2e2..d70a000 100644 --- a/config/cmd_definitions.py +++ b/config/cmd_definitions.py @@ -109,6 +109,36 @@ def add_pl_pcdu_cmds(cmd_dict: ServiceOpCodeDictT): keys=OpCodes.UPDATE_DRO_TO_X8_WAIT, info="Update DRO to X8 wait time", ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=OpCodes.INJECT_SSR_TO_DRO_FAILURE, + info="Inject failure SSR to DRO transition" + ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=OpCodes.INJECT_DRO_TO_X8_FAILURE, + info="Inject failure in DRO to X8 transition" + ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=OpCodes.INJECT_X8_TO_TX_FAILURE, + info="Inject failure in X8 to TX transition" + ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=OpCodes.INJECT_TX_TO_MPA_FAILURE, + info="Inject failure in TX to MPA transition" + ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=OpCodes.INJECT_MPA_TO_HPA_FAILURE, + info="Inject failure in MPA to HPA transition" + ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=OpCodes.INJECT_ALL_ON_FAILURE, + info="Inject failure in all on mode" + ) add_service_op_code_entry( srv_op_code_dict=cmd_dict, name=CustomServiceList.PL_PCDU.value, diff --git a/pus_tc/plpcdu.py b/pus_tc/plpcdu.py index 4bb44c3..950eb2f 100644 --- a/pus_tc/plpcdu.py +++ b/pus_tc/plpcdu.py @@ -7,6 +7,7 @@ from tmtccmd.tc.service_200_mode import pack_mode_data, Modes, Subservices from tmtccmd.tc.service_20_parameter import ( pack_scalar_double_param_app_data, pack_fsfw_load_param_cmd, + pack_boolean_parameter_app_data ) from tmtccmd.utility.logger import get_console_logger from spacepackets.ecss.tc import PusTelecommand @@ -20,8 +21,8 @@ class OpCodes: SWITCH_ALL_ON = ["1", "switch-all-on"] UPDATE_DRO_TO_X8_WAIT = ["2", "dro-to-x8-wait"] UPDATE_X8_TO_TX_WAIT_TIME = ["3", "x8-to-tx-wait"] - TX_TO_MPA_WAIT_TIME = ["4", "tx-to-mpa-wait"] - MPA_TO_HPA_WAIT_TIME = ["5", "mpa-to-hpa-wait"] + UPDATE_TX_TO_MPA_WAIT_TIME = ["4", "tx-to-mpa-wait"] + UPDATE_MPA_TO_HPA_WAIT_TIME = ["5", "mpa-to-hpa-wait"] INJECT_SSR_TO_DRO_FAILURE = ["6", "inject-ssr-dro-fault"] INJECT_DRO_TO_X8_FAILURE = ["7", "inject-dro-x8-fault"] @@ -100,7 +101,29 @@ def pack_pl_pcdu_commands(tc_queue: TcQueueT, op_code: str): print_str="DRO to X8", ) if op_code in OpCodes.UPDATE_X8_TO_TX_WAIT_TIME: - pass + pack_wait_time_cmd( + tc_queue=tc_queue, + param_id=ParamIds.X8_TO_TX_WAIT_TIME, + print_str="X8 to TX", + ) + if op_code in OpCodes.UPDATE_TX_TO_MPA_WAIT_TIME: + pack_wait_time_cmd( + tc_queue=tc_queue, + param_id=ParamIds.TX_TO_MPA_WAIT_TIME, + print_str="TX to MPA", + ) + if op_code in OpCodes.UPDATE_MPA_TO_HPA_WAIT_TIME: + pack_wait_time_cmd( + tc_queue=tc_queue, + param_id=ParamIds.MPA_TO_HPA_WAIT_TIME, + print_str="MPA to HPA", + ) + if op_code in OpCodes.INJECT_ALL_ON_FAILURE: + pack_failure_injection_cmd( + tc_queue=tc_queue, + param_id=ParamIds.INJECT_ALL_ON_FAILURE, + print_str="All On" + ) def request_wait_time() -> Optional[float]: @@ -134,3 +157,15 @@ def pack_wait_time_cmd(tc_queue: TcQueueT, param_id: int, print_str: str): ) cmd = pack_fsfw_load_param_cmd(ssc=0, app_data=param_data) tc_queue.appendleft(cmd.pack_command_tuple()) + + +def pack_failure_injection_cmd(tc_queue: TcQueueT, param_id: int, print_str: str): + tc_queue.appendleft((QueueCommands.PRINT, f"Inserting {print_str} error")) + param_data = pack_boolean_parameter_app_data( + object_id=PL_PCDU_ID, + domain_id=0, + unique_id=param_id, + parameter=True + ) + cmd = pack_fsfw_load_param_cmd(ssc=0, app_data=param_data) + tc_queue.appendleft(cmd.pack_command_tuple()) diff --git a/tmtccmd b/tmtccmd index 92ddfd6..81a8843 160000 --- a/tmtccmd +++ b/tmtccmd @@ -1 +1 @@ -Subproject commit 92ddfd607f19903adee7e3dfd3e88de20a09bfab +Subproject commit 81a88435a52c8115a9f4349e307b252ebb2ebb85