diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index 934ccbf..16e398a 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -23,6 +23,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import ( disable_periodic_hk_command, create_request_one_diag_command, ) +from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter @@ -49,6 +50,9 @@ class Submode(enum.IntEnum): PTG_TARGET_GS = 15 PTG_INERTIAL = 16 +class ActionId(enum.IntEnum): + SOLAR_ARRAY_DEPLOYMENT_SUCCESSFUL = 0 + RESET_MEKF = 1 class OpCodes: OFF = ["off"] @@ -59,6 +63,8 @@ class OpCodes: TARGET = ["normal_target"] GS = ["normal_gs"] INERTIAL = ["normal_inertial"] + SAFE_PTG = ["confirm_deployment"] + RESET_MEKF = ["reset_mekf"] REQUEST_RAW_MGM_HK = ["0", "mgm_raw_hk"] ENABLE_RAW_MGM_HK = ["1", "mgm_raw_enable_hk"] DISABLE_RAW_MGM_HK = ["2", "mgm_raw_disable_hk"] @@ -100,6 +106,8 @@ class Info: TARGET = "Switch ACS CTRL normal - pointing target" GS = "Switch ACS CTRL normal - pointing target groundstation" INERTIAL = "Switch ACS CTRL normal - pointing inertial" + SAFE_PTG = "Confirm deployment of both solar arrays" + RESET_MEKF = "Reset the MEKF" REQUEST_RAW_MGM_HK = "Request Raw MGM HK once" ENABLE_RAW_MGM_HK = "Enable Raw MGM HK data generation" DISABLE_RAW_MGM_HK = "Disable Raw MGM HK data generation" @@ -155,6 +163,8 @@ def acs_cmd_defs(defs: TmtcDefinitionWrapper): oce.add(keys=OpCodes.TARGET, info=Info.TARGET) oce.add(keys=OpCodes.GS, info=Info.GS) oce.add(keys=OpCodes.INERTIAL, info=Info.INERTIAL) + oce.add(keys=OpCodes.SAFE_PTG, info=Info.SAFE_PTG) + oce.add(keys=OpCodes.RESET_MEKF, info=Info.RESET_MEKF) oce.add(keys=OpCodes.REQUEST_RAW_MGM_HK, info=Info.REQUEST_RAW_MGM_HK) oce.add(keys=OpCodes.ENABLE_RAW_MGM_HK, info=Info.ENABLE_RAW_MGM_HK) oce.add(keys=OpCodes.DISABLE_RAW_MGM_HK, info=Info.DISABLE_RAW_MGM_HK) @@ -218,6 +228,12 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): elif op_code in OpCodes.INERTIAL: q.add_log_cmd(f"{Info.INERTIAL}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, Mode.NORMAL, Submode.PTG_INERTIAL)) + elif op_code in OpCodes.SAFE_PTG: + q.add_log_cmd(f"{Info.SAFE_PTG}") + q.add_pus_tc(create_action_cmd(ACS_CONTROLLER, ActionId.SOLAR_ARRAY_DEPLOYMENT_SUCCESSFUL)) + elif op_code in OpCodes.RESET_MEKF: + q.add_log_cmd(f"{Info.RESET_MEKF}") + q.add_pus_tc(create_action_cmd(ACS_CONTROLLER, ActionId.RESET_MEKF)) elif op_code in OpCodes.REQUEST_RAW_MGM_HK: q.add_log_cmd(Info.REQUEST_RAW_MGM_HK) q.add_pus_tc(