diff --git a/CMakeLists.txt b/CMakeLists.txt index d6911f61..9dbd24cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,10 @@ cmake_minimum_required(VERSION 3.13) +option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) +# Options to exclude parts of the FSFW from compilation. +option(FSFW_USE_RMAP "Compile with RMAP" ON) +option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) + set(LIB_FSFW_NAME fsfw) add_library(${LIB_FSFW_NAME}) @@ -40,9 +45,7 @@ endif() message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") -# Options to exclude parts of the FSFW from compilation. -option(FSFW_USE_RMAP "Compile with RMAP" ON) -option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) + add_subdirectory(action) add_subdirectory(container) @@ -116,12 +119,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") -Wno-unused-parameter -Wno-psabi ) - - if(NOT DEFINED WARNING_SHADOW_LOCAL) - option(WARNING_SHADOW_LOCAL "Show shadows declarations warning." ON) - endif() - if(WARNING_SHADOW_LOCAL) + if(FSFW_WARNING_SHADOW_LOCAL_GCC) list(APPEND WARNING_FLAGS "-Wshadow=local") endif() diff --git a/action/ActionMessage.cpp b/action/ActionMessage.cpp index b0bcabaa..1c00dee0 100644 --- a/action/ActionMessage.cpp +++ b/action/ActionMessage.cpp @@ -1,4 +1,6 @@ #include "ActionMessage.h" +#include "HasActionsIF.h" + #include "../objectmanager/ObjectManagerIF.h" #include "../storagemanager/StorageManagerIF.h" @@ -53,7 +55,7 @@ void ActionMessage::setDataReply(CommandMessage* message, ActionId_t actionId, void ActionMessage::setCompletionReply(CommandMessage* message, ActionId_t fid, ReturnValue_t result) { - if (result == HasReturnvaluesIF::RETURN_OK) { + if (result == HasReturnvaluesIF::RETURN_OK or result == HasActionsIF::EXECUTION_FINISHED) { message->setCommand(COMPLETION_SUCCESS); } else { message->setCommand(COMPLETION_FAILED); diff --git a/action/ActionMessage.h b/action/ActionMessage.h index 7a859de0..deb11095 100644 --- a/action/ActionMessage.h +++ b/action/ActionMessage.h @@ -4,8 +4,15 @@ #include "../ipc/CommandMessage.h" #include "../objectmanager/ObjectManagerIF.h" #include "../storagemanager/StorageManagerIF.h" -typedef uint32_t ActionId_t; +using ActionId_t = uint32_t; + +/** + * @brief These messages are part of the action module of the FSFW. + * @details + * These messages are sent amongst objects implementing the HasActionsIF. Classes like the + * ActionHelper are able to process these messages. + */ class ActionMessage { private: ActionMessage();