diff --git a/mission/acs/str/StarTrackerHandler.h b/mission/acs/str/StarTrackerHandler.h index 69b3e121..f143a660 100644 --- a/mission/acs/str/StarTrackerHandler.h +++ b/mission/acs/str/StarTrackerHandler.h @@ -54,9 +54,6 @@ class StarTrackerHandler : public DeviceHandlerBase { Submode_t getInitialSubmode() override; - static const Submode_t SUBMODE_BOOTLOADER = 1; - static const Submode_t SUBMODE_FIRMWARE = 2; - protected: void doStartUp() override; void doShutDown() override; diff --git a/mission/acs/str/strHelpers.h b/mission/acs/str/strHelpers.h index 002d9934..4eea2635 100644 --- a/mission/acs/str/strHelpers.h +++ b/mission/acs/str/strHelpers.h @@ -11,6 +11,9 @@ namespace startracker { +static const Submode_t SUBMODE_BOOTLOADER = 1; +static const Submode_t SUBMODE_FIRMWARE = 2; + /** * @brief Returns the frame type field of a decoded frame. */ diff --git a/mission/system/acs/StrAssembly.cpp b/mission/system/acs/StrAssembly.cpp index abd7a4ce..574ad634 100644 --- a/mission/system/acs/StrAssembly.cpp +++ b/mission/system/acs/StrAssembly.cpp @@ -2,6 +2,8 @@ #include +#include "mission/acs/str/strHelpers.h" + StrAssembly::StrAssembly(object_id_t objectId) : AssemblyBase(objectId) { ModeListEntry entry; entry.setObject(objects::STAR_TRACKER); @@ -31,5 +33,12 @@ ReturnValue_t StrAssembly::checkChildrenStateOn(Mode_t wantedMode, Submode_t wan } ReturnValue_t StrAssembly::isModeCombinationValid(Mode_t mode, Submode_t submode) { + if (mode == DeviceHandlerIF::MODE_NORMAL and submode != SUBMODE_NONE) { + return HasModesIF::INVALID_SUBMODE; + } + if (mode == MODE_ON and + (submode != startracker::SUBMODE_BOOTLOADER and submode != startracker::SUBMODE_FIRMWARE)) { + return HasModesIF::INVALID_SUBMODE; + } return returnvalue::OK; } diff --git a/tmtc b/tmtc index 50668ca7..dcf7d0af 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 50668ca7a74edd4219456e393cd10f7858591130 +Subproject commit dcf7d0af71f6ba9d569f9f56604e9245a0233427