From c697d0f8ab83163c5d58e288ca74c771e6a9bb45 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 30 May 2022 10:34:03 +0200 Subject: [PATCH 01/10] bump etl to 20.28.0 --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 40c0b879..6328f176 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,7 +71,7 @@ set(FSFW_ETL_LIB_MAJOR_VERSION 20 CACHE STRING "ETL library major version requirement") set(FSFW_ETL_LIB_VERSION - ${FSFW_ETL_LIB_MAJOR_VERSION}.27.3 + ${FSFW_ETL_LIB_MAJOR_VERSION}.28.0 CACHE STRING "ETL library exact version requirement") set(FSFW_ETL_LINK_TARGET etl::etl) @@ -185,7 +185,7 @@ endif() message(STATUS "${MSG_PREFIX} Finding and/or providing ETL library") # Check whether the user has already installed ETL first -find_package(${FSFW_ETL_LIB_NAME} ${FSFW_ETL_LIB_MAJOR_VERSION} QUIET) +find_package(${FSFW_ETL_LIB_NAME} ${FSFW_ETL_LIB_MAJOR_VERSION} CONFIG QUIET) # Not installed, so use FetchContent to download and provide etl if(NOT ${FSFW_ETL_LIB_NAME}_FOUND) message( -- 2.43.0 From e03f55604a64f54f379744246ca02ebb01a26ac2 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 27 May 2022 02:09:49 +0200 Subject: [PATCH 02/10] rtems fixes --- src/fsfw/osal/rtems/MessageQueue.cpp | 2 +- src/fsfw/osal/rtems/MessageQueue.h | 10 ++++++---- src/fsfw/osal/rtems/QueueFactory.cpp | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/fsfw/osal/rtems/MessageQueue.cpp b/src/fsfw/osal/rtems/MessageQueue.cpp index f52f1852..534015dc 100644 --- a/src/fsfw/osal/rtems/MessageQueue.cpp +++ b/src/fsfw/osal/rtems/MessageQueue.cpp @@ -65,7 +65,7 @@ ReturnValue_t MessageQueue::sendMessageFrom(MessageQueueId_t sendTo, MessageQueu } ReturnValue_t returnCode = convertReturnCode(result); - if (result == MessageQueueIF::EMPTY) { + if (returnCode == MessageQueueIF::EMPTY) { return HasReturnvaluesIF::RETURN_FAILED; } diff --git a/src/fsfw/osal/rtems/MessageQueue.h b/src/fsfw/osal/rtems/MessageQueue.h index bb31a508..f64a3d83 100644 --- a/src/fsfw/osal/rtems/MessageQueue.h +++ b/src/fsfw/osal/rtems/MessageQueue.h @@ -36,7 +36,7 @@ class MessageQueue : public MessageQueueBase { * @param max_message_size With this parameter, the maximum message size can be adjusted. * This should be left default. */ - MessageQueue(size_t message_depth = 3, + explicit MessageQueue(size_t message_depth = 3, size_t max_message_size = MessageQueueMessage::MAX_MESSAGE_SIZE, MqArgs* args = nullptr); @@ -48,13 +48,15 @@ class MessageQueue : public MessageQueueBase { * @brief The destructor deletes the formerly created message queue. * @details This is accomplished by using the delete call provided by the operating system. */ - virtual ~MessageQueue(); + ~MessageQueue() override; // Implement non-generic MessageQueueIF functions not handled by MessageQueueBase ReturnValue_t flush(uint32_t* count) override; + + ReturnValue_t receiveMessage(MessageQueueMessageIF* message) override; ReturnValue_t sendMessageFrom(MessageQueueId_t sendTo, MessageQueueMessageIF* message, - MessageQueueId_t sentFrom = NO_QUEUE, - bool ignoreFault = false) override; + MessageQueueId_t sentFrom, + bool ignoreFault) override; private: /** diff --git a/src/fsfw/osal/rtems/QueueFactory.cpp b/src/fsfw/osal/rtems/QueueFactory.cpp index 2519f444..074ce273 100644 --- a/src/fsfw/osal/rtems/QueueFactory.cpp +++ b/src/fsfw/osal/rtems/QueueFactory.cpp @@ -45,9 +45,9 @@ QueueFactory* QueueFactory::instance() { return factoryInstance; } -QueueFactory::QueueFactory() {} +QueueFactory::QueueFactory() = default; -QueueFactory::~QueueFactory() {} +QueueFactory::~QueueFactory() = default; MessageQueueIF* QueueFactory::createMessageQueue(uint32_t messageDepth, size_t maxMessageSize, MqArgs* args) { -- 2.43.0 From b4132800aed0b7db3aec3d7bc18603af3d496c81 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 13 May 2022 11:39:37 +0200 Subject: [PATCH 03/10] apply afmt, update .gitignore --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index d6efb9cf..eb461072 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,14 @@ +# PyCharm and CLion +/.idea/* +!/.idea/runConfigurations +!/.idea/cmake.xml +!/.idea/codeStyles + +# Eclipse .cproject .project .settings .metadata /build* +/cmake-build* -- 2.43.0 From a3c0b441ec1a0351db1fbd31a35c7aaf760f9e87 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 13 May 2022 13:46:54 +0200 Subject: [PATCH 04/10] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4713ed17..65fc85a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Changes +- Renamed auto-formatting script to `auto-formatter.sh` and made it more robust. + If `cmake-format` is installed, it will also auto-format the `CMakeLists.txt` files now. + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/625 + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/626 - Bump C++ required version to C++17. Every project which uses the FSFW and every modern compiler supports it PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/622 @@ -84,6 +88,8 @@ https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/593 ## Additions +- Basic `clion` support: Update `.gitignore` and add some basic run configurations + PR: https://egit.irs.uni-stuttgart.de/fsfw/fsfw/pulls/625 - LTO support: Allow using LTO/IPO by setting `FSFW_ENABLE_LTO=1`. CMake is able to detect whether the user compiler supports IPO/LPO. LTO is on by default now. Most modern compilers support it, can make good use of it and it usually makes the code faster and/or smaller. -- 2.43.0 From 395cf9cfa76e67f123b17443ff9f2877115c8ce7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 13 May 2022 13:48:13 +0200 Subject: [PATCH 05/10] added clion base files --- .idea/codeStyles/Project.xml | 14 ++++++++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 +++++ .run/fsfw-tests_coverage.run.xml | 7 +++++++ .run/fsfw.run.xml | 7 +++++++ 4 files changed, 33 insertions(+) create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .run/fsfw-tests_coverage.run.xml create mode 100644 .run/fsfw.run.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..0f3b1a4b --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.run/fsfw-tests_coverage.run.xml b/.run/fsfw-tests_coverage.run.xml new file mode 100644 index 00000000..49d9b135 --- /dev/null +++ b/.run/fsfw-tests_coverage.run.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.run/fsfw.run.xml b/.run/fsfw.run.xml new file mode 100644 index 00000000..72f74939 --- /dev/null +++ b/.run/fsfw.run.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file -- 2.43.0 From 6d921f03fd03ed8ae769747183d519d32cac4a96 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 13 Jun 2022 10:50:15 +0200 Subject: [PATCH 06/10] Fix SPI ComIF shadowing warning --- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index dcf92b5d..b06def69 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -210,7 +210,7 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie* spiCookie, const #endif return result; } - ReturnValue_t result = gpioComIF->pullLow(gpioId); + result = gpioComIF->pullLow(gpioId); if (result != HasReturnvaluesIF::RETURN_OK) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 -- 2.43.0 From 4a06b558c1a385f73448af43ccf32c716ddfbc2e Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 13 Jun 2022 10:50:15 +0200 Subject: [PATCH 07/10] Fix SPI ComIF shadowing warning --- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index dcf92b5d..b06def69 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -210,7 +210,7 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie* spiCookie, const #endif return result; } - ReturnValue_t result = gpioComIF->pullLow(gpioId); + result = gpioComIF->pullLow(gpioId); if (result != HasReturnvaluesIF::RETURN_OK) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 -- 2.43.0 From e67fc2ab0d6b7c291adf60f7838b88c8859d693f Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 13 Jun 2022 10:56:37 +0200 Subject: [PATCH 08/10] some fixes for TC Map printout function --- .../pus/Service11TelecommandScheduling.tpp | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/fsfw/pus/Service11TelecommandScheduling.tpp b/src/fsfw/pus/Service11TelecommandScheduling.tpp index cb43e8e8..5ce6f744 100644 --- a/src/fsfw/pus/Service11TelecommandScheduling.tpp +++ b/src/fsfw/pus/Service11TelecommandScheduling.tpp @@ -615,23 +615,24 @@ inline ReturnValue_t Service11TelecommandScheduling::handleInvalidD template inline void Service11TelecommandScheduling::debugPrintMultimapContent() const { - for ([[maybe_unused]] const auto &dit : telecommandMap) { #if FSFW_DISABLE_PRINTOUT == 0 #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::debug << "Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content" - << std::endl; + sif::debug << "Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content" + << std::endl; +#else + sif::printDebug( + "Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content\n"); +#endif + for (const auto &dit : telecommandMap) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 sif::debug << "[" << dit.first << "]: Request ID: " << dit.second.requestId << " | " << "Store Address: " << dit.second.storeAddr.raw << std::endl; #else - sif::printDebug( - "Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content\n"); - for (auto dit = telecommandMap.begin(); dit != telecommandMap.end(); ++dit) { - sif::printDebug("[%d]: Request ID: %d | Store Address: %d\n", dit->first, - dit->second.requestId, dit->second.storeAddr); - } -#endif + sif::printDebug("[%d]: Request ID: %d | Store Address: %d\n", dit.first, + dit.second.requestId, dit.second.storeAddr); #endif } +#endif } template -- 2.43.0 From 69859fdbc922336787786076f1e4902e067497fa Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 13 Jun 2022 16:21:20 +0200 Subject: [PATCH 09/10] rerun afmt --- src/fsfw/osal/rtems/MessageQueue.h | 7 +++---- src/fsfw/pus/Service11TelecommandScheduling.tpp | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/fsfw/osal/rtems/MessageQueue.h b/src/fsfw/osal/rtems/MessageQueue.h index f64a3d83..2649b880 100644 --- a/src/fsfw/osal/rtems/MessageQueue.h +++ b/src/fsfw/osal/rtems/MessageQueue.h @@ -37,8 +37,8 @@ class MessageQueue : public MessageQueueBase { * This should be left default. */ explicit MessageQueue(size_t message_depth = 3, - size_t max_message_size = MessageQueueMessage::MAX_MESSAGE_SIZE, - MqArgs* args = nullptr); + size_t max_message_size = MessageQueueMessage::MAX_MESSAGE_SIZE, + MqArgs* args = nullptr); /** Copying message queues forbidden */ MessageQueue(const MessageQueue&) = delete; @@ -55,8 +55,7 @@ class MessageQueue : public MessageQueueBase { ReturnValue_t receiveMessage(MessageQueueMessageIF* message) override; ReturnValue_t sendMessageFrom(MessageQueueId_t sendTo, MessageQueueMessageIF* message, - MessageQueueId_t sentFrom, - bool ignoreFault) override; + MessageQueueId_t sentFrom, bool ignoreFault) override; private: /** diff --git a/src/fsfw/pus/Service11TelecommandScheduling.tpp b/src/fsfw/pus/Service11TelecommandScheduling.tpp index 5ce6f744..968a59ff 100644 --- a/src/fsfw/pus/Service11TelecommandScheduling.tpp +++ b/src/fsfw/pus/Service11TelecommandScheduling.tpp @@ -620,16 +620,15 @@ inline void Service11TelecommandScheduling::debugPrintMultimapConte sif::debug << "Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content" << std::endl; #else - sif::printDebug( - "Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content\n"); + sif::printDebug("Service11TelecommandScheduling::debugPrintMultimapContent: Multimap Content\n"); #endif for (const auto &dit : telecommandMap) { #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::debug << "[" << dit.first << "]: Request ID: " << dit.second.requestId << " | " << "Store Address: " << dit.second.storeAddr.raw << std::endl; #else - sif::printDebug("[%d]: Request ID: %d | Store Address: %d\n", dit.first, - dit.second.requestId, dit.second.storeAddr); + sif::printDebug("[%d]: Request ID: %d | Store Address: %d\n", dit.first, dit.second.requestId, + dit.second.storeAddr); #endif } #endif -- 2.43.0 From b5183a19fcd139851a1677c9d8e8a4c00fefebec Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Thu, 16 Jun 2022 07:03:58 +0200 Subject: [PATCH 10/10] minor change in debug text --- src/fsfw/datapoollocal/LocalDataPoolManager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fsfw/datapoollocal/LocalDataPoolManager.cpp b/src/fsfw/datapoollocal/LocalDataPoolManager.cpp index 781d8f71..215d1753 100644 --- a/src/fsfw/datapoollocal/LocalDataPoolManager.cpp +++ b/src/fsfw/datapoollocal/LocalDataPoolManager.cpp @@ -696,9 +696,9 @@ void LocalDataPoolManager::performPeriodicHkGeneration(HkReceiver& receiver) { if (result != HasReturnvaluesIF::RETURN_OK) { /* Configuration error */ #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::warning << "LocalDataPoolManager::performHkOperation: HK generation failed." << std::endl; + sif::warning << "LocalDataPoolManager::performPeriodicHkOperation: HK generation failed." << std::endl; #else - sif::printWarning("LocalDataPoolManager::performHkOperation: HK generation failed.\n"); + sif::printWarning("LocalDataPoolManager::performPeriodicHkOperation: HK generation failed.\n"); #endif } } -- 2.43.0