From b13b5b456db7eb147482afa341cfe8d5417be11f Mon Sep 17 00:00:00 2001 From: "spahr@ksat-stuttgart.de" Date: Mon, 14 Apr 2025 00:06:34 +0200 Subject: [PATCH] Give AssemblyBase more functionality: Support one-by-one commanding for childrend instead of sending all mode messages on one shot --- src/fsfw/devicehandlers/AssemblyBase.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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) {