From 170976566b9e0ce2d6545790faa3249a6eceda46 Mon Sep 17 00:00:00 2001 From: meggert Date: Fri, 10 Mar 2023 12:11:10 +0100 Subject: [PATCH] acsCtrl does not allow ON or NORMAL anymore --- mission/acsDefs.h | 12 ++++++------ mission/controller/AcsController.cpp | 10 ++++++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/mission/acsDefs.h b/mission/acsDefs.h index 9b7916af..f824efbf 100644 --- a/mission/acsDefs.h +++ b/mission/acsDefs.h @@ -10,12 +10,12 @@ namespace acs { enum AcsMode : Mode_t { OFF = HasModesIF::MODE_OFF, SAFE = 10, - DETUMBLE = 11, - PTG_IDLE = 12, - PTG_NADIR = 13, - PTG_TARGET = 14, - PTG_TARGET_GS = 15, - PTG_INERTIAL = 16, + PTG_IDLE = 11, + PTG_NADIR = 12, + PTG_TARGET = 13, + PTG_TARGET_GS = 14, + PTG_INERTIAL = 15, + DETUMBLE = 20, }; // static constexpr uint8_t ACS_SYSTEM_DETUMBLE_SUBMODE = 1; diff --git a/mission/controller/AcsController.cpp b/mission/controller/AcsController.cpp index bc0fa754..9ae0ed7d 100644 --- a/mission/controller/AcsController.cpp +++ b/mission/controller/AcsController.cpp @@ -639,8 +639,14 @@ ReturnValue_t AcsController::checkModeCommand(Mode_t mode, Submode_t submode, } else { return INVALID_SUBMODE; } - } else if ((mode == MODE_ON) || (mode == MODE_NORMAL)) { - if ((submode < acs::AcsMode::SAFE) or (submode > acs::AcsMode::PTG_INERTIAL)) { + } else if (not((mode < acs::AcsMode::SAFE) or (mode > acs::AcsMode::PTG_INERTIAL))) { + if (mode == acs::AcsMode::SAFE) { + if (not((submode == SUBMODE_NONE) or (submode == acs::AcsMode::DETUMBLE))) { + return INVALID_SUBMODE; + } else { + return returnvalue::OK; + } + } else if (not(submode == SUBMODE_NONE)) { return INVALID_SUBMODE; } else { return returnvalue::OK;