diff --git a/eive_tmtc/tmtc/acs/subsystem.py b/eive_tmtc/tmtc/acs/subsystem.py index 538661e..79aefc6 100644 --- a/eive_tmtc/tmtc/acs/subsystem.py +++ b/eive_tmtc/tmtc/acs/subsystem.py @@ -20,16 +20,22 @@ class OpCode(str, enum.Enum): SAFE = "safe" DETUMBLE = "detumble" IDLE = "idle" - TARGET_PT = "target" + PTG_TARGET = "ptg_target" + PTG_TARGET_NADIR = "ptg_nadir" + PTG_TARGET_GS = "ptg_target_gs" + PTG_TARGET_INERTIAL = "ptg_inertial" REPORT_ALL_MODES = "all_modes" class AcsMode(enum.IntEnum): OFF = 0 - SAFE = 1 << 24 - DETUMBLE = 2 << 24 - IDLE = 3 << 24 - TARGET_PT = 4 << 24 + SAFE = 2 + DETUMBLE = 2 + IDLE = 4 + PTG_TARGET_NADIR = 5 + PTG_TARGET = 6 + PTG_TARGET_GS = 7 + PTG_TARGET_INERTIAL = 8 class Info(str, enum.Enum): @@ -37,15 +43,22 @@ class Info(str, enum.Enum): SAFE = "Safe Mode Command" DETUMBLE = "Detumble Mode Command" IDLE = "Idle Mode Command" - TARGET_PT = "Target Pointing Mode Command" + PTG_TARGET_NADIR = "Target Pointing Nadir" + PTG_TARGET = "Target Pointing" + PTG_TARGET_GS = "Target Pointing Ground Station" + PTG_TARGET_INERTIAL = "Target Pointing Inertial" REPORT_ALL_MODES = "Report All Modes Recursively" HANDLER_LIST: Dict[str, Tuple[int, str]] = { OpCode.OFF: (AcsMode.OFF, Info.OFF), - OpCode.IDLE: (AcsMode.IDLE, Info.IDLE), OpCode.SAFE: (AcsMode.SAFE, Info.SAFE), OpCode.DETUMBLE: (AcsMode.DETUMBLE, Info.DETUMBLE), + OpCode.IDLE: (AcsMode.IDLE, Info.IDLE), + OpCode.PTG_TARGET: (AcsMode.PTG_TARGET, Info.PTG_TARGET), + OpCode.PTG_TARGET_GS: (AcsMode.PTG_TARGET_GS, Info.PTG_TARGET_GS), + OpCode.PTG_TARGET_NADIR: (AcsMode.PTG_TARGET_NADIR, Info.PTG_TARGET_NADIR), + OpCode.PTG_TARGET_INERTIAL: (AcsMode.PTG_TARGET_INERTIAL, Info.PTG_TARGET_INERTIAL), } @@ -78,8 +91,7 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams): @tmtc_definitions_provider def add_acs_subsystem_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCode.OFF, Info.OFF) - oce.add(OpCode.SAFE, Info.SAFE) - oce.add(OpCode.IDLE, Info.IDLE) + for op_code, (_, info) in HANDLER_LIST.items(): + oce.add(op_code, info) oce.add(OpCode.REPORT_ALL_MODES, Info.REPORT_ALL_MODES) defs.add_service(CustomServiceList.ACS_SS, "ACS Subsystem", oce)