diff --git a/src/fsfw/devicehandlers/AssemblyBase.cpp b/src/fsfw/devicehandlers/AssemblyBase.cpp index 33a5148c..c22bd4ee 100644 --- a/src/fsfw/devicehandlers/AssemblyBase.cpp +++ b/src/fsfw/devicehandlers/AssemblyBase.cpp @@ -92,10 +92,15 @@ void AssemblyBase::handleChildrenTransition() { if (commandsOutstanding <= 0) { switch (internalState) { case STATE_NEED_SECOND_STEP: + { internalState = STATE_SECOND_STEP; - commandChildren(targetMode, targetSubmode); + ReturnValue_t result = commandChildren(targetMode, targetSubmode); + if(result == NEED_SECOND_STEP) { + internalState = STATE_NEED_SECOND_STEP; + } return; - case STATE_OVERWRITE_HEALTH: { + } + case STATE_OVERWRITE_HEALTH: { internalState = STATE_SINGLE_STEP; ReturnValue_t result = commandChildren(mode, submode); if (result == NEED_SECOND_STEP) {