From c0c4a3190f1e54d4b5982656f5cc52218928d6ca Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 21 Jun 2021 12:46:32 +0200 Subject: [PATCH 001/136] cleaned up some event descriptions --- datalinklayer/DataLinkLayer.h | 13 +++++++++---- devicehandlers/DeviceHandlerIF.h | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/datalinklayer/DataLinkLayer.h b/datalinklayer/DataLinkLayer.h index 27e690066..aa203785b 100644 --- a/datalinklayer/DataLinkLayer.h +++ b/datalinklayer/DataLinkLayer.h @@ -21,11 +21,16 @@ public: static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::SYSTEM_1; //! [EXPORT] : [COMMENT] A RF available signal was detected. P1: raw RFA state, P2: 0 static const Event RF_AVAILABLE = MAKE_EVENT(0, severity::INFO); - static const Event RF_LOST = MAKE_EVENT(1, severity::INFO); //!< A previously found RF available signal was lost. P1: raw RFA state, P2: 0 - static const Event BIT_LOCK = MAKE_EVENT(2, severity::INFO); //!< A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0 - static const Event BIT_LOCK_LOST = MAKE_EVENT(3, severity::INFO); //!< A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0 + //! [EXPORT] : [COMMENT] A previously found RF available signal was lost. + //! P1: raw RFA state, P2: 0 + static const Event RF_LOST = MAKE_EVENT(1, severity::INFO); + //! [EXPORT] : [COMMENT] A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0 + static const Event BIT_LOCK = MAKE_EVENT(2, severity::INFO); + //! [EXPORT] : [COMMENT] A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0 + static const Event BIT_LOCK_LOST = MAKE_EVENT(3, severity::INFO); // static const Event RF_CHAIN_LOST = MAKE_EVENT(4, severity::INFO); //!< The CCSDS Board detected that either bit lock or RF available or both are lost. No parameters. - static const Event FRAME_PROCESSING_FAILED = MAKE_EVENT(5, severity::LOW); //!< The CCSDS Board could not interpret a TC + //! [EXPORT] : [COMMENT] The CCSDS Board could not interpret a TC + static const Event FRAME_PROCESSING_FAILED = MAKE_EVENT(5, severity::LOW); /** * The Constructor sets the passed parameters and nothing else. * @param set_frame_buffer The buffer in which incoming frame candidates are stored. diff --git a/devicehandlers/DeviceHandlerIF.h b/devicehandlers/DeviceHandlerIF.h index fc31cce09..1933c571c 100644 --- a/devicehandlers/DeviceHandlerIF.h +++ b/devicehandlers/DeviceHandlerIF.h @@ -104,7 +104,8 @@ public: static const Event DEVICE_MISSED_REPLY = MAKE_EVENT(5, severity::LOW); static const Event DEVICE_UNKNOWN_REPLY = MAKE_EVENT(6, severity::LOW); static const Event DEVICE_UNREQUESTED_REPLY = MAKE_EVENT(7, severity::LOW); - static const Event INVALID_DEVICE_COMMAND = MAKE_EVENT(8, severity::LOW); //!< Indicates a SW bug in child class. + //! [EXPORT] : [COMMENT] Indicates a SW bug in child class. + static const Event INVALID_DEVICE_COMMAND = MAKE_EVENT(8, severity::LOW); static const Event MONITORING_LIMIT_EXCEEDED = MAKE_EVENT(9, severity::LOW); static const Event MONITORING_AMBIGUOUS = MAKE_EVENT(10, severity::HIGH); From c2b8507d2947c48e2a2cd19b71640471f436bc5c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 5 Jul 2021 12:09:14 +0200 Subject: [PATCH 002/136] small tweak --- timemanager/CMakeLists.txt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/timemanager/CMakeLists.txt b/timemanager/CMakeLists.txt index 70dd41fa6..004677729 100644 --- a/timemanager/CMakeLists.txt +++ b/timemanager/CMakeLists.txt @@ -1,9 +1,8 @@ -target_sources(${LIB_FSFW_NAME} - PRIVATE - CCSDSTime.cpp - Countdown.cpp - Stopwatch.cpp - TimeMessage.cpp - TimeStamper.cpp - ClockCommon.cpp +target_sources(${LIB_FSFW_NAME} PRIVATE + CCSDSTime.cpp + Countdown.cpp + Stopwatch.cpp + TimeMessage.cpp + TimeStamper.cpp + ClockCommon.cpp ) From 5e960f118fb42188ca0f482393e6b29223730af0 Mon Sep 17 00:00:00 2001 From: "Jakob.Meier" <–meierj@irs.uni-stuttgart.de> Date: Tue, 6 Jul 2021 18:17:24 +0200 Subject: [PATCH 003/136] renamed freertos includes --- defaultcfg/fsfwconfig/objects/FsfwFactory.cpp | 2 +- osal/FreeRTOS/BinSemaphUsingTask.h | 4 ++-- osal/FreeRTOS/BinarySemaphore.h | 4 ++-- osal/FreeRTOS/Clock.cpp | 4 ++-- osal/FreeRTOS/CountingSemaphUsingTask.h | 4 ++-- osal/FreeRTOS/CountingSemaphore.cpp | 2 +- osal/FreeRTOS/FixedTimeslotTask.h | 4 ++-- osal/FreeRTOS/FreeRTOSTaskIF.h | 4 ++-- osal/FreeRTOS/MessageQueue.h | 4 ++-- osal/FreeRTOS/Mutex.h | 4 ++-- osal/FreeRTOS/PeriodicTask.h | 4 ++-- osal/FreeRTOS/QueueMapManager.h | 4 ++-- osal/FreeRTOS/TaskManagement.h | 4 ++-- osal/FreeRTOS/Timekeeper.h | 4 ++-- unittest/tests/mocks/MessageQueueMockBase.h | 2 +- unittest/user/unittest/core/CatchFactory.cpp | 2 +- 16 files changed, 28 insertions(+), 28 deletions(-) diff --git a/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp b/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp index 428adf1d7..08ad41ec3 100644 --- a/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp +++ b/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/osal/FreeRTOS/BinSemaphUsingTask.h b/osal/FreeRTOS/BinSemaphUsingTask.h index ec434853e..895ccefbd 100644 --- a/osal/FreeRTOS/BinSemaphUsingTask.h +++ b/osal/FreeRTOS/BinSemaphUsingTask.h @@ -4,8 +4,8 @@ #include "../../returnvalues/HasReturnvaluesIF.h" #include "../../tasks/SemaphoreIF.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ tskKERNEL_VERSION_MAJOR > 8 diff --git a/osal/FreeRTOS/BinarySemaphore.h b/osal/FreeRTOS/BinarySemaphore.h index 8969d5038..2335292bd 100644 --- a/osal/FreeRTOS/BinarySemaphore.h +++ b/osal/FreeRTOS/BinarySemaphore.h @@ -4,8 +4,8 @@ #include "../../returnvalues/HasReturnvaluesIF.h" #include "../../tasks/SemaphoreIF.h" -#include -#include +#include "FreeRTOS.h" +#include "semphr.h" /** * @brief OS Tool to achieve synchronization of between tasks or between diff --git a/osal/FreeRTOS/Clock.cpp b/osal/FreeRTOS/Clock.cpp index 66207d75e..a81f6985b 100644 --- a/osal/FreeRTOS/Clock.cpp +++ b/osal/FreeRTOS/Clock.cpp @@ -3,8 +3,8 @@ #include "../../timemanager/Clock.h" #include "../../globalfunctions/timevalOperations.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #include #include diff --git a/osal/FreeRTOS/CountingSemaphUsingTask.h b/osal/FreeRTOS/CountingSemaphUsingTask.h index 45915b6b5..9ac99c315 100644 --- a/osal/FreeRTOS/CountingSemaphUsingTask.h +++ b/osal/FreeRTOS/CountingSemaphUsingTask.h @@ -4,8 +4,8 @@ #include "CountingSemaphUsingTask.h" #include "../../tasks/SemaphoreIF.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ tskKERNEL_VERSION_MAJOR > 8 diff --git a/osal/FreeRTOS/CountingSemaphore.cpp b/osal/FreeRTOS/CountingSemaphore.cpp index 40884d273..7158731d0 100644 --- a/osal/FreeRTOS/CountingSemaphore.cpp +++ b/osal/FreeRTOS/CountingSemaphore.cpp @@ -3,7 +3,7 @@ #include "../../serviceinterface/ServiceInterfaceStream.h" -#include +#include "semphr.h" // Make sure #define configUSE_COUNTING_SEMAPHORES 1 is set in // free FreeRTOSConfig.h file. diff --git a/osal/FreeRTOS/FixedTimeslotTask.h b/osal/FreeRTOS/FixedTimeslotTask.h index f2245ba4a..7494581cf 100644 --- a/osal/FreeRTOS/FixedTimeslotTask.h +++ b/osal/FreeRTOS/FixedTimeslotTask.h @@ -6,8 +6,8 @@ #include "../../tasks/FixedTimeslotTaskIF.h" #include "../../tasks/Typedef.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" class FixedTimeslotTask: public FixedTimeslotTaskIF, public FreeRTOSTaskIF { public: diff --git a/osal/FreeRTOS/FreeRTOSTaskIF.h b/osal/FreeRTOS/FreeRTOSTaskIF.h index 2a2d94947..08f0df257 100644 --- a/osal/FreeRTOS/FreeRTOSTaskIF.h +++ b/osal/FreeRTOS/FreeRTOSTaskIF.h @@ -1,8 +1,8 @@ #ifndef FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_ #define FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_ -#include -#include +#include "FreeRTOS.h" +#include "task.h" class FreeRTOSTaskIF { public: diff --git a/osal/FreeRTOS/MessageQueue.h b/osal/FreeRTOS/MessageQueue.h index be74d4fe0..49b40647b 100644 --- a/osal/FreeRTOS/MessageQueue.h +++ b/osal/FreeRTOS/MessageQueue.h @@ -7,8 +7,8 @@ #include "../../ipc/MessageQueueIF.h" #include "../../ipc/MessageQueueMessageIF.h" -#include -#include +#include "FreeRTOS.h" +#include "queue.h" #include /** diff --git a/osal/FreeRTOS/Mutex.h b/osal/FreeRTOS/Mutex.h index 156d431c2..877359d84 100644 --- a/osal/FreeRTOS/Mutex.h +++ b/osal/FreeRTOS/Mutex.h @@ -3,8 +3,8 @@ #include "../../ipc/MutexIF.h" -#include -#include +#include "FreeRTOS.h" +#include "semphr.h" /** * @brief OS component to implement MUTual EXclusion diff --git a/osal/FreeRTOS/PeriodicTask.h b/osal/FreeRTOS/PeriodicTask.h index 36ef568f6..04d40fcf3 100644 --- a/osal/FreeRTOS/PeriodicTask.h +++ b/osal/FreeRTOS/PeriodicTask.h @@ -6,8 +6,8 @@ #include "../../tasks/PeriodicTaskIF.h" #include "../../tasks/Typedef.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #include diff --git a/osal/FreeRTOS/QueueMapManager.h b/osal/FreeRTOS/QueueMapManager.h index 91a839f0c..07ca8b9e8 100644 --- a/osal/FreeRTOS/QueueMapManager.h +++ b/osal/FreeRTOS/QueueMapManager.h @@ -5,8 +5,8 @@ #include "../../ipc/messageQueueDefinitions.h" #include "../../ipc/MessageQueueIF.h" -#include "freertos/FreeRTOS.h" -#include "freertos/queue.h" +#include "FreeRTOS.h" +#include "queue.h" #include diff --git a/osal/FreeRTOS/TaskManagement.h b/osal/FreeRTOS/TaskManagement.h index b9aece48b..b7caaa19e 100644 --- a/osal/FreeRTOS/TaskManagement.h +++ b/osal/FreeRTOS/TaskManagement.h @@ -3,8 +3,8 @@ #include "../../returnvalues/HasReturnvaluesIF.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #include diff --git a/osal/FreeRTOS/Timekeeper.h b/osal/FreeRTOS/Timekeeper.h index 7d583f7db..d4d0bc07b 100644 --- a/osal/FreeRTOS/Timekeeper.h +++ b/osal/FreeRTOS/Timekeeper.h @@ -3,8 +3,8 @@ #include "../../timemanager/Clock.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" /** diff --git a/unittest/tests/mocks/MessageQueueMockBase.h b/unittest/tests/mocks/MessageQueueMockBase.h index 3000f7fb5..86958d53f 100644 --- a/unittest/tests/mocks/MessageQueueMockBase.h +++ b/unittest/tests/mocks/MessageQueueMockBase.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include diff --git a/unittest/user/unittest/core/CatchFactory.cpp b/unittest/user/unittest/core/CatchFactory.cpp index 9afb4fdd4..ff591b8e1 100644 --- a/unittest/user/unittest/core/CatchFactory.cpp +++ b/unittest/user/unittest/core/CatchFactory.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include From eef2fd3b7ac764f06ed5d9a3c97c894d92a515fa Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 8 Jul 2021 12:22:25 +0200 Subject: [PATCH 004/136] minor tweaks --- memory/HasFileSystemIF.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/memory/HasFileSystemIF.h b/memory/HasFileSystemIF.h index 73c934105..ff4cbc9cc 100644 --- a/memory/HasFileSystemIF.h +++ b/memory/HasFileSystemIF.h @@ -36,9 +36,8 @@ public: //! [EXPORT] : P1: Sequence number missing static constexpr ReturnValue_t SEQUENCE_PACKET_MISSING_READ = MAKE_RETURN_CODE(16); - - virtual ~HasFileSystemIF() {} + /** * Function to get the MessageQueueId_t of the implementing object * @return MessageQueueId_t of the object From 323577cdc69ee2d863e6e61cebd71a8aa75c6d2b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 12 Jul 2021 17:23:03 +0200 Subject: [PATCH 005/136] file system API update Added functions to create and remove folders --- memory/HasFileSystemIF.h | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/memory/HasFileSystemIF.h b/memory/HasFileSystemIF.h index ff4cbc9cc..de7bd947e 100644 --- a/memory/HasFileSystemIF.h +++ b/memory/HasFileSystemIF.h @@ -45,7 +45,7 @@ public: virtual MessageQueueId_t getCommandQueue() const = 0; /** - * Generic function to append to file. + * @brief Generic function to append to file. * @param dirname Directory of the file * @param filename The filename of the file * @param data The data to write to the file @@ -62,12 +62,12 @@ public: uint16_t packetNumber, void* args = nullptr) = 0; /** - * Generic function to create a new file. + * @brief Generic function to create a new file. * @param repositoryPath * @param filename * @param data * @param size - * @param args Any other arguments which an implementation might require. + * @param args Any other arguments which an implementation might require * @return */ virtual ReturnValue_t createFile(const char* repositoryPath, @@ -75,14 +75,29 @@ public: size_t size = 0, void* args = nullptr) = 0; /** - * Generic function to delete a file. + * @brief Generic function to delete a file. * @param repositoryPath * @param filename - * @param args + * @param args Any other arguments which an implementation might require * @return */ virtual ReturnValue_t deleteFile(const char* repositoryPath, const char* filename, void* args = nullptr) = 0; + + /** + * @brief Generic function to create a directory + * @param repositoryPath + * @param args Any other arguments which an implementation might require + * @return + */ + virtual ReturnValue_t createDirectory(const char* repositoryPath, void* args = nullptr) = 0; + + /** + * @brief Generic function to remove a directory + * @param repositoryPath + * @param args Any other arguments which an implementation might require + */ + virtual ReturnValue_t removeDirectory(const char* repositoryPath, void* args = nullptr) = 0; }; From da8a4470734808bed4d872e47c192af694382c41 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 12 Jul 2021 17:39:15 +0200 Subject: [PATCH 006/136] delete directory: recursive option --- memory/GenericFileSystemMessage.cpp | 9 ++++++++- memory/GenericFileSystemMessage.h | 4 +++- memory/HasFileSystemIF.h | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/memory/GenericFileSystemMessage.cpp b/memory/GenericFileSystemMessage.cpp index b0e1a9ec8..c35ead3c7 100644 --- a/memory/GenericFileSystemMessage.cpp +++ b/memory/GenericFileSystemMessage.cpp @@ -34,8 +34,9 @@ void GenericFileSystemMessage::setReportFileAttributesReply(CommandMessage *mess } void GenericFileSystemMessage::setDeleteDirectoryCommand(CommandMessage* message, - store_address_t storeId) { + store_address_t storeId, bool deleteRecursively) { message->setCommand(CMD_DELETE_DIRECTORY); + message->setParameter(deleteRecursively); message->setParameter2(storeId.raw); } @@ -133,6 +134,12 @@ bool GenericFileSystemMessage::getReadReply(const CommandMessage *message, return message->getParameter(); } +store_address_t GenericFileSystemMessage::getDeleteDirectoryCommand(const CommandMessage *message, + bool &deleteRecursively) { + deleteRecursively = message->getParameter(); + return getStoreId(message); +} + ReturnValue_t GenericFileSystemMessage::clear(CommandMessage* message) { switch(message->getCommand()) { case(CMD_CREATE_FILE): diff --git a/memory/GenericFileSystemMessage.h b/memory/GenericFileSystemMessage.h index 6351dab90..fcd2075d1 100644 --- a/memory/GenericFileSystemMessage.h +++ b/memory/GenericFileSystemMessage.h @@ -79,7 +79,9 @@ public: static void setCreateDirectoryCommand(CommandMessage* message, store_address_t storeId); static void setDeleteDirectoryCommand(CommandMessage* message, - store_address_t storeId); + store_address_t storeId, bool deleteRecursively); + static store_address_t getDeleteDirectoryCommand(const CommandMessage* message, + bool& deleteRecursively); static void setSuccessReply(CommandMessage* message); static void setFailureReply(CommandMessage* message, diff --git a/memory/HasFileSystemIF.h b/memory/HasFileSystemIF.h index de7bd947e..ec941f596 100644 --- a/memory/HasFileSystemIF.h +++ b/memory/HasFileSystemIF.h @@ -97,7 +97,8 @@ public: * @param repositoryPath * @param args Any other arguments which an implementation might require */ - virtual ReturnValue_t removeDirectory(const char* repositoryPath, void* args = nullptr) = 0; + virtual ReturnValue_t removeDirectory(const char* repositoryPath, + bool deleteRecurively = false, void* args = nullptr) = 0; }; From c9156e12198a5b0c190b91eb98bc9fbf9f59c6a5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 12 Jul 2021 22:34:59 +0200 Subject: [PATCH 007/136] some cmake fixes for FreeRTOS --- CMakeLists.txt | 6 +++--- osal/FreeRTOS/CMakeLists.txt | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ba73a3f6..4ff504f7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,12 +43,12 @@ endif() set(FSFW_OSAL_DEFINITION FSFW_HOST) -if(${OS_FSFW} STREQUAL host) +if(OS_FSFW MATCHES host) set(OS_FSFW_NAME "Host") -elseif(${OS_FSFW} STREQUAL linux) +elseif(OS_FSFW MATCHES linux) set(OS_FSFW_NAME "Linux") set(FSFW_OSAL_DEFINITION FSFW_LINUX) -elseif(${OS_FSFW} STREQUAL freertos) +elseif(OS_FSFW MATCHES freertos) set(OS_FSFW_NAME "FreeRTOS") set(FSFW_OSAL_DEFINITION FSFW_FREERTOS) target_link_libraries(${LIB_FSFW_NAME} PRIVATE diff --git a/osal/FreeRTOS/CMakeLists.txt b/osal/FreeRTOS/CMakeLists.txt index 4da24a710..40bdcd0f5 100644 --- a/osal/FreeRTOS/CMakeLists.txt +++ b/osal/FreeRTOS/CMakeLists.txt @@ -22,10 +22,11 @@ target_sources(${LIB_FSFW_NAME} # FreeRTOS as a static library and set LIB_OS_NAME to the target name of the # library. if(NOT LIB_OS_NAME) - message(FATAL_ERROR - "FreeRTOS needs to be linked as a target and " - "LIB_OS_NAME needs to be set to the target" + message(STATUS + "LIB_OS_NAME is empty. Make sure to include the FreeRTOS header path properly." ) +else() + target_link_libraries(${LIB_FSFW_NAME} PRIVATE + ${LIB_OS_NAME} + ) endif() - -target_link_libraries(${LIB_FSWFW_NAME} ${LIB_OS_NAME}) \ No newline at end of file From 8035af28b98b30ad0179b861d66848c06c859f7f Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 12 Jul 2021 22:42:07 +0200 Subject: [PATCH 008/136] using include structure as used in kernel --- osal/FreeRTOS/BinSemaphUsingTask.h | 4 ++-- osal/FreeRTOS/BinarySemaphore.h | 4 ++-- osal/FreeRTOS/Clock.cpp | 4 ++-- osal/FreeRTOS/CountingSemaphUsingTask.h | 4 ++-- osal/FreeRTOS/CountingSemaphore.cpp | 3 ++- osal/FreeRTOS/FixedTimeslotTask.h | 4 ++-- osal/FreeRTOS/FreeRTOSTaskIF.h | 4 ++-- osal/FreeRTOS/MessageQueue.h | 7 ++++--- osal/FreeRTOS/Mutex.h | 4 ++-- osal/FreeRTOS/QueueMapManager.h | 4 ++-- osal/FreeRTOS/TaskManagement.h | 8 ++++---- osal/FreeRTOS/Timekeeper.cpp | 2 +- osal/FreeRTOS/Timekeeper.h | 4 ++-- 13 files changed, 29 insertions(+), 27 deletions(-) diff --git a/osal/FreeRTOS/BinSemaphUsingTask.h b/osal/FreeRTOS/BinSemaphUsingTask.h index ec434853e..895ccefbd 100644 --- a/osal/FreeRTOS/BinSemaphUsingTask.h +++ b/osal/FreeRTOS/BinSemaphUsingTask.h @@ -4,8 +4,8 @@ #include "../../returnvalues/HasReturnvaluesIF.h" #include "../../tasks/SemaphoreIF.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ tskKERNEL_VERSION_MAJOR > 8 diff --git a/osal/FreeRTOS/BinarySemaphore.h b/osal/FreeRTOS/BinarySemaphore.h index 8969d5038..2335292bd 100644 --- a/osal/FreeRTOS/BinarySemaphore.h +++ b/osal/FreeRTOS/BinarySemaphore.h @@ -4,8 +4,8 @@ #include "../../returnvalues/HasReturnvaluesIF.h" #include "../../tasks/SemaphoreIF.h" -#include -#include +#include "FreeRTOS.h" +#include "semphr.h" /** * @brief OS Tool to achieve synchronization of between tasks or between diff --git a/osal/FreeRTOS/Clock.cpp b/osal/FreeRTOS/Clock.cpp index 66207d75e..a81f6985b 100644 --- a/osal/FreeRTOS/Clock.cpp +++ b/osal/FreeRTOS/Clock.cpp @@ -3,8 +3,8 @@ #include "../../timemanager/Clock.h" #include "../../globalfunctions/timevalOperations.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #include #include diff --git a/osal/FreeRTOS/CountingSemaphUsingTask.h b/osal/FreeRTOS/CountingSemaphUsingTask.h index 45915b6b5..9ac99c315 100644 --- a/osal/FreeRTOS/CountingSemaphUsingTask.h +++ b/osal/FreeRTOS/CountingSemaphUsingTask.h @@ -4,8 +4,8 @@ #include "CountingSemaphUsingTask.h" #include "../../tasks/SemaphoreIF.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ tskKERNEL_VERSION_MAJOR > 8 diff --git a/osal/FreeRTOS/CountingSemaphore.cpp b/osal/FreeRTOS/CountingSemaphore.cpp index 40884d273..148803a6b 100644 --- a/osal/FreeRTOS/CountingSemaphore.cpp +++ b/osal/FreeRTOS/CountingSemaphore.cpp @@ -3,7 +3,8 @@ #include "../../serviceinterface/ServiceInterfaceStream.h" -#include +#include "FreeRTOS.h" +#include "semphr.h" // Make sure #define configUSE_COUNTING_SEMAPHORES 1 is set in // free FreeRTOSConfig.h file. diff --git a/osal/FreeRTOS/FixedTimeslotTask.h b/osal/FreeRTOS/FixedTimeslotTask.h index f2245ba4a..7494581cf 100644 --- a/osal/FreeRTOS/FixedTimeslotTask.h +++ b/osal/FreeRTOS/FixedTimeslotTask.h @@ -6,8 +6,8 @@ #include "../../tasks/FixedTimeslotTaskIF.h" #include "../../tasks/Typedef.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" class FixedTimeslotTask: public FixedTimeslotTaskIF, public FreeRTOSTaskIF { public: diff --git a/osal/FreeRTOS/FreeRTOSTaskIF.h b/osal/FreeRTOS/FreeRTOSTaskIF.h index 2a2d94947..08f0df257 100644 --- a/osal/FreeRTOS/FreeRTOSTaskIF.h +++ b/osal/FreeRTOS/FreeRTOSTaskIF.h @@ -1,8 +1,8 @@ #ifndef FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_ #define FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_ -#include -#include +#include "FreeRTOS.h" +#include "task.h" class FreeRTOSTaskIF { public: diff --git a/osal/FreeRTOS/MessageQueue.h b/osal/FreeRTOS/MessageQueue.h index be74d4fe0..58324cc61 100644 --- a/osal/FreeRTOS/MessageQueue.h +++ b/osal/FreeRTOS/MessageQueue.h @@ -6,10 +6,11 @@ #include "../../internalError/InternalErrorReporterIF.h" #include "../../ipc/MessageQueueIF.h" #include "../../ipc/MessageQueueMessageIF.h" +#include "../../ipc/MessageQueueMessage.h" + +#include "FreeRTOS.h" +#include "queue.h" -#include -#include -#include /** * @brief This class manages sending and receiving of diff --git a/osal/FreeRTOS/Mutex.h b/osal/FreeRTOS/Mutex.h index 156d431c2..877359d84 100644 --- a/osal/FreeRTOS/Mutex.h +++ b/osal/FreeRTOS/Mutex.h @@ -3,8 +3,8 @@ #include "../../ipc/MutexIF.h" -#include -#include +#include "FreeRTOS.h" +#include "semphr.h" /** * @brief OS component to implement MUTual EXclusion diff --git a/osal/FreeRTOS/QueueMapManager.h b/osal/FreeRTOS/QueueMapManager.h index 91a839f0c..07ca8b9e8 100644 --- a/osal/FreeRTOS/QueueMapManager.h +++ b/osal/FreeRTOS/QueueMapManager.h @@ -5,8 +5,8 @@ #include "../../ipc/messageQueueDefinitions.h" #include "../../ipc/MessageQueueIF.h" -#include "freertos/FreeRTOS.h" -#include "freertos/queue.h" +#include "FreeRTOS.h" +#include "queue.h" #include diff --git a/osal/FreeRTOS/TaskManagement.h b/osal/FreeRTOS/TaskManagement.h index b9aece48b..9aa107978 100644 --- a/osal/FreeRTOS/TaskManagement.h +++ b/osal/FreeRTOS/TaskManagement.h @@ -1,10 +1,10 @@ -#ifndef FRAMEWORK_OSAL_FREERTOS_TASKMANAGEMENT_H_ -#define FRAMEWORK_OSAL_FREERTOS_TASKMANAGEMENT_H_ +#ifndef FSFW_OSAL_FREERTOS_TASKMANAGEMENT_H_ +#define FSFW_OSAL_FREERTOS_TASKMANAGEMENT_H_ #include "../../returnvalues/HasReturnvaluesIF.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #include diff --git a/osal/FreeRTOS/Timekeeper.cpp b/osal/FreeRTOS/Timekeeper.cpp index d986d832e..1031f0c4d 100644 --- a/osal/FreeRTOS/Timekeeper.cpp +++ b/osal/FreeRTOS/Timekeeper.cpp @@ -1,6 +1,6 @@ #include "Timekeeper.h" -#include +#include "FreeRTOSConfig.h" Timekeeper * Timekeeper::myinstance = nullptr; diff --git a/osal/FreeRTOS/Timekeeper.h b/osal/FreeRTOS/Timekeeper.h index 7d583f7db..d4d0bc07b 100644 --- a/osal/FreeRTOS/Timekeeper.h +++ b/osal/FreeRTOS/Timekeeper.h @@ -3,8 +3,8 @@ #include "../../timemanager/Clock.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" /** From afebe15dc2ff194d1a111f3ddf45d0e20ba0d436 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 12 Jul 2021 23:01:17 +0200 Subject: [PATCH 009/136] last replacement --- osal/FreeRTOS/PeriodicTask.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osal/FreeRTOS/PeriodicTask.h b/osal/FreeRTOS/PeriodicTask.h index 36ef568f6..04d40fcf3 100644 --- a/osal/FreeRTOS/PeriodicTask.h +++ b/osal/FreeRTOS/PeriodicTask.h @@ -6,8 +6,8 @@ #include "../../tasks/PeriodicTaskIF.h" #include "../../tasks/Typedef.h" -#include -#include +#include "FreeRTOS.h" +#include "task.h" #include From ff63a3438410e4bed2f7c02e6f4a460135f32d00 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 12 Jul 2021 23:32:24 +0200 Subject: [PATCH 010/136] include improvements --- osal/FreeRTOS/SemaphoreFactory.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/osal/FreeRTOS/SemaphoreFactory.cpp b/osal/FreeRTOS/SemaphoreFactory.cpp index df005f6a5..614af75dd 100644 --- a/osal/FreeRTOS/SemaphoreFactory.cpp +++ b/osal/FreeRTOS/SemaphoreFactory.cpp @@ -1,9 +1,10 @@ -#include "../../osal/FreeRTOS/BinarySemaphore.h" -#include "../../osal/FreeRTOS/BinSemaphUsingTask.h" -#include "../../osal/FreeRTOS/CountingSemaphore.h" -#include "../../osal/FreeRTOS/CountingSemaphUsingTask.h" +#include "BinarySemaphore.h" +#include "BinSemaphUsingTask.h" +#include "CountingSemaphore.h" +#include "CountingSemaphUsingTask.h" + #include "../../tasks/SemaphoreFactory.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "../../serviceinterface/ServiceInterface.h" SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr; From 5adb5cce95929854396240e03229c0c610314286 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 16:35:57 +0200 Subject: [PATCH 011/136] restructuring fsfw --- {action => core/inc/fsfw/action}/ActionHelper.h | 0 {action => core/inc/fsfw/action}/ActionMessage.h | 0 .../inc/fsfw/action}/CommandActionHelper.h | 0 {action => core/inc/fsfw/action}/CommandsActionsIF.h | 0 {action => core/inc/fsfw/action}/HasActionsIF.h | 0 .../inc/fsfw/action}/SimpleActionHelper.h | 0 {container => core/inc/fsfw/container}/ArrayList.h | 0 {container => core/inc/fsfw/container}/BinaryTree.h | 0 {container => core/inc/fsfw/container}/DynamicFIFO.h | 0 {container => core/inc/fsfw/container}/FIFO.h | 0 {container => core/inc/fsfw/container}/FIFOBase.h | 0 {container => core/inc/fsfw/container}/FIFOBase.tpp | 0 .../inc/fsfw/container}/FixedArrayList.h | 0 {container => core/inc/fsfw/container}/FixedMap.h | 0 .../inc/fsfw/container}/FixedOrderedMultimap.h | 0 .../inc/fsfw/container}/FixedOrderedMultimap.tpp | 0 .../inc/fsfw/container}/HybridIterator.h | 0 .../inc/fsfw/container}/IndexedRingMemoryArray.h | 0 .../inc/fsfw/container}/PlacementFactory.h | 0 .../inc/fsfw/container}/RingBufferBase.h | 0 .../inc/fsfw/container}/SharedRingBuffer.h | 0 .../inc/fsfw/container}/SimpleRingBuffer.h | 0 .../inc/fsfw/container}/SinglyLinkedList.h | 0 {container => core/inc/fsfw/container}/group.h | 0 .../inc/fsfw/controller}/ControllerBase.h | 0 .../inc/fsfw/controller}/ExtendedControllerBase.h | 0 {datapool => core/inc/fsfw/datapool}/DataSetIF.h | 0 .../inc/fsfw/datapool}/HkSwitchHelper.h | 0 .../inc/fsfw/datapool}/PoolDataSetBase.h | 0 {datapool => core/inc/fsfw/datapool}/PoolDataSetIF.h | 0 {datapool => core/inc/fsfw/datapool}/PoolEntry.h | 0 {datapool => core/inc/fsfw/datapool}/PoolEntryIF.h | 0 {datapool => core/inc/fsfw/datapool}/PoolReadGuard.h | 0 {datapool => core/inc/fsfw/datapool}/PoolVarList.h | 0 .../inc/fsfw/datapool}/PoolVariableIF.h | 0 {datapool => core/inc/fsfw/datapool}/ReadCommitIF.h | 0 .../inc/fsfw/datapool}/ReadCommitIFAttorney.h | 0 .../inc/fsfw/datapool}/SharedDataSetIF.h | 0 core/inc/fsfw/datapoollocal.h | 12 ++++++++++++ .../inc/fsfw/datapoollocal}/AccessLocalPoolF.h | 0 .../inc/fsfw/datapoollocal}/HasLocalDataPoolIF.h | 0 .../inc/fsfw/datapoollocal}/LocalDataPoolManager.h | 0 .../inc/fsfw/datapoollocal}/LocalDataSet.h | 0 .../inc/fsfw/datapoollocal}/LocalPoolDataSetBase.h | 0 .../inc/fsfw/datapoollocal}/LocalPoolObjectBase.h | 0 .../inc/fsfw/datapoollocal}/LocalPoolVariable.h | 0 .../inc/fsfw/datapoollocal}/LocalPoolVariable.tpp | 0 .../inc/fsfw/datapoollocal}/LocalPoolVector.h | 0 .../inc/fsfw/datapoollocal}/LocalPoolVector.tpp | 0 .../inc/fsfw/datapoollocal}/MarkChangedIF.h | 0 .../datapoollocal}/ProvidesDataPoolSubscriptionIF.h | 0 .../inc/fsfw/datapoollocal}/SharedLocalDataSet.h | 0 .../inc/fsfw/datapoollocal}/StaticLocalDataSet.h | 0 .../inc/fsfw/datapoollocal}/localPoolDefinitions.h | 0 {action => core/src/action}/ActionHelper.cpp | 0 {action => core/src/action}/ActionMessage.cpp | 0 {action => core/src/action}/CMakeLists.txt | 0 {action => core/src/action}/CommandActionHelper.cpp | 0 {action => core/src/action}/SimpleActionHelper.cpp | 0 {container => core/src/container}/CMakeLists.txt | 0 .../src/container}/SharedRingBuffer.cpp | 0 .../src/container}/SimpleRingBuffer.cpp | 0 {controller => core/src/controller}/CMakeLists.txt | 0 .../src/controller}/ControllerBase.cpp | 0 .../src/controller}/ExtendedControllerBase.cpp | 0 {datapool => core/src/datapool}/CMakeLists.txt | 0 {datapool => core/src/datapool}/HkSwitchHelper.cpp | 0 {datapool => core/src/datapool}/PoolDataSetBase.cpp | 0 {datapool => core/src/datapool}/PoolEntry.cpp | 0 .../src/datapoollocal}/CMakeLists.txt | 0 .../src/datapoollocal}/LocalDataPoolManager.cpp | 0 .../src/datapoollocal}/LocalDataSet.cpp | 0 .../src/datapoollocal}/LocalPoolDataSetBase.cpp | 0 .../src/datapoollocal}/LocalPoolObjectBase.cpp | 0 .../src/datapoollocal}/SharedLocalDataSet.cpp | 0 .../src/datapoollocal}/internal/CMakeLists.txt | 0 .../internal/HasLocalDpIFManagerAttorney.cpp | 0 .../internal/HasLocalDpIFManagerAttorney.h | 0 .../internal/HasLocalDpIFUserAttorney.cpp | 0 .../internal/HasLocalDpIFUserAttorney.h | 0 .../datapoollocal}/internal/LocalDpManagerAttorney.h | 0 .../internal/LocalPoolDataSetAttorney.h | 0 datapoollocal/datapoollocal.h | 12 ------------ .../fsfw/coordinates}/CoordinateTransformations.h | 0 .../inc/fsfw/coordinates}/Jgm3Model.h | 0 .../inc/fsfw/coordinates}/Sgp4Propagator.h | 0 .../inc/fsfw/datalinklayer}/BCFrame.h | 0 .../inc/fsfw/datalinklayer}/CCSDSReturnValuesIF.h | 0 {datalinklayer => opt/inc/fsfw/datalinklayer}/Clcw.h | 0 .../inc/fsfw/datalinklayer}/ClcwIF.h | 0 .../inc/fsfw/datalinklayer}/DataLinkLayer.h | 0 .../inc/fsfw/datalinklayer}/Farm1StateIF.h | 0 .../inc/fsfw/datalinklayer}/Farm1StateLockout.h | 0 .../inc/fsfw/datalinklayer}/Farm1StateOpen.h | 0 .../inc/fsfw/datalinklayer}/Farm1StateWait.h | 0 .../inc/fsfw/datalinklayer}/MapPacketExtraction.h | 0 .../inc/fsfw/datalinklayer}/MapPacketExtractionIF.h | 0 .../inc/fsfw/datalinklayer}/TcTransferFrame.h | 0 .../inc/fsfw/datalinklayer}/TcTransferFrameLocal.h | 0 .../fsfw/datalinklayer}/VirtualChannelReception.h | 0 .../fsfw/datalinklayer}/VirtualChannelReceptionIF.h | 0 {coordinates => opt/src/coordinates}/CMakeLists.txt | 0 .../src/coordinates}/CoordinateTransformations.cpp | 0 .../src/coordinates}/Sgp4Propagator.cpp | 0 .../src/datalinklayer}/CMakeLists.txt | 0 {datalinklayer => opt/src/datalinklayer}/Clcw.cpp | 0 .../src/datalinklayer}/DataLinkLayer.cpp | 0 .../src/datalinklayer}/Farm1StateLockout.cpp | 0 .../src/datalinklayer}/Farm1StateOpen.cpp | 0 .../src/datalinklayer}/Farm1StateWait.cpp | 0 .../src/datalinklayer}/MapPacketExtraction.cpp | 0 .../src/datalinklayer}/TcTransferFrame.cpp | 0 .../src/datalinklayer}/TcTransferFrameLocal.cpp | 0 .../src/datalinklayer}/VirtualChannelReception.cpp | 0 114 files changed, 12 insertions(+), 12 deletions(-) rename {action => core/inc/fsfw/action}/ActionHelper.h (100%) rename {action => core/inc/fsfw/action}/ActionMessage.h (100%) rename {action => core/inc/fsfw/action}/CommandActionHelper.h (100%) rename {action => core/inc/fsfw/action}/CommandsActionsIF.h (100%) rename {action => core/inc/fsfw/action}/HasActionsIF.h (100%) rename {action => core/inc/fsfw/action}/SimpleActionHelper.h (100%) rename {container => core/inc/fsfw/container}/ArrayList.h (100%) rename {container => core/inc/fsfw/container}/BinaryTree.h (100%) rename {container => core/inc/fsfw/container}/DynamicFIFO.h (100%) rename {container => core/inc/fsfw/container}/FIFO.h (100%) rename {container => core/inc/fsfw/container}/FIFOBase.h (100%) rename {container => core/inc/fsfw/container}/FIFOBase.tpp (100%) rename {container => core/inc/fsfw/container}/FixedArrayList.h (100%) rename {container => core/inc/fsfw/container}/FixedMap.h (100%) rename {container => core/inc/fsfw/container}/FixedOrderedMultimap.h (100%) rename {container => core/inc/fsfw/container}/FixedOrderedMultimap.tpp (100%) rename {container => core/inc/fsfw/container}/HybridIterator.h (100%) rename {container => core/inc/fsfw/container}/IndexedRingMemoryArray.h (100%) rename {container => core/inc/fsfw/container}/PlacementFactory.h (100%) rename {container => core/inc/fsfw/container}/RingBufferBase.h (100%) rename {container => core/inc/fsfw/container}/SharedRingBuffer.h (100%) rename {container => core/inc/fsfw/container}/SimpleRingBuffer.h (100%) rename {container => core/inc/fsfw/container}/SinglyLinkedList.h (100%) rename {container => core/inc/fsfw/container}/group.h (100%) rename {controller => core/inc/fsfw/controller}/ControllerBase.h (100%) rename {controller => core/inc/fsfw/controller}/ExtendedControllerBase.h (100%) rename {datapool => core/inc/fsfw/datapool}/DataSetIF.h (100%) rename {datapool => core/inc/fsfw/datapool}/HkSwitchHelper.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolDataSetBase.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolDataSetIF.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolEntry.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolEntryIF.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolReadGuard.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolVarList.h (100%) rename {datapool => core/inc/fsfw/datapool}/PoolVariableIF.h (100%) rename {datapool => core/inc/fsfw/datapool}/ReadCommitIF.h (100%) rename {datapool => core/inc/fsfw/datapool}/ReadCommitIFAttorney.h (100%) rename {datapool => core/inc/fsfw/datapool}/SharedDataSetIF.h (100%) create mode 100644 core/inc/fsfw/datapoollocal.h rename {datapoollocal => core/inc/fsfw/datapoollocal}/AccessLocalPoolF.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/HasLocalDataPoolIF.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalDataPoolManager.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalDataSet.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalPoolDataSetBase.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalPoolObjectBase.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalPoolVariable.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalPoolVariable.tpp (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalPoolVector.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/LocalPoolVector.tpp (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/MarkChangedIF.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/ProvidesDataPoolSubscriptionIF.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/SharedLocalDataSet.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/StaticLocalDataSet.h (100%) rename {datapoollocal => core/inc/fsfw/datapoollocal}/localPoolDefinitions.h (100%) rename {action => core/src/action}/ActionHelper.cpp (100%) rename {action => core/src/action}/ActionMessage.cpp (100%) rename {action => core/src/action}/CMakeLists.txt (100%) rename {action => core/src/action}/CommandActionHelper.cpp (100%) rename {action => core/src/action}/SimpleActionHelper.cpp (100%) rename {container => core/src/container}/CMakeLists.txt (100%) rename {container => core/src/container}/SharedRingBuffer.cpp (100%) rename {container => core/src/container}/SimpleRingBuffer.cpp (100%) rename {controller => core/src/controller}/CMakeLists.txt (100%) rename {controller => core/src/controller}/ControllerBase.cpp (100%) rename {controller => core/src/controller}/ExtendedControllerBase.cpp (100%) rename {datapool => core/src/datapool}/CMakeLists.txt (100%) rename {datapool => core/src/datapool}/HkSwitchHelper.cpp (100%) rename {datapool => core/src/datapool}/PoolDataSetBase.cpp (100%) rename {datapool => core/src/datapool}/PoolEntry.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/CMakeLists.txt (100%) rename {datapoollocal => core/src/datapoollocal}/LocalDataPoolManager.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/LocalDataSet.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/LocalPoolDataSetBase.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/LocalPoolObjectBase.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/SharedLocalDataSet.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/internal/CMakeLists.txt (100%) rename {datapoollocal => core/src/datapoollocal}/internal/HasLocalDpIFManagerAttorney.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/internal/HasLocalDpIFManagerAttorney.h (100%) rename {datapoollocal => core/src/datapoollocal}/internal/HasLocalDpIFUserAttorney.cpp (100%) rename {datapoollocal => core/src/datapoollocal}/internal/HasLocalDpIFUserAttorney.h (100%) rename {datapoollocal => core/src/datapoollocal}/internal/LocalDpManagerAttorney.h (100%) rename {datapoollocal => core/src/datapoollocal}/internal/LocalPoolDataSetAttorney.h (100%) delete mode 100644 datapoollocal/datapoollocal.h rename {coordinates => opt/inc/fsfw/coordinates}/CoordinateTransformations.h (100%) rename {coordinates => opt/inc/fsfw/coordinates}/Jgm3Model.h (100%) rename {coordinates => opt/inc/fsfw/coordinates}/Sgp4Propagator.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/BCFrame.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/CCSDSReturnValuesIF.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/Clcw.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/ClcwIF.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/DataLinkLayer.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/Farm1StateIF.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/Farm1StateLockout.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/Farm1StateOpen.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/Farm1StateWait.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/MapPacketExtraction.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/MapPacketExtractionIF.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/TcTransferFrame.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/TcTransferFrameLocal.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/VirtualChannelReception.h (100%) rename {datalinklayer => opt/inc/fsfw/datalinklayer}/VirtualChannelReceptionIF.h (100%) rename {coordinates => opt/src/coordinates}/CMakeLists.txt (100%) rename {coordinates => opt/src/coordinates}/CoordinateTransformations.cpp (100%) rename {coordinates => opt/src/coordinates}/Sgp4Propagator.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/CMakeLists.txt (100%) rename {datalinklayer => opt/src/datalinklayer}/Clcw.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/DataLinkLayer.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/Farm1StateLockout.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/Farm1StateOpen.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/Farm1StateWait.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/MapPacketExtraction.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/TcTransferFrame.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/TcTransferFrameLocal.cpp (100%) rename {datalinklayer => opt/src/datalinklayer}/VirtualChannelReception.cpp (100%) diff --git a/action/ActionHelper.h b/core/inc/fsfw/action/ActionHelper.h similarity index 100% rename from action/ActionHelper.h rename to core/inc/fsfw/action/ActionHelper.h diff --git a/action/ActionMessage.h b/core/inc/fsfw/action/ActionMessage.h similarity index 100% rename from action/ActionMessage.h rename to core/inc/fsfw/action/ActionMessage.h diff --git a/action/CommandActionHelper.h b/core/inc/fsfw/action/CommandActionHelper.h similarity index 100% rename from action/CommandActionHelper.h rename to core/inc/fsfw/action/CommandActionHelper.h diff --git a/action/CommandsActionsIF.h b/core/inc/fsfw/action/CommandsActionsIF.h similarity index 100% rename from action/CommandsActionsIF.h rename to core/inc/fsfw/action/CommandsActionsIF.h diff --git a/action/HasActionsIF.h b/core/inc/fsfw/action/HasActionsIF.h similarity index 100% rename from action/HasActionsIF.h rename to core/inc/fsfw/action/HasActionsIF.h diff --git a/action/SimpleActionHelper.h b/core/inc/fsfw/action/SimpleActionHelper.h similarity index 100% rename from action/SimpleActionHelper.h rename to core/inc/fsfw/action/SimpleActionHelper.h diff --git a/container/ArrayList.h b/core/inc/fsfw/container/ArrayList.h similarity index 100% rename from container/ArrayList.h rename to core/inc/fsfw/container/ArrayList.h diff --git a/container/BinaryTree.h b/core/inc/fsfw/container/BinaryTree.h similarity index 100% rename from container/BinaryTree.h rename to core/inc/fsfw/container/BinaryTree.h diff --git a/container/DynamicFIFO.h b/core/inc/fsfw/container/DynamicFIFO.h similarity index 100% rename from container/DynamicFIFO.h rename to core/inc/fsfw/container/DynamicFIFO.h diff --git a/container/FIFO.h b/core/inc/fsfw/container/FIFO.h similarity index 100% rename from container/FIFO.h rename to core/inc/fsfw/container/FIFO.h diff --git a/container/FIFOBase.h b/core/inc/fsfw/container/FIFOBase.h similarity index 100% rename from container/FIFOBase.h rename to core/inc/fsfw/container/FIFOBase.h diff --git a/container/FIFOBase.tpp b/core/inc/fsfw/container/FIFOBase.tpp similarity index 100% rename from container/FIFOBase.tpp rename to core/inc/fsfw/container/FIFOBase.tpp diff --git a/container/FixedArrayList.h b/core/inc/fsfw/container/FixedArrayList.h similarity index 100% rename from container/FixedArrayList.h rename to core/inc/fsfw/container/FixedArrayList.h diff --git a/container/FixedMap.h b/core/inc/fsfw/container/FixedMap.h similarity index 100% rename from container/FixedMap.h rename to core/inc/fsfw/container/FixedMap.h diff --git a/container/FixedOrderedMultimap.h b/core/inc/fsfw/container/FixedOrderedMultimap.h similarity index 100% rename from container/FixedOrderedMultimap.h rename to core/inc/fsfw/container/FixedOrderedMultimap.h diff --git a/container/FixedOrderedMultimap.tpp b/core/inc/fsfw/container/FixedOrderedMultimap.tpp similarity index 100% rename from container/FixedOrderedMultimap.tpp rename to core/inc/fsfw/container/FixedOrderedMultimap.tpp diff --git a/container/HybridIterator.h b/core/inc/fsfw/container/HybridIterator.h similarity index 100% rename from container/HybridIterator.h rename to core/inc/fsfw/container/HybridIterator.h diff --git a/container/IndexedRingMemoryArray.h b/core/inc/fsfw/container/IndexedRingMemoryArray.h similarity index 100% rename from container/IndexedRingMemoryArray.h rename to core/inc/fsfw/container/IndexedRingMemoryArray.h diff --git a/container/PlacementFactory.h b/core/inc/fsfw/container/PlacementFactory.h similarity index 100% rename from container/PlacementFactory.h rename to core/inc/fsfw/container/PlacementFactory.h diff --git a/container/RingBufferBase.h b/core/inc/fsfw/container/RingBufferBase.h similarity index 100% rename from container/RingBufferBase.h rename to core/inc/fsfw/container/RingBufferBase.h diff --git a/container/SharedRingBuffer.h b/core/inc/fsfw/container/SharedRingBuffer.h similarity index 100% rename from container/SharedRingBuffer.h rename to core/inc/fsfw/container/SharedRingBuffer.h diff --git a/container/SimpleRingBuffer.h b/core/inc/fsfw/container/SimpleRingBuffer.h similarity index 100% rename from container/SimpleRingBuffer.h rename to core/inc/fsfw/container/SimpleRingBuffer.h diff --git a/container/SinglyLinkedList.h b/core/inc/fsfw/container/SinglyLinkedList.h similarity index 100% rename from container/SinglyLinkedList.h rename to core/inc/fsfw/container/SinglyLinkedList.h diff --git a/container/group.h b/core/inc/fsfw/container/group.h similarity index 100% rename from container/group.h rename to core/inc/fsfw/container/group.h diff --git a/controller/ControllerBase.h b/core/inc/fsfw/controller/ControllerBase.h similarity index 100% rename from controller/ControllerBase.h rename to core/inc/fsfw/controller/ControllerBase.h diff --git a/controller/ExtendedControllerBase.h b/core/inc/fsfw/controller/ExtendedControllerBase.h similarity index 100% rename from controller/ExtendedControllerBase.h rename to core/inc/fsfw/controller/ExtendedControllerBase.h diff --git a/datapool/DataSetIF.h b/core/inc/fsfw/datapool/DataSetIF.h similarity index 100% rename from datapool/DataSetIF.h rename to core/inc/fsfw/datapool/DataSetIF.h diff --git a/datapool/HkSwitchHelper.h b/core/inc/fsfw/datapool/HkSwitchHelper.h similarity index 100% rename from datapool/HkSwitchHelper.h rename to core/inc/fsfw/datapool/HkSwitchHelper.h diff --git a/datapool/PoolDataSetBase.h b/core/inc/fsfw/datapool/PoolDataSetBase.h similarity index 100% rename from datapool/PoolDataSetBase.h rename to core/inc/fsfw/datapool/PoolDataSetBase.h diff --git a/datapool/PoolDataSetIF.h b/core/inc/fsfw/datapool/PoolDataSetIF.h similarity index 100% rename from datapool/PoolDataSetIF.h rename to core/inc/fsfw/datapool/PoolDataSetIF.h diff --git a/datapool/PoolEntry.h b/core/inc/fsfw/datapool/PoolEntry.h similarity index 100% rename from datapool/PoolEntry.h rename to core/inc/fsfw/datapool/PoolEntry.h diff --git a/datapool/PoolEntryIF.h b/core/inc/fsfw/datapool/PoolEntryIF.h similarity index 100% rename from datapool/PoolEntryIF.h rename to core/inc/fsfw/datapool/PoolEntryIF.h diff --git a/datapool/PoolReadGuard.h b/core/inc/fsfw/datapool/PoolReadGuard.h similarity index 100% rename from datapool/PoolReadGuard.h rename to core/inc/fsfw/datapool/PoolReadGuard.h diff --git a/datapool/PoolVarList.h b/core/inc/fsfw/datapool/PoolVarList.h similarity index 100% rename from datapool/PoolVarList.h rename to core/inc/fsfw/datapool/PoolVarList.h diff --git a/datapool/PoolVariableIF.h b/core/inc/fsfw/datapool/PoolVariableIF.h similarity index 100% rename from datapool/PoolVariableIF.h rename to core/inc/fsfw/datapool/PoolVariableIF.h diff --git a/datapool/ReadCommitIF.h b/core/inc/fsfw/datapool/ReadCommitIF.h similarity index 100% rename from datapool/ReadCommitIF.h rename to core/inc/fsfw/datapool/ReadCommitIF.h diff --git a/datapool/ReadCommitIFAttorney.h b/core/inc/fsfw/datapool/ReadCommitIFAttorney.h similarity index 100% rename from datapool/ReadCommitIFAttorney.h rename to core/inc/fsfw/datapool/ReadCommitIFAttorney.h diff --git a/datapool/SharedDataSetIF.h b/core/inc/fsfw/datapool/SharedDataSetIF.h similarity index 100% rename from datapool/SharedDataSetIF.h rename to core/inc/fsfw/datapool/SharedDataSetIF.h diff --git a/core/inc/fsfw/datapoollocal.h b/core/inc/fsfw/datapoollocal.h new file mode 100644 index 000000000..73024a5cf --- /dev/null +++ b/core/inc/fsfw/datapoollocal.h @@ -0,0 +1,12 @@ +#ifndef FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ +#define FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ + +/* Collected related headers */ +#include "datapoollocal/LocalPoolVariable.h" +#include "datapoollocal/LocalPoolVector.h" +#include "datapoollocal/StaticLocalDataSet.h" +#include "datapoollocal/LocalDataSet.h" +#include "datapoollocal/SharedLocalDataSet.h" + + +#endif /* FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ */ diff --git a/datapoollocal/AccessLocalPoolF.h b/core/inc/fsfw/datapoollocal/AccessLocalPoolF.h similarity index 100% rename from datapoollocal/AccessLocalPoolF.h rename to core/inc/fsfw/datapoollocal/AccessLocalPoolF.h diff --git a/datapoollocal/HasLocalDataPoolIF.h b/core/inc/fsfw/datapoollocal/HasLocalDataPoolIF.h similarity index 100% rename from datapoollocal/HasLocalDataPoolIF.h rename to core/inc/fsfw/datapoollocal/HasLocalDataPoolIF.h diff --git a/datapoollocal/LocalDataPoolManager.h b/core/inc/fsfw/datapoollocal/LocalDataPoolManager.h similarity index 100% rename from datapoollocal/LocalDataPoolManager.h rename to core/inc/fsfw/datapoollocal/LocalDataPoolManager.h diff --git a/datapoollocal/LocalDataSet.h b/core/inc/fsfw/datapoollocal/LocalDataSet.h similarity index 100% rename from datapoollocal/LocalDataSet.h rename to core/inc/fsfw/datapoollocal/LocalDataSet.h diff --git a/datapoollocal/LocalPoolDataSetBase.h b/core/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h similarity index 100% rename from datapoollocal/LocalPoolDataSetBase.h rename to core/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h diff --git a/datapoollocal/LocalPoolObjectBase.h b/core/inc/fsfw/datapoollocal/LocalPoolObjectBase.h similarity index 100% rename from datapoollocal/LocalPoolObjectBase.h rename to core/inc/fsfw/datapoollocal/LocalPoolObjectBase.h diff --git a/datapoollocal/LocalPoolVariable.h b/core/inc/fsfw/datapoollocal/LocalPoolVariable.h similarity index 100% rename from datapoollocal/LocalPoolVariable.h rename to core/inc/fsfw/datapoollocal/LocalPoolVariable.h diff --git a/datapoollocal/LocalPoolVariable.tpp b/core/inc/fsfw/datapoollocal/LocalPoolVariable.tpp similarity index 100% rename from datapoollocal/LocalPoolVariable.tpp rename to core/inc/fsfw/datapoollocal/LocalPoolVariable.tpp diff --git a/datapoollocal/LocalPoolVector.h b/core/inc/fsfw/datapoollocal/LocalPoolVector.h similarity index 100% rename from datapoollocal/LocalPoolVector.h rename to core/inc/fsfw/datapoollocal/LocalPoolVector.h diff --git a/datapoollocal/LocalPoolVector.tpp b/core/inc/fsfw/datapoollocal/LocalPoolVector.tpp similarity index 100% rename from datapoollocal/LocalPoolVector.tpp rename to core/inc/fsfw/datapoollocal/LocalPoolVector.tpp diff --git a/datapoollocal/MarkChangedIF.h b/core/inc/fsfw/datapoollocal/MarkChangedIF.h similarity index 100% rename from datapoollocal/MarkChangedIF.h rename to core/inc/fsfw/datapoollocal/MarkChangedIF.h diff --git a/datapoollocal/ProvidesDataPoolSubscriptionIF.h b/core/inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h similarity index 100% rename from datapoollocal/ProvidesDataPoolSubscriptionIF.h rename to core/inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h diff --git a/datapoollocal/SharedLocalDataSet.h b/core/inc/fsfw/datapoollocal/SharedLocalDataSet.h similarity index 100% rename from datapoollocal/SharedLocalDataSet.h rename to core/inc/fsfw/datapoollocal/SharedLocalDataSet.h diff --git a/datapoollocal/StaticLocalDataSet.h b/core/inc/fsfw/datapoollocal/StaticLocalDataSet.h similarity index 100% rename from datapoollocal/StaticLocalDataSet.h rename to core/inc/fsfw/datapoollocal/StaticLocalDataSet.h diff --git a/datapoollocal/localPoolDefinitions.h b/core/inc/fsfw/datapoollocal/localPoolDefinitions.h similarity index 100% rename from datapoollocal/localPoolDefinitions.h rename to core/inc/fsfw/datapoollocal/localPoolDefinitions.h diff --git a/action/ActionHelper.cpp b/core/src/action/ActionHelper.cpp similarity index 100% rename from action/ActionHelper.cpp rename to core/src/action/ActionHelper.cpp diff --git a/action/ActionMessage.cpp b/core/src/action/ActionMessage.cpp similarity index 100% rename from action/ActionMessage.cpp rename to core/src/action/ActionMessage.cpp diff --git a/action/CMakeLists.txt b/core/src/action/CMakeLists.txt similarity index 100% rename from action/CMakeLists.txt rename to core/src/action/CMakeLists.txt diff --git a/action/CommandActionHelper.cpp b/core/src/action/CommandActionHelper.cpp similarity index 100% rename from action/CommandActionHelper.cpp rename to core/src/action/CommandActionHelper.cpp diff --git a/action/SimpleActionHelper.cpp b/core/src/action/SimpleActionHelper.cpp similarity index 100% rename from action/SimpleActionHelper.cpp rename to core/src/action/SimpleActionHelper.cpp diff --git a/container/CMakeLists.txt b/core/src/container/CMakeLists.txt similarity index 100% rename from container/CMakeLists.txt rename to core/src/container/CMakeLists.txt diff --git a/container/SharedRingBuffer.cpp b/core/src/container/SharedRingBuffer.cpp similarity index 100% rename from container/SharedRingBuffer.cpp rename to core/src/container/SharedRingBuffer.cpp diff --git a/container/SimpleRingBuffer.cpp b/core/src/container/SimpleRingBuffer.cpp similarity index 100% rename from container/SimpleRingBuffer.cpp rename to core/src/container/SimpleRingBuffer.cpp diff --git a/controller/CMakeLists.txt b/core/src/controller/CMakeLists.txt similarity index 100% rename from controller/CMakeLists.txt rename to core/src/controller/CMakeLists.txt diff --git a/controller/ControllerBase.cpp b/core/src/controller/ControllerBase.cpp similarity index 100% rename from controller/ControllerBase.cpp rename to core/src/controller/ControllerBase.cpp diff --git a/controller/ExtendedControllerBase.cpp b/core/src/controller/ExtendedControllerBase.cpp similarity index 100% rename from controller/ExtendedControllerBase.cpp rename to core/src/controller/ExtendedControllerBase.cpp diff --git a/datapool/CMakeLists.txt b/core/src/datapool/CMakeLists.txt similarity index 100% rename from datapool/CMakeLists.txt rename to core/src/datapool/CMakeLists.txt diff --git a/datapool/HkSwitchHelper.cpp b/core/src/datapool/HkSwitchHelper.cpp similarity index 100% rename from datapool/HkSwitchHelper.cpp rename to core/src/datapool/HkSwitchHelper.cpp diff --git a/datapool/PoolDataSetBase.cpp b/core/src/datapool/PoolDataSetBase.cpp similarity index 100% rename from datapool/PoolDataSetBase.cpp rename to core/src/datapool/PoolDataSetBase.cpp diff --git a/datapool/PoolEntry.cpp b/core/src/datapool/PoolEntry.cpp similarity index 100% rename from datapool/PoolEntry.cpp rename to core/src/datapool/PoolEntry.cpp diff --git a/datapoollocal/CMakeLists.txt b/core/src/datapoollocal/CMakeLists.txt similarity index 100% rename from datapoollocal/CMakeLists.txt rename to core/src/datapoollocal/CMakeLists.txt diff --git a/datapoollocal/LocalDataPoolManager.cpp b/core/src/datapoollocal/LocalDataPoolManager.cpp similarity index 100% rename from datapoollocal/LocalDataPoolManager.cpp rename to core/src/datapoollocal/LocalDataPoolManager.cpp diff --git a/datapoollocal/LocalDataSet.cpp b/core/src/datapoollocal/LocalDataSet.cpp similarity index 100% rename from datapoollocal/LocalDataSet.cpp rename to core/src/datapoollocal/LocalDataSet.cpp diff --git a/datapoollocal/LocalPoolDataSetBase.cpp b/core/src/datapoollocal/LocalPoolDataSetBase.cpp similarity index 100% rename from datapoollocal/LocalPoolDataSetBase.cpp rename to core/src/datapoollocal/LocalPoolDataSetBase.cpp diff --git a/datapoollocal/LocalPoolObjectBase.cpp b/core/src/datapoollocal/LocalPoolObjectBase.cpp similarity index 100% rename from datapoollocal/LocalPoolObjectBase.cpp rename to core/src/datapoollocal/LocalPoolObjectBase.cpp diff --git a/datapoollocal/SharedLocalDataSet.cpp b/core/src/datapoollocal/SharedLocalDataSet.cpp similarity index 100% rename from datapoollocal/SharedLocalDataSet.cpp rename to core/src/datapoollocal/SharedLocalDataSet.cpp diff --git a/datapoollocal/internal/CMakeLists.txt b/core/src/datapoollocal/internal/CMakeLists.txt similarity index 100% rename from datapoollocal/internal/CMakeLists.txt rename to core/src/datapoollocal/internal/CMakeLists.txt diff --git a/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp b/core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp similarity index 100% rename from datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp rename to core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp diff --git a/datapoollocal/internal/HasLocalDpIFManagerAttorney.h b/core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.h similarity index 100% rename from datapoollocal/internal/HasLocalDpIFManagerAttorney.h rename to core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.h diff --git a/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp b/core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp similarity index 100% rename from datapoollocal/internal/HasLocalDpIFUserAttorney.cpp rename to core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp diff --git a/datapoollocal/internal/HasLocalDpIFUserAttorney.h b/core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.h similarity index 100% rename from datapoollocal/internal/HasLocalDpIFUserAttorney.h rename to core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.h diff --git a/datapoollocal/internal/LocalDpManagerAttorney.h b/core/src/datapoollocal/internal/LocalDpManagerAttorney.h similarity index 100% rename from datapoollocal/internal/LocalDpManagerAttorney.h rename to core/src/datapoollocal/internal/LocalDpManagerAttorney.h diff --git a/datapoollocal/internal/LocalPoolDataSetAttorney.h b/core/src/datapoollocal/internal/LocalPoolDataSetAttorney.h similarity index 100% rename from datapoollocal/internal/LocalPoolDataSetAttorney.h rename to core/src/datapoollocal/internal/LocalPoolDataSetAttorney.h diff --git a/datapoollocal/datapoollocal.h b/datapoollocal/datapoollocal.h deleted file mode 100644 index c5c470788..000000000 --- a/datapoollocal/datapoollocal.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ -#define FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ - -/* Collected related headers */ -#include "LocalPoolVariable.h" -#include "LocalPoolVector.h" -#include "StaticLocalDataSet.h" -#include "LocalDataSet.h" -#include "SharedLocalDataSet.h" - - -#endif /* FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ */ diff --git a/coordinates/CoordinateTransformations.h b/opt/inc/fsfw/coordinates/CoordinateTransformations.h similarity index 100% rename from coordinates/CoordinateTransformations.h rename to opt/inc/fsfw/coordinates/CoordinateTransformations.h diff --git a/coordinates/Jgm3Model.h b/opt/inc/fsfw/coordinates/Jgm3Model.h similarity index 100% rename from coordinates/Jgm3Model.h rename to opt/inc/fsfw/coordinates/Jgm3Model.h diff --git a/coordinates/Sgp4Propagator.h b/opt/inc/fsfw/coordinates/Sgp4Propagator.h similarity index 100% rename from coordinates/Sgp4Propagator.h rename to opt/inc/fsfw/coordinates/Sgp4Propagator.h diff --git a/datalinklayer/BCFrame.h b/opt/inc/fsfw/datalinklayer/BCFrame.h similarity index 100% rename from datalinklayer/BCFrame.h rename to opt/inc/fsfw/datalinklayer/BCFrame.h diff --git a/datalinklayer/CCSDSReturnValuesIF.h b/opt/inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h similarity index 100% rename from datalinklayer/CCSDSReturnValuesIF.h rename to opt/inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h diff --git a/datalinklayer/Clcw.h b/opt/inc/fsfw/datalinklayer/Clcw.h similarity index 100% rename from datalinklayer/Clcw.h rename to opt/inc/fsfw/datalinklayer/Clcw.h diff --git a/datalinklayer/ClcwIF.h b/opt/inc/fsfw/datalinklayer/ClcwIF.h similarity index 100% rename from datalinklayer/ClcwIF.h rename to opt/inc/fsfw/datalinklayer/ClcwIF.h diff --git a/datalinklayer/DataLinkLayer.h b/opt/inc/fsfw/datalinklayer/DataLinkLayer.h similarity index 100% rename from datalinklayer/DataLinkLayer.h rename to opt/inc/fsfw/datalinklayer/DataLinkLayer.h diff --git a/datalinklayer/Farm1StateIF.h b/opt/inc/fsfw/datalinklayer/Farm1StateIF.h similarity index 100% rename from datalinklayer/Farm1StateIF.h rename to opt/inc/fsfw/datalinklayer/Farm1StateIF.h diff --git a/datalinklayer/Farm1StateLockout.h b/opt/inc/fsfw/datalinklayer/Farm1StateLockout.h similarity index 100% rename from datalinklayer/Farm1StateLockout.h rename to opt/inc/fsfw/datalinklayer/Farm1StateLockout.h diff --git a/datalinklayer/Farm1StateOpen.h b/opt/inc/fsfw/datalinklayer/Farm1StateOpen.h similarity index 100% rename from datalinklayer/Farm1StateOpen.h rename to opt/inc/fsfw/datalinklayer/Farm1StateOpen.h diff --git a/datalinklayer/Farm1StateWait.h b/opt/inc/fsfw/datalinklayer/Farm1StateWait.h similarity index 100% rename from datalinklayer/Farm1StateWait.h rename to opt/inc/fsfw/datalinklayer/Farm1StateWait.h diff --git a/datalinklayer/MapPacketExtraction.h b/opt/inc/fsfw/datalinklayer/MapPacketExtraction.h similarity index 100% rename from datalinklayer/MapPacketExtraction.h rename to opt/inc/fsfw/datalinklayer/MapPacketExtraction.h diff --git a/datalinklayer/MapPacketExtractionIF.h b/opt/inc/fsfw/datalinklayer/MapPacketExtractionIF.h similarity index 100% rename from datalinklayer/MapPacketExtractionIF.h rename to opt/inc/fsfw/datalinklayer/MapPacketExtractionIF.h diff --git a/datalinklayer/TcTransferFrame.h b/opt/inc/fsfw/datalinklayer/TcTransferFrame.h similarity index 100% rename from datalinklayer/TcTransferFrame.h rename to opt/inc/fsfw/datalinklayer/TcTransferFrame.h diff --git a/datalinklayer/TcTransferFrameLocal.h b/opt/inc/fsfw/datalinklayer/TcTransferFrameLocal.h similarity index 100% rename from datalinklayer/TcTransferFrameLocal.h rename to opt/inc/fsfw/datalinklayer/TcTransferFrameLocal.h diff --git a/datalinklayer/VirtualChannelReception.h b/opt/inc/fsfw/datalinklayer/VirtualChannelReception.h similarity index 100% rename from datalinklayer/VirtualChannelReception.h rename to opt/inc/fsfw/datalinklayer/VirtualChannelReception.h diff --git a/datalinklayer/VirtualChannelReceptionIF.h b/opt/inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h similarity index 100% rename from datalinklayer/VirtualChannelReceptionIF.h rename to opt/inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h diff --git a/coordinates/CMakeLists.txt b/opt/src/coordinates/CMakeLists.txt similarity index 100% rename from coordinates/CMakeLists.txt rename to opt/src/coordinates/CMakeLists.txt diff --git a/coordinates/CoordinateTransformations.cpp b/opt/src/coordinates/CoordinateTransformations.cpp similarity index 100% rename from coordinates/CoordinateTransformations.cpp rename to opt/src/coordinates/CoordinateTransformations.cpp diff --git a/coordinates/Sgp4Propagator.cpp b/opt/src/coordinates/Sgp4Propagator.cpp similarity index 100% rename from coordinates/Sgp4Propagator.cpp rename to opt/src/coordinates/Sgp4Propagator.cpp diff --git a/datalinklayer/CMakeLists.txt b/opt/src/datalinklayer/CMakeLists.txt similarity index 100% rename from datalinklayer/CMakeLists.txt rename to opt/src/datalinklayer/CMakeLists.txt diff --git a/datalinklayer/Clcw.cpp b/opt/src/datalinklayer/Clcw.cpp similarity index 100% rename from datalinklayer/Clcw.cpp rename to opt/src/datalinklayer/Clcw.cpp diff --git a/datalinklayer/DataLinkLayer.cpp b/opt/src/datalinklayer/DataLinkLayer.cpp similarity index 100% rename from datalinklayer/DataLinkLayer.cpp rename to opt/src/datalinklayer/DataLinkLayer.cpp diff --git a/datalinklayer/Farm1StateLockout.cpp b/opt/src/datalinklayer/Farm1StateLockout.cpp similarity index 100% rename from datalinklayer/Farm1StateLockout.cpp rename to opt/src/datalinklayer/Farm1StateLockout.cpp diff --git a/datalinklayer/Farm1StateOpen.cpp b/opt/src/datalinklayer/Farm1StateOpen.cpp similarity index 100% rename from datalinklayer/Farm1StateOpen.cpp rename to opt/src/datalinklayer/Farm1StateOpen.cpp diff --git a/datalinklayer/Farm1StateWait.cpp b/opt/src/datalinklayer/Farm1StateWait.cpp similarity index 100% rename from datalinklayer/Farm1StateWait.cpp rename to opt/src/datalinklayer/Farm1StateWait.cpp diff --git a/datalinklayer/MapPacketExtraction.cpp b/opt/src/datalinklayer/MapPacketExtraction.cpp similarity index 100% rename from datalinklayer/MapPacketExtraction.cpp rename to opt/src/datalinklayer/MapPacketExtraction.cpp diff --git a/datalinklayer/TcTransferFrame.cpp b/opt/src/datalinklayer/TcTransferFrame.cpp similarity index 100% rename from datalinklayer/TcTransferFrame.cpp rename to opt/src/datalinklayer/TcTransferFrame.cpp diff --git a/datalinklayer/TcTransferFrameLocal.cpp b/opt/src/datalinklayer/TcTransferFrameLocal.cpp similarity index 100% rename from datalinklayer/TcTransferFrameLocal.cpp rename to opt/src/datalinklayer/TcTransferFrameLocal.cpp diff --git a/datalinklayer/VirtualChannelReception.cpp b/opt/src/datalinklayer/VirtualChannelReception.cpp similarity index 100% rename from datalinklayer/VirtualChannelReception.cpp rename to opt/src/datalinklayer/VirtualChannelReception.cpp From bdb8b0a75700edbd24b383b354311803298b00c1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 18:40:52 +0200 Subject: [PATCH 012/136] restructure repository --- fsfw.mk | 75 ------------------ FSFW.h => inc/fsfw/FSFW.h | 0 FSFWVersion.h => inc/fsfw/FSFWVersion.h | 0 {core/inc => inc}/fsfw/action/ActionHelper.h | 0 {core/inc => inc}/fsfw/action/ActionMessage.h | 0 .../fsfw/action/CommandActionHelper.h | 0 .../fsfw/action/CommandsActionsIF.h | 0 {core/inc => inc}/fsfw/action/HasActionsIF.h | 0 .../fsfw/action/SimpleActionHelper.h | 0 {core/inc => inc}/fsfw/container/ArrayList.h | 0 {core/inc => inc}/fsfw/container/BinaryTree.h | 0 .../inc => inc}/fsfw/container/DynamicFIFO.h | 0 {core/inc => inc}/fsfw/container/FIFO.h | 0 {core/inc => inc}/fsfw/container/FIFOBase.h | 0 {core/inc => inc}/fsfw/container/FIFOBase.tpp | 0 .../fsfw/container/FixedArrayList.h | 0 {core/inc => inc}/fsfw/container/FixedMap.h | 0 .../fsfw/container/FixedOrderedMultimap.h | 0 .../fsfw/container/FixedOrderedMultimap.tpp | 0 .../fsfw/container/HybridIterator.h | 0 .../fsfw/container/IndexedRingMemoryArray.h | 0 .../fsfw/container/PlacementFactory.h | 0 .../fsfw/container/RingBufferBase.h | 0 .../fsfw/container/SharedRingBuffer.h | 0 .../fsfw/container/SimpleRingBuffer.h | 0 .../fsfw/container/SinglyLinkedList.h | 0 {core/inc => inc}/fsfw/container/group.h | 0 .../fsfw/controller/ControllerBase.h | 0 .../fsfw/controller/ExtendedControllerBase.h | 0 .../coordinates/CoordinateTransformations.h | 0 {opt/inc => inc}/fsfw/coordinates/Jgm3Model.h | 0 .../fsfw/coordinates/Sgp4Propagator.h | 0 {opt/inc => inc}/fsfw/datalinklayer/BCFrame.h | 0 .../fsfw/datalinklayer/CCSDSReturnValuesIF.h | 0 {opt/inc => inc}/fsfw/datalinklayer/Clcw.h | 0 {opt/inc => inc}/fsfw/datalinklayer/ClcwIF.h | 0 .../fsfw/datalinklayer/DataLinkLayer.h | 0 .../fsfw/datalinklayer/Farm1StateIF.h | 0 .../fsfw/datalinklayer/Farm1StateLockout.h | 0 .../fsfw/datalinklayer/Farm1StateOpen.h | 0 .../fsfw/datalinklayer/Farm1StateWait.h | 0 .../fsfw/datalinklayer/MapPacketExtraction.h | 0 .../datalinklayer/MapPacketExtractionIF.h | 0 .../fsfw/datalinklayer/TcTransferFrame.h | 0 .../fsfw/datalinklayer/TcTransferFrameLocal.h | 0 .../datalinklayer/VirtualChannelReception.h | 0 .../datalinklayer/VirtualChannelReceptionIF.h | 0 {core/inc => inc}/fsfw/datapool/DataSetIF.h | 0 .../fsfw/datapool/HkSwitchHelper.h | 0 .../fsfw/datapool/PoolDataSetBase.h | 0 .../inc => inc}/fsfw/datapool/PoolDataSetIF.h | 0 {core/inc => inc}/fsfw/datapool/PoolEntry.h | 0 {core/inc => inc}/fsfw/datapool/PoolEntryIF.h | 0 .../inc => inc}/fsfw/datapool/PoolReadGuard.h | 0 {core/inc => inc}/fsfw/datapool/PoolVarList.h | 0 .../fsfw/datapool/PoolVariableIF.h | 0 .../inc => inc}/fsfw/datapool/ReadCommitIF.h | 0 .../fsfw/datapool/ReadCommitIFAttorney.h | 0 .../fsfw/datapool/SharedDataSetIF.h | 0 {core/inc => inc}/fsfw/datapoollocal.h | 0 .../fsfw/datapoollocal/AccessLocalPoolF.h | 0 .../fsfw/datapoollocal/HasLocalDataPoolIF.h | 0 .../fsfw/datapoollocal/LocalDataPoolManager.h | 0 .../fsfw/datapoollocal/LocalDataSet.h | 0 .../fsfw/datapoollocal/LocalPoolDataSetBase.h | 0 .../fsfw/datapoollocal/LocalPoolObjectBase.h | 0 .../fsfw/datapoollocal/LocalPoolVariable.h | 0 .../fsfw/datapoollocal/LocalPoolVariable.tpp | 0 .../fsfw/datapoollocal/LocalPoolVector.h | 0 .../fsfw/datapoollocal/LocalPoolVector.tpp | 0 .../fsfw/datapoollocal/MarkChangedIF.h | 0 .../ProvidesDataPoolSubscriptionIF.h | 0 .../fsfw/datapoollocal/SharedLocalDataSet.h | 0 .../fsfw/datapoollocal/StaticLocalDataSet.h | 0 .../fsfw/datapoollocal/localPoolDefinitions.h | 0 .../AcceptsDeviceResponsesIF.h | 0 .../fsfw/devicehandlers}/AssemblyBase.h | 0 .../fsfw/devicehandlers}/CMakeLists.txt | 0 .../fsfw/devicehandlers}/ChildHandlerBase.h | 0 .../fsfw/devicehandlers}/ChildHandlerFDIR.h | 0 .../fsfw/devicehandlers}/CookieIF.h | 0 .../devicehandlers}/DeviceCommunicationIF.h | 0 .../fsfw/devicehandlers}/DeviceHandlerBase.h | 0 .../DeviceHandlerFailureIsolation.h | 0 .../fsfw/devicehandlers}/DeviceHandlerIF.h | 0 .../devicehandlers}/DeviceHandlerMessage.h | 0 .../devicehandlers}/DeviceHandlerThermalSet.h | 0 .../DeviceTmReportingWrapper.h | 0 .../fsfw/devicehandlers}/HealthDevice.h | 0 {events => inc/fsfw/events}/Event.h | 0 {events => inc/fsfw/events}/EventManager.h | 0 {events => inc/fsfw/events}/EventManagerIF.h | 0 {events => inc/fsfw/events}/EventMessage.h | 0 .../fsfw/events}/EventReportingProxyIF.h | 0 .../fsfw/events}/eventmatching/CMakeLists.txt | 0 .../eventmatching/EventIdRangeMatcher.cpp | 0 .../eventmatching/EventIdRangeMatcher.h | 0 .../events}/eventmatching/EventMatchTree.cpp | 0 .../events}/eventmatching/EventMatchTree.h | 0 .../eventmatching/EventRangeMatcherBase.h | 0 .../eventmatching/ReporterRangeMatcher.cpp | 0 .../eventmatching/ReporterRangeMatcher.h | 0 .../eventmatching/SeverityRangeMatcher.cpp | 0 .../eventmatching/SeverityRangeMatcher.h | 0 .../events}/eventmatching/eventmatching.h | 0 .../fsfw/events}/fwSubsystemIdRanges.h | 0 {fdir => inc/fsfw/fdir}/ConfirmsFailuresIF.h | 0 {fdir => inc/fsfw/fdir}/EventCorrelation.h | 0 .../fsfw/fdir}/FailureIsolationBase.h | 0 {fdir => inc/fsfw/fdir}/FaultCounter.h | 0 .../fsfw/globalfunctions}/AsciiConverter.h | 0 .../fsfw/globalfunctions}/CRC.h | 0 .../fsfw/globalfunctions}/DleEncoder.h | 0 .../PeriodicOperationDivider.h | 0 .../fsfw/globalfunctions}/Type.h | 0 .../fsfw/globalfunctions}/arrayprinter.h | 0 .../fsfw/globalfunctions}/bitutility.h | 0 .../fsfw/globalfunctions}/constants.h | 0 .../globalfunctions}/matching/BinaryMatcher.h | 0 .../matching/DecimalMatcher.h | 0 .../globalfunctions}/matching/MatchTree.h | 0 .../globalfunctions}/matching/MatcherIF.h | 0 .../globalfunctions}/matching/RangeMatcher.h | 0 .../matching/SerializeableMatcherIF.h | 0 .../globalfunctions}/math/MatrixOperations.h | 0 .../math/QuaternionOperations.h | 0 .../globalfunctions}/math/VectorOperations.h | 0 .../fsfw/globalfunctions}/sign.h | 0 .../fsfw/globalfunctions}/timevalOperations.h | 0 {health => inc/fsfw/health}/HasHealthIF.h | 0 {health => inc/fsfw/health}/HealthHelper.h | 0 {health => inc/fsfw/health}/HealthMessage.h | 0 {health => inc/fsfw/health}/HealthTable.h | 0 {health => inc/fsfw/health}/HealthTableIF.h | 0 {health => inc/fsfw/health}/ManagesHealthIF.h | 0 .../fsfw/housekeeping}/AcceptsHkPacketsIF.h | 0 .../fsfw/housekeeping}/CMakeLists.txt | 0 .../fsfw/housekeeping}/HousekeepingMessage.h | 0 .../HousekeepingPacketDownlink.h | 0 .../housekeeping}/HousekeepingSetPacket.h | 0 .../fsfw/housekeeping}/HousekeepingSnapshot.h | 0 .../PeriodicHousekeepingHelper.h | 0 .../internalError}/InternalErrorDataset.h | 0 .../internalError}/InternalErrorReporter.h | 0 .../internalError}/InternalErrorReporterIF.h | 0 {ipc => inc/fsfw/ipc}/CommandMessage.h | 0 {ipc => inc/fsfw/ipc}/CommandMessageCleaner.h | 0 {ipc => inc/fsfw/ipc}/CommandMessageIF.h | 0 {ipc => inc/fsfw/ipc}/FwMessageTypes.h | 0 {ipc => inc/fsfw/ipc}/MessageQueueIF.h | 0 {ipc => inc/fsfw/ipc}/MessageQueueMessage.h | 0 {ipc => inc/fsfw/ipc}/MessageQueueMessageIF.h | 0 {ipc => inc/fsfw/ipc}/MessageQueueSenderIF.h | 0 {ipc => inc/fsfw/ipc}/MutexFactory.h | 0 {ipc => inc/fsfw/ipc}/MutexGuard.h | 0 {ipc => inc/fsfw/ipc}/MutexIF.h | 0 {ipc => inc/fsfw/ipc}/QueueFactory.h | 0 .../fsfw/ipc}/messageQueueDefinitions.h | 0 .../fsfw/memory}/AcceptsMemoryMessagesIF.h | 0 .../fsfw/memory}/GenericFileSystemMessage.h | 0 {memory => inc/fsfw/memory}/HasFileSystemIF.h | 0 {memory => inc/fsfw/memory}/HasMemoryIF.h | 0 {memory => inc/fsfw/memory}/MemoryHelper.h | 0 {memory => inc/fsfw/memory}/MemoryMessage.h | 0 {modes => inc/fsfw/modes}/HasModesIF.h | 0 {modes => inc/fsfw/modes}/ModeHelper.h | 0 {modes => inc/fsfw/modes}/ModeMessage.h | 0 .../fsfw/monitoring}/AbsLimitMonitor.h | 0 .../fsfw/monitoring}/HasMonitorsIF.h | 0 .../fsfw/monitoring}/LimitMonitor.h | 0 .../fsfw/monitoring}/LimitViolationReporter.h | 0 .../fsfw/monitoring}/MonitorBase.h | 0 .../fsfw/monitoring}/MonitorReporter.h | 0 .../fsfw/monitoring}/MonitoringIF.h | 3 - .../fsfw/monitoring}/MonitoringMessage.h | 0 .../monitoring}/MonitoringMessageContent.h | 0 .../monitoring}/ReceivesMonitoringReportsIF.h | 0 .../fsfw/monitoring}/TriplexMonitor.h | 0 .../fsfw/monitoring}/TwoValueLimitMonitor.h | 0 .../fsfw/objectmanager}/ObjectManager.h | 0 .../fsfw/objectmanager}/ObjectManagerIF.h | 0 .../fsfw/objectmanager}/SystemObject.h | 0 .../fsfw/objectmanager}/SystemObjectIF.h | 0 .../fsfw/objectmanager}/frameworkObjects.h | 0 {osal => inc/fsfw/osal}/Endiness.h | 0 {osal => inc/fsfw/osal}/InternalErrorCodes.h | 0 {osal => inc/fsfw/osal}/common/TcpIpBase.h | 0 .../fsfw/osal}/common/TcpTmTcBridge.h | 0 .../fsfw/osal}/common/TcpTmTcServer.h | 0 .../fsfw/osal}/common/UdpTcPollingTask.h | 0 .../fsfw/osal}/common/UdpTmTcBridge.h | 0 {osal => inc/fsfw/osal}/common/tcpipCommon.h | 0 {osal => inc/fsfw/osal}/common/tcpipHelpers.h | 0 .../fsfw/osal/freertos}/BinSemaphUsingTask.h | 0 .../fsfw/osal/freertos}/BinarySemaphore.h | 0 .../osal/freertos}/CountingSemaphUsingTask.h | 0 .../fsfw/osal/freertos}/CountingSemaphore.h | 0 .../fsfw/osal/freertos}/FixedTimeslotTask.h | 0 .../fsfw/osal/freertos}/FreeRTOSTaskIF.h | 0 .../fsfw/osal/freertos}/MessageQueue.h | 0 .../fsfw/osal/freertos}/Mutex.h | 0 .../fsfw/osal/freertos}/PeriodicTask.h | 0 .../fsfw/osal/freertos}/QueueMapManager.h | 0 .../fsfw/osal/freertos}/README.md | 0 .../fsfw/osal/freertos}/TaskManagement.h | 0 .../fsfw/osal/freertos}/Timekeeper.h | 0 .../fsfw/osal}/host/FixedTimeslotTask.h | 0 {osal => inc/fsfw/osal}/host/MessageQueue.h | 0 {osal => inc/fsfw/osal}/host/Mutex.cpp | 0 {osal => inc/fsfw/osal}/host/Mutex.h | 0 {osal => inc/fsfw/osal}/host/PeriodicTask.h | 0 .../fsfw/osal}/host/QueueMapManager.h | 0 {osal => inc/fsfw/osal}/host/taskHelpers.h | 0 .../fsfw/osal}/linux/BinarySemaphore.h | 0 .../fsfw/osal}/linux/CountingSemaphore.h | 0 .../fsfw/osal}/linux/FixedTimeslotTask.h | 0 {osal => inc/fsfw/osal}/linux/MessageQueue.h | 0 {osal => inc/fsfw/osal}/linux/Mutex.h | 0 .../fsfw/osal}/linux/PeriodicPosixTask.h | 0 {osal => inc/fsfw/osal}/linux/PosixThread.h | 0 {osal => inc/fsfw/osal}/linux/Timer.h | 0 {osal => inc/fsfw/osal}/linux/unixUtility.h | 0 {osal => inc/fsfw/osal}/rtems/CpuUsage.h | 0 .../fsfw/osal}/rtems/FixedTimeslotTask.h | 0 {osal => inc/fsfw/osal}/rtems/InitTask.h | 0 {osal => inc/fsfw/osal}/rtems/MessageQueue.h | 0 {osal => inc/fsfw/osal}/rtems/Mutex.h | 0 {osal => inc/fsfw/osal}/rtems/PeriodicTask.h | 0 {osal => inc/fsfw/osal}/rtems/RTEMSTaskBase.h | 0 {osal => inc/fsfw/osal}/rtems/RtemsBasic.h | 0 .../fsfw/osal}/windows/winTaskHelpers.h | 0 .../fsfw/parameters}/HasParametersIF.h | 0 .../fsfw/parameters}/ParameterHelper.h | 0 .../fsfw/parameters}/ParameterMessage.h | 0 .../fsfw/parameters}/ParameterWrapper.h | 0 .../parameters}/ReceivesParameterMessagesIF.h | 0 platform.h => inc/fsfw/platform.h | 0 {power => inc/fsfw/power}/Fuse.h | 0 {power => inc/fsfw/power}/PowerComponent.h | 0 {power => inc/fsfw/power}/PowerComponentIF.h | 0 {power => inc/fsfw/power}/PowerSensor.h | 0 {power => inc/fsfw/power}/PowerSwitchIF.h | 0 {power => inc/fsfw/power}/PowerSwitcher.h | 0 .../fsfw/pus}/CService200ModeCommanding.h | 0 .../fsfw/pus}/CService201HealthCommanding.h | 0 {pus => inc/fsfw/pus}/Service17Test.h | 0 .../pus}/Service1TelecommandVerification.h | 0 .../fsfw/pus}/Service20ParameterManagement.h | 0 {pus => inc/fsfw/pus}/Service2DeviceAccess.h | 0 {pus => inc/fsfw/pus}/Service3Housekeeping.h | 0 .../fsfw/pus}/Service5EventReporting.h | 0 .../fsfw/pus}/Service8FunctionManagement.h | 0 .../fsfw/pus}/Service9TimeManagement.h | 0 .../pus}/servicepackets/Service1Packets.h | 0 .../pus}/servicepackets/Service200Packets.h | 0 .../pus}/servicepackets/Service201Packets.h | 0 .../pus}/servicepackets/Service20Packets.h | 0 .../pus}/servicepackets/Service2Packets.h | 0 .../pus}/servicepackets/Service3Packets.h | 0 .../pus}/servicepackets/Service5Packets.h | 0 .../pus}/servicepackets/Service8Packets.h | 0 .../pus}/servicepackets/Service9Packets.h | 0 .../fsfw/returnvalues}/FwClassIds.h | 0 .../fsfw/returnvalues}/HasReturnvaluesIF.h | 0 {rmap => inc/fsfw/rmap}/RMAP.h | 0 {rmap => inc/fsfw/rmap}/RMAPChannelIF.h | 0 {rmap => inc/fsfw/rmap}/RMAPCookie.h | 0 .../fsfw/rmap}/RmapDeviceCommunicationIF.h | 0 {rmap => inc/fsfw/rmap}/rmapStructs.h | 0 .../fsfw/serialize}/EndianConverter.h | 0 .../fsfw/serialize}/SerialArrayListAdapter.h | 0 .../fsfw/serialize}/SerialBufferAdapter.h | 0 .../serialize}/SerialFixedArrayListAdapter.h | 0 .../fsfw/serialize}/SerialLinkedListAdapter.h | 0 .../fsfw/serialize}/SerializeAdapter.h | 0 .../fsfw/serialize}/SerializeElement.h | 0 .../fsfw/serialize}/SerializeIF.h | 0 .../fsfw/serviceinterface}/ServiceInterface.h | 0 .../ServiceInterfaceBuffer.h | 0 .../ServiceInterfacePrinter.h | 0 .../ServiceInterfaceStream.h | 0 .../serviceInterfaceDefintions.h | 0 .../storagemanager}/ConstStorageAccessor.h | 0 .../fsfw/storagemanager}/LocalPool.h | 0 .../fsfw/storagemanager}/PoolManager.h | 0 .../fsfw/storagemanager}/StorageAccessor.h | 0 .../fsfw/storagemanager}/StorageManagerIF.h | 0 .../fsfw/storagemanager}/storeAddress.h | 0 {subsystem => inc/fsfw/subsystem}/Subsystem.h | 0 .../fsfw/subsystem}/SubsystemBase.h | 0 .../fsfw/subsystem}/modes/HasModeSequenceIF.h | 0 .../fsfw/subsystem}/modes/ModeDefinitions.h | 0 .../subsystem}/modes/ModeSequenceMessage.h | 0 .../fsfw/subsystem}/modes/ModeStore.h | 0 .../fsfw/subsystem}/modes/ModeStoreIF.h | 0 .../fsfw/tasks}/ExecutableObjectIF.h | 0 {tasks => inc/fsfw/tasks}/FixedSequenceSlot.h | 0 {tasks => inc/fsfw/tasks}/FixedSlotSequence.h | 0 .../fsfw/tasks}/FixedTimeslotTaskIF.h | 0 {tasks => inc/fsfw/tasks}/PeriodicTaskIF.h | 0 {tasks => inc/fsfw/tasks}/SemaphoreFactory.h | 0 {tasks => inc/fsfw/tasks}/SemaphoreIF.h | 0 {tasks => inc/fsfw/tasks}/TaskFactory.h | 0 {tasks => inc/fsfw/tasks}/Typedef.h | 0 .../fsfw/tcdistribution}/CCSDSDistributor.h | 0 .../fsfw/tcdistribution}/CCSDSDistributorIF.h | 0 .../fsfw/tcdistribution}/PUSDistributor.h | 0 .../fsfw/tcdistribution}/PUSDistributorIF.h | 0 .../fsfw/tcdistribution}/TcDistributor.h | 0 .../fsfw/tcdistribution}/TcPacketCheck.h | 0 .../fsfw/thermal}/AbstractTemperatureSensor.h | 0 .../fsfw/thermal}/AcceptsThermalMessagesIF.h | 0 {thermal => inc/fsfw/thermal}/Heater.h | 0 .../fsfw/thermal}/RedundantHeater.h | 0 .../fsfw/thermal}/TemperatureSensor.h | 0 .../fsfw/thermal}/ThermalComponent.h | 0 .../fsfw/thermal}/ThermalComponentCore.h | 0 .../fsfw/thermal}/ThermalComponentIF.h | 0 {thermal => inc/fsfw/thermal}/ThermalModule.h | 0 .../fsfw/thermal}/ThermalModuleIF.h | 0 .../fsfw/thermal}/ThermalMonitorReporter.h | 0 .../fsfw/thermal}/tcsDefinitions.h | 0 .../fsfw/timemanager}/CCSDSTime.h | 0 {timemanager => inc/fsfw/timemanager}/Clock.h | 0 .../fsfw/timemanager}/Countdown.h | 0 .../fsfw/timemanager}/ReceivesTimeInfoIF.h | 0 .../fsfw/timemanager}/Stopwatch.h | 0 .../fsfw/timemanager}/TimeMessage.h | 0 .../fsfw/timemanager}/TimeStamper.h | 0 .../fsfw/timemanager}/TimeStamperIF.h | 0 .../fsfw/timemanager}/clockDefinitions.h | 0 .../fsfw/tmstorage}/TmStoreBackendIF.h | 0 .../fsfw/tmstorage}/TmStoreFrontendIF.h | 0 .../fsfw/tmstorage}/TmStoreMessage.h | 0 .../fsfw/tmstorage}/TmStorePackets.h | 0 .../fsfw/tmtcpacket}/SpacePacket.h | 0 .../fsfw/tmtcpacket}/SpacePacketBase.h | 0 .../fsfw/tmtcpacket}/ccsds_header.h | 0 .../tmtcpacket}/packetmatcher/ApidMatcher.h | 0 .../packetmatcher/PacketMatchTree.h | 0 .../packetmatcher/ServiceMatcher.h | 0 .../packetmatcher/SubserviceMatcher.h | 0 .../pus/PacketTimestampInterpreterIF.h | 0 {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc.h | 0 .../fsfw/tmtcpacket}/pus/tc/TcPacketBase.h | 0 .../fsfw/tmtcpacket}/pus/tc/TcPacketPus.h | 0 .../tmtcpacket}/pus/tc/TcPacketStoredBase.h | 0 .../tmtcpacket}/pus/tc/TcPacketStoredIF.h | 0 .../tmtcpacket}/pus/tc/TcPacketStoredPus.h | 0 {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm.h | 0 .../fsfw/tmtcpacket}/pus/tm/TmPacketBase.h | 0 .../fsfw/tmtcpacket}/pus/tm/TmPacketMinimal.h | 0 .../fsfw/tmtcpacket}/pus/tm/TmPacketPusA.h | 0 .../fsfw/tmtcpacket}/pus/tm/TmPacketPusC.h | 0 .../fsfw/tmtcpacket}/pus/tm/TmPacketStored.h | 0 .../tmtcpacket}/pus/tm/TmPacketStoredBase.h | 0 .../tmtcpacket}/pus/tm/TmPacketStoredPusA.h | 0 .../tmtcpacket}/pus/tm/TmPacketStoredPusC.h | 0 .../tmtcservices}/AcceptsTelecommandsIF.h | 0 .../fsfw/tmtcservices}/AcceptsTelemetryIF.h | 0 .../tmtcservices}/AcceptsVerifyMessageIF.h | 0 .../tmtcservices}/CommandingServiceBase.h | 0 .../fsfw/tmtcservices}/PusServiceBase.h | 0 .../tmtcservices}/PusVerificationReport.h | 0 .../tmtcservices}/SourceSequenceCounter.h | 0 .../fsfw/tmtcservices}/TmTcBridge.h | 0 .../fsfw/tmtcservices}/TmTcMessage.h | 0 .../fsfw/tmtcservices}/VerificationCodes.h | 0 .../fsfw/tmtcservices}/VerificationReporter.h | 0 {defaultcfg => misc/defaultcfg}/README.md | 0 .../defaultcfg}/fsfwconfig/CMakeLists.txt | 0 .../defaultcfg}/fsfwconfig/FSFWConfig.h | 0 .../defaultcfg}/fsfwconfig/OBSWConfig.h | 0 .../defaultcfg}/fsfwconfig/OBSWVersion.h | 0 .../fsfwconfig/devices/logicalAddresses.h | 0 .../fsfwconfig/devices/powerSwitcherList.h | 0 .../fsfwconfig/events/subsystemIdRanges.h | 0 .../defaultcfg}/fsfwconfig/fsfwconfig.mk | 0 .../fsfwconfig/ipc/missionMessageTypes.cpp | 0 .../fsfwconfig/ipc/missionMessageTypes.h | 0 .../fsfwconfig/objects/FsfwFactory.cpp | 0 .../fsfwconfig/objects/FsfwFactory.h | 0 .../fsfwconfig/objects/systemObjectList.h | 0 .../PollingSequenceFactory.cpp | 0 .../pollingsequence/PollingSequenceFactory.h | 0 .../fsfwconfig/returnvalues/classIds.h | 0 .../defaultcfg}/fsfwconfig/tmtc/apid.h | 0 .../defaultcfg}/fsfwconfig/tmtc/pusIds.h | 0 {logo => misc/logo}/FSFW_Logo_V3.png | Bin {logo => misc/logo}/FSFW_Logo_V3.svg | 0 {logo => misc/logo}/FSFW_Logo_V3_bw.png | Bin .../src => src/core}/action/ActionHelper.cpp | 0 .../src => src/core}/action/ActionMessage.cpp | 0 {core/src => src/core}/action/CMakeLists.txt | 0 .../core}/action/CommandActionHelper.cpp | 0 .../core}/action/SimpleActionHelper.cpp | 0 .../src => src/core}/container/CMakeLists.txt | 0 .../core}/container/SharedRingBuffer.cpp | 0 .../core}/container/SimpleRingBuffer.cpp | 0 .../core}/controller/CMakeLists.txt | 0 .../core}/controller/ControllerBase.cpp | 0 .../controller/ExtendedControllerBase.cpp | 0 .../src => src/core}/datapool/CMakeLists.txt | 0 .../core}/datapool/HkSwitchHelper.cpp | 0 .../core}/datapool/PoolDataSetBase.cpp | 0 {core/src => src/core}/datapool/PoolEntry.cpp | 0 .../core}/datapoollocal/CMakeLists.txt | 0 .../datapoollocal/LocalDataPoolManager.cpp | 0 .../core}/datapoollocal/LocalDataSet.cpp | 0 .../datapoollocal/LocalPoolDataSetBase.cpp | 0 .../datapoollocal/LocalPoolObjectBase.cpp | 0 .../datapoollocal/SharedLocalDataSet.cpp | 0 .../datapoollocal/internal/CMakeLists.txt | 0 .../internal/HasLocalDpIFManagerAttorney.cpp | 0 .../internal/HasLocalDpIFManagerAttorney.h | 0 .../internal/HasLocalDpIFUserAttorney.cpp | 0 .../internal/HasLocalDpIFUserAttorney.h | 0 .../internal/LocalDpManagerAttorney.h | 0 .../internal/LocalPoolDataSetAttorney.h | 0 .../core/devicehandlers}/AssemblyBase.cpp | 0 .../core/devicehandlers}/ChildHandlerBase.cpp | 0 .../core/devicehandlers}/ChildHandlerFDIR.cpp | 0 .../devicehandlers}/DeviceHandlerBase.cpp | 0 .../DeviceHandlerFailureIsolation.cpp | 0 .../devicehandlers}/DeviceHandlerMessage.cpp | 0 .../DeviceTmReportingWrapper.cpp | 0 .../core/devicehandlers}/HealthDevice.cpp | 0 {events => src/core/events}/CMakeLists.txt | 0 {events => src/core/events}/EventManager.cpp | 0 {events => src/core/events}/EventMessage.cpp | 0 {fdir => src/core/fdir}/CMakeLists.txt | 0 {fdir => src/core/fdir}/EventCorrelation.cpp | 0 .../core/fdir}/FailureIsolationBase.cpp | 0 {fdir => src/core/fdir}/FaultCounter.cpp | 0 .../core/globalfunctions}/AsciiConverter.cpp | 0 .../core/globalfunctions}/CMakeLists.txt | 0 .../core/globalfunctions}/CRC.cpp | 0 .../core/globalfunctions}/DleEncoder.cpp | 0 .../PeriodicOperationDivider.cpp | 0 .../core/globalfunctions}/Type.cpp | 0 .../core/globalfunctions}/arrayprinter.cpp | 0 .../core/globalfunctions}/bitutility.cpp | 0 .../core/globalfunctions}/math/CMakeLists.txt | 0 .../math/QuaternionOperations.cpp | 0 .../globalfunctions}/timevalOperations.cpp | 0 {health => src/core/health}/CMakeLists.txt | 0 {health => src/core/health}/HealthHelper.cpp | 0 {health => src/core/health}/HealthMessage.cpp | 0 {health => src/core/health}/HealthTable.cpp | 0 .../housekeeping}/HousekeepingMessage.cpp | 0 .../PeriodicHousekeepingHelper.cpp | 0 .../core/internalError}/CMakeLists.txt | 0 .../internalError}/InternalErrorReporter.cpp | 0 {ipc => src/core/ipc}/CMakeLists.txt | 0 {ipc => src/core/ipc}/CommandMessage.cpp | 0 .../core/ipc}/CommandMessageCleaner.cpp | 0 {ipc => src/core/ipc}/MessageQueueMessage.cpp | 0 {modes => src/core/modes}/CMakeLists.txt | 0 {modes => src/core/modes}/ModeHelper.cpp | 0 {modes => src/core/modes}/ModeMessage.cpp | 0 .../core/objectmanager}/CMakeLists.txt | 0 .../core/objectmanager}/ObjectManager.cpp | 0 .../core/objectmanager}/SystemObject.cpp | 0 .../core/parameters}/CMakeLists.txt | 0 .../core/parameters}/ParameterHelper.cpp | 0 .../core/parameters}/ParameterMessage.cpp | 0 .../core/parameters}/ParameterWrapper.cpp | 0 {power => src/core/power}/CMakeLists.txt | 0 {power => src/core/power}/Fuse.cpp | 0 {power => src/core/power}/PowerComponent.cpp | 0 {power => src/core/power}/PowerSensor.cpp | 0 {power => src/core/power}/PowerSwitcher.cpp | 0 .../core/serialize}/CMakeLists.txt | 0 .../core/serialize}/SerialBufferAdapter.cpp | 0 .../core/serviceinterface}/CMakeLists.txt | 0 .../ServiceInterfaceBuffer.cpp | 0 .../ServiceInterfacePrinter.cpp | 0 .../ServiceInterfaceStream.cpp | 0 .../core/storagemanager}/CMakeLists.txt | 0 .../storagemanager}/ConstStorageAccessor.cpp | 0 .../core/storagemanager}/LocalPool.cpp | 0 .../core/storagemanager}/PoolManager.cpp | 0 .../core/storagemanager}/StorageAccessor.cpp | 0 .../core/subsystem}/CMakeLists.txt | 0 .../core/subsystem}/Subsystem.cpp | 0 .../core/subsystem}/SubsystemBase.cpp | 0 .../core/subsystem}/modes/CMakeLists.txt | 0 .../subsystem}/modes/ModeSequenceMessage.cpp | 0 .../core/subsystem}/modes/ModeStore.cpp | 0 {tasks => src/core/tasks}/CMakeLists.txt | 0 .../core/tasks}/FixedSequenceSlot.cpp | 0 .../core/tasks}/FixedSlotSequence.cpp | 0 .../core/tcdistribution}/CCSDSDistributor.cpp | 0 .../core/tcdistribution}/CMakeLists.txt | 0 .../core/tcdistribution}/PUSDistributor.cpp | 0 .../core/tcdistribution}/TcDistributor.cpp | 0 .../core/tcdistribution}/TcPacketCheck.cpp | 0 .../thermal}/AbstractTemperatureSensor.cpp | 0 {thermal => src/core/thermal}/CMakeLists.txt | 0 {thermal => src/core/thermal}/Heater.cpp | 0 .../core/thermal}/RedundantHeater.cpp | 0 .../core/thermal}/ThermalComponent.cpp | 0 .../core/thermal}/ThermalComponentCore.cpp | 0 .../core/thermal}/ThermalModule.cpp | 0 .../core/thermal}/ThermalMonitorReporter.cpp | 0 .../core/timemanager}/CCSDSTime.cpp | 0 .../core/timemanager}/CMakeLists.txt | 0 .../core/timemanager}/ClockCommon.cpp | 0 .../core/timemanager}/Countdown.cpp | 0 .../core/timemanager}/Stopwatch.cpp | 0 .../core/timemanager}/TimeMessage.cpp | 0 .../core/timemanager}/TimeStamper.cpp | 0 .../core/tmtcpacket}/CMakeLists.txt | 0 .../core/tmtcpacket}/SpacePacket.cpp | 0 .../core/tmtcpacket}/SpacePacketBase.cpp | 0 .../tmtcpacket}/packetmatcher/CMakeLists.txt | 0 .../packetmatcher/PacketMatchTree.cpp | 0 .../core/tmtcpacket}/pus/CMakeLists.txt | 0 .../core/tmtcpacket}/pus/tc/CMakeLists.txt | 0 .../core/tmtcpacket}/pus/tc/TcPacketBase.cpp | 0 .../core/tmtcpacket}/pus/tc/TcPacketPus.cpp | 0 .../tmtcpacket}/pus/tc/TcPacketStoredBase.cpp | 0 .../tmtcpacket}/pus/tc/TcPacketStoredPus.cpp | 0 .../core/tmtcpacket}/pus/tm/CMakeLists.txt | 0 .../core/tmtcpacket}/pus/tm/TmPacketBase.cpp | 0 .../tmtcpacket}/pus/tm/TmPacketMinimal.cpp | 0 .../core/tmtcpacket}/pus/tm/TmPacketPusA.cpp | 0 .../core/tmtcpacket}/pus/tm/TmPacketPusC.cpp | 0 .../tmtcpacket}/pus/tm/TmPacketStoredBase.cpp | 0 .../tmtcpacket}/pus/tm/TmPacketStoredPusA.cpp | 0 .../tmtcpacket}/pus/tm/TmPacketStoredPusC.cpp | 0 .../core/tmtcservices}/CMakeLists.txt | 0 .../tmtcservices}/CommandingServiceBase.cpp | 0 .../core/tmtcservices}/PusServiceBase.cpp | 0 .../tmtcservices}/PusVerificationReport.cpp | 0 .../core/tmtcservices}/TmTcBridge.cpp | 0 .../core/tmtcservices}/TmTcMessage.cpp | 0 .../tmtcservices}/VerificationReporter.cpp | 0 .../opt}/coordinates/CMakeLists.txt | 0 .../coordinates/CoordinateTransformations.cpp | 0 .../opt}/coordinates/Sgp4Propagator.cpp | 0 .../opt}/datalinklayer/CMakeLists.txt | 0 {opt/src => src/opt}/datalinklayer/Clcw.cpp | 0 .../opt}/datalinklayer/DataLinkLayer.cpp | 0 .../opt}/datalinklayer/Farm1StateLockout.cpp | 0 .../opt}/datalinklayer/Farm1StateOpen.cpp | 0 .../opt}/datalinklayer/Farm1StateWait.cpp | 0 .../datalinklayer/MapPacketExtraction.cpp | 0 .../opt}/datalinklayer/TcTransferFrame.cpp | 0 .../datalinklayer/TcTransferFrameLocal.cpp | 0 .../datalinklayer/VirtualChannelReception.cpp | 0 {memory => src/opt/memory}/CMakeLists.txt | 0 .../opt/memory}/GenericFileSystemMessage.cpp | 0 {memory => src/opt/memory}/MemoryHelper.cpp | 0 {memory => src/opt/memory}/MemoryMessage.cpp | 0 .../opt/monitoring}/CMakeLists.txt | 0 .../monitoring}/LimitViolationReporter.cpp | 0 .../opt/monitoring}/MonitoringMessage.cpp | 0 {pus => src/opt/pus}/CMakeLists.txt | 0 .../opt/pus}/CService200ModeCommanding.cpp | 0 .../opt/pus}/CService201HealthCommanding.cpp | 0 {pus => src/opt/pus}/Service17Test.cpp | 0 .../pus}/Service1TelecommandVerification.cpp | 0 .../opt/pus}/Service20ParameterManagement.cpp | 0 {pus => src/opt/pus}/Service2DeviceAccess.cpp | 0 {pus => src/opt/pus}/Service3Housekeeping.cpp | 0 .../opt/pus}/Service5EventReporting.cpp | 0 .../opt/pus}/Service8FunctionManagement.cpp | 0 .../opt/pus}/Service9TimeManagement.cpp | 0 {rmap => src/opt/rmap}/CMakeLists.txt | 0 {rmap => src/opt/rmap}/RMAP.cpp | 0 {rmap => src/opt/rmap}/RMAPCookie.cpp | 0 .../opt/rmap}/RmapDeviceCommunicationIF.cpp | 0 .../opt/tmstorage}/CMakeLists.txt | 0 .../opt/tmstorage}/TmStoreMessage.cpp | 0 {osal => src/osal}/CMakeLists.txt | 0 {osal => src/osal}/common/CMakeLists.txt | 0 {osal => src/osal}/common/TcpIpBase.cpp | 0 {osal => src/osal}/common/TcpTmTcBridge.cpp | 0 {osal => src/osal}/common/TcpTmTcServer.cpp | 0 .../osal}/common/UdpTcPollingTask.cpp | 0 {osal => src/osal}/common/UdpTmTcBridge.cpp | 0 {osal => src/osal}/common/tcpipCommon.cpp | 0 .../osal/freertos}/BinSemaphUsingTask.cpp | 0 .../osal/freertos}/BinarySemaphore.cpp | 0 .../osal/freertos}/CMakeLists.txt | 0 .../FreeRTOS => src/osal/freertos}/Clock.cpp | 0 .../freertos}/CountingSemaphUsingTask.cpp | 0 .../osal/freertos}/CountingSemaphore.cpp | 0 .../osal/freertos}/FixedTimeslotTask.cpp | 0 .../osal/freertos}/MessageQueue.cpp | 0 .../FreeRTOS => src/osal/freertos}/Mutex.cpp | 0 .../osal/freertos}/MutexFactory.cpp | 0 .../osal/freertos}/PeriodicTask.cpp | 0 .../osal/freertos}/QueueFactory.cpp | 0 .../osal/freertos}/QueueMapManager.cpp | 0 .../osal/freertos}/SemaphoreFactory.cpp | 0 .../osal/freertos}/TaskFactory.cpp | 0 .../osal/freertos}/TaskManagement.cpp | 0 .../osal/freertos}/Timekeeper.cpp | 0 {osal => src/osal}/host/CMakeLists.txt | 0 {osal => src/osal}/host/Clock.cpp | 0 {osal => src/osal}/host/FixedTimeslotTask.cpp | 0 {osal => src/osal}/host/MessageQueue.cpp | 0 {osal => src/osal}/host/MutexFactory.cpp | 0 {osal => src/osal}/host/PeriodicTask.cpp | 0 {osal => src/osal}/host/QueueFactory.cpp | 0 {osal => src/osal}/host/QueueMapManager.cpp | 0 {osal => src/osal}/host/SemaphoreFactory.cpp | 0 {osal => src/osal}/host/TaskFactory.cpp | 0 {osal => src/osal}/host/taskHelpers.cpp | 0 {osal => src/osal}/linux/BinarySemaphore.cpp | 0 {osal => src/osal}/linux/CMakeLists.txt | 0 {osal => src/osal}/linux/Clock.cpp | 0 .../osal}/linux/CountingSemaphore.cpp | 0 .../osal}/linux/FixedTimeslotTask.cpp | 0 .../osal}/linux/InternalErrorCodes.cpp | 0 {osal => src/osal}/linux/MessageQueue.cpp | 0 {osal => src/osal}/linux/Mutex.cpp | 0 {osal => src/osal}/linux/MutexFactory.cpp | 0 .../osal}/linux/PeriodicPosixTask.cpp | 0 {osal => src/osal}/linux/PosixThread.cpp | 0 {osal => src/osal}/linux/QueueFactory.cpp | 0 {osal => src/osal}/linux/SemaphoreFactory.cpp | 0 {osal => src/osal}/linux/TaskFactory.cpp | 0 {osal => src/osal}/linux/Timer.cpp | 0 {osal => src/osal}/linux/tcpipHelpers.cpp | 0 {osal => src/osal}/linux/unixUtility.cpp | 0 {osal => src/osal}/rtems/CMakeLists.txt | 0 {osal => src/osal}/rtems/Clock.cpp | 0 {osal => src/osal}/rtems/CpuUsage.cpp | 0 .../osal}/rtems/FixedTimeslotTask.cpp | 0 {osal => src/osal}/rtems/InitTask.cpp | 0 .../osal}/rtems/InternalErrorCodes.cpp | 0 {osal => src/osal}/rtems/MessageQueue.cpp | 0 {osal => src/osal}/rtems/Mutex.cpp | 0 {osal => src/osal}/rtems/MutexFactory.cpp | 0 {osal => src/osal}/rtems/PeriodicTask.cpp | 0 {osal => src/osal}/rtems/QueueFactory.cpp | 0 {osal => src/osal}/rtems/RTEMSTaskBase.cpp | 0 {osal => src/osal}/rtems/RtemsBasic.cpp | 0 {osal => src/osal}/rtems/TaskFactory.cpp | 0 {osal => src/osal}/windows/CMakeLists.txt | 0 {osal => src/osal}/windows/tcpipHelpers.cpp | 0 {osal => src/osal}/windows/winTaskHelpers.cpp | 0 {unittest => src/tests}/CMakeLists.txt | 0 {unittest => src/tests}/README.md | 0 .../tests}/internal/CMakeLists.txt | 0 .../tests}/internal/InternalUnitTester.cpp | 0 .../tests}/internal/InternalUnitTester.h | 0 .../tests}/internal/UnittDefinitions.cpp | 0 .../tests}/internal/UnittDefinitions.h | 0 .../internal/globalfunctions/CMakeLists.txt | 0 .../globalfunctions/TestArrayPrinter.cpp | 0 .../globalfunctions/TestArrayPrinter.h | 0 {unittest => src/tests}/internal/internal.mk | 0 .../tests}/internal/osal/CMakeLists.txt | 0 .../tests}/internal/osal/IntTestMq.cpp | 0 .../tests}/internal/osal/IntTestMq.h | 0 .../tests}/internal/osal/IntTestMutex.cpp | 0 .../tests}/internal/osal/IntTestMutex.h | 0 .../tests}/internal/osal/IntTestSemaphore.cpp | 0 .../tests}/internal/osal/IntTestSemaphore.h | 0 .../tests}/internal/serialize/CMakeLists.txt | 0 .../serialize/IntTestSerialization.cpp | 0 .../internal/serialize/IntTestSerialization.h | 0 {unittest => src/tests}/lcov.sh | 0 {unittest => src/tests}/tests/CMakeLists.txt | 0 .../tests}/tests/action/CMakeLists.txt | 0 .../tests}/tests/action/TestActionHelper.cpp | 0 .../tests}/tests/action/TestActionHelper.h | 0 .../tests}/tests/container/CMakeLists.txt | 0 .../tests}/tests/container/RingBufferTest.cpp | 0 .../tests}/tests/container/TestArrayList.cpp | 0 .../tests/container/TestDynamicFifo.cpp | 0 .../tests}/tests/container/TestFifo.cpp | 0 .../tests/container/TestFixedArrayList.cpp | 0 .../tests}/tests/container/TestFixedMap.cpp | 0 .../container/TestFixedOrderedMultimap.cpp | 0 .../tests/container/TestPlacementFactory.cpp | 0 .../tests}/tests/datapoollocal/CMakeLists.txt | 0 .../tests/datapoollocal/DataSetTest.cpp | 0 .../datapoollocal/LocalPoolManagerTest.cpp | 0 .../datapoollocal/LocalPoolOwnerBase.cpp | 0 .../tests/datapoollocal/LocalPoolOwnerBase.h | 0 .../datapoollocal/LocalPoolVariableTest.cpp | 0 .../datapoollocal/LocalPoolVectorTest.cpp | 0 .../tests/globalfunctions/CMakeLists.txt | 0 .../tests}/tests/mocks/HkReceiverMock.h | 0 .../tests}/tests/mocks/MessageQueueMockBase.h | 0 .../tests}/tests/osal/CMakeLists.txt | 0 .../tests}/tests/osal/TestMessageQueue.cpp | 0 .../tests}/tests/osal/TestSemaphore.cpp | 0 .../tests}/tests/serialize/CMakeLists.txt | 0 .../serialize/TestSerialBufferAdapter.cpp | 0 .../serialize/TestSerialLinkedPacket.cpp | 0 .../tests/serialize/TestSerialLinkedPacket.h | 0 .../tests/serialize/TestSerialization.cpp | 0 .../tests/storagemanager/CMakeLists.txt | 0 .../tests/storagemanager/TestNewAccessor.cpp | 0 .../tests}/tests/storagemanager/TestPool.cpp | 0 {unittest => src/tests}/tests/tests.mk | 0 .../tests}/tests/tmtcpacket/CMakeLists.txt | 0 .../tests}/tests/tmtcpacket/PusTmTest.cpp | 0 {unittest => src/tests}/user/CMakeLists.txt | 0 .../tests}/user/testcfg/CMakeLists.txt | 0 .../tests}/user/testcfg/FSFWConfig.h | 0 .../tests}/user/testcfg/Makefile-FSFW-Tests | 0 .../tests}/user/testcfg/TestsConfig.h | 0 .../user/testcfg/cdatapool/dataPoolInit.cpp | 0 .../user/testcfg/cdatapool/dataPoolInit.h | 0 .../user/testcfg/devices/logicalAddresses.cpp | 0 .../user/testcfg/devices/logicalAddresses.h | 0 .../testcfg/devices/powerSwitcherList.cpp | 0 .../user/testcfg/devices/powerSwitcherList.h | 0 .../user/testcfg/events/subsystemIdRanges.h | 0 .../user/testcfg/ipc/MissionMessageTypes.cpp | 0 .../user/testcfg/ipc/MissionMessageTypes.h | 0 .../user/testcfg/objects/systemObjectList.h | 0 .../PollingSequenceFactory.cpp | 0 .../pollingsequence/PollingSequenceFactory.h | 0 .../user/testcfg/returnvalues/classIds.h | 0 .../tests}/user/testcfg/testcfg.mk | 0 .../tests}/user/testcfg/tmtc/apid.h | 0 .../tests}/user/testcfg/tmtc/pusIds.h | 0 .../tests}/user/testtemplate/TestTemplate.cpp | 0 .../tests}/user/unittest/CMakeLists.txt | 0 .../tests}/user/unittest/core/CMakeLists.txt | 0 .../user/unittest/core/CatchDefinitions.cpp | 0 .../user/unittest/core/CatchDefinitions.h | 0 .../user/unittest/core/CatchFactory.cpp | 0 .../tests}/user/unittest/core/CatchFactory.h | 0 .../tests}/user/unittest/core/CatchRunner.cpp | 0 .../tests}/user/unittest/core/CatchSetup.cpp | 0 .../tests}/user/unittest/core/core.mk | 0 .../tests}/user/unittest/core/printChar.cpp | 0 .../tests}/user/unittest/core/printChar.h | 0 .../tests}/user/unlockRealtime.sh | 0 738 files changed, 78 deletions(-) delete mode 100644 fsfw.mk rename FSFW.h => inc/fsfw/FSFW.h (100%) rename FSFWVersion.h => inc/fsfw/FSFWVersion.h (100%) rename {core/inc => inc}/fsfw/action/ActionHelper.h (100%) rename {core/inc => inc}/fsfw/action/ActionMessage.h (100%) rename {core/inc => inc}/fsfw/action/CommandActionHelper.h (100%) rename {core/inc => inc}/fsfw/action/CommandsActionsIF.h (100%) rename {core/inc => inc}/fsfw/action/HasActionsIF.h (100%) rename {core/inc => inc}/fsfw/action/SimpleActionHelper.h (100%) rename {core/inc => inc}/fsfw/container/ArrayList.h (100%) rename {core/inc => inc}/fsfw/container/BinaryTree.h (100%) rename {core/inc => inc}/fsfw/container/DynamicFIFO.h (100%) rename {core/inc => inc}/fsfw/container/FIFO.h (100%) rename {core/inc => inc}/fsfw/container/FIFOBase.h (100%) rename {core/inc => inc}/fsfw/container/FIFOBase.tpp (100%) rename {core/inc => inc}/fsfw/container/FixedArrayList.h (100%) rename {core/inc => inc}/fsfw/container/FixedMap.h (100%) rename {core/inc => inc}/fsfw/container/FixedOrderedMultimap.h (100%) rename {core/inc => inc}/fsfw/container/FixedOrderedMultimap.tpp (100%) rename {core/inc => inc}/fsfw/container/HybridIterator.h (100%) rename {core/inc => inc}/fsfw/container/IndexedRingMemoryArray.h (100%) rename {core/inc => inc}/fsfw/container/PlacementFactory.h (100%) rename {core/inc => inc}/fsfw/container/RingBufferBase.h (100%) rename {core/inc => inc}/fsfw/container/SharedRingBuffer.h (100%) rename {core/inc => inc}/fsfw/container/SimpleRingBuffer.h (100%) rename {core/inc => inc}/fsfw/container/SinglyLinkedList.h (100%) rename {core/inc => inc}/fsfw/container/group.h (100%) rename {core/inc => inc}/fsfw/controller/ControllerBase.h (100%) rename {core/inc => inc}/fsfw/controller/ExtendedControllerBase.h (100%) rename {opt/inc => inc}/fsfw/coordinates/CoordinateTransformations.h (100%) rename {opt/inc => inc}/fsfw/coordinates/Jgm3Model.h (100%) rename {opt/inc => inc}/fsfw/coordinates/Sgp4Propagator.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/BCFrame.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/CCSDSReturnValuesIF.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/Clcw.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/ClcwIF.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/DataLinkLayer.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/Farm1StateIF.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/Farm1StateLockout.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/Farm1StateOpen.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/Farm1StateWait.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/MapPacketExtraction.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/MapPacketExtractionIF.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/TcTransferFrame.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/TcTransferFrameLocal.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/VirtualChannelReception.h (100%) rename {opt/inc => inc}/fsfw/datalinklayer/VirtualChannelReceptionIF.h (100%) rename {core/inc => inc}/fsfw/datapool/DataSetIF.h (100%) rename {core/inc => inc}/fsfw/datapool/HkSwitchHelper.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolDataSetBase.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolDataSetIF.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolEntry.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolEntryIF.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolReadGuard.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolVarList.h (100%) rename {core/inc => inc}/fsfw/datapool/PoolVariableIF.h (100%) rename {core/inc => inc}/fsfw/datapool/ReadCommitIF.h (100%) rename {core/inc => inc}/fsfw/datapool/ReadCommitIFAttorney.h (100%) rename {core/inc => inc}/fsfw/datapool/SharedDataSetIF.h (100%) rename {core/inc => inc}/fsfw/datapoollocal.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/AccessLocalPoolF.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/HasLocalDataPoolIF.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalDataPoolManager.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalDataSet.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalPoolDataSetBase.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalPoolObjectBase.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalPoolVariable.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalPoolVariable.tpp (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalPoolVector.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/LocalPoolVector.tpp (100%) rename {core/inc => inc}/fsfw/datapoollocal/MarkChangedIF.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/SharedLocalDataSet.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/StaticLocalDataSet.h (100%) rename {core/inc => inc}/fsfw/datapoollocal/localPoolDefinitions.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/AcceptsDeviceResponsesIF.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/AssemblyBase.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/CMakeLists.txt (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/ChildHandlerBase.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/ChildHandlerFDIR.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/CookieIF.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceCommunicationIF.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceHandlerBase.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceHandlerFailureIsolation.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceHandlerIF.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceHandlerMessage.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceHandlerThermalSet.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/DeviceTmReportingWrapper.h (100%) rename {devicehandlers => inc/fsfw/devicehandlers}/HealthDevice.h (100%) rename {events => inc/fsfw/events}/Event.h (100%) rename {events => inc/fsfw/events}/EventManager.h (100%) rename {events => inc/fsfw/events}/EventManagerIF.h (100%) rename {events => inc/fsfw/events}/EventMessage.h (100%) rename {events => inc/fsfw/events}/EventReportingProxyIF.h (100%) rename {events => inc/fsfw/events}/eventmatching/CMakeLists.txt (100%) rename {events => inc/fsfw/events}/eventmatching/EventIdRangeMatcher.cpp (100%) rename {events => inc/fsfw/events}/eventmatching/EventIdRangeMatcher.h (100%) rename {events => inc/fsfw/events}/eventmatching/EventMatchTree.cpp (100%) rename {events => inc/fsfw/events}/eventmatching/EventMatchTree.h (100%) rename {events => inc/fsfw/events}/eventmatching/EventRangeMatcherBase.h (100%) rename {events => inc/fsfw/events}/eventmatching/ReporterRangeMatcher.cpp (100%) rename {events => inc/fsfw/events}/eventmatching/ReporterRangeMatcher.h (100%) rename {events => inc/fsfw/events}/eventmatching/SeverityRangeMatcher.cpp (100%) rename {events => inc/fsfw/events}/eventmatching/SeverityRangeMatcher.h (100%) rename {events => inc/fsfw/events}/eventmatching/eventmatching.h (100%) rename {events => inc/fsfw/events}/fwSubsystemIdRanges.h (100%) rename {fdir => inc/fsfw/fdir}/ConfirmsFailuresIF.h (100%) rename {fdir => inc/fsfw/fdir}/EventCorrelation.h (100%) rename {fdir => inc/fsfw/fdir}/FailureIsolationBase.h (100%) rename {fdir => inc/fsfw/fdir}/FaultCounter.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/AsciiConverter.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/CRC.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/DleEncoder.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/PeriodicOperationDivider.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/Type.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/arrayprinter.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/bitutility.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/constants.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/matching/BinaryMatcher.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/matching/DecimalMatcher.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/matching/MatchTree.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/matching/MatcherIF.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/matching/RangeMatcher.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/matching/SerializeableMatcherIF.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/math/MatrixOperations.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/math/QuaternionOperations.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/math/VectorOperations.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/sign.h (100%) rename {globalfunctions => inc/fsfw/globalfunctions}/timevalOperations.h (100%) rename {health => inc/fsfw/health}/HasHealthIF.h (100%) rename {health => inc/fsfw/health}/HealthHelper.h (100%) rename {health => inc/fsfw/health}/HealthMessage.h (100%) rename {health => inc/fsfw/health}/HealthTable.h (100%) rename {health => inc/fsfw/health}/HealthTableIF.h (100%) rename {health => inc/fsfw/health}/ManagesHealthIF.h (100%) rename {housekeeping => inc/fsfw/housekeeping}/AcceptsHkPacketsIF.h (100%) rename {housekeeping => inc/fsfw/housekeeping}/CMakeLists.txt (100%) rename {housekeeping => inc/fsfw/housekeeping}/HousekeepingMessage.h (100%) rename {housekeeping => inc/fsfw/housekeeping}/HousekeepingPacketDownlink.h (100%) rename {housekeeping => inc/fsfw/housekeeping}/HousekeepingSetPacket.h (100%) rename {housekeeping => inc/fsfw/housekeeping}/HousekeepingSnapshot.h (100%) rename {housekeeping => inc/fsfw/housekeeping}/PeriodicHousekeepingHelper.h (100%) rename {internalError => inc/fsfw/internalError}/InternalErrorDataset.h (100%) rename {internalError => inc/fsfw/internalError}/InternalErrorReporter.h (100%) rename {internalError => inc/fsfw/internalError}/InternalErrorReporterIF.h (100%) rename {ipc => inc/fsfw/ipc}/CommandMessage.h (100%) rename {ipc => inc/fsfw/ipc}/CommandMessageCleaner.h (100%) rename {ipc => inc/fsfw/ipc}/CommandMessageIF.h (100%) rename {ipc => inc/fsfw/ipc}/FwMessageTypes.h (100%) rename {ipc => inc/fsfw/ipc}/MessageQueueIF.h (100%) rename {ipc => inc/fsfw/ipc}/MessageQueueMessage.h (100%) rename {ipc => inc/fsfw/ipc}/MessageQueueMessageIF.h (100%) rename {ipc => inc/fsfw/ipc}/MessageQueueSenderIF.h (100%) rename {ipc => inc/fsfw/ipc}/MutexFactory.h (100%) rename {ipc => inc/fsfw/ipc}/MutexGuard.h (100%) rename {ipc => inc/fsfw/ipc}/MutexIF.h (100%) rename {ipc => inc/fsfw/ipc}/QueueFactory.h (100%) rename {ipc => inc/fsfw/ipc}/messageQueueDefinitions.h (100%) rename {memory => inc/fsfw/memory}/AcceptsMemoryMessagesIF.h (100%) rename {memory => inc/fsfw/memory}/GenericFileSystemMessage.h (100%) rename {memory => inc/fsfw/memory}/HasFileSystemIF.h (100%) rename {memory => inc/fsfw/memory}/HasMemoryIF.h (100%) rename {memory => inc/fsfw/memory}/MemoryHelper.h (100%) rename {memory => inc/fsfw/memory}/MemoryMessage.h (100%) rename {modes => inc/fsfw/modes}/HasModesIF.h (100%) rename {modes => inc/fsfw/modes}/ModeHelper.h (100%) rename {modes => inc/fsfw/modes}/ModeMessage.h (100%) rename {monitoring => inc/fsfw/monitoring}/AbsLimitMonitor.h (100%) rename {monitoring => inc/fsfw/monitoring}/HasMonitorsIF.h (100%) rename {monitoring => inc/fsfw/monitoring}/LimitMonitor.h (100%) rename {monitoring => inc/fsfw/monitoring}/LimitViolationReporter.h (100%) rename {monitoring => inc/fsfw/monitoring}/MonitorBase.h (100%) rename {monitoring => inc/fsfw/monitoring}/MonitorReporter.h (100%) rename {monitoring => inc/fsfw/monitoring}/MonitoringIF.h (98%) rename {monitoring => inc/fsfw/monitoring}/MonitoringMessage.h (100%) rename {monitoring => inc/fsfw/monitoring}/MonitoringMessageContent.h (100%) rename {monitoring => inc/fsfw/monitoring}/ReceivesMonitoringReportsIF.h (100%) rename {monitoring => inc/fsfw/monitoring}/TriplexMonitor.h (100%) rename {monitoring => inc/fsfw/monitoring}/TwoValueLimitMonitor.h (100%) rename {objectmanager => inc/fsfw/objectmanager}/ObjectManager.h (100%) rename {objectmanager => inc/fsfw/objectmanager}/ObjectManagerIF.h (100%) rename {objectmanager => inc/fsfw/objectmanager}/SystemObject.h (100%) rename {objectmanager => inc/fsfw/objectmanager}/SystemObjectIF.h (100%) rename {objectmanager => inc/fsfw/objectmanager}/frameworkObjects.h (100%) rename {osal => inc/fsfw/osal}/Endiness.h (100%) rename {osal => inc/fsfw/osal}/InternalErrorCodes.h (100%) rename {osal => inc/fsfw/osal}/common/TcpIpBase.h (100%) rename {osal => inc/fsfw/osal}/common/TcpTmTcBridge.h (100%) rename {osal => inc/fsfw/osal}/common/TcpTmTcServer.h (100%) rename {osal => inc/fsfw/osal}/common/UdpTcPollingTask.h (100%) rename {osal => inc/fsfw/osal}/common/UdpTmTcBridge.h (100%) rename {osal => inc/fsfw/osal}/common/tcpipCommon.h (100%) rename {osal => inc/fsfw/osal}/common/tcpipHelpers.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/BinSemaphUsingTask.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/BinarySemaphore.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/CountingSemaphUsingTask.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/CountingSemaphore.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/FixedTimeslotTask.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/FreeRTOSTaskIF.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/MessageQueue.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/Mutex.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/PeriodicTask.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/QueueMapManager.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/README.md (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/TaskManagement.h (100%) rename {osal/FreeRTOS => inc/fsfw/osal/freertos}/Timekeeper.h (100%) rename {osal => inc/fsfw/osal}/host/FixedTimeslotTask.h (100%) rename {osal => inc/fsfw/osal}/host/MessageQueue.h (100%) rename {osal => inc/fsfw/osal}/host/Mutex.cpp (100%) rename {osal => inc/fsfw/osal}/host/Mutex.h (100%) rename {osal => inc/fsfw/osal}/host/PeriodicTask.h (100%) rename {osal => inc/fsfw/osal}/host/QueueMapManager.h (100%) rename {osal => inc/fsfw/osal}/host/taskHelpers.h (100%) rename {osal => inc/fsfw/osal}/linux/BinarySemaphore.h (100%) rename {osal => inc/fsfw/osal}/linux/CountingSemaphore.h (100%) rename {osal => inc/fsfw/osal}/linux/FixedTimeslotTask.h (100%) rename {osal => inc/fsfw/osal}/linux/MessageQueue.h (100%) rename {osal => inc/fsfw/osal}/linux/Mutex.h (100%) rename {osal => inc/fsfw/osal}/linux/PeriodicPosixTask.h (100%) rename {osal => inc/fsfw/osal}/linux/PosixThread.h (100%) rename {osal => inc/fsfw/osal}/linux/Timer.h (100%) rename {osal => inc/fsfw/osal}/linux/unixUtility.h (100%) rename {osal => inc/fsfw/osal}/rtems/CpuUsage.h (100%) rename {osal => inc/fsfw/osal}/rtems/FixedTimeslotTask.h (100%) rename {osal => inc/fsfw/osal}/rtems/InitTask.h (100%) rename {osal => inc/fsfw/osal}/rtems/MessageQueue.h (100%) rename {osal => inc/fsfw/osal}/rtems/Mutex.h (100%) rename {osal => inc/fsfw/osal}/rtems/PeriodicTask.h (100%) rename {osal => inc/fsfw/osal}/rtems/RTEMSTaskBase.h (100%) rename {osal => inc/fsfw/osal}/rtems/RtemsBasic.h (100%) rename {osal => inc/fsfw/osal}/windows/winTaskHelpers.h (100%) rename {parameters => inc/fsfw/parameters}/HasParametersIF.h (100%) rename {parameters => inc/fsfw/parameters}/ParameterHelper.h (100%) rename {parameters => inc/fsfw/parameters}/ParameterMessage.h (100%) rename {parameters => inc/fsfw/parameters}/ParameterWrapper.h (100%) rename {parameters => inc/fsfw/parameters}/ReceivesParameterMessagesIF.h (100%) rename platform.h => inc/fsfw/platform.h (100%) rename {power => inc/fsfw/power}/Fuse.h (100%) rename {power => inc/fsfw/power}/PowerComponent.h (100%) rename {power => inc/fsfw/power}/PowerComponentIF.h (100%) rename {power => inc/fsfw/power}/PowerSensor.h (100%) rename {power => inc/fsfw/power}/PowerSwitchIF.h (100%) rename {power => inc/fsfw/power}/PowerSwitcher.h (100%) rename {pus => inc/fsfw/pus}/CService200ModeCommanding.h (100%) rename {pus => inc/fsfw/pus}/CService201HealthCommanding.h (100%) rename {pus => inc/fsfw/pus}/Service17Test.h (100%) rename {pus => inc/fsfw/pus}/Service1TelecommandVerification.h (100%) rename {pus => inc/fsfw/pus}/Service20ParameterManagement.h (100%) rename {pus => inc/fsfw/pus}/Service2DeviceAccess.h (100%) rename {pus => inc/fsfw/pus}/Service3Housekeeping.h (100%) rename {pus => inc/fsfw/pus}/Service5EventReporting.h (100%) rename {pus => inc/fsfw/pus}/Service8FunctionManagement.h (100%) rename {pus => inc/fsfw/pus}/Service9TimeManagement.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service1Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service200Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service201Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service20Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service2Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service3Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service5Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service8Packets.h (100%) rename {pus => inc/fsfw/pus}/servicepackets/Service9Packets.h (100%) rename {returnvalues => inc/fsfw/returnvalues}/FwClassIds.h (100%) rename {returnvalues => inc/fsfw/returnvalues}/HasReturnvaluesIF.h (100%) rename {rmap => inc/fsfw/rmap}/RMAP.h (100%) rename {rmap => inc/fsfw/rmap}/RMAPChannelIF.h (100%) rename {rmap => inc/fsfw/rmap}/RMAPCookie.h (100%) rename {rmap => inc/fsfw/rmap}/RmapDeviceCommunicationIF.h (100%) rename {rmap => inc/fsfw/rmap}/rmapStructs.h (100%) rename {serialize => inc/fsfw/serialize}/EndianConverter.h (100%) rename {serialize => inc/fsfw/serialize}/SerialArrayListAdapter.h (100%) rename {serialize => inc/fsfw/serialize}/SerialBufferAdapter.h (100%) rename {serialize => inc/fsfw/serialize}/SerialFixedArrayListAdapter.h (100%) rename {serialize => inc/fsfw/serialize}/SerialLinkedListAdapter.h (100%) rename {serialize => inc/fsfw/serialize}/SerializeAdapter.h (100%) rename {serialize => inc/fsfw/serialize}/SerializeElement.h (100%) rename {serialize => inc/fsfw/serialize}/SerializeIF.h (100%) rename {serviceinterface => inc/fsfw/serviceinterface}/ServiceInterface.h (100%) rename {serviceinterface => inc/fsfw/serviceinterface}/ServiceInterfaceBuffer.h (100%) rename {serviceinterface => inc/fsfw/serviceinterface}/ServiceInterfacePrinter.h (100%) rename {serviceinterface => inc/fsfw/serviceinterface}/ServiceInterfaceStream.h (100%) rename {serviceinterface => inc/fsfw/serviceinterface}/serviceInterfaceDefintions.h (100%) rename {storagemanager => inc/fsfw/storagemanager}/ConstStorageAccessor.h (100%) rename {storagemanager => inc/fsfw/storagemanager}/LocalPool.h (100%) rename {storagemanager => inc/fsfw/storagemanager}/PoolManager.h (100%) rename {storagemanager => inc/fsfw/storagemanager}/StorageAccessor.h (100%) rename {storagemanager => inc/fsfw/storagemanager}/StorageManagerIF.h (100%) rename {storagemanager => inc/fsfw/storagemanager}/storeAddress.h (100%) rename {subsystem => inc/fsfw/subsystem}/Subsystem.h (100%) rename {subsystem => inc/fsfw/subsystem}/SubsystemBase.h (100%) rename {subsystem => inc/fsfw/subsystem}/modes/HasModeSequenceIF.h (100%) rename {subsystem => inc/fsfw/subsystem}/modes/ModeDefinitions.h (100%) rename {subsystem => inc/fsfw/subsystem}/modes/ModeSequenceMessage.h (100%) rename {subsystem => inc/fsfw/subsystem}/modes/ModeStore.h (100%) rename {subsystem => inc/fsfw/subsystem}/modes/ModeStoreIF.h (100%) rename {tasks => inc/fsfw/tasks}/ExecutableObjectIF.h (100%) rename {tasks => inc/fsfw/tasks}/FixedSequenceSlot.h (100%) rename {tasks => inc/fsfw/tasks}/FixedSlotSequence.h (100%) rename {tasks => inc/fsfw/tasks}/FixedTimeslotTaskIF.h (100%) rename {tasks => inc/fsfw/tasks}/PeriodicTaskIF.h (100%) rename {tasks => inc/fsfw/tasks}/SemaphoreFactory.h (100%) rename {tasks => inc/fsfw/tasks}/SemaphoreIF.h (100%) rename {tasks => inc/fsfw/tasks}/TaskFactory.h (100%) rename {tasks => inc/fsfw/tasks}/Typedef.h (100%) rename {tcdistribution => inc/fsfw/tcdistribution}/CCSDSDistributor.h (100%) rename {tcdistribution => inc/fsfw/tcdistribution}/CCSDSDistributorIF.h (100%) rename {tcdistribution => inc/fsfw/tcdistribution}/PUSDistributor.h (100%) rename {tcdistribution => inc/fsfw/tcdistribution}/PUSDistributorIF.h (100%) rename {tcdistribution => inc/fsfw/tcdistribution}/TcDistributor.h (100%) rename {tcdistribution => inc/fsfw/tcdistribution}/TcPacketCheck.h (100%) rename {thermal => inc/fsfw/thermal}/AbstractTemperatureSensor.h (100%) rename {thermal => inc/fsfw/thermal}/AcceptsThermalMessagesIF.h (100%) rename {thermal => inc/fsfw/thermal}/Heater.h (100%) rename {thermal => inc/fsfw/thermal}/RedundantHeater.h (100%) rename {thermal => inc/fsfw/thermal}/TemperatureSensor.h (100%) rename {thermal => inc/fsfw/thermal}/ThermalComponent.h (100%) rename {thermal => inc/fsfw/thermal}/ThermalComponentCore.h (100%) rename {thermal => inc/fsfw/thermal}/ThermalComponentIF.h (100%) rename {thermal => inc/fsfw/thermal}/ThermalModule.h (100%) rename {thermal => inc/fsfw/thermal}/ThermalModuleIF.h (100%) rename {thermal => inc/fsfw/thermal}/ThermalMonitorReporter.h (100%) rename {thermal => inc/fsfw/thermal}/tcsDefinitions.h (100%) rename {timemanager => inc/fsfw/timemanager}/CCSDSTime.h (100%) rename {timemanager => inc/fsfw/timemanager}/Clock.h (100%) rename {timemanager => inc/fsfw/timemanager}/Countdown.h (100%) rename {timemanager => inc/fsfw/timemanager}/ReceivesTimeInfoIF.h (100%) rename {timemanager => inc/fsfw/timemanager}/Stopwatch.h (100%) rename {timemanager => inc/fsfw/timemanager}/TimeMessage.h (100%) rename {timemanager => inc/fsfw/timemanager}/TimeStamper.h (100%) rename {timemanager => inc/fsfw/timemanager}/TimeStamperIF.h (100%) rename {timemanager => inc/fsfw/timemanager}/clockDefinitions.h (100%) rename {tmstorage => inc/fsfw/tmstorage}/TmStoreBackendIF.h (100%) rename {tmstorage => inc/fsfw/tmstorage}/TmStoreFrontendIF.h (100%) rename {tmstorage => inc/fsfw/tmstorage}/TmStoreMessage.h (100%) rename {tmstorage => inc/fsfw/tmstorage}/TmStorePackets.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/SpacePacket.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/SpacePacketBase.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/ccsds_header.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/packetmatcher/ApidMatcher.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/packetmatcher/PacketMatchTree.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/packetmatcher/ServiceMatcher.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/packetmatcher/SubserviceMatcher.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/PacketTimestampInterpreterIF.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc/TcPacketBase.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc/TcPacketPus.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc/TcPacketStoredBase.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc/TcPacketStoredIF.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tc/TcPacketStoredPus.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketBase.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketMinimal.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketPusA.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketPusC.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketStored.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketStoredBase.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketStoredPusA.h (100%) rename {tmtcpacket => inc/fsfw/tmtcpacket}/pus/tm/TmPacketStoredPusC.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/AcceptsTelecommandsIF.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/AcceptsTelemetryIF.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/AcceptsVerifyMessageIF.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/CommandingServiceBase.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/PusServiceBase.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/PusVerificationReport.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/SourceSequenceCounter.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/TmTcBridge.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/TmTcMessage.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/VerificationCodes.h (100%) rename {tmtcservices => inc/fsfw/tmtcservices}/VerificationReporter.h (100%) rename {defaultcfg => misc/defaultcfg}/README.md (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/CMakeLists.txt (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/FSFWConfig.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/OBSWConfig.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/OBSWVersion.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/devices/logicalAddresses.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/devices/powerSwitcherList.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/events/subsystemIdRanges.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/fsfwconfig.mk (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/ipc/missionMessageTypes.cpp (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/ipc/missionMessageTypes.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/objects/FsfwFactory.cpp (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/objects/FsfwFactory.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/objects/systemObjectList.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/pollingsequence/PollingSequenceFactory.cpp (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/pollingsequence/PollingSequenceFactory.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/returnvalues/classIds.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/tmtc/apid.h (100%) rename {defaultcfg => misc/defaultcfg}/fsfwconfig/tmtc/pusIds.h (100%) rename {logo => misc/logo}/FSFW_Logo_V3.png (100%) rename {logo => misc/logo}/FSFW_Logo_V3.svg (100%) rename {logo => misc/logo}/FSFW_Logo_V3_bw.png (100%) rename {core/src => src/core}/action/ActionHelper.cpp (100%) rename {core/src => src/core}/action/ActionMessage.cpp (100%) rename {core/src => src/core}/action/CMakeLists.txt (100%) rename {core/src => src/core}/action/CommandActionHelper.cpp (100%) rename {core/src => src/core}/action/SimpleActionHelper.cpp (100%) rename {core/src => src/core}/container/CMakeLists.txt (100%) rename {core/src => src/core}/container/SharedRingBuffer.cpp (100%) rename {core/src => src/core}/container/SimpleRingBuffer.cpp (100%) rename {core/src => src/core}/controller/CMakeLists.txt (100%) rename {core/src => src/core}/controller/ControllerBase.cpp (100%) rename {core/src => src/core}/controller/ExtendedControllerBase.cpp (100%) rename {core/src => src/core}/datapool/CMakeLists.txt (100%) rename {core/src => src/core}/datapool/HkSwitchHelper.cpp (100%) rename {core/src => src/core}/datapool/PoolDataSetBase.cpp (100%) rename {core/src => src/core}/datapool/PoolEntry.cpp (100%) rename {core/src => src/core}/datapoollocal/CMakeLists.txt (100%) rename {core/src => src/core}/datapoollocal/LocalDataPoolManager.cpp (100%) rename {core/src => src/core}/datapoollocal/LocalDataSet.cpp (100%) rename {core/src => src/core}/datapoollocal/LocalPoolDataSetBase.cpp (100%) rename {core/src => src/core}/datapoollocal/LocalPoolObjectBase.cpp (100%) rename {core/src => src/core}/datapoollocal/SharedLocalDataSet.cpp (100%) rename {core/src => src/core}/datapoollocal/internal/CMakeLists.txt (100%) rename {core/src => src/core}/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp (100%) rename {core/src => src/core}/datapoollocal/internal/HasLocalDpIFManagerAttorney.h (100%) rename {core/src => src/core}/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp (100%) rename {core/src => src/core}/datapoollocal/internal/HasLocalDpIFUserAttorney.h (100%) rename {core/src => src/core}/datapoollocal/internal/LocalDpManagerAttorney.h (100%) rename {core/src => src/core}/datapoollocal/internal/LocalPoolDataSetAttorney.h (100%) rename {devicehandlers => src/core/devicehandlers}/AssemblyBase.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/ChildHandlerBase.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/ChildHandlerFDIR.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/DeviceHandlerBase.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/DeviceHandlerFailureIsolation.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/DeviceHandlerMessage.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/DeviceTmReportingWrapper.cpp (100%) rename {devicehandlers => src/core/devicehandlers}/HealthDevice.cpp (100%) rename {events => src/core/events}/CMakeLists.txt (100%) rename {events => src/core/events}/EventManager.cpp (100%) rename {events => src/core/events}/EventMessage.cpp (100%) rename {fdir => src/core/fdir}/CMakeLists.txt (100%) rename {fdir => src/core/fdir}/EventCorrelation.cpp (100%) rename {fdir => src/core/fdir}/FailureIsolationBase.cpp (100%) rename {fdir => src/core/fdir}/FaultCounter.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/AsciiConverter.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/CMakeLists.txt (100%) rename {globalfunctions => src/core/globalfunctions}/CRC.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/DleEncoder.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/PeriodicOperationDivider.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/Type.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/arrayprinter.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/bitutility.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/math/CMakeLists.txt (100%) rename {globalfunctions => src/core/globalfunctions}/math/QuaternionOperations.cpp (100%) rename {globalfunctions => src/core/globalfunctions}/timevalOperations.cpp (100%) rename {health => src/core/health}/CMakeLists.txt (100%) rename {health => src/core/health}/HealthHelper.cpp (100%) rename {health => src/core/health}/HealthMessage.cpp (100%) rename {health => src/core/health}/HealthTable.cpp (100%) rename {housekeeping => src/core/housekeeping}/HousekeepingMessage.cpp (100%) rename {housekeeping => src/core/housekeeping}/PeriodicHousekeepingHelper.cpp (100%) rename {internalError => src/core/internalError}/CMakeLists.txt (100%) rename {internalError => src/core/internalError}/InternalErrorReporter.cpp (100%) rename {ipc => src/core/ipc}/CMakeLists.txt (100%) rename {ipc => src/core/ipc}/CommandMessage.cpp (100%) rename {ipc => src/core/ipc}/CommandMessageCleaner.cpp (100%) rename {ipc => src/core/ipc}/MessageQueueMessage.cpp (100%) rename {modes => src/core/modes}/CMakeLists.txt (100%) rename {modes => src/core/modes}/ModeHelper.cpp (100%) rename {modes => src/core/modes}/ModeMessage.cpp (100%) rename {objectmanager => src/core/objectmanager}/CMakeLists.txt (100%) rename {objectmanager => src/core/objectmanager}/ObjectManager.cpp (100%) rename {objectmanager => src/core/objectmanager}/SystemObject.cpp (100%) rename {parameters => src/core/parameters}/CMakeLists.txt (100%) rename {parameters => src/core/parameters}/ParameterHelper.cpp (100%) rename {parameters => src/core/parameters}/ParameterMessage.cpp (100%) rename {parameters => src/core/parameters}/ParameterWrapper.cpp (100%) rename {power => src/core/power}/CMakeLists.txt (100%) rename {power => src/core/power}/Fuse.cpp (100%) rename {power => src/core/power}/PowerComponent.cpp (100%) rename {power => src/core/power}/PowerSensor.cpp (100%) rename {power => src/core/power}/PowerSwitcher.cpp (100%) rename {serialize => src/core/serialize}/CMakeLists.txt (100%) rename {serialize => src/core/serialize}/SerialBufferAdapter.cpp (100%) rename {serviceinterface => src/core/serviceinterface}/CMakeLists.txt (100%) rename {serviceinterface => src/core/serviceinterface}/ServiceInterfaceBuffer.cpp (100%) rename {serviceinterface => src/core/serviceinterface}/ServiceInterfacePrinter.cpp (100%) rename {serviceinterface => src/core/serviceinterface}/ServiceInterfaceStream.cpp (100%) rename {storagemanager => src/core/storagemanager}/CMakeLists.txt (100%) rename {storagemanager => src/core/storagemanager}/ConstStorageAccessor.cpp (100%) rename {storagemanager => src/core/storagemanager}/LocalPool.cpp (100%) rename {storagemanager => src/core/storagemanager}/PoolManager.cpp (100%) rename {storagemanager => src/core/storagemanager}/StorageAccessor.cpp (100%) rename {subsystem => src/core/subsystem}/CMakeLists.txt (100%) rename {subsystem => src/core/subsystem}/Subsystem.cpp (100%) rename {subsystem => src/core/subsystem}/SubsystemBase.cpp (100%) rename {subsystem => src/core/subsystem}/modes/CMakeLists.txt (100%) rename {subsystem => src/core/subsystem}/modes/ModeSequenceMessage.cpp (100%) rename {subsystem => src/core/subsystem}/modes/ModeStore.cpp (100%) rename {tasks => src/core/tasks}/CMakeLists.txt (100%) rename {tasks => src/core/tasks}/FixedSequenceSlot.cpp (100%) rename {tasks => src/core/tasks}/FixedSlotSequence.cpp (100%) rename {tcdistribution => src/core/tcdistribution}/CCSDSDistributor.cpp (100%) rename {tcdistribution => src/core/tcdistribution}/CMakeLists.txt (100%) rename {tcdistribution => src/core/tcdistribution}/PUSDistributor.cpp (100%) rename {tcdistribution => src/core/tcdistribution}/TcDistributor.cpp (100%) rename {tcdistribution => src/core/tcdistribution}/TcPacketCheck.cpp (100%) rename {thermal => src/core/thermal}/AbstractTemperatureSensor.cpp (100%) rename {thermal => src/core/thermal}/CMakeLists.txt (100%) rename {thermal => src/core/thermal}/Heater.cpp (100%) rename {thermal => src/core/thermal}/RedundantHeater.cpp (100%) rename {thermal => src/core/thermal}/ThermalComponent.cpp (100%) rename {thermal => src/core/thermal}/ThermalComponentCore.cpp (100%) rename {thermal => src/core/thermal}/ThermalModule.cpp (100%) rename {thermal => src/core/thermal}/ThermalMonitorReporter.cpp (100%) rename {timemanager => src/core/timemanager}/CCSDSTime.cpp (100%) rename {timemanager => src/core/timemanager}/CMakeLists.txt (100%) rename {timemanager => src/core/timemanager}/ClockCommon.cpp (100%) rename {timemanager => src/core/timemanager}/Countdown.cpp (100%) rename {timemanager => src/core/timemanager}/Stopwatch.cpp (100%) rename {timemanager => src/core/timemanager}/TimeMessage.cpp (100%) rename {timemanager => src/core/timemanager}/TimeStamper.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/CMakeLists.txt (100%) rename {tmtcpacket => src/core/tmtcpacket}/SpacePacket.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/SpacePacketBase.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/packetmatcher/CMakeLists.txt (100%) rename {tmtcpacket => src/core/tmtcpacket}/packetmatcher/PacketMatchTree.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/CMakeLists.txt (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tc/CMakeLists.txt (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tc/TcPacketBase.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tc/TcPacketPus.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tc/TcPacketStoredBase.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tc/TcPacketStoredPus.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/CMakeLists.txt (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketBase.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketMinimal.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketPusA.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketPusC.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketStoredBase.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketStoredPusA.cpp (100%) rename {tmtcpacket => src/core/tmtcpacket}/pus/tm/TmPacketStoredPusC.cpp (100%) rename {tmtcservices => src/core/tmtcservices}/CMakeLists.txt (100%) rename {tmtcservices => src/core/tmtcservices}/CommandingServiceBase.cpp (100%) rename {tmtcservices => src/core/tmtcservices}/PusServiceBase.cpp (100%) rename {tmtcservices => src/core/tmtcservices}/PusVerificationReport.cpp (100%) rename {tmtcservices => src/core/tmtcservices}/TmTcBridge.cpp (100%) rename {tmtcservices => src/core/tmtcservices}/TmTcMessage.cpp (100%) rename {tmtcservices => src/core/tmtcservices}/VerificationReporter.cpp (100%) rename {opt/src => src/opt}/coordinates/CMakeLists.txt (100%) rename {opt/src => src/opt}/coordinates/CoordinateTransformations.cpp (100%) rename {opt/src => src/opt}/coordinates/Sgp4Propagator.cpp (100%) rename {opt/src => src/opt}/datalinklayer/CMakeLists.txt (100%) rename {opt/src => src/opt}/datalinklayer/Clcw.cpp (100%) rename {opt/src => src/opt}/datalinklayer/DataLinkLayer.cpp (100%) rename {opt/src => src/opt}/datalinklayer/Farm1StateLockout.cpp (100%) rename {opt/src => src/opt}/datalinklayer/Farm1StateOpen.cpp (100%) rename {opt/src => src/opt}/datalinklayer/Farm1StateWait.cpp (100%) rename {opt/src => src/opt}/datalinklayer/MapPacketExtraction.cpp (100%) rename {opt/src => src/opt}/datalinklayer/TcTransferFrame.cpp (100%) rename {opt/src => src/opt}/datalinklayer/TcTransferFrameLocal.cpp (100%) rename {opt/src => src/opt}/datalinklayer/VirtualChannelReception.cpp (100%) rename {memory => src/opt/memory}/CMakeLists.txt (100%) rename {memory => src/opt/memory}/GenericFileSystemMessage.cpp (100%) rename {memory => src/opt/memory}/MemoryHelper.cpp (100%) rename {memory => src/opt/memory}/MemoryMessage.cpp (100%) rename {monitoring => src/opt/monitoring}/CMakeLists.txt (100%) rename {monitoring => src/opt/monitoring}/LimitViolationReporter.cpp (100%) rename {monitoring => src/opt/monitoring}/MonitoringMessage.cpp (100%) rename {pus => src/opt/pus}/CMakeLists.txt (100%) rename {pus => src/opt/pus}/CService200ModeCommanding.cpp (100%) rename {pus => src/opt/pus}/CService201HealthCommanding.cpp (100%) rename {pus => src/opt/pus}/Service17Test.cpp (100%) rename {pus => src/opt/pus}/Service1TelecommandVerification.cpp (100%) rename {pus => src/opt/pus}/Service20ParameterManagement.cpp (100%) rename {pus => src/opt/pus}/Service2DeviceAccess.cpp (100%) rename {pus => src/opt/pus}/Service3Housekeeping.cpp (100%) rename {pus => src/opt/pus}/Service5EventReporting.cpp (100%) rename {pus => src/opt/pus}/Service8FunctionManagement.cpp (100%) rename {pus => src/opt/pus}/Service9TimeManagement.cpp (100%) rename {rmap => src/opt/rmap}/CMakeLists.txt (100%) rename {rmap => src/opt/rmap}/RMAP.cpp (100%) rename {rmap => src/opt/rmap}/RMAPCookie.cpp (100%) rename {rmap => src/opt/rmap}/RmapDeviceCommunicationIF.cpp (100%) rename {tmstorage => src/opt/tmstorage}/CMakeLists.txt (100%) rename {tmstorage => src/opt/tmstorage}/TmStoreMessage.cpp (100%) rename {osal => src/osal}/CMakeLists.txt (100%) rename {osal => src/osal}/common/CMakeLists.txt (100%) rename {osal => src/osal}/common/TcpIpBase.cpp (100%) rename {osal => src/osal}/common/TcpTmTcBridge.cpp (100%) rename {osal => src/osal}/common/TcpTmTcServer.cpp (100%) rename {osal => src/osal}/common/UdpTcPollingTask.cpp (100%) rename {osal => src/osal}/common/UdpTmTcBridge.cpp (100%) rename {osal => src/osal}/common/tcpipCommon.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/BinSemaphUsingTask.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/BinarySemaphore.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/CMakeLists.txt (100%) rename {osal/FreeRTOS => src/osal/freertos}/Clock.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/CountingSemaphUsingTask.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/CountingSemaphore.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/FixedTimeslotTask.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/MessageQueue.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/Mutex.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/MutexFactory.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/PeriodicTask.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/QueueFactory.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/QueueMapManager.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/SemaphoreFactory.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/TaskFactory.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/TaskManagement.cpp (100%) rename {osal/FreeRTOS => src/osal/freertos}/Timekeeper.cpp (100%) rename {osal => src/osal}/host/CMakeLists.txt (100%) rename {osal => src/osal}/host/Clock.cpp (100%) rename {osal => src/osal}/host/FixedTimeslotTask.cpp (100%) rename {osal => src/osal}/host/MessageQueue.cpp (100%) rename {osal => src/osal}/host/MutexFactory.cpp (100%) rename {osal => src/osal}/host/PeriodicTask.cpp (100%) rename {osal => src/osal}/host/QueueFactory.cpp (100%) rename {osal => src/osal}/host/QueueMapManager.cpp (100%) rename {osal => src/osal}/host/SemaphoreFactory.cpp (100%) rename {osal => src/osal}/host/TaskFactory.cpp (100%) rename {osal => src/osal}/host/taskHelpers.cpp (100%) rename {osal => src/osal}/linux/BinarySemaphore.cpp (100%) rename {osal => src/osal}/linux/CMakeLists.txt (100%) rename {osal => src/osal}/linux/Clock.cpp (100%) rename {osal => src/osal}/linux/CountingSemaphore.cpp (100%) rename {osal => src/osal}/linux/FixedTimeslotTask.cpp (100%) rename {osal => src/osal}/linux/InternalErrorCodes.cpp (100%) rename {osal => src/osal}/linux/MessageQueue.cpp (100%) rename {osal => src/osal}/linux/Mutex.cpp (100%) rename {osal => src/osal}/linux/MutexFactory.cpp (100%) rename {osal => src/osal}/linux/PeriodicPosixTask.cpp (100%) rename {osal => src/osal}/linux/PosixThread.cpp (100%) rename {osal => src/osal}/linux/QueueFactory.cpp (100%) rename {osal => src/osal}/linux/SemaphoreFactory.cpp (100%) rename {osal => src/osal}/linux/TaskFactory.cpp (100%) rename {osal => src/osal}/linux/Timer.cpp (100%) rename {osal => src/osal}/linux/tcpipHelpers.cpp (100%) rename {osal => src/osal}/linux/unixUtility.cpp (100%) rename {osal => src/osal}/rtems/CMakeLists.txt (100%) rename {osal => src/osal}/rtems/Clock.cpp (100%) rename {osal => src/osal}/rtems/CpuUsage.cpp (100%) rename {osal => src/osal}/rtems/FixedTimeslotTask.cpp (100%) rename {osal => src/osal}/rtems/InitTask.cpp (100%) rename {osal => src/osal}/rtems/InternalErrorCodes.cpp (100%) rename {osal => src/osal}/rtems/MessageQueue.cpp (100%) rename {osal => src/osal}/rtems/Mutex.cpp (100%) rename {osal => src/osal}/rtems/MutexFactory.cpp (100%) rename {osal => src/osal}/rtems/PeriodicTask.cpp (100%) rename {osal => src/osal}/rtems/QueueFactory.cpp (100%) rename {osal => src/osal}/rtems/RTEMSTaskBase.cpp (100%) rename {osal => src/osal}/rtems/RtemsBasic.cpp (100%) rename {osal => src/osal}/rtems/TaskFactory.cpp (100%) rename {osal => src/osal}/windows/CMakeLists.txt (100%) rename {osal => src/osal}/windows/tcpipHelpers.cpp (100%) rename {osal => src/osal}/windows/winTaskHelpers.cpp (100%) rename {unittest => src/tests}/CMakeLists.txt (100%) rename {unittest => src/tests}/README.md (100%) rename {unittest => src/tests}/internal/CMakeLists.txt (100%) rename {unittest => src/tests}/internal/InternalUnitTester.cpp (100%) rename {unittest => src/tests}/internal/InternalUnitTester.h (100%) rename {unittest => src/tests}/internal/UnittDefinitions.cpp (100%) rename {unittest => src/tests}/internal/UnittDefinitions.h (100%) rename {unittest => src/tests}/internal/globalfunctions/CMakeLists.txt (100%) rename {unittest => src/tests}/internal/globalfunctions/TestArrayPrinter.cpp (100%) rename {unittest => src/tests}/internal/globalfunctions/TestArrayPrinter.h (100%) rename {unittest => src/tests}/internal/internal.mk (100%) rename {unittest => src/tests}/internal/osal/CMakeLists.txt (100%) rename {unittest => src/tests}/internal/osal/IntTestMq.cpp (100%) rename {unittest => src/tests}/internal/osal/IntTestMq.h (100%) rename {unittest => src/tests}/internal/osal/IntTestMutex.cpp (100%) rename {unittest => src/tests}/internal/osal/IntTestMutex.h (100%) rename {unittest => src/tests}/internal/osal/IntTestSemaphore.cpp (100%) rename {unittest => src/tests}/internal/osal/IntTestSemaphore.h (100%) rename {unittest => src/tests}/internal/serialize/CMakeLists.txt (100%) rename {unittest => src/tests}/internal/serialize/IntTestSerialization.cpp (100%) rename {unittest => src/tests}/internal/serialize/IntTestSerialization.h (100%) rename {unittest => src/tests}/lcov.sh (100%) rename {unittest => src/tests}/tests/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/action/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/action/TestActionHelper.cpp (100%) rename {unittest => src/tests}/tests/action/TestActionHelper.h (100%) rename {unittest => src/tests}/tests/container/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/container/RingBufferTest.cpp (100%) rename {unittest => src/tests}/tests/container/TestArrayList.cpp (100%) rename {unittest => src/tests}/tests/container/TestDynamicFifo.cpp (100%) rename {unittest => src/tests}/tests/container/TestFifo.cpp (100%) rename {unittest => src/tests}/tests/container/TestFixedArrayList.cpp (100%) rename {unittest => src/tests}/tests/container/TestFixedMap.cpp (100%) rename {unittest => src/tests}/tests/container/TestFixedOrderedMultimap.cpp (100%) rename {unittest => src/tests}/tests/container/TestPlacementFactory.cpp (100%) rename {unittest => src/tests}/tests/datapoollocal/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/datapoollocal/DataSetTest.cpp (100%) rename {unittest => src/tests}/tests/datapoollocal/LocalPoolManagerTest.cpp (100%) rename {unittest => src/tests}/tests/datapoollocal/LocalPoolOwnerBase.cpp (100%) rename {unittest => src/tests}/tests/datapoollocal/LocalPoolOwnerBase.h (100%) rename {unittest => src/tests}/tests/datapoollocal/LocalPoolVariableTest.cpp (100%) rename {unittest => src/tests}/tests/datapoollocal/LocalPoolVectorTest.cpp (100%) rename {unittest => src/tests}/tests/globalfunctions/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/mocks/HkReceiverMock.h (100%) rename {unittest => src/tests}/tests/mocks/MessageQueueMockBase.h (100%) rename {unittest => src/tests}/tests/osal/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/osal/TestMessageQueue.cpp (100%) rename {unittest => src/tests}/tests/osal/TestSemaphore.cpp (100%) rename {unittest => src/tests}/tests/serialize/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/serialize/TestSerialBufferAdapter.cpp (100%) rename {unittest => src/tests}/tests/serialize/TestSerialLinkedPacket.cpp (100%) rename {unittest => src/tests}/tests/serialize/TestSerialLinkedPacket.h (100%) rename {unittest => src/tests}/tests/serialize/TestSerialization.cpp (100%) rename {unittest => src/tests}/tests/storagemanager/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/storagemanager/TestNewAccessor.cpp (100%) rename {unittest => src/tests}/tests/storagemanager/TestPool.cpp (100%) rename {unittest => src/tests}/tests/tests.mk (100%) rename {unittest => src/tests}/tests/tmtcpacket/CMakeLists.txt (100%) rename {unittest => src/tests}/tests/tmtcpacket/PusTmTest.cpp (100%) rename {unittest => src/tests}/user/CMakeLists.txt (100%) rename {unittest => src/tests}/user/testcfg/CMakeLists.txt (100%) rename {unittest => src/tests}/user/testcfg/FSFWConfig.h (100%) rename {unittest => src/tests}/user/testcfg/Makefile-FSFW-Tests (100%) rename {unittest => src/tests}/user/testcfg/TestsConfig.h (100%) rename {unittest => src/tests}/user/testcfg/cdatapool/dataPoolInit.cpp (100%) rename {unittest => src/tests}/user/testcfg/cdatapool/dataPoolInit.h (100%) rename {unittest => src/tests}/user/testcfg/devices/logicalAddresses.cpp (100%) rename {unittest => src/tests}/user/testcfg/devices/logicalAddresses.h (100%) rename {unittest => src/tests}/user/testcfg/devices/powerSwitcherList.cpp (100%) rename {unittest => src/tests}/user/testcfg/devices/powerSwitcherList.h (100%) rename {unittest => src/tests}/user/testcfg/events/subsystemIdRanges.h (100%) rename {unittest => src/tests}/user/testcfg/ipc/MissionMessageTypes.cpp (100%) rename {unittest => src/tests}/user/testcfg/ipc/MissionMessageTypes.h (100%) rename {unittest => src/tests}/user/testcfg/objects/systemObjectList.h (100%) rename {unittest => src/tests}/user/testcfg/pollingsequence/PollingSequenceFactory.cpp (100%) rename {unittest => src/tests}/user/testcfg/pollingsequence/PollingSequenceFactory.h (100%) rename {unittest => src/tests}/user/testcfg/returnvalues/classIds.h (100%) rename {unittest => src/tests}/user/testcfg/testcfg.mk (100%) rename {unittest => src/tests}/user/testcfg/tmtc/apid.h (100%) rename {unittest => src/tests}/user/testcfg/tmtc/pusIds.h (100%) rename {unittest => src/tests}/user/testtemplate/TestTemplate.cpp (100%) rename {unittest => src/tests}/user/unittest/CMakeLists.txt (100%) rename {unittest => src/tests}/user/unittest/core/CMakeLists.txt (100%) rename {unittest => src/tests}/user/unittest/core/CatchDefinitions.cpp (100%) rename {unittest => src/tests}/user/unittest/core/CatchDefinitions.h (100%) rename {unittest => src/tests}/user/unittest/core/CatchFactory.cpp (100%) rename {unittest => src/tests}/user/unittest/core/CatchFactory.h (100%) rename {unittest => src/tests}/user/unittest/core/CatchRunner.cpp (100%) rename {unittest => src/tests}/user/unittest/core/CatchSetup.cpp (100%) rename {unittest => src/tests}/user/unittest/core/core.mk (100%) rename {unittest => src/tests}/user/unittest/core/printChar.cpp (100%) rename {unittest => src/tests}/user/unittest/core/printChar.h (100%) rename {unittest => src/tests}/user/unlockRealtime.sh (100%) diff --git a/fsfw.mk b/fsfw.mk deleted file mode 100644 index 0d72fae14..000000000 --- a/fsfw.mk +++ /dev/null @@ -1,75 +0,0 @@ -# This submake file needs to be included by the primary Makefile. -# This file needs FRAMEWORK_PATH and OS_FSFW set correctly by another Makefile. -# Valid API settings: rtems, linux, freeRTOS, host - -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/action/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/container/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/contrib/sgp4/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/controller/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/coordinates/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datalinklayer/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapool/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoollocal/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/datapoollocal/internal/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/housekeeping/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/devicehandlers/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/events/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/events/eventmatching/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/fdir/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/globalfunctions/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/globalfunctions/matching/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/globalfunctions/math/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/health/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/internalError/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/ipc/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/memory/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/modes/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/monitoring/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/objectmanager/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/osal/*.cpp) - -# select the OS -ifeq ($(OS_FSFW),rtems) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/osal/rtems/*.cpp) - -else ifeq ($(OS_FSFW),linux) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/osal/linux/*.cpp) - -else ifeq ($(OS_FSFW),freeRTOS) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/osal/FreeRTOS/*.cpp) - -else ifeq ($(OS_FSFW),host) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/osal/host/*.cpp) -ifeq ($(OS),Windows_NT) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/osal/windows/*.cpp) -else -# For now, the linux UDP bridge sources needs to be included manually by upper makefile -# for host OS because we can't be sure the OS is linux. -# Following lines can be used to do this: -# CXXSRC += $(FRAMEWORK_PATH)/osal/linux/TcUnixUdpPollingTask.cpp -# CXXSRC += $(FRAMEWORK_PATH)/osal/linux/TmTcUnixUdpBridge.cpp -endif - -else -$(error invalid OS_FSFW specified, valid OS_FSFW are rtems, linux, freeRTOS, host) -endif - -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/parameters/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/power/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/returnvalues/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/rmap/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/serialize/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/serviceinterface/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/storagemanager/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/subsystem/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/subsystem/modes/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tasks/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tcdistribution/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/thermal/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/timemanager/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tmstorage/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tmtcpacket/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tmtcpacket/packetmatcher/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tmtcpacket/pus/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/tmtcservices/*.cpp) -CXXSRC += $(wildcard $(FRAMEWORK_PATH)/pus/*.cpp) diff --git a/FSFW.h b/inc/fsfw/FSFW.h similarity index 100% rename from FSFW.h rename to inc/fsfw/FSFW.h diff --git a/FSFWVersion.h b/inc/fsfw/FSFWVersion.h similarity index 100% rename from FSFWVersion.h rename to inc/fsfw/FSFWVersion.h diff --git a/core/inc/fsfw/action/ActionHelper.h b/inc/fsfw/action/ActionHelper.h similarity index 100% rename from core/inc/fsfw/action/ActionHelper.h rename to inc/fsfw/action/ActionHelper.h diff --git a/core/inc/fsfw/action/ActionMessage.h b/inc/fsfw/action/ActionMessage.h similarity index 100% rename from core/inc/fsfw/action/ActionMessage.h rename to inc/fsfw/action/ActionMessage.h diff --git a/core/inc/fsfw/action/CommandActionHelper.h b/inc/fsfw/action/CommandActionHelper.h similarity index 100% rename from core/inc/fsfw/action/CommandActionHelper.h rename to inc/fsfw/action/CommandActionHelper.h diff --git a/core/inc/fsfw/action/CommandsActionsIF.h b/inc/fsfw/action/CommandsActionsIF.h similarity index 100% rename from core/inc/fsfw/action/CommandsActionsIF.h rename to inc/fsfw/action/CommandsActionsIF.h diff --git a/core/inc/fsfw/action/HasActionsIF.h b/inc/fsfw/action/HasActionsIF.h similarity index 100% rename from core/inc/fsfw/action/HasActionsIF.h rename to inc/fsfw/action/HasActionsIF.h diff --git a/core/inc/fsfw/action/SimpleActionHelper.h b/inc/fsfw/action/SimpleActionHelper.h similarity index 100% rename from core/inc/fsfw/action/SimpleActionHelper.h rename to inc/fsfw/action/SimpleActionHelper.h diff --git a/core/inc/fsfw/container/ArrayList.h b/inc/fsfw/container/ArrayList.h similarity index 100% rename from core/inc/fsfw/container/ArrayList.h rename to inc/fsfw/container/ArrayList.h diff --git a/core/inc/fsfw/container/BinaryTree.h b/inc/fsfw/container/BinaryTree.h similarity index 100% rename from core/inc/fsfw/container/BinaryTree.h rename to inc/fsfw/container/BinaryTree.h diff --git a/core/inc/fsfw/container/DynamicFIFO.h b/inc/fsfw/container/DynamicFIFO.h similarity index 100% rename from core/inc/fsfw/container/DynamicFIFO.h rename to inc/fsfw/container/DynamicFIFO.h diff --git a/core/inc/fsfw/container/FIFO.h b/inc/fsfw/container/FIFO.h similarity index 100% rename from core/inc/fsfw/container/FIFO.h rename to inc/fsfw/container/FIFO.h diff --git a/core/inc/fsfw/container/FIFOBase.h b/inc/fsfw/container/FIFOBase.h similarity index 100% rename from core/inc/fsfw/container/FIFOBase.h rename to inc/fsfw/container/FIFOBase.h diff --git a/core/inc/fsfw/container/FIFOBase.tpp b/inc/fsfw/container/FIFOBase.tpp similarity index 100% rename from core/inc/fsfw/container/FIFOBase.tpp rename to inc/fsfw/container/FIFOBase.tpp diff --git a/core/inc/fsfw/container/FixedArrayList.h b/inc/fsfw/container/FixedArrayList.h similarity index 100% rename from core/inc/fsfw/container/FixedArrayList.h rename to inc/fsfw/container/FixedArrayList.h diff --git a/core/inc/fsfw/container/FixedMap.h b/inc/fsfw/container/FixedMap.h similarity index 100% rename from core/inc/fsfw/container/FixedMap.h rename to inc/fsfw/container/FixedMap.h diff --git a/core/inc/fsfw/container/FixedOrderedMultimap.h b/inc/fsfw/container/FixedOrderedMultimap.h similarity index 100% rename from core/inc/fsfw/container/FixedOrderedMultimap.h rename to inc/fsfw/container/FixedOrderedMultimap.h diff --git a/core/inc/fsfw/container/FixedOrderedMultimap.tpp b/inc/fsfw/container/FixedOrderedMultimap.tpp similarity index 100% rename from core/inc/fsfw/container/FixedOrderedMultimap.tpp rename to inc/fsfw/container/FixedOrderedMultimap.tpp diff --git a/core/inc/fsfw/container/HybridIterator.h b/inc/fsfw/container/HybridIterator.h similarity index 100% rename from core/inc/fsfw/container/HybridIterator.h rename to inc/fsfw/container/HybridIterator.h diff --git a/core/inc/fsfw/container/IndexedRingMemoryArray.h b/inc/fsfw/container/IndexedRingMemoryArray.h similarity index 100% rename from core/inc/fsfw/container/IndexedRingMemoryArray.h rename to inc/fsfw/container/IndexedRingMemoryArray.h diff --git a/core/inc/fsfw/container/PlacementFactory.h b/inc/fsfw/container/PlacementFactory.h similarity index 100% rename from core/inc/fsfw/container/PlacementFactory.h rename to inc/fsfw/container/PlacementFactory.h diff --git a/core/inc/fsfw/container/RingBufferBase.h b/inc/fsfw/container/RingBufferBase.h similarity index 100% rename from core/inc/fsfw/container/RingBufferBase.h rename to inc/fsfw/container/RingBufferBase.h diff --git a/core/inc/fsfw/container/SharedRingBuffer.h b/inc/fsfw/container/SharedRingBuffer.h similarity index 100% rename from core/inc/fsfw/container/SharedRingBuffer.h rename to inc/fsfw/container/SharedRingBuffer.h diff --git a/core/inc/fsfw/container/SimpleRingBuffer.h b/inc/fsfw/container/SimpleRingBuffer.h similarity index 100% rename from core/inc/fsfw/container/SimpleRingBuffer.h rename to inc/fsfw/container/SimpleRingBuffer.h diff --git a/core/inc/fsfw/container/SinglyLinkedList.h b/inc/fsfw/container/SinglyLinkedList.h similarity index 100% rename from core/inc/fsfw/container/SinglyLinkedList.h rename to inc/fsfw/container/SinglyLinkedList.h diff --git a/core/inc/fsfw/container/group.h b/inc/fsfw/container/group.h similarity index 100% rename from core/inc/fsfw/container/group.h rename to inc/fsfw/container/group.h diff --git a/core/inc/fsfw/controller/ControllerBase.h b/inc/fsfw/controller/ControllerBase.h similarity index 100% rename from core/inc/fsfw/controller/ControllerBase.h rename to inc/fsfw/controller/ControllerBase.h diff --git a/core/inc/fsfw/controller/ExtendedControllerBase.h b/inc/fsfw/controller/ExtendedControllerBase.h similarity index 100% rename from core/inc/fsfw/controller/ExtendedControllerBase.h rename to inc/fsfw/controller/ExtendedControllerBase.h diff --git a/opt/inc/fsfw/coordinates/CoordinateTransformations.h b/inc/fsfw/coordinates/CoordinateTransformations.h similarity index 100% rename from opt/inc/fsfw/coordinates/CoordinateTransformations.h rename to inc/fsfw/coordinates/CoordinateTransformations.h diff --git a/opt/inc/fsfw/coordinates/Jgm3Model.h b/inc/fsfw/coordinates/Jgm3Model.h similarity index 100% rename from opt/inc/fsfw/coordinates/Jgm3Model.h rename to inc/fsfw/coordinates/Jgm3Model.h diff --git a/opt/inc/fsfw/coordinates/Sgp4Propagator.h b/inc/fsfw/coordinates/Sgp4Propagator.h similarity index 100% rename from opt/inc/fsfw/coordinates/Sgp4Propagator.h rename to inc/fsfw/coordinates/Sgp4Propagator.h diff --git a/opt/inc/fsfw/datalinklayer/BCFrame.h b/inc/fsfw/datalinklayer/BCFrame.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/BCFrame.h rename to inc/fsfw/datalinklayer/BCFrame.h diff --git a/opt/inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h b/inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h rename to inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h diff --git a/opt/inc/fsfw/datalinklayer/Clcw.h b/inc/fsfw/datalinklayer/Clcw.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/Clcw.h rename to inc/fsfw/datalinklayer/Clcw.h diff --git a/opt/inc/fsfw/datalinklayer/ClcwIF.h b/inc/fsfw/datalinklayer/ClcwIF.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/ClcwIF.h rename to inc/fsfw/datalinklayer/ClcwIF.h diff --git a/opt/inc/fsfw/datalinklayer/DataLinkLayer.h b/inc/fsfw/datalinklayer/DataLinkLayer.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/DataLinkLayer.h rename to inc/fsfw/datalinklayer/DataLinkLayer.h diff --git a/opt/inc/fsfw/datalinklayer/Farm1StateIF.h b/inc/fsfw/datalinklayer/Farm1StateIF.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/Farm1StateIF.h rename to inc/fsfw/datalinklayer/Farm1StateIF.h diff --git a/opt/inc/fsfw/datalinklayer/Farm1StateLockout.h b/inc/fsfw/datalinklayer/Farm1StateLockout.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/Farm1StateLockout.h rename to inc/fsfw/datalinklayer/Farm1StateLockout.h diff --git a/opt/inc/fsfw/datalinklayer/Farm1StateOpen.h b/inc/fsfw/datalinklayer/Farm1StateOpen.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/Farm1StateOpen.h rename to inc/fsfw/datalinklayer/Farm1StateOpen.h diff --git a/opt/inc/fsfw/datalinklayer/Farm1StateWait.h b/inc/fsfw/datalinklayer/Farm1StateWait.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/Farm1StateWait.h rename to inc/fsfw/datalinklayer/Farm1StateWait.h diff --git a/opt/inc/fsfw/datalinklayer/MapPacketExtraction.h b/inc/fsfw/datalinklayer/MapPacketExtraction.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/MapPacketExtraction.h rename to inc/fsfw/datalinklayer/MapPacketExtraction.h diff --git a/opt/inc/fsfw/datalinklayer/MapPacketExtractionIF.h b/inc/fsfw/datalinklayer/MapPacketExtractionIF.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/MapPacketExtractionIF.h rename to inc/fsfw/datalinklayer/MapPacketExtractionIF.h diff --git a/opt/inc/fsfw/datalinklayer/TcTransferFrame.h b/inc/fsfw/datalinklayer/TcTransferFrame.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/TcTransferFrame.h rename to inc/fsfw/datalinklayer/TcTransferFrame.h diff --git a/opt/inc/fsfw/datalinklayer/TcTransferFrameLocal.h b/inc/fsfw/datalinklayer/TcTransferFrameLocal.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/TcTransferFrameLocal.h rename to inc/fsfw/datalinklayer/TcTransferFrameLocal.h diff --git a/opt/inc/fsfw/datalinklayer/VirtualChannelReception.h b/inc/fsfw/datalinklayer/VirtualChannelReception.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/VirtualChannelReception.h rename to inc/fsfw/datalinklayer/VirtualChannelReception.h diff --git a/opt/inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h b/inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h similarity index 100% rename from opt/inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h rename to inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h diff --git a/core/inc/fsfw/datapool/DataSetIF.h b/inc/fsfw/datapool/DataSetIF.h similarity index 100% rename from core/inc/fsfw/datapool/DataSetIF.h rename to inc/fsfw/datapool/DataSetIF.h diff --git a/core/inc/fsfw/datapool/HkSwitchHelper.h b/inc/fsfw/datapool/HkSwitchHelper.h similarity index 100% rename from core/inc/fsfw/datapool/HkSwitchHelper.h rename to inc/fsfw/datapool/HkSwitchHelper.h diff --git a/core/inc/fsfw/datapool/PoolDataSetBase.h b/inc/fsfw/datapool/PoolDataSetBase.h similarity index 100% rename from core/inc/fsfw/datapool/PoolDataSetBase.h rename to inc/fsfw/datapool/PoolDataSetBase.h diff --git a/core/inc/fsfw/datapool/PoolDataSetIF.h b/inc/fsfw/datapool/PoolDataSetIF.h similarity index 100% rename from core/inc/fsfw/datapool/PoolDataSetIF.h rename to inc/fsfw/datapool/PoolDataSetIF.h diff --git a/core/inc/fsfw/datapool/PoolEntry.h b/inc/fsfw/datapool/PoolEntry.h similarity index 100% rename from core/inc/fsfw/datapool/PoolEntry.h rename to inc/fsfw/datapool/PoolEntry.h diff --git a/core/inc/fsfw/datapool/PoolEntryIF.h b/inc/fsfw/datapool/PoolEntryIF.h similarity index 100% rename from core/inc/fsfw/datapool/PoolEntryIF.h rename to inc/fsfw/datapool/PoolEntryIF.h diff --git a/core/inc/fsfw/datapool/PoolReadGuard.h b/inc/fsfw/datapool/PoolReadGuard.h similarity index 100% rename from core/inc/fsfw/datapool/PoolReadGuard.h rename to inc/fsfw/datapool/PoolReadGuard.h diff --git a/core/inc/fsfw/datapool/PoolVarList.h b/inc/fsfw/datapool/PoolVarList.h similarity index 100% rename from core/inc/fsfw/datapool/PoolVarList.h rename to inc/fsfw/datapool/PoolVarList.h diff --git a/core/inc/fsfw/datapool/PoolVariableIF.h b/inc/fsfw/datapool/PoolVariableIF.h similarity index 100% rename from core/inc/fsfw/datapool/PoolVariableIF.h rename to inc/fsfw/datapool/PoolVariableIF.h diff --git a/core/inc/fsfw/datapool/ReadCommitIF.h b/inc/fsfw/datapool/ReadCommitIF.h similarity index 100% rename from core/inc/fsfw/datapool/ReadCommitIF.h rename to inc/fsfw/datapool/ReadCommitIF.h diff --git a/core/inc/fsfw/datapool/ReadCommitIFAttorney.h b/inc/fsfw/datapool/ReadCommitIFAttorney.h similarity index 100% rename from core/inc/fsfw/datapool/ReadCommitIFAttorney.h rename to inc/fsfw/datapool/ReadCommitIFAttorney.h diff --git a/core/inc/fsfw/datapool/SharedDataSetIF.h b/inc/fsfw/datapool/SharedDataSetIF.h similarity index 100% rename from core/inc/fsfw/datapool/SharedDataSetIF.h rename to inc/fsfw/datapool/SharedDataSetIF.h diff --git a/core/inc/fsfw/datapoollocal.h b/inc/fsfw/datapoollocal.h similarity index 100% rename from core/inc/fsfw/datapoollocal.h rename to inc/fsfw/datapoollocal.h diff --git a/core/inc/fsfw/datapoollocal/AccessLocalPoolF.h b/inc/fsfw/datapoollocal/AccessLocalPoolF.h similarity index 100% rename from core/inc/fsfw/datapoollocal/AccessLocalPoolF.h rename to inc/fsfw/datapoollocal/AccessLocalPoolF.h diff --git a/core/inc/fsfw/datapoollocal/HasLocalDataPoolIF.h b/inc/fsfw/datapoollocal/HasLocalDataPoolIF.h similarity index 100% rename from core/inc/fsfw/datapoollocal/HasLocalDataPoolIF.h rename to inc/fsfw/datapoollocal/HasLocalDataPoolIF.h diff --git a/core/inc/fsfw/datapoollocal/LocalDataPoolManager.h b/inc/fsfw/datapoollocal/LocalDataPoolManager.h similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalDataPoolManager.h rename to inc/fsfw/datapoollocal/LocalDataPoolManager.h diff --git a/core/inc/fsfw/datapoollocal/LocalDataSet.h b/inc/fsfw/datapoollocal/LocalDataSet.h similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalDataSet.h rename to inc/fsfw/datapoollocal/LocalDataSet.h diff --git a/core/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h b/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h rename to inc/fsfw/datapoollocal/LocalPoolDataSetBase.h diff --git a/core/inc/fsfw/datapoollocal/LocalPoolObjectBase.h b/inc/fsfw/datapoollocal/LocalPoolObjectBase.h similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalPoolObjectBase.h rename to inc/fsfw/datapoollocal/LocalPoolObjectBase.h diff --git a/core/inc/fsfw/datapoollocal/LocalPoolVariable.h b/inc/fsfw/datapoollocal/LocalPoolVariable.h similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalPoolVariable.h rename to inc/fsfw/datapoollocal/LocalPoolVariable.h diff --git a/core/inc/fsfw/datapoollocal/LocalPoolVariable.tpp b/inc/fsfw/datapoollocal/LocalPoolVariable.tpp similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalPoolVariable.tpp rename to inc/fsfw/datapoollocal/LocalPoolVariable.tpp diff --git a/core/inc/fsfw/datapoollocal/LocalPoolVector.h b/inc/fsfw/datapoollocal/LocalPoolVector.h similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalPoolVector.h rename to inc/fsfw/datapoollocal/LocalPoolVector.h diff --git a/core/inc/fsfw/datapoollocal/LocalPoolVector.tpp b/inc/fsfw/datapoollocal/LocalPoolVector.tpp similarity index 100% rename from core/inc/fsfw/datapoollocal/LocalPoolVector.tpp rename to inc/fsfw/datapoollocal/LocalPoolVector.tpp diff --git a/core/inc/fsfw/datapoollocal/MarkChangedIF.h b/inc/fsfw/datapoollocal/MarkChangedIF.h similarity index 100% rename from core/inc/fsfw/datapoollocal/MarkChangedIF.h rename to inc/fsfw/datapoollocal/MarkChangedIF.h diff --git a/core/inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h b/inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h similarity index 100% rename from core/inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h rename to inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h diff --git a/core/inc/fsfw/datapoollocal/SharedLocalDataSet.h b/inc/fsfw/datapoollocal/SharedLocalDataSet.h similarity index 100% rename from core/inc/fsfw/datapoollocal/SharedLocalDataSet.h rename to inc/fsfw/datapoollocal/SharedLocalDataSet.h diff --git a/core/inc/fsfw/datapoollocal/StaticLocalDataSet.h b/inc/fsfw/datapoollocal/StaticLocalDataSet.h similarity index 100% rename from core/inc/fsfw/datapoollocal/StaticLocalDataSet.h rename to inc/fsfw/datapoollocal/StaticLocalDataSet.h diff --git a/core/inc/fsfw/datapoollocal/localPoolDefinitions.h b/inc/fsfw/datapoollocal/localPoolDefinitions.h similarity index 100% rename from core/inc/fsfw/datapoollocal/localPoolDefinitions.h rename to inc/fsfw/datapoollocal/localPoolDefinitions.h diff --git a/devicehandlers/AcceptsDeviceResponsesIF.h b/inc/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h similarity index 100% rename from devicehandlers/AcceptsDeviceResponsesIF.h rename to inc/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h diff --git a/devicehandlers/AssemblyBase.h b/inc/fsfw/devicehandlers/AssemblyBase.h similarity index 100% rename from devicehandlers/AssemblyBase.h rename to inc/fsfw/devicehandlers/AssemblyBase.h diff --git a/devicehandlers/CMakeLists.txt b/inc/fsfw/devicehandlers/CMakeLists.txt similarity index 100% rename from devicehandlers/CMakeLists.txt rename to inc/fsfw/devicehandlers/CMakeLists.txt diff --git a/devicehandlers/ChildHandlerBase.h b/inc/fsfw/devicehandlers/ChildHandlerBase.h similarity index 100% rename from devicehandlers/ChildHandlerBase.h rename to inc/fsfw/devicehandlers/ChildHandlerBase.h diff --git a/devicehandlers/ChildHandlerFDIR.h b/inc/fsfw/devicehandlers/ChildHandlerFDIR.h similarity index 100% rename from devicehandlers/ChildHandlerFDIR.h rename to inc/fsfw/devicehandlers/ChildHandlerFDIR.h diff --git a/devicehandlers/CookieIF.h b/inc/fsfw/devicehandlers/CookieIF.h similarity index 100% rename from devicehandlers/CookieIF.h rename to inc/fsfw/devicehandlers/CookieIF.h diff --git a/devicehandlers/DeviceCommunicationIF.h b/inc/fsfw/devicehandlers/DeviceCommunicationIF.h similarity index 100% rename from devicehandlers/DeviceCommunicationIF.h rename to inc/fsfw/devicehandlers/DeviceCommunicationIF.h diff --git a/devicehandlers/DeviceHandlerBase.h b/inc/fsfw/devicehandlers/DeviceHandlerBase.h similarity index 100% rename from devicehandlers/DeviceHandlerBase.h rename to inc/fsfw/devicehandlers/DeviceHandlerBase.h diff --git a/devicehandlers/DeviceHandlerFailureIsolation.h b/inc/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h similarity index 100% rename from devicehandlers/DeviceHandlerFailureIsolation.h rename to inc/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h diff --git a/devicehandlers/DeviceHandlerIF.h b/inc/fsfw/devicehandlers/DeviceHandlerIF.h similarity index 100% rename from devicehandlers/DeviceHandlerIF.h rename to inc/fsfw/devicehandlers/DeviceHandlerIF.h diff --git a/devicehandlers/DeviceHandlerMessage.h b/inc/fsfw/devicehandlers/DeviceHandlerMessage.h similarity index 100% rename from devicehandlers/DeviceHandlerMessage.h rename to inc/fsfw/devicehandlers/DeviceHandlerMessage.h diff --git a/devicehandlers/DeviceHandlerThermalSet.h b/inc/fsfw/devicehandlers/DeviceHandlerThermalSet.h similarity index 100% rename from devicehandlers/DeviceHandlerThermalSet.h rename to inc/fsfw/devicehandlers/DeviceHandlerThermalSet.h diff --git a/devicehandlers/DeviceTmReportingWrapper.h b/inc/fsfw/devicehandlers/DeviceTmReportingWrapper.h similarity index 100% rename from devicehandlers/DeviceTmReportingWrapper.h rename to inc/fsfw/devicehandlers/DeviceTmReportingWrapper.h diff --git a/devicehandlers/HealthDevice.h b/inc/fsfw/devicehandlers/HealthDevice.h similarity index 100% rename from devicehandlers/HealthDevice.h rename to inc/fsfw/devicehandlers/HealthDevice.h diff --git a/events/Event.h b/inc/fsfw/events/Event.h similarity index 100% rename from events/Event.h rename to inc/fsfw/events/Event.h diff --git a/events/EventManager.h b/inc/fsfw/events/EventManager.h similarity index 100% rename from events/EventManager.h rename to inc/fsfw/events/EventManager.h diff --git a/events/EventManagerIF.h b/inc/fsfw/events/EventManagerIF.h similarity index 100% rename from events/EventManagerIF.h rename to inc/fsfw/events/EventManagerIF.h diff --git a/events/EventMessage.h b/inc/fsfw/events/EventMessage.h similarity index 100% rename from events/EventMessage.h rename to inc/fsfw/events/EventMessage.h diff --git a/events/EventReportingProxyIF.h b/inc/fsfw/events/EventReportingProxyIF.h similarity index 100% rename from events/EventReportingProxyIF.h rename to inc/fsfw/events/EventReportingProxyIF.h diff --git a/events/eventmatching/CMakeLists.txt b/inc/fsfw/events/eventmatching/CMakeLists.txt similarity index 100% rename from events/eventmatching/CMakeLists.txt rename to inc/fsfw/events/eventmatching/CMakeLists.txt diff --git a/events/eventmatching/EventIdRangeMatcher.cpp b/inc/fsfw/events/eventmatching/EventIdRangeMatcher.cpp similarity index 100% rename from events/eventmatching/EventIdRangeMatcher.cpp rename to inc/fsfw/events/eventmatching/EventIdRangeMatcher.cpp diff --git a/events/eventmatching/EventIdRangeMatcher.h b/inc/fsfw/events/eventmatching/EventIdRangeMatcher.h similarity index 100% rename from events/eventmatching/EventIdRangeMatcher.h rename to inc/fsfw/events/eventmatching/EventIdRangeMatcher.h diff --git a/events/eventmatching/EventMatchTree.cpp b/inc/fsfw/events/eventmatching/EventMatchTree.cpp similarity index 100% rename from events/eventmatching/EventMatchTree.cpp rename to inc/fsfw/events/eventmatching/EventMatchTree.cpp diff --git a/events/eventmatching/EventMatchTree.h b/inc/fsfw/events/eventmatching/EventMatchTree.h similarity index 100% rename from events/eventmatching/EventMatchTree.h rename to inc/fsfw/events/eventmatching/EventMatchTree.h diff --git a/events/eventmatching/EventRangeMatcherBase.h b/inc/fsfw/events/eventmatching/EventRangeMatcherBase.h similarity index 100% rename from events/eventmatching/EventRangeMatcherBase.h rename to inc/fsfw/events/eventmatching/EventRangeMatcherBase.h diff --git a/events/eventmatching/ReporterRangeMatcher.cpp b/inc/fsfw/events/eventmatching/ReporterRangeMatcher.cpp similarity index 100% rename from events/eventmatching/ReporterRangeMatcher.cpp rename to inc/fsfw/events/eventmatching/ReporterRangeMatcher.cpp diff --git a/events/eventmatching/ReporterRangeMatcher.h b/inc/fsfw/events/eventmatching/ReporterRangeMatcher.h similarity index 100% rename from events/eventmatching/ReporterRangeMatcher.h rename to inc/fsfw/events/eventmatching/ReporterRangeMatcher.h diff --git a/events/eventmatching/SeverityRangeMatcher.cpp b/inc/fsfw/events/eventmatching/SeverityRangeMatcher.cpp similarity index 100% rename from events/eventmatching/SeverityRangeMatcher.cpp rename to inc/fsfw/events/eventmatching/SeverityRangeMatcher.cpp diff --git a/events/eventmatching/SeverityRangeMatcher.h b/inc/fsfw/events/eventmatching/SeverityRangeMatcher.h similarity index 100% rename from events/eventmatching/SeverityRangeMatcher.h rename to inc/fsfw/events/eventmatching/SeverityRangeMatcher.h diff --git a/events/eventmatching/eventmatching.h b/inc/fsfw/events/eventmatching/eventmatching.h similarity index 100% rename from events/eventmatching/eventmatching.h rename to inc/fsfw/events/eventmatching/eventmatching.h diff --git a/events/fwSubsystemIdRanges.h b/inc/fsfw/events/fwSubsystemIdRanges.h similarity index 100% rename from events/fwSubsystemIdRanges.h rename to inc/fsfw/events/fwSubsystemIdRanges.h diff --git a/fdir/ConfirmsFailuresIF.h b/inc/fsfw/fdir/ConfirmsFailuresIF.h similarity index 100% rename from fdir/ConfirmsFailuresIF.h rename to inc/fsfw/fdir/ConfirmsFailuresIF.h diff --git a/fdir/EventCorrelation.h b/inc/fsfw/fdir/EventCorrelation.h similarity index 100% rename from fdir/EventCorrelation.h rename to inc/fsfw/fdir/EventCorrelation.h diff --git a/fdir/FailureIsolationBase.h b/inc/fsfw/fdir/FailureIsolationBase.h similarity index 100% rename from fdir/FailureIsolationBase.h rename to inc/fsfw/fdir/FailureIsolationBase.h diff --git a/fdir/FaultCounter.h b/inc/fsfw/fdir/FaultCounter.h similarity index 100% rename from fdir/FaultCounter.h rename to inc/fsfw/fdir/FaultCounter.h diff --git a/globalfunctions/AsciiConverter.h b/inc/fsfw/globalfunctions/AsciiConverter.h similarity index 100% rename from globalfunctions/AsciiConverter.h rename to inc/fsfw/globalfunctions/AsciiConverter.h diff --git a/globalfunctions/CRC.h b/inc/fsfw/globalfunctions/CRC.h similarity index 100% rename from globalfunctions/CRC.h rename to inc/fsfw/globalfunctions/CRC.h diff --git a/globalfunctions/DleEncoder.h b/inc/fsfw/globalfunctions/DleEncoder.h similarity index 100% rename from globalfunctions/DleEncoder.h rename to inc/fsfw/globalfunctions/DleEncoder.h diff --git a/globalfunctions/PeriodicOperationDivider.h b/inc/fsfw/globalfunctions/PeriodicOperationDivider.h similarity index 100% rename from globalfunctions/PeriodicOperationDivider.h rename to inc/fsfw/globalfunctions/PeriodicOperationDivider.h diff --git a/globalfunctions/Type.h b/inc/fsfw/globalfunctions/Type.h similarity index 100% rename from globalfunctions/Type.h rename to inc/fsfw/globalfunctions/Type.h diff --git a/globalfunctions/arrayprinter.h b/inc/fsfw/globalfunctions/arrayprinter.h similarity index 100% rename from globalfunctions/arrayprinter.h rename to inc/fsfw/globalfunctions/arrayprinter.h diff --git a/globalfunctions/bitutility.h b/inc/fsfw/globalfunctions/bitutility.h similarity index 100% rename from globalfunctions/bitutility.h rename to inc/fsfw/globalfunctions/bitutility.h diff --git a/globalfunctions/constants.h b/inc/fsfw/globalfunctions/constants.h similarity index 100% rename from globalfunctions/constants.h rename to inc/fsfw/globalfunctions/constants.h diff --git a/globalfunctions/matching/BinaryMatcher.h b/inc/fsfw/globalfunctions/matching/BinaryMatcher.h similarity index 100% rename from globalfunctions/matching/BinaryMatcher.h rename to inc/fsfw/globalfunctions/matching/BinaryMatcher.h diff --git a/globalfunctions/matching/DecimalMatcher.h b/inc/fsfw/globalfunctions/matching/DecimalMatcher.h similarity index 100% rename from globalfunctions/matching/DecimalMatcher.h rename to inc/fsfw/globalfunctions/matching/DecimalMatcher.h diff --git a/globalfunctions/matching/MatchTree.h b/inc/fsfw/globalfunctions/matching/MatchTree.h similarity index 100% rename from globalfunctions/matching/MatchTree.h rename to inc/fsfw/globalfunctions/matching/MatchTree.h diff --git a/globalfunctions/matching/MatcherIF.h b/inc/fsfw/globalfunctions/matching/MatcherIF.h similarity index 100% rename from globalfunctions/matching/MatcherIF.h rename to inc/fsfw/globalfunctions/matching/MatcherIF.h diff --git a/globalfunctions/matching/RangeMatcher.h b/inc/fsfw/globalfunctions/matching/RangeMatcher.h similarity index 100% rename from globalfunctions/matching/RangeMatcher.h rename to inc/fsfw/globalfunctions/matching/RangeMatcher.h diff --git a/globalfunctions/matching/SerializeableMatcherIF.h b/inc/fsfw/globalfunctions/matching/SerializeableMatcherIF.h similarity index 100% rename from globalfunctions/matching/SerializeableMatcherIF.h rename to inc/fsfw/globalfunctions/matching/SerializeableMatcherIF.h diff --git a/globalfunctions/math/MatrixOperations.h b/inc/fsfw/globalfunctions/math/MatrixOperations.h similarity index 100% rename from globalfunctions/math/MatrixOperations.h rename to inc/fsfw/globalfunctions/math/MatrixOperations.h diff --git a/globalfunctions/math/QuaternionOperations.h b/inc/fsfw/globalfunctions/math/QuaternionOperations.h similarity index 100% rename from globalfunctions/math/QuaternionOperations.h rename to inc/fsfw/globalfunctions/math/QuaternionOperations.h diff --git a/globalfunctions/math/VectorOperations.h b/inc/fsfw/globalfunctions/math/VectorOperations.h similarity index 100% rename from globalfunctions/math/VectorOperations.h rename to inc/fsfw/globalfunctions/math/VectorOperations.h diff --git a/globalfunctions/sign.h b/inc/fsfw/globalfunctions/sign.h similarity index 100% rename from globalfunctions/sign.h rename to inc/fsfw/globalfunctions/sign.h diff --git a/globalfunctions/timevalOperations.h b/inc/fsfw/globalfunctions/timevalOperations.h similarity index 100% rename from globalfunctions/timevalOperations.h rename to inc/fsfw/globalfunctions/timevalOperations.h diff --git a/health/HasHealthIF.h b/inc/fsfw/health/HasHealthIF.h similarity index 100% rename from health/HasHealthIF.h rename to inc/fsfw/health/HasHealthIF.h diff --git a/health/HealthHelper.h b/inc/fsfw/health/HealthHelper.h similarity index 100% rename from health/HealthHelper.h rename to inc/fsfw/health/HealthHelper.h diff --git a/health/HealthMessage.h b/inc/fsfw/health/HealthMessage.h similarity index 100% rename from health/HealthMessage.h rename to inc/fsfw/health/HealthMessage.h diff --git a/health/HealthTable.h b/inc/fsfw/health/HealthTable.h similarity index 100% rename from health/HealthTable.h rename to inc/fsfw/health/HealthTable.h diff --git a/health/HealthTableIF.h b/inc/fsfw/health/HealthTableIF.h similarity index 100% rename from health/HealthTableIF.h rename to inc/fsfw/health/HealthTableIF.h diff --git a/health/ManagesHealthIF.h b/inc/fsfw/health/ManagesHealthIF.h similarity index 100% rename from health/ManagesHealthIF.h rename to inc/fsfw/health/ManagesHealthIF.h diff --git a/housekeeping/AcceptsHkPacketsIF.h b/inc/fsfw/housekeeping/AcceptsHkPacketsIF.h similarity index 100% rename from housekeeping/AcceptsHkPacketsIF.h rename to inc/fsfw/housekeeping/AcceptsHkPacketsIF.h diff --git a/housekeeping/CMakeLists.txt b/inc/fsfw/housekeeping/CMakeLists.txt similarity index 100% rename from housekeeping/CMakeLists.txt rename to inc/fsfw/housekeeping/CMakeLists.txt diff --git a/housekeeping/HousekeepingMessage.h b/inc/fsfw/housekeeping/HousekeepingMessage.h similarity index 100% rename from housekeeping/HousekeepingMessage.h rename to inc/fsfw/housekeeping/HousekeepingMessage.h diff --git a/housekeeping/HousekeepingPacketDownlink.h b/inc/fsfw/housekeeping/HousekeepingPacketDownlink.h similarity index 100% rename from housekeeping/HousekeepingPacketDownlink.h rename to inc/fsfw/housekeeping/HousekeepingPacketDownlink.h diff --git a/housekeeping/HousekeepingSetPacket.h b/inc/fsfw/housekeeping/HousekeepingSetPacket.h similarity index 100% rename from housekeeping/HousekeepingSetPacket.h rename to inc/fsfw/housekeeping/HousekeepingSetPacket.h diff --git a/housekeeping/HousekeepingSnapshot.h b/inc/fsfw/housekeeping/HousekeepingSnapshot.h similarity index 100% rename from housekeeping/HousekeepingSnapshot.h rename to inc/fsfw/housekeeping/HousekeepingSnapshot.h diff --git a/housekeeping/PeriodicHousekeepingHelper.h b/inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h similarity index 100% rename from housekeeping/PeriodicHousekeepingHelper.h rename to inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h diff --git a/internalError/InternalErrorDataset.h b/inc/fsfw/internalError/InternalErrorDataset.h similarity index 100% rename from internalError/InternalErrorDataset.h rename to inc/fsfw/internalError/InternalErrorDataset.h diff --git a/internalError/InternalErrorReporter.h b/inc/fsfw/internalError/InternalErrorReporter.h similarity index 100% rename from internalError/InternalErrorReporter.h rename to inc/fsfw/internalError/InternalErrorReporter.h diff --git a/internalError/InternalErrorReporterIF.h b/inc/fsfw/internalError/InternalErrorReporterIF.h similarity index 100% rename from internalError/InternalErrorReporterIF.h rename to inc/fsfw/internalError/InternalErrorReporterIF.h diff --git a/ipc/CommandMessage.h b/inc/fsfw/ipc/CommandMessage.h similarity index 100% rename from ipc/CommandMessage.h rename to inc/fsfw/ipc/CommandMessage.h diff --git a/ipc/CommandMessageCleaner.h b/inc/fsfw/ipc/CommandMessageCleaner.h similarity index 100% rename from ipc/CommandMessageCleaner.h rename to inc/fsfw/ipc/CommandMessageCleaner.h diff --git a/ipc/CommandMessageIF.h b/inc/fsfw/ipc/CommandMessageIF.h similarity index 100% rename from ipc/CommandMessageIF.h rename to inc/fsfw/ipc/CommandMessageIF.h diff --git a/ipc/FwMessageTypes.h b/inc/fsfw/ipc/FwMessageTypes.h similarity index 100% rename from ipc/FwMessageTypes.h rename to inc/fsfw/ipc/FwMessageTypes.h diff --git a/ipc/MessageQueueIF.h b/inc/fsfw/ipc/MessageQueueIF.h similarity index 100% rename from ipc/MessageQueueIF.h rename to inc/fsfw/ipc/MessageQueueIF.h diff --git a/ipc/MessageQueueMessage.h b/inc/fsfw/ipc/MessageQueueMessage.h similarity index 100% rename from ipc/MessageQueueMessage.h rename to inc/fsfw/ipc/MessageQueueMessage.h diff --git a/ipc/MessageQueueMessageIF.h b/inc/fsfw/ipc/MessageQueueMessageIF.h similarity index 100% rename from ipc/MessageQueueMessageIF.h rename to inc/fsfw/ipc/MessageQueueMessageIF.h diff --git a/ipc/MessageQueueSenderIF.h b/inc/fsfw/ipc/MessageQueueSenderIF.h similarity index 100% rename from ipc/MessageQueueSenderIF.h rename to inc/fsfw/ipc/MessageQueueSenderIF.h diff --git a/ipc/MutexFactory.h b/inc/fsfw/ipc/MutexFactory.h similarity index 100% rename from ipc/MutexFactory.h rename to inc/fsfw/ipc/MutexFactory.h diff --git a/ipc/MutexGuard.h b/inc/fsfw/ipc/MutexGuard.h similarity index 100% rename from ipc/MutexGuard.h rename to inc/fsfw/ipc/MutexGuard.h diff --git a/ipc/MutexIF.h b/inc/fsfw/ipc/MutexIF.h similarity index 100% rename from ipc/MutexIF.h rename to inc/fsfw/ipc/MutexIF.h diff --git a/ipc/QueueFactory.h b/inc/fsfw/ipc/QueueFactory.h similarity index 100% rename from ipc/QueueFactory.h rename to inc/fsfw/ipc/QueueFactory.h diff --git a/ipc/messageQueueDefinitions.h b/inc/fsfw/ipc/messageQueueDefinitions.h similarity index 100% rename from ipc/messageQueueDefinitions.h rename to inc/fsfw/ipc/messageQueueDefinitions.h diff --git a/memory/AcceptsMemoryMessagesIF.h b/inc/fsfw/memory/AcceptsMemoryMessagesIF.h similarity index 100% rename from memory/AcceptsMemoryMessagesIF.h rename to inc/fsfw/memory/AcceptsMemoryMessagesIF.h diff --git a/memory/GenericFileSystemMessage.h b/inc/fsfw/memory/GenericFileSystemMessage.h similarity index 100% rename from memory/GenericFileSystemMessage.h rename to inc/fsfw/memory/GenericFileSystemMessage.h diff --git a/memory/HasFileSystemIF.h b/inc/fsfw/memory/HasFileSystemIF.h similarity index 100% rename from memory/HasFileSystemIF.h rename to inc/fsfw/memory/HasFileSystemIF.h diff --git a/memory/HasMemoryIF.h b/inc/fsfw/memory/HasMemoryIF.h similarity index 100% rename from memory/HasMemoryIF.h rename to inc/fsfw/memory/HasMemoryIF.h diff --git a/memory/MemoryHelper.h b/inc/fsfw/memory/MemoryHelper.h similarity index 100% rename from memory/MemoryHelper.h rename to inc/fsfw/memory/MemoryHelper.h diff --git a/memory/MemoryMessage.h b/inc/fsfw/memory/MemoryMessage.h similarity index 100% rename from memory/MemoryMessage.h rename to inc/fsfw/memory/MemoryMessage.h diff --git a/modes/HasModesIF.h b/inc/fsfw/modes/HasModesIF.h similarity index 100% rename from modes/HasModesIF.h rename to inc/fsfw/modes/HasModesIF.h diff --git a/modes/ModeHelper.h b/inc/fsfw/modes/ModeHelper.h similarity index 100% rename from modes/ModeHelper.h rename to inc/fsfw/modes/ModeHelper.h diff --git a/modes/ModeMessage.h b/inc/fsfw/modes/ModeMessage.h similarity index 100% rename from modes/ModeMessage.h rename to inc/fsfw/modes/ModeMessage.h diff --git a/monitoring/AbsLimitMonitor.h b/inc/fsfw/monitoring/AbsLimitMonitor.h similarity index 100% rename from monitoring/AbsLimitMonitor.h rename to inc/fsfw/monitoring/AbsLimitMonitor.h diff --git a/monitoring/HasMonitorsIF.h b/inc/fsfw/monitoring/HasMonitorsIF.h similarity index 100% rename from monitoring/HasMonitorsIF.h rename to inc/fsfw/monitoring/HasMonitorsIF.h diff --git a/monitoring/LimitMonitor.h b/inc/fsfw/monitoring/LimitMonitor.h similarity index 100% rename from monitoring/LimitMonitor.h rename to inc/fsfw/monitoring/LimitMonitor.h diff --git a/monitoring/LimitViolationReporter.h b/inc/fsfw/monitoring/LimitViolationReporter.h similarity index 100% rename from monitoring/LimitViolationReporter.h rename to inc/fsfw/monitoring/LimitViolationReporter.h diff --git a/monitoring/MonitorBase.h b/inc/fsfw/monitoring/MonitorBase.h similarity index 100% rename from monitoring/MonitorBase.h rename to inc/fsfw/monitoring/MonitorBase.h diff --git a/monitoring/MonitorReporter.h b/inc/fsfw/monitoring/MonitorReporter.h similarity index 100% rename from monitoring/MonitorReporter.h rename to inc/fsfw/monitoring/MonitorReporter.h diff --git a/monitoring/MonitoringIF.h b/inc/fsfw/monitoring/MonitoringIF.h similarity index 98% rename from monitoring/MonitoringIF.h rename to inc/fsfw/monitoring/MonitoringIF.h index 32c625307..aae294753 100644 --- a/monitoring/MonitoringIF.h +++ b/inc/fsfw/monitoring/MonitoringIF.h @@ -2,7 +2,6 @@ #define FSFW_MONITORING_MONITORINGIF_H_ #include "MonitoringMessage.h" -#include "../memory/HasMemoryIF.h" #include "../serialize/SerializeIF.h" class MonitoringIF : public SerializeIF { @@ -62,6 +61,4 @@ public: } }; - - #endif /* FSFW_MONITORING_MONITORINGIF_H_ */ diff --git a/monitoring/MonitoringMessage.h b/inc/fsfw/monitoring/MonitoringMessage.h similarity index 100% rename from monitoring/MonitoringMessage.h rename to inc/fsfw/monitoring/MonitoringMessage.h diff --git a/monitoring/MonitoringMessageContent.h b/inc/fsfw/monitoring/MonitoringMessageContent.h similarity index 100% rename from monitoring/MonitoringMessageContent.h rename to inc/fsfw/monitoring/MonitoringMessageContent.h diff --git a/monitoring/ReceivesMonitoringReportsIF.h b/inc/fsfw/monitoring/ReceivesMonitoringReportsIF.h similarity index 100% rename from monitoring/ReceivesMonitoringReportsIF.h rename to inc/fsfw/monitoring/ReceivesMonitoringReportsIF.h diff --git a/monitoring/TriplexMonitor.h b/inc/fsfw/monitoring/TriplexMonitor.h similarity index 100% rename from monitoring/TriplexMonitor.h rename to inc/fsfw/monitoring/TriplexMonitor.h diff --git a/monitoring/TwoValueLimitMonitor.h b/inc/fsfw/monitoring/TwoValueLimitMonitor.h similarity index 100% rename from monitoring/TwoValueLimitMonitor.h rename to inc/fsfw/monitoring/TwoValueLimitMonitor.h diff --git a/objectmanager/ObjectManager.h b/inc/fsfw/objectmanager/ObjectManager.h similarity index 100% rename from objectmanager/ObjectManager.h rename to inc/fsfw/objectmanager/ObjectManager.h diff --git a/objectmanager/ObjectManagerIF.h b/inc/fsfw/objectmanager/ObjectManagerIF.h similarity index 100% rename from objectmanager/ObjectManagerIF.h rename to inc/fsfw/objectmanager/ObjectManagerIF.h diff --git a/objectmanager/SystemObject.h b/inc/fsfw/objectmanager/SystemObject.h similarity index 100% rename from objectmanager/SystemObject.h rename to inc/fsfw/objectmanager/SystemObject.h diff --git a/objectmanager/SystemObjectIF.h b/inc/fsfw/objectmanager/SystemObjectIF.h similarity index 100% rename from objectmanager/SystemObjectIF.h rename to inc/fsfw/objectmanager/SystemObjectIF.h diff --git a/objectmanager/frameworkObjects.h b/inc/fsfw/objectmanager/frameworkObjects.h similarity index 100% rename from objectmanager/frameworkObjects.h rename to inc/fsfw/objectmanager/frameworkObjects.h diff --git a/osal/Endiness.h b/inc/fsfw/osal/Endiness.h similarity index 100% rename from osal/Endiness.h rename to inc/fsfw/osal/Endiness.h diff --git a/osal/InternalErrorCodes.h b/inc/fsfw/osal/InternalErrorCodes.h similarity index 100% rename from osal/InternalErrorCodes.h rename to inc/fsfw/osal/InternalErrorCodes.h diff --git a/osal/common/TcpIpBase.h b/inc/fsfw/osal/common/TcpIpBase.h similarity index 100% rename from osal/common/TcpIpBase.h rename to inc/fsfw/osal/common/TcpIpBase.h diff --git a/osal/common/TcpTmTcBridge.h b/inc/fsfw/osal/common/TcpTmTcBridge.h similarity index 100% rename from osal/common/TcpTmTcBridge.h rename to inc/fsfw/osal/common/TcpTmTcBridge.h diff --git a/osal/common/TcpTmTcServer.h b/inc/fsfw/osal/common/TcpTmTcServer.h similarity index 100% rename from osal/common/TcpTmTcServer.h rename to inc/fsfw/osal/common/TcpTmTcServer.h diff --git a/osal/common/UdpTcPollingTask.h b/inc/fsfw/osal/common/UdpTcPollingTask.h similarity index 100% rename from osal/common/UdpTcPollingTask.h rename to inc/fsfw/osal/common/UdpTcPollingTask.h diff --git a/osal/common/UdpTmTcBridge.h b/inc/fsfw/osal/common/UdpTmTcBridge.h similarity index 100% rename from osal/common/UdpTmTcBridge.h rename to inc/fsfw/osal/common/UdpTmTcBridge.h diff --git a/osal/common/tcpipCommon.h b/inc/fsfw/osal/common/tcpipCommon.h similarity index 100% rename from osal/common/tcpipCommon.h rename to inc/fsfw/osal/common/tcpipCommon.h diff --git a/osal/common/tcpipHelpers.h b/inc/fsfw/osal/common/tcpipHelpers.h similarity index 100% rename from osal/common/tcpipHelpers.h rename to inc/fsfw/osal/common/tcpipHelpers.h diff --git a/osal/FreeRTOS/BinSemaphUsingTask.h b/inc/fsfw/osal/freertos/BinSemaphUsingTask.h similarity index 100% rename from osal/FreeRTOS/BinSemaphUsingTask.h rename to inc/fsfw/osal/freertos/BinSemaphUsingTask.h diff --git a/osal/FreeRTOS/BinarySemaphore.h b/inc/fsfw/osal/freertos/BinarySemaphore.h similarity index 100% rename from osal/FreeRTOS/BinarySemaphore.h rename to inc/fsfw/osal/freertos/BinarySemaphore.h diff --git a/osal/FreeRTOS/CountingSemaphUsingTask.h b/inc/fsfw/osal/freertos/CountingSemaphUsingTask.h similarity index 100% rename from osal/FreeRTOS/CountingSemaphUsingTask.h rename to inc/fsfw/osal/freertos/CountingSemaphUsingTask.h diff --git a/osal/FreeRTOS/CountingSemaphore.h b/inc/fsfw/osal/freertos/CountingSemaphore.h similarity index 100% rename from osal/FreeRTOS/CountingSemaphore.h rename to inc/fsfw/osal/freertos/CountingSemaphore.h diff --git a/osal/FreeRTOS/FixedTimeslotTask.h b/inc/fsfw/osal/freertos/FixedTimeslotTask.h similarity index 100% rename from osal/FreeRTOS/FixedTimeslotTask.h rename to inc/fsfw/osal/freertos/FixedTimeslotTask.h diff --git a/osal/FreeRTOS/FreeRTOSTaskIF.h b/inc/fsfw/osal/freertos/FreeRTOSTaskIF.h similarity index 100% rename from osal/FreeRTOS/FreeRTOSTaskIF.h rename to inc/fsfw/osal/freertos/FreeRTOSTaskIF.h diff --git a/osal/FreeRTOS/MessageQueue.h b/inc/fsfw/osal/freertos/MessageQueue.h similarity index 100% rename from osal/FreeRTOS/MessageQueue.h rename to inc/fsfw/osal/freertos/MessageQueue.h diff --git a/osal/FreeRTOS/Mutex.h b/inc/fsfw/osal/freertos/Mutex.h similarity index 100% rename from osal/FreeRTOS/Mutex.h rename to inc/fsfw/osal/freertos/Mutex.h diff --git a/osal/FreeRTOS/PeriodicTask.h b/inc/fsfw/osal/freertos/PeriodicTask.h similarity index 100% rename from osal/FreeRTOS/PeriodicTask.h rename to inc/fsfw/osal/freertos/PeriodicTask.h diff --git a/osal/FreeRTOS/QueueMapManager.h b/inc/fsfw/osal/freertos/QueueMapManager.h similarity index 100% rename from osal/FreeRTOS/QueueMapManager.h rename to inc/fsfw/osal/freertos/QueueMapManager.h diff --git a/osal/FreeRTOS/README.md b/inc/fsfw/osal/freertos/README.md similarity index 100% rename from osal/FreeRTOS/README.md rename to inc/fsfw/osal/freertos/README.md diff --git a/osal/FreeRTOS/TaskManagement.h b/inc/fsfw/osal/freertos/TaskManagement.h similarity index 100% rename from osal/FreeRTOS/TaskManagement.h rename to inc/fsfw/osal/freertos/TaskManagement.h diff --git a/osal/FreeRTOS/Timekeeper.h b/inc/fsfw/osal/freertos/Timekeeper.h similarity index 100% rename from osal/FreeRTOS/Timekeeper.h rename to inc/fsfw/osal/freertos/Timekeeper.h diff --git a/osal/host/FixedTimeslotTask.h b/inc/fsfw/osal/host/FixedTimeslotTask.h similarity index 100% rename from osal/host/FixedTimeslotTask.h rename to inc/fsfw/osal/host/FixedTimeslotTask.h diff --git a/osal/host/MessageQueue.h b/inc/fsfw/osal/host/MessageQueue.h similarity index 100% rename from osal/host/MessageQueue.h rename to inc/fsfw/osal/host/MessageQueue.h diff --git a/osal/host/Mutex.cpp b/inc/fsfw/osal/host/Mutex.cpp similarity index 100% rename from osal/host/Mutex.cpp rename to inc/fsfw/osal/host/Mutex.cpp diff --git a/osal/host/Mutex.h b/inc/fsfw/osal/host/Mutex.h similarity index 100% rename from osal/host/Mutex.h rename to inc/fsfw/osal/host/Mutex.h diff --git a/osal/host/PeriodicTask.h b/inc/fsfw/osal/host/PeriodicTask.h similarity index 100% rename from osal/host/PeriodicTask.h rename to inc/fsfw/osal/host/PeriodicTask.h diff --git a/osal/host/QueueMapManager.h b/inc/fsfw/osal/host/QueueMapManager.h similarity index 100% rename from osal/host/QueueMapManager.h rename to inc/fsfw/osal/host/QueueMapManager.h diff --git a/osal/host/taskHelpers.h b/inc/fsfw/osal/host/taskHelpers.h similarity index 100% rename from osal/host/taskHelpers.h rename to inc/fsfw/osal/host/taskHelpers.h diff --git a/osal/linux/BinarySemaphore.h b/inc/fsfw/osal/linux/BinarySemaphore.h similarity index 100% rename from osal/linux/BinarySemaphore.h rename to inc/fsfw/osal/linux/BinarySemaphore.h diff --git a/osal/linux/CountingSemaphore.h b/inc/fsfw/osal/linux/CountingSemaphore.h similarity index 100% rename from osal/linux/CountingSemaphore.h rename to inc/fsfw/osal/linux/CountingSemaphore.h diff --git a/osal/linux/FixedTimeslotTask.h b/inc/fsfw/osal/linux/FixedTimeslotTask.h similarity index 100% rename from osal/linux/FixedTimeslotTask.h rename to inc/fsfw/osal/linux/FixedTimeslotTask.h diff --git a/osal/linux/MessageQueue.h b/inc/fsfw/osal/linux/MessageQueue.h similarity index 100% rename from osal/linux/MessageQueue.h rename to inc/fsfw/osal/linux/MessageQueue.h diff --git a/osal/linux/Mutex.h b/inc/fsfw/osal/linux/Mutex.h similarity index 100% rename from osal/linux/Mutex.h rename to inc/fsfw/osal/linux/Mutex.h diff --git a/osal/linux/PeriodicPosixTask.h b/inc/fsfw/osal/linux/PeriodicPosixTask.h similarity index 100% rename from osal/linux/PeriodicPosixTask.h rename to inc/fsfw/osal/linux/PeriodicPosixTask.h diff --git a/osal/linux/PosixThread.h b/inc/fsfw/osal/linux/PosixThread.h similarity index 100% rename from osal/linux/PosixThread.h rename to inc/fsfw/osal/linux/PosixThread.h diff --git a/osal/linux/Timer.h b/inc/fsfw/osal/linux/Timer.h similarity index 100% rename from osal/linux/Timer.h rename to inc/fsfw/osal/linux/Timer.h diff --git a/osal/linux/unixUtility.h b/inc/fsfw/osal/linux/unixUtility.h similarity index 100% rename from osal/linux/unixUtility.h rename to inc/fsfw/osal/linux/unixUtility.h diff --git a/osal/rtems/CpuUsage.h b/inc/fsfw/osal/rtems/CpuUsage.h similarity index 100% rename from osal/rtems/CpuUsage.h rename to inc/fsfw/osal/rtems/CpuUsage.h diff --git a/osal/rtems/FixedTimeslotTask.h b/inc/fsfw/osal/rtems/FixedTimeslotTask.h similarity index 100% rename from osal/rtems/FixedTimeslotTask.h rename to inc/fsfw/osal/rtems/FixedTimeslotTask.h diff --git a/osal/rtems/InitTask.h b/inc/fsfw/osal/rtems/InitTask.h similarity index 100% rename from osal/rtems/InitTask.h rename to inc/fsfw/osal/rtems/InitTask.h diff --git a/osal/rtems/MessageQueue.h b/inc/fsfw/osal/rtems/MessageQueue.h similarity index 100% rename from osal/rtems/MessageQueue.h rename to inc/fsfw/osal/rtems/MessageQueue.h diff --git a/osal/rtems/Mutex.h b/inc/fsfw/osal/rtems/Mutex.h similarity index 100% rename from osal/rtems/Mutex.h rename to inc/fsfw/osal/rtems/Mutex.h diff --git a/osal/rtems/PeriodicTask.h b/inc/fsfw/osal/rtems/PeriodicTask.h similarity index 100% rename from osal/rtems/PeriodicTask.h rename to inc/fsfw/osal/rtems/PeriodicTask.h diff --git a/osal/rtems/RTEMSTaskBase.h b/inc/fsfw/osal/rtems/RTEMSTaskBase.h similarity index 100% rename from osal/rtems/RTEMSTaskBase.h rename to inc/fsfw/osal/rtems/RTEMSTaskBase.h diff --git a/osal/rtems/RtemsBasic.h b/inc/fsfw/osal/rtems/RtemsBasic.h similarity index 100% rename from osal/rtems/RtemsBasic.h rename to inc/fsfw/osal/rtems/RtemsBasic.h diff --git a/osal/windows/winTaskHelpers.h b/inc/fsfw/osal/windows/winTaskHelpers.h similarity index 100% rename from osal/windows/winTaskHelpers.h rename to inc/fsfw/osal/windows/winTaskHelpers.h diff --git a/parameters/HasParametersIF.h b/inc/fsfw/parameters/HasParametersIF.h similarity index 100% rename from parameters/HasParametersIF.h rename to inc/fsfw/parameters/HasParametersIF.h diff --git a/parameters/ParameterHelper.h b/inc/fsfw/parameters/ParameterHelper.h similarity index 100% rename from parameters/ParameterHelper.h rename to inc/fsfw/parameters/ParameterHelper.h diff --git a/parameters/ParameterMessage.h b/inc/fsfw/parameters/ParameterMessage.h similarity index 100% rename from parameters/ParameterMessage.h rename to inc/fsfw/parameters/ParameterMessage.h diff --git a/parameters/ParameterWrapper.h b/inc/fsfw/parameters/ParameterWrapper.h similarity index 100% rename from parameters/ParameterWrapper.h rename to inc/fsfw/parameters/ParameterWrapper.h diff --git a/parameters/ReceivesParameterMessagesIF.h b/inc/fsfw/parameters/ReceivesParameterMessagesIF.h similarity index 100% rename from parameters/ReceivesParameterMessagesIF.h rename to inc/fsfw/parameters/ReceivesParameterMessagesIF.h diff --git a/platform.h b/inc/fsfw/platform.h similarity index 100% rename from platform.h rename to inc/fsfw/platform.h diff --git a/power/Fuse.h b/inc/fsfw/power/Fuse.h similarity index 100% rename from power/Fuse.h rename to inc/fsfw/power/Fuse.h diff --git a/power/PowerComponent.h b/inc/fsfw/power/PowerComponent.h similarity index 100% rename from power/PowerComponent.h rename to inc/fsfw/power/PowerComponent.h diff --git a/power/PowerComponentIF.h b/inc/fsfw/power/PowerComponentIF.h similarity index 100% rename from power/PowerComponentIF.h rename to inc/fsfw/power/PowerComponentIF.h diff --git a/power/PowerSensor.h b/inc/fsfw/power/PowerSensor.h similarity index 100% rename from power/PowerSensor.h rename to inc/fsfw/power/PowerSensor.h diff --git a/power/PowerSwitchIF.h b/inc/fsfw/power/PowerSwitchIF.h similarity index 100% rename from power/PowerSwitchIF.h rename to inc/fsfw/power/PowerSwitchIF.h diff --git a/power/PowerSwitcher.h b/inc/fsfw/power/PowerSwitcher.h similarity index 100% rename from power/PowerSwitcher.h rename to inc/fsfw/power/PowerSwitcher.h diff --git a/pus/CService200ModeCommanding.h b/inc/fsfw/pus/CService200ModeCommanding.h similarity index 100% rename from pus/CService200ModeCommanding.h rename to inc/fsfw/pus/CService200ModeCommanding.h diff --git a/pus/CService201HealthCommanding.h b/inc/fsfw/pus/CService201HealthCommanding.h similarity index 100% rename from pus/CService201HealthCommanding.h rename to inc/fsfw/pus/CService201HealthCommanding.h diff --git a/pus/Service17Test.h b/inc/fsfw/pus/Service17Test.h similarity index 100% rename from pus/Service17Test.h rename to inc/fsfw/pus/Service17Test.h diff --git a/pus/Service1TelecommandVerification.h b/inc/fsfw/pus/Service1TelecommandVerification.h similarity index 100% rename from pus/Service1TelecommandVerification.h rename to inc/fsfw/pus/Service1TelecommandVerification.h diff --git a/pus/Service20ParameterManagement.h b/inc/fsfw/pus/Service20ParameterManagement.h similarity index 100% rename from pus/Service20ParameterManagement.h rename to inc/fsfw/pus/Service20ParameterManagement.h diff --git a/pus/Service2DeviceAccess.h b/inc/fsfw/pus/Service2DeviceAccess.h similarity index 100% rename from pus/Service2DeviceAccess.h rename to inc/fsfw/pus/Service2DeviceAccess.h diff --git a/pus/Service3Housekeeping.h b/inc/fsfw/pus/Service3Housekeeping.h similarity index 100% rename from pus/Service3Housekeeping.h rename to inc/fsfw/pus/Service3Housekeeping.h diff --git a/pus/Service5EventReporting.h b/inc/fsfw/pus/Service5EventReporting.h similarity index 100% rename from pus/Service5EventReporting.h rename to inc/fsfw/pus/Service5EventReporting.h diff --git a/pus/Service8FunctionManagement.h b/inc/fsfw/pus/Service8FunctionManagement.h similarity index 100% rename from pus/Service8FunctionManagement.h rename to inc/fsfw/pus/Service8FunctionManagement.h diff --git a/pus/Service9TimeManagement.h b/inc/fsfw/pus/Service9TimeManagement.h similarity index 100% rename from pus/Service9TimeManagement.h rename to inc/fsfw/pus/Service9TimeManagement.h diff --git a/pus/servicepackets/Service1Packets.h b/inc/fsfw/pus/servicepackets/Service1Packets.h similarity index 100% rename from pus/servicepackets/Service1Packets.h rename to inc/fsfw/pus/servicepackets/Service1Packets.h diff --git a/pus/servicepackets/Service200Packets.h b/inc/fsfw/pus/servicepackets/Service200Packets.h similarity index 100% rename from pus/servicepackets/Service200Packets.h rename to inc/fsfw/pus/servicepackets/Service200Packets.h diff --git a/pus/servicepackets/Service201Packets.h b/inc/fsfw/pus/servicepackets/Service201Packets.h similarity index 100% rename from pus/servicepackets/Service201Packets.h rename to inc/fsfw/pus/servicepackets/Service201Packets.h diff --git a/pus/servicepackets/Service20Packets.h b/inc/fsfw/pus/servicepackets/Service20Packets.h similarity index 100% rename from pus/servicepackets/Service20Packets.h rename to inc/fsfw/pus/servicepackets/Service20Packets.h diff --git a/pus/servicepackets/Service2Packets.h b/inc/fsfw/pus/servicepackets/Service2Packets.h similarity index 100% rename from pus/servicepackets/Service2Packets.h rename to inc/fsfw/pus/servicepackets/Service2Packets.h diff --git a/pus/servicepackets/Service3Packets.h b/inc/fsfw/pus/servicepackets/Service3Packets.h similarity index 100% rename from pus/servicepackets/Service3Packets.h rename to inc/fsfw/pus/servicepackets/Service3Packets.h diff --git a/pus/servicepackets/Service5Packets.h b/inc/fsfw/pus/servicepackets/Service5Packets.h similarity index 100% rename from pus/servicepackets/Service5Packets.h rename to inc/fsfw/pus/servicepackets/Service5Packets.h diff --git a/pus/servicepackets/Service8Packets.h b/inc/fsfw/pus/servicepackets/Service8Packets.h similarity index 100% rename from pus/servicepackets/Service8Packets.h rename to inc/fsfw/pus/servicepackets/Service8Packets.h diff --git a/pus/servicepackets/Service9Packets.h b/inc/fsfw/pus/servicepackets/Service9Packets.h similarity index 100% rename from pus/servicepackets/Service9Packets.h rename to inc/fsfw/pus/servicepackets/Service9Packets.h diff --git a/returnvalues/FwClassIds.h b/inc/fsfw/returnvalues/FwClassIds.h similarity index 100% rename from returnvalues/FwClassIds.h rename to inc/fsfw/returnvalues/FwClassIds.h diff --git a/returnvalues/HasReturnvaluesIF.h b/inc/fsfw/returnvalues/HasReturnvaluesIF.h similarity index 100% rename from returnvalues/HasReturnvaluesIF.h rename to inc/fsfw/returnvalues/HasReturnvaluesIF.h diff --git a/rmap/RMAP.h b/inc/fsfw/rmap/RMAP.h similarity index 100% rename from rmap/RMAP.h rename to inc/fsfw/rmap/RMAP.h diff --git a/rmap/RMAPChannelIF.h b/inc/fsfw/rmap/RMAPChannelIF.h similarity index 100% rename from rmap/RMAPChannelIF.h rename to inc/fsfw/rmap/RMAPChannelIF.h diff --git a/rmap/RMAPCookie.h b/inc/fsfw/rmap/RMAPCookie.h similarity index 100% rename from rmap/RMAPCookie.h rename to inc/fsfw/rmap/RMAPCookie.h diff --git a/rmap/RmapDeviceCommunicationIF.h b/inc/fsfw/rmap/RmapDeviceCommunicationIF.h similarity index 100% rename from rmap/RmapDeviceCommunicationIF.h rename to inc/fsfw/rmap/RmapDeviceCommunicationIF.h diff --git a/rmap/rmapStructs.h b/inc/fsfw/rmap/rmapStructs.h similarity index 100% rename from rmap/rmapStructs.h rename to inc/fsfw/rmap/rmapStructs.h diff --git a/serialize/EndianConverter.h b/inc/fsfw/serialize/EndianConverter.h similarity index 100% rename from serialize/EndianConverter.h rename to inc/fsfw/serialize/EndianConverter.h diff --git a/serialize/SerialArrayListAdapter.h b/inc/fsfw/serialize/SerialArrayListAdapter.h similarity index 100% rename from serialize/SerialArrayListAdapter.h rename to inc/fsfw/serialize/SerialArrayListAdapter.h diff --git a/serialize/SerialBufferAdapter.h b/inc/fsfw/serialize/SerialBufferAdapter.h similarity index 100% rename from serialize/SerialBufferAdapter.h rename to inc/fsfw/serialize/SerialBufferAdapter.h diff --git a/serialize/SerialFixedArrayListAdapter.h b/inc/fsfw/serialize/SerialFixedArrayListAdapter.h similarity index 100% rename from serialize/SerialFixedArrayListAdapter.h rename to inc/fsfw/serialize/SerialFixedArrayListAdapter.h diff --git a/serialize/SerialLinkedListAdapter.h b/inc/fsfw/serialize/SerialLinkedListAdapter.h similarity index 100% rename from serialize/SerialLinkedListAdapter.h rename to inc/fsfw/serialize/SerialLinkedListAdapter.h diff --git a/serialize/SerializeAdapter.h b/inc/fsfw/serialize/SerializeAdapter.h similarity index 100% rename from serialize/SerializeAdapter.h rename to inc/fsfw/serialize/SerializeAdapter.h diff --git a/serialize/SerializeElement.h b/inc/fsfw/serialize/SerializeElement.h similarity index 100% rename from serialize/SerializeElement.h rename to inc/fsfw/serialize/SerializeElement.h diff --git a/serialize/SerializeIF.h b/inc/fsfw/serialize/SerializeIF.h similarity index 100% rename from serialize/SerializeIF.h rename to inc/fsfw/serialize/SerializeIF.h diff --git a/serviceinterface/ServiceInterface.h b/inc/fsfw/serviceinterface/ServiceInterface.h similarity index 100% rename from serviceinterface/ServiceInterface.h rename to inc/fsfw/serviceinterface/ServiceInterface.h diff --git a/serviceinterface/ServiceInterfaceBuffer.h b/inc/fsfw/serviceinterface/ServiceInterfaceBuffer.h similarity index 100% rename from serviceinterface/ServiceInterfaceBuffer.h rename to inc/fsfw/serviceinterface/ServiceInterfaceBuffer.h diff --git a/serviceinterface/ServiceInterfacePrinter.h b/inc/fsfw/serviceinterface/ServiceInterfacePrinter.h similarity index 100% rename from serviceinterface/ServiceInterfacePrinter.h rename to inc/fsfw/serviceinterface/ServiceInterfacePrinter.h diff --git a/serviceinterface/ServiceInterfaceStream.h b/inc/fsfw/serviceinterface/ServiceInterfaceStream.h similarity index 100% rename from serviceinterface/ServiceInterfaceStream.h rename to inc/fsfw/serviceinterface/ServiceInterfaceStream.h diff --git a/serviceinterface/serviceInterfaceDefintions.h b/inc/fsfw/serviceinterface/serviceInterfaceDefintions.h similarity index 100% rename from serviceinterface/serviceInterfaceDefintions.h rename to inc/fsfw/serviceinterface/serviceInterfaceDefintions.h diff --git a/storagemanager/ConstStorageAccessor.h b/inc/fsfw/storagemanager/ConstStorageAccessor.h similarity index 100% rename from storagemanager/ConstStorageAccessor.h rename to inc/fsfw/storagemanager/ConstStorageAccessor.h diff --git a/storagemanager/LocalPool.h b/inc/fsfw/storagemanager/LocalPool.h similarity index 100% rename from storagemanager/LocalPool.h rename to inc/fsfw/storagemanager/LocalPool.h diff --git a/storagemanager/PoolManager.h b/inc/fsfw/storagemanager/PoolManager.h similarity index 100% rename from storagemanager/PoolManager.h rename to inc/fsfw/storagemanager/PoolManager.h diff --git a/storagemanager/StorageAccessor.h b/inc/fsfw/storagemanager/StorageAccessor.h similarity index 100% rename from storagemanager/StorageAccessor.h rename to inc/fsfw/storagemanager/StorageAccessor.h diff --git a/storagemanager/StorageManagerIF.h b/inc/fsfw/storagemanager/StorageManagerIF.h similarity index 100% rename from storagemanager/StorageManagerIF.h rename to inc/fsfw/storagemanager/StorageManagerIF.h diff --git a/storagemanager/storeAddress.h b/inc/fsfw/storagemanager/storeAddress.h similarity index 100% rename from storagemanager/storeAddress.h rename to inc/fsfw/storagemanager/storeAddress.h diff --git a/subsystem/Subsystem.h b/inc/fsfw/subsystem/Subsystem.h similarity index 100% rename from subsystem/Subsystem.h rename to inc/fsfw/subsystem/Subsystem.h diff --git a/subsystem/SubsystemBase.h b/inc/fsfw/subsystem/SubsystemBase.h similarity index 100% rename from subsystem/SubsystemBase.h rename to inc/fsfw/subsystem/SubsystemBase.h diff --git a/subsystem/modes/HasModeSequenceIF.h b/inc/fsfw/subsystem/modes/HasModeSequenceIF.h similarity index 100% rename from subsystem/modes/HasModeSequenceIF.h rename to inc/fsfw/subsystem/modes/HasModeSequenceIF.h diff --git a/subsystem/modes/ModeDefinitions.h b/inc/fsfw/subsystem/modes/ModeDefinitions.h similarity index 100% rename from subsystem/modes/ModeDefinitions.h rename to inc/fsfw/subsystem/modes/ModeDefinitions.h diff --git a/subsystem/modes/ModeSequenceMessage.h b/inc/fsfw/subsystem/modes/ModeSequenceMessage.h similarity index 100% rename from subsystem/modes/ModeSequenceMessage.h rename to inc/fsfw/subsystem/modes/ModeSequenceMessage.h diff --git a/subsystem/modes/ModeStore.h b/inc/fsfw/subsystem/modes/ModeStore.h similarity index 100% rename from subsystem/modes/ModeStore.h rename to inc/fsfw/subsystem/modes/ModeStore.h diff --git a/subsystem/modes/ModeStoreIF.h b/inc/fsfw/subsystem/modes/ModeStoreIF.h similarity index 100% rename from subsystem/modes/ModeStoreIF.h rename to inc/fsfw/subsystem/modes/ModeStoreIF.h diff --git a/tasks/ExecutableObjectIF.h b/inc/fsfw/tasks/ExecutableObjectIF.h similarity index 100% rename from tasks/ExecutableObjectIF.h rename to inc/fsfw/tasks/ExecutableObjectIF.h diff --git a/tasks/FixedSequenceSlot.h b/inc/fsfw/tasks/FixedSequenceSlot.h similarity index 100% rename from tasks/FixedSequenceSlot.h rename to inc/fsfw/tasks/FixedSequenceSlot.h diff --git a/tasks/FixedSlotSequence.h b/inc/fsfw/tasks/FixedSlotSequence.h similarity index 100% rename from tasks/FixedSlotSequence.h rename to inc/fsfw/tasks/FixedSlotSequence.h diff --git a/tasks/FixedTimeslotTaskIF.h b/inc/fsfw/tasks/FixedTimeslotTaskIF.h similarity index 100% rename from tasks/FixedTimeslotTaskIF.h rename to inc/fsfw/tasks/FixedTimeslotTaskIF.h diff --git a/tasks/PeriodicTaskIF.h b/inc/fsfw/tasks/PeriodicTaskIF.h similarity index 100% rename from tasks/PeriodicTaskIF.h rename to inc/fsfw/tasks/PeriodicTaskIF.h diff --git a/tasks/SemaphoreFactory.h b/inc/fsfw/tasks/SemaphoreFactory.h similarity index 100% rename from tasks/SemaphoreFactory.h rename to inc/fsfw/tasks/SemaphoreFactory.h diff --git a/tasks/SemaphoreIF.h b/inc/fsfw/tasks/SemaphoreIF.h similarity index 100% rename from tasks/SemaphoreIF.h rename to inc/fsfw/tasks/SemaphoreIF.h diff --git a/tasks/TaskFactory.h b/inc/fsfw/tasks/TaskFactory.h similarity index 100% rename from tasks/TaskFactory.h rename to inc/fsfw/tasks/TaskFactory.h diff --git a/tasks/Typedef.h b/inc/fsfw/tasks/Typedef.h similarity index 100% rename from tasks/Typedef.h rename to inc/fsfw/tasks/Typedef.h diff --git a/tcdistribution/CCSDSDistributor.h b/inc/fsfw/tcdistribution/CCSDSDistributor.h similarity index 100% rename from tcdistribution/CCSDSDistributor.h rename to inc/fsfw/tcdistribution/CCSDSDistributor.h diff --git a/tcdistribution/CCSDSDistributorIF.h b/inc/fsfw/tcdistribution/CCSDSDistributorIF.h similarity index 100% rename from tcdistribution/CCSDSDistributorIF.h rename to inc/fsfw/tcdistribution/CCSDSDistributorIF.h diff --git a/tcdistribution/PUSDistributor.h b/inc/fsfw/tcdistribution/PUSDistributor.h similarity index 100% rename from tcdistribution/PUSDistributor.h rename to inc/fsfw/tcdistribution/PUSDistributor.h diff --git a/tcdistribution/PUSDistributorIF.h b/inc/fsfw/tcdistribution/PUSDistributorIF.h similarity index 100% rename from tcdistribution/PUSDistributorIF.h rename to inc/fsfw/tcdistribution/PUSDistributorIF.h diff --git a/tcdistribution/TcDistributor.h b/inc/fsfw/tcdistribution/TcDistributor.h similarity index 100% rename from tcdistribution/TcDistributor.h rename to inc/fsfw/tcdistribution/TcDistributor.h diff --git a/tcdistribution/TcPacketCheck.h b/inc/fsfw/tcdistribution/TcPacketCheck.h similarity index 100% rename from tcdistribution/TcPacketCheck.h rename to inc/fsfw/tcdistribution/TcPacketCheck.h diff --git a/thermal/AbstractTemperatureSensor.h b/inc/fsfw/thermal/AbstractTemperatureSensor.h similarity index 100% rename from thermal/AbstractTemperatureSensor.h rename to inc/fsfw/thermal/AbstractTemperatureSensor.h diff --git a/thermal/AcceptsThermalMessagesIF.h b/inc/fsfw/thermal/AcceptsThermalMessagesIF.h similarity index 100% rename from thermal/AcceptsThermalMessagesIF.h rename to inc/fsfw/thermal/AcceptsThermalMessagesIF.h diff --git a/thermal/Heater.h b/inc/fsfw/thermal/Heater.h similarity index 100% rename from thermal/Heater.h rename to inc/fsfw/thermal/Heater.h diff --git a/thermal/RedundantHeater.h b/inc/fsfw/thermal/RedundantHeater.h similarity index 100% rename from thermal/RedundantHeater.h rename to inc/fsfw/thermal/RedundantHeater.h diff --git a/thermal/TemperatureSensor.h b/inc/fsfw/thermal/TemperatureSensor.h similarity index 100% rename from thermal/TemperatureSensor.h rename to inc/fsfw/thermal/TemperatureSensor.h diff --git a/thermal/ThermalComponent.h b/inc/fsfw/thermal/ThermalComponent.h similarity index 100% rename from thermal/ThermalComponent.h rename to inc/fsfw/thermal/ThermalComponent.h diff --git a/thermal/ThermalComponentCore.h b/inc/fsfw/thermal/ThermalComponentCore.h similarity index 100% rename from thermal/ThermalComponentCore.h rename to inc/fsfw/thermal/ThermalComponentCore.h diff --git a/thermal/ThermalComponentIF.h b/inc/fsfw/thermal/ThermalComponentIF.h similarity index 100% rename from thermal/ThermalComponentIF.h rename to inc/fsfw/thermal/ThermalComponentIF.h diff --git a/thermal/ThermalModule.h b/inc/fsfw/thermal/ThermalModule.h similarity index 100% rename from thermal/ThermalModule.h rename to inc/fsfw/thermal/ThermalModule.h diff --git a/thermal/ThermalModuleIF.h b/inc/fsfw/thermal/ThermalModuleIF.h similarity index 100% rename from thermal/ThermalModuleIF.h rename to inc/fsfw/thermal/ThermalModuleIF.h diff --git a/thermal/ThermalMonitorReporter.h b/inc/fsfw/thermal/ThermalMonitorReporter.h similarity index 100% rename from thermal/ThermalMonitorReporter.h rename to inc/fsfw/thermal/ThermalMonitorReporter.h diff --git a/thermal/tcsDefinitions.h b/inc/fsfw/thermal/tcsDefinitions.h similarity index 100% rename from thermal/tcsDefinitions.h rename to inc/fsfw/thermal/tcsDefinitions.h diff --git a/timemanager/CCSDSTime.h b/inc/fsfw/timemanager/CCSDSTime.h similarity index 100% rename from timemanager/CCSDSTime.h rename to inc/fsfw/timemanager/CCSDSTime.h diff --git a/timemanager/Clock.h b/inc/fsfw/timemanager/Clock.h similarity index 100% rename from timemanager/Clock.h rename to inc/fsfw/timemanager/Clock.h diff --git a/timemanager/Countdown.h b/inc/fsfw/timemanager/Countdown.h similarity index 100% rename from timemanager/Countdown.h rename to inc/fsfw/timemanager/Countdown.h diff --git a/timemanager/ReceivesTimeInfoIF.h b/inc/fsfw/timemanager/ReceivesTimeInfoIF.h similarity index 100% rename from timemanager/ReceivesTimeInfoIF.h rename to inc/fsfw/timemanager/ReceivesTimeInfoIF.h diff --git a/timemanager/Stopwatch.h b/inc/fsfw/timemanager/Stopwatch.h similarity index 100% rename from timemanager/Stopwatch.h rename to inc/fsfw/timemanager/Stopwatch.h diff --git a/timemanager/TimeMessage.h b/inc/fsfw/timemanager/TimeMessage.h similarity index 100% rename from timemanager/TimeMessage.h rename to inc/fsfw/timemanager/TimeMessage.h diff --git a/timemanager/TimeStamper.h b/inc/fsfw/timemanager/TimeStamper.h similarity index 100% rename from timemanager/TimeStamper.h rename to inc/fsfw/timemanager/TimeStamper.h diff --git a/timemanager/TimeStamperIF.h b/inc/fsfw/timemanager/TimeStamperIF.h similarity index 100% rename from timemanager/TimeStamperIF.h rename to inc/fsfw/timemanager/TimeStamperIF.h diff --git a/timemanager/clockDefinitions.h b/inc/fsfw/timemanager/clockDefinitions.h similarity index 100% rename from timemanager/clockDefinitions.h rename to inc/fsfw/timemanager/clockDefinitions.h diff --git a/tmstorage/TmStoreBackendIF.h b/inc/fsfw/tmstorage/TmStoreBackendIF.h similarity index 100% rename from tmstorage/TmStoreBackendIF.h rename to inc/fsfw/tmstorage/TmStoreBackendIF.h diff --git a/tmstorage/TmStoreFrontendIF.h b/inc/fsfw/tmstorage/TmStoreFrontendIF.h similarity index 100% rename from tmstorage/TmStoreFrontendIF.h rename to inc/fsfw/tmstorage/TmStoreFrontendIF.h diff --git a/tmstorage/TmStoreMessage.h b/inc/fsfw/tmstorage/TmStoreMessage.h similarity index 100% rename from tmstorage/TmStoreMessage.h rename to inc/fsfw/tmstorage/TmStoreMessage.h diff --git a/tmstorage/TmStorePackets.h b/inc/fsfw/tmstorage/TmStorePackets.h similarity index 100% rename from tmstorage/TmStorePackets.h rename to inc/fsfw/tmstorage/TmStorePackets.h diff --git a/tmtcpacket/SpacePacket.h b/inc/fsfw/tmtcpacket/SpacePacket.h similarity index 100% rename from tmtcpacket/SpacePacket.h rename to inc/fsfw/tmtcpacket/SpacePacket.h diff --git a/tmtcpacket/SpacePacketBase.h b/inc/fsfw/tmtcpacket/SpacePacketBase.h similarity index 100% rename from tmtcpacket/SpacePacketBase.h rename to inc/fsfw/tmtcpacket/SpacePacketBase.h diff --git a/tmtcpacket/ccsds_header.h b/inc/fsfw/tmtcpacket/ccsds_header.h similarity index 100% rename from tmtcpacket/ccsds_header.h rename to inc/fsfw/tmtcpacket/ccsds_header.h diff --git a/tmtcpacket/packetmatcher/ApidMatcher.h b/inc/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h similarity index 100% rename from tmtcpacket/packetmatcher/ApidMatcher.h rename to inc/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h diff --git a/tmtcpacket/packetmatcher/PacketMatchTree.h b/inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h similarity index 100% rename from tmtcpacket/packetmatcher/PacketMatchTree.h rename to inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h diff --git a/tmtcpacket/packetmatcher/ServiceMatcher.h b/inc/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h similarity index 100% rename from tmtcpacket/packetmatcher/ServiceMatcher.h rename to inc/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h diff --git a/tmtcpacket/packetmatcher/SubserviceMatcher.h b/inc/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h similarity index 100% rename from tmtcpacket/packetmatcher/SubserviceMatcher.h rename to inc/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h diff --git a/tmtcpacket/pus/PacketTimestampInterpreterIF.h b/inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h similarity index 100% rename from tmtcpacket/pus/PacketTimestampInterpreterIF.h rename to inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h diff --git a/tmtcpacket/pus/tc.h b/inc/fsfw/tmtcpacket/pus/tc.h similarity index 100% rename from tmtcpacket/pus/tc.h rename to inc/fsfw/tmtcpacket/pus/tc.h diff --git a/tmtcpacket/pus/tc/TcPacketBase.h b/inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h similarity index 100% rename from tmtcpacket/pus/tc/TcPacketBase.h rename to inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h diff --git a/tmtcpacket/pus/tc/TcPacketPus.h b/inc/fsfw/tmtcpacket/pus/tc/TcPacketPus.h similarity index 100% rename from tmtcpacket/pus/tc/TcPacketPus.h rename to inc/fsfw/tmtcpacket/pus/tc/TcPacketPus.h diff --git a/tmtcpacket/pus/tc/TcPacketStoredBase.h b/inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h similarity index 100% rename from tmtcpacket/pus/tc/TcPacketStoredBase.h rename to inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h diff --git a/tmtcpacket/pus/tc/TcPacketStoredIF.h b/inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h similarity index 100% rename from tmtcpacket/pus/tc/TcPacketStoredIF.h rename to inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h diff --git a/tmtcpacket/pus/tc/TcPacketStoredPus.h b/inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h similarity index 100% rename from tmtcpacket/pus/tc/TcPacketStoredPus.h rename to inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h diff --git a/tmtcpacket/pus/tm.h b/inc/fsfw/tmtcpacket/pus/tm.h similarity index 100% rename from tmtcpacket/pus/tm.h rename to inc/fsfw/tmtcpacket/pus/tm.h diff --git a/tmtcpacket/pus/tm/TmPacketBase.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketBase.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h diff --git a/tmtcpacket/pus/tm/TmPacketMinimal.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketMinimal.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h diff --git a/tmtcpacket/pus/tm/TmPacketPusA.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketPusA.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h diff --git a/tmtcpacket/pus/tm/TmPacketPusC.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketPusC.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h diff --git a/tmtcpacket/pus/tm/TmPacketStored.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketStored.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStored.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketStored.h diff --git a/tmtcpacket/pus/tm/TmPacketStoredBase.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStoredBase.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h diff --git a/tmtcpacket/pus/tm/TmPacketStoredPusA.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStoredPusA.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h diff --git a/tmtcpacket/pus/tm/TmPacketStoredPusC.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStoredPusC.h rename to inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h diff --git a/tmtcservices/AcceptsTelecommandsIF.h b/inc/fsfw/tmtcservices/AcceptsTelecommandsIF.h similarity index 100% rename from tmtcservices/AcceptsTelecommandsIF.h rename to inc/fsfw/tmtcservices/AcceptsTelecommandsIF.h diff --git a/tmtcservices/AcceptsTelemetryIF.h b/inc/fsfw/tmtcservices/AcceptsTelemetryIF.h similarity index 100% rename from tmtcservices/AcceptsTelemetryIF.h rename to inc/fsfw/tmtcservices/AcceptsTelemetryIF.h diff --git a/tmtcservices/AcceptsVerifyMessageIF.h b/inc/fsfw/tmtcservices/AcceptsVerifyMessageIF.h similarity index 100% rename from tmtcservices/AcceptsVerifyMessageIF.h rename to inc/fsfw/tmtcservices/AcceptsVerifyMessageIF.h diff --git a/tmtcservices/CommandingServiceBase.h b/inc/fsfw/tmtcservices/CommandingServiceBase.h similarity index 100% rename from tmtcservices/CommandingServiceBase.h rename to inc/fsfw/tmtcservices/CommandingServiceBase.h diff --git a/tmtcservices/PusServiceBase.h b/inc/fsfw/tmtcservices/PusServiceBase.h similarity index 100% rename from tmtcservices/PusServiceBase.h rename to inc/fsfw/tmtcservices/PusServiceBase.h diff --git a/tmtcservices/PusVerificationReport.h b/inc/fsfw/tmtcservices/PusVerificationReport.h similarity index 100% rename from tmtcservices/PusVerificationReport.h rename to inc/fsfw/tmtcservices/PusVerificationReport.h diff --git a/tmtcservices/SourceSequenceCounter.h b/inc/fsfw/tmtcservices/SourceSequenceCounter.h similarity index 100% rename from tmtcservices/SourceSequenceCounter.h rename to inc/fsfw/tmtcservices/SourceSequenceCounter.h diff --git a/tmtcservices/TmTcBridge.h b/inc/fsfw/tmtcservices/TmTcBridge.h similarity index 100% rename from tmtcservices/TmTcBridge.h rename to inc/fsfw/tmtcservices/TmTcBridge.h diff --git a/tmtcservices/TmTcMessage.h b/inc/fsfw/tmtcservices/TmTcMessage.h similarity index 100% rename from tmtcservices/TmTcMessage.h rename to inc/fsfw/tmtcservices/TmTcMessage.h diff --git a/tmtcservices/VerificationCodes.h b/inc/fsfw/tmtcservices/VerificationCodes.h similarity index 100% rename from tmtcservices/VerificationCodes.h rename to inc/fsfw/tmtcservices/VerificationCodes.h diff --git a/tmtcservices/VerificationReporter.h b/inc/fsfw/tmtcservices/VerificationReporter.h similarity index 100% rename from tmtcservices/VerificationReporter.h rename to inc/fsfw/tmtcservices/VerificationReporter.h diff --git a/defaultcfg/README.md b/misc/defaultcfg/README.md similarity index 100% rename from defaultcfg/README.md rename to misc/defaultcfg/README.md diff --git a/defaultcfg/fsfwconfig/CMakeLists.txt b/misc/defaultcfg/fsfwconfig/CMakeLists.txt similarity index 100% rename from defaultcfg/fsfwconfig/CMakeLists.txt rename to misc/defaultcfg/fsfwconfig/CMakeLists.txt diff --git a/defaultcfg/fsfwconfig/FSFWConfig.h b/misc/defaultcfg/fsfwconfig/FSFWConfig.h similarity index 100% rename from defaultcfg/fsfwconfig/FSFWConfig.h rename to misc/defaultcfg/fsfwconfig/FSFWConfig.h diff --git a/defaultcfg/fsfwconfig/OBSWConfig.h b/misc/defaultcfg/fsfwconfig/OBSWConfig.h similarity index 100% rename from defaultcfg/fsfwconfig/OBSWConfig.h rename to misc/defaultcfg/fsfwconfig/OBSWConfig.h diff --git a/defaultcfg/fsfwconfig/OBSWVersion.h b/misc/defaultcfg/fsfwconfig/OBSWVersion.h similarity index 100% rename from defaultcfg/fsfwconfig/OBSWVersion.h rename to misc/defaultcfg/fsfwconfig/OBSWVersion.h diff --git a/defaultcfg/fsfwconfig/devices/logicalAddresses.h b/misc/defaultcfg/fsfwconfig/devices/logicalAddresses.h similarity index 100% rename from defaultcfg/fsfwconfig/devices/logicalAddresses.h rename to misc/defaultcfg/fsfwconfig/devices/logicalAddresses.h diff --git a/defaultcfg/fsfwconfig/devices/powerSwitcherList.h b/misc/defaultcfg/fsfwconfig/devices/powerSwitcherList.h similarity index 100% rename from defaultcfg/fsfwconfig/devices/powerSwitcherList.h rename to misc/defaultcfg/fsfwconfig/devices/powerSwitcherList.h diff --git a/defaultcfg/fsfwconfig/events/subsystemIdRanges.h b/misc/defaultcfg/fsfwconfig/events/subsystemIdRanges.h similarity index 100% rename from defaultcfg/fsfwconfig/events/subsystemIdRanges.h rename to misc/defaultcfg/fsfwconfig/events/subsystemIdRanges.h diff --git a/defaultcfg/fsfwconfig/fsfwconfig.mk b/misc/defaultcfg/fsfwconfig/fsfwconfig.mk similarity index 100% rename from defaultcfg/fsfwconfig/fsfwconfig.mk rename to misc/defaultcfg/fsfwconfig/fsfwconfig.mk diff --git a/defaultcfg/fsfwconfig/ipc/missionMessageTypes.cpp b/misc/defaultcfg/fsfwconfig/ipc/missionMessageTypes.cpp similarity index 100% rename from defaultcfg/fsfwconfig/ipc/missionMessageTypes.cpp rename to misc/defaultcfg/fsfwconfig/ipc/missionMessageTypes.cpp diff --git a/defaultcfg/fsfwconfig/ipc/missionMessageTypes.h b/misc/defaultcfg/fsfwconfig/ipc/missionMessageTypes.h similarity index 100% rename from defaultcfg/fsfwconfig/ipc/missionMessageTypes.h rename to misc/defaultcfg/fsfwconfig/ipc/missionMessageTypes.h diff --git a/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp b/misc/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp similarity index 100% rename from defaultcfg/fsfwconfig/objects/FsfwFactory.cpp rename to misc/defaultcfg/fsfwconfig/objects/FsfwFactory.cpp diff --git a/defaultcfg/fsfwconfig/objects/FsfwFactory.h b/misc/defaultcfg/fsfwconfig/objects/FsfwFactory.h similarity index 100% rename from defaultcfg/fsfwconfig/objects/FsfwFactory.h rename to misc/defaultcfg/fsfwconfig/objects/FsfwFactory.h diff --git a/defaultcfg/fsfwconfig/objects/systemObjectList.h b/misc/defaultcfg/fsfwconfig/objects/systemObjectList.h similarity index 100% rename from defaultcfg/fsfwconfig/objects/systemObjectList.h rename to misc/defaultcfg/fsfwconfig/objects/systemObjectList.h diff --git a/defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.cpp b/misc/defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.cpp similarity index 100% rename from defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.cpp rename to misc/defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.cpp diff --git a/defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.h b/misc/defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.h similarity index 100% rename from defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.h rename to misc/defaultcfg/fsfwconfig/pollingsequence/PollingSequenceFactory.h diff --git a/defaultcfg/fsfwconfig/returnvalues/classIds.h b/misc/defaultcfg/fsfwconfig/returnvalues/classIds.h similarity index 100% rename from defaultcfg/fsfwconfig/returnvalues/classIds.h rename to misc/defaultcfg/fsfwconfig/returnvalues/classIds.h diff --git a/defaultcfg/fsfwconfig/tmtc/apid.h b/misc/defaultcfg/fsfwconfig/tmtc/apid.h similarity index 100% rename from defaultcfg/fsfwconfig/tmtc/apid.h rename to misc/defaultcfg/fsfwconfig/tmtc/apid.h diff --git a/defaultcfg/fsfwconfig/tmtc/pusIds.h b/misc/defaultcfg/fsfwconfig/tmtc/pusIds.h similarity index 100% rename from defaultcfg/fsfwconfig/tmtc/pusIds.h rename to misc/defaultcfg/fsfwconfig/tmtc/pusIds.h diff --git a/logo/FSFW_Logo_V3.png b/misc/logo/FSFW_Logo_V3.png similarity index 100% rename from logo/FSFW_Logo_V3.png rename to misc/logo/FSFW_Logo_V3.png diff --git a/logo/FSFW_Logo_V3.svg b/misc/logo/FSFW_Logo_V3.svg similarity index 100% rename from logo/FSFW_Logo_V3.svg rename to misc/logo/FSFW_Logo_V3.svg diff --git a/logo/FSFW_Logo_V3_bw.png b/misc/logo/FSFW_Logo_V3_bw.png similarity index 100% rename from logo/FSFW_Logo_V3_bw.png rename to misc/logo/FSFW_Logo_V3_bw.png diff --git a/core/src/action/ActionHelper.cpp b/src/core/action/ActionHelper.cpp similarity index 100% rename from core/src/action/ActionHelper.cpp rename to src/core/action/ActionHelper.cpp diff --git a/core/src/action/ActionMessage.cpp b/src/core/action/ActionMessage.cpp similarity index 100% rename from core/src/action/ActionMessage.cpp rename to src/core/action/ActionMessage.cpp diff --git a/core/src/action/CMakeLists.txt b/src/core/action/CMakeLists.txt similarity index 100% rename from core/src/action/CMakeLists.txt rename to src/core/action/CMakeLists.txt diff --git a/core/src/action/CommandActionHelper.cpp b/src/core/action/CommandActionHelper.cpp similarity index 100% rename from core/src/action/CommandActionHelper.cpp rename to src/core/action/CommandActionHelper.cpp diff --git a/core/src/action/SimpleActionHelper.cpp b/src/core/action/SimpleActionHelper.cpp similarity index 100% rename from core/src/action/SimpleActionHelper.cpp rename to src/core/action/SimpleActionHelper.cpp diff --git a/core/src/container/CMakeLists.txt b/src/core/container/CMakeLists.txt similarity index 100% rename from core/src/container/CMakeLists.txt rename to src/core/container/CMakeLists.txt diff --git a/core/src/container/SharedRingBuffer.cpp b/src/core/container/SharedRingBuffer.cpp similarity index 100% rename from core/src/container/SharedRingBuffer.cpp rename to src/core/container/SharedRingBuffer.cpp diff --git a/core/src/container/SimpleRingBuffer.cpp b/src/core/container/SimpleRingBuffer.cpp similarity index 100% rename from core/src/container/SimpleRingBuffer.cpp rename to src/core/container/SimpleRingBuffer.cpp diff --git a/core/src/controller/CMakeLists.txt b/src/core/controller/CMakeLists.txt similarity index 100% rename from core/src/controller/CMakeLists.txt rename to src/core/controller/CMakeLists.txt diff --git a/core/src/controller/ControllerBase.cpp b/src/core/controller/ControllerBase.cpp similarity index 100% rename from core/src/controller/ControllerBase.cpp rename to src/core/controller/ControllerBase.cpp diff --git a/core/src/controller/ExtendedControllerBase.cpp b/src/core/controller/ExtendedControllerBase.cpp similarity index 100% rename from core/src/controller/ExtendedControllerBase.cpp rename to src/core/controller/ExtendedControllerBase.cpp diff --git a/core/src/datapool/CMakeLists.txt b/src/core/datapool/CMakeLists.txt similarity index 100% rename from core/src/datapool/CMakeLists.txt rename to src/core/datapool/CMakeLists.txt diff --git a/core/src/datapool/HkSwitchHelper.cpp b/src/core/datapool/HkSwitchHelper.cpp similarity index 100% rename from core/src/datapool/HkSwitchHelper.cpp rename to src/core/datapool/HkSwitchHelper.cpp diff --git a/core/src/datapool/PoolDataSetBase.cpp b/src/core/datapool/PoolDataSetBase.cpp similarity index 100% rename from core/src/datapool/PoolDataSetBase.cpp rename to src/core/datapool/PoolDataSetBase.cpp diff --git a/core/src/datapool/PoolEntry.cpp b/src/core/datapool/PoolEntry.cpp similarity index 100% rename from core/src/datapool/PoolEntry.cpp rename to src/core/datapool/PoolEntry.cpp diff --git a/core/src/datapoollocal/CMakeLists.txt b/src/core/datapoollocal/CMakeLists.txt similarity index 100% rename from core/src/datapoollocal/CMakeLists.txt rename to src/core/datapoollocal/CMakeLists.txt diff --git a/core/src/datapoollocal/LocalDataPoolManager.cpp b/src/core/datapoollocal/LocalDataPoolManager.cpp similarity index 100% rename from core/src/datapoollocal/LocalDataPoolManager.cpp rename to src/core/datapoollocal/LocalDataPoolManager.cpp diff --git a/core/src/datapoollocal/LocalDataSet.cpp b/src/core/datapoollocal/LocalDataSet.cpp similarity index 100% rename from core/src/datapoollocal/LocalDataSet.cpp rename to src/core/datapoollocal/LocalDataSet.cpp diff --git a/core/src/datapoollocal/LocalPoolDataSetBase.cpp b/src/core/datapoollocal/LocalPoolDataSetBase.cpp similarity index 100% rename from core/src/datapoollocal/LocalPoolDataSetBase.cpp rename to src/core/datapoollocal/LocalPoolDataSetBase.cpp diff --git a/core/src/datapoollocal/LocalPoolObjectBase.cpp b/src/core/datapoollocal/LocalPoolObjectBase.cpp similarity index 100% rename from core/src/datapoollocal/LocalPoolObjectBase.cpp rename to src/core/datapoollocal/LocalPoolObjectBase.cpp diff --git a/core/src/datapoollocal/SharedLocalDataSet.cpp b/src/core/datapoollocal/SharedLocalDataSet.cpp similarity index 100% rename from core/src/datapoollocal/SharedLocalDataSet.cpp rename to src/core/datapoollocal/SharedLocalDataSet.cpp diff --git a/core/src/datapoollocal/internal/CMakeLists.txt b/src/core/datapoollocal/internal/CMakeLists.txt similarity index 100% rename from core/src/datapoollocal/internal/CMakeLists.txt rename to src/core/datapoollocal/internal/CMakeLists.txt diff --git a/core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp b/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp similarity index 100% rename from core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp rename to src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp diff --git a/core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.h b/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h similarity index 100% rename from core/src/datapoollocal/internal/HasLocalDpIFManagerAttorney.h rename to src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h diff --git a/core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp b/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp similarity index 100% rename from core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp rename to src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp diff --git a/core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.h b/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.h similarity index 100% rename from core/src/datapoollocal/internal/HasLocalDpIFUserAttorney.h rename to src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.h diff --git a/core/src/datapoollocal/internal/LocalDpManagerAttorney.h b/src/core/datapoollocal/internal/LocalDpManagerAttorney.h similarity index 100% rename from core/src/datapoollocal/internal/LocalDpManagerAttorney.h rename to src/core/datapoollocal/internal/LocalDpManagerAttorney.h diff --git a/core/src/datapoollocal/internal/LocalPoolDataSetAttorney.h b/src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h similarity index 100% rename from core/src/datapoollocal/internal/LocalPoolDataSetAttorney.h rename to src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h diff --git a/devicehandlers/AssemblyBase.cpp b/src/core/devicehandlers/AssemblyBase.cpp similarity index 100% rename from devicehandlers/AssemblyBase.cpp rename to src/core/devicehandlers/AssemblyBase.cpp diff --git a/devicehandlers/ChildHandlerBase.cpp b/src/core/devicehandlers/ChildHandlerBase.cpp similarity index 100% rename from devicehandlers/ChildHandlerBase.cpp rename to src/core/devicehandlers/ChildHandlerBase.cpp diff --git a/devicehandlers/ChildHandlerFDIR.cpp b/src/core/devicehandlers/ChildHandlerFDIR.cpp similarity index 100% rename from devicehandlers/ChildHandlerFDIR.cpp rename to src/core/devicehandlers/ChildHandlerFDIR.cpp diff --git a/devicehandlers/DeviceHandlerBase.cpp b/src/core/devicehandlers/DeviceHandlerBase.cpp similarity index 100% rename from devicehandlers/DeviceHandlerBase.cpp rename to src/core/devicehandlers/DeviceHandlerBase.cpp diff --git a/devicehandlers/DeviceHandlerFailureIsolation.cpp b/src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp similarity index 100% rename from devicehandlers/DeviceHandlerFailureIsolation.cpp rename to src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp diff --git a/devicehandlers/DeviceHandlerMessage.cpp b/src/core/devicehandlers/DeviceHandlerMessage.cpp similarity index 100% rename from devicehandlers/DeviceHandlerMessage.cpp rename to src/core/devicehandlers/DeviceHandlerMessage.cpp diff --git a/devicehandlers/DeviceTmReportingWrapper.cpp b/src/core/devicehandlers/DeviceTmReportingWrapper.cpp similarity index 100% rename from devicehandlers/DeviceTmReportingWrapper.cpp rename to src/core/devicehandlers/DeviceTmReportingWrapper.cpp diff --git a/devicehandlers/HealthDevice.cpp b/src/core/devicehandlers/HealthDevice.cpp similarity index 100% rename from devicehandlers/HealthDevice.cpp rename to src/core/devicehandlers/HealthDevice.cpp diff --git a/events/CMakeLists.txt b/src/core/events/CMakeLists.txt similarity index 100% rename from events/CMakeLists.txt rename to src/core/events/CMakeLists.txt diff --git a/events/EventManager.cpp b/src/core/events/EventManager.cpp similarity index 100% rename from events/EventManager.cpp rename to src/core/events/EventManager.cpp diff --git a/events/EventMessage.cpp b/src/core/events/EventMessage.cpp similarity index 100% rename from events/EventMessage.cpp rename to src/core/events/EventMessage.cpp diff --git a/fdir/CMakeLists.txt b/src/core/fdir/CMakeLists.txt similarity index 100% rename from fdir/CMakeLists.txt rename to src/core/fdir/CMakeLists.txt diff --git a/fdir/EventCorrelation.cpp b/src/core/fdir/EventCorrelation.cpp similarity index 100% rename from fdir/EventCorrelation.cpp rename to src/core/fdir/EventCorrelation.cpp diff --git a/fdir/FailureIsolationBase.cpp b/src/core/fdir/FailureIsolationBase.cpp similarity index 100% rename from fdir/FailureIsolationBase.cpp rename to src/core/fdir/FailureIsolationBase.cpp diff --git a/fdir/FaultCounter.cpp b/src/core/fdir/FaultCounter.cpp similarity index 100% rename from fdir/FaultCounter.cpp rename to src/core/fdir/FaultCounter.cpp diff --git a/globalfunctions/AsciiConverter.cpp b/src/core/globalfunctions/AsciiConverter.cpp similarity index 100% rename from globalfunctions/AsciiConverter.cpp rename to src/core/globalfunctions/AsciiConverter.cpp diff --git a/globalfunctions/CMakeLists.txt b/src/core/globalfunctions/CMakeLists.txt similarity index 100% rename from globalfunctions/CMakeLists.txt rename to src/core/globalfunctions/CMakeLists.txt diff --git a/globalfunctions/CRC.cpp b/src/core/globalfunctions/CRC.cpp similarity index 100% rename from globalfunctions/CRC.cpp rename to src/core/globalfunctions/CRC.cpp diff --git a/globalfunctions/DleEncoder.cpp b/src/core/globalfunctions/DleEncoder.cpp similarity index 100% rename from globalfunctions/DleEncoder.cpp rename to src/core/globalfunctions/DleEncoder.cpp diff --git a/globalfunctions/PeriodicOperationDivider.cpp b/src/core/globalfunctions/PeriodicOperationDivider.cpp similarity index 100% rename from globalfunctions/PeriodicOperationDivider.cpp rename to src/core/globalfunctions/PeriodicOperationDivider.cpp diff --git a/globalfunctions/Type.cpp b/src/core/globalfunctions/Type.cpp similarity index 100% rename from globalfunctions/Type.cpp rename to src/core/globalfunctions/Type.cpp diff --git a/globalfunctions/arrayprinter.cpp b/src/core/globalfunctions/arrayprinter.cpp similarity index 100% rename from globalfunctions/arrayprinter.cpp rename to src/core/globalfunctions/arrayprinter.cpp diff --git a/globalfunctions/bitutility.cpp b/src/core/globalfunctions/bitutility.cpp similarity index 100% rename from globalfunctions/bitutility.cpp rename to src/core/globalfunctions/bitutility.cpp diff --git a/globalfunctions/math/CMakeLists.txt b/src/core/globalfunctions/math/CMakeLists.txt similarity index 100% rename from globalfunctions/math/CMakeLists.txt rename to src/core/globalfunctions/math/CMakeLists.txt diff --git a/globalfunctions/math/QuaternionOperations.cpp b/src/core/globalfunctions/math/QuaternionOperations.cpp similarity index 100% rename from globalfunctions/math/QuaternionOperations.cpp rename to src/core/globalfunctions/math/QuaternionOperations.cpp diff --git a/globalfunctions/timevalOperations.cpp b/src/core/globalfunctions/timevalOperations.cpp similarity index 100% rename from globalfunctions/timevalOperations.cpp rename to src/core/globalfunctions/timevalOperations.cpp diff --git a/health/CMakeLists.txt b/src/core/health/CMakeLists.txt similarity index 100% rename from health/CMakeLists.txt rename to src/core/health/CMakeLists.txt diff --git a/health/HealthHelper.cpp b/src/core/health/HealthHelper.cpp similarity index 100% rename from health/HealthHelper.cpp rename to src/core/health/HealthHelper.cpp diff --git a/health/HealthMessage.cpp b/src/core/health/HealthMessage.cpp similarity index 100% rename from health/HealthMessage.cpp rename to src/core/health/HealthMessage.cpp diff --git a/health/HealthTable.cpp b/src/core/health/HealthTable.cpp similarity index 100% rename from health/HealthTable.cpp rename to src/core/health/HealthTable.cpp diff --git a/housekeeping/HousekeepingMessage.cpp b/src/core/housekeeping/HousekeepingMessage.cpp similarity index 100% rename from housekeeping/HousekeepingMessage.cpp rename to src/core/housekeeping/HousekeepingMessage.cpp diff --git a/housekeeping/PeriodicHousekeepingHelper.cpp b/src/core/housekeeping/PeriodicHousekeepingHelper.cpp similarity index 100% rename from housekeeping/PeriodicHousekeepingHelper.cpp rename to src/core/housekeeping/PeriodicHousekeepingHelper.cpp diff --git a/internalError/CMakeLists.txt b/src/core/internalError/CMakeLists.txt similarity index 100% rename from internalError/CMakeLists.txt rename to src/core/internalError/CMakeLists.txt diff --git a/internalError/InternalErrorReporter.cpp b/src/core/internalError/InternalErrorReporter.cpp similarity index 100% rename from internalError/InternalErrorReporter.cpp rename to src/core/internalError/InternalErrorReporter.cpp diff --git a/ipc/CMakeLists.txt b/src/core/ipc/CMakeLists.txt similarity index 100% rename from ipc/CMakeLists.txt rename to src/core/ipc/CMakeLists.txt diff --git a/ipc/CommandMessage.cpp b/src/core/ipc/CommandMessage.cpp similarity index 100% rename from ipc/CommandMessage.cpp rename to src/core/ipc/CommandMessage.cpp diff --git a/ipc/CommandMessageCleaner.cpp b/src/core/ipc/CommandMessageCleaner.cpp similarity index 100% rename from ipc/CommandMessageCleaner.cpp rename to src/core/ipc/CommandMessageCleaner.cpp diff --git a/ipc/MessageQueueMessage.cpp b/src/core/ipc/MessageQueueMessage.cpp similarity index 100% rename from ipc/MessageQueueMessage.cpp rename to src/core/ipc/MessageQueueMessage.cpp diff --git a/modes/CMakeLists.txt b/src/core/modes/CMakeLists.txt similarity index 100% rename from modes/CMakeLists.txt rename to src/core/modes/CMakeLists.txt diff --git a/modes/ModeHelper.cpp b/src/core/modes/ModeHelper.cpp similarity index 100% rename from modes/ModeHelper.cpp rename to src/core/modes/ModeHelper.cpp diff --git a/modes/ModeMessage.cpp b/src/core/modes/ModeMessage.cpp similarity index 100% rename from modes/ModeMessage.cpp rename to src/core/modes/ModeMessage.cpp diff --git a/objectmanager/CMakeLists.txt b/src/core/objectmanager/CMakeLists.txt similarity index 100% rename from objectmanager/CMakeLists.txt rename to src/core/objectmanager/CMakeLists.txt diff --git a/objectmanager/ObjectManager.cpp b/src/core/objectmanager/ObjectManager.cpp similarity index 100% rename from objectmanager/ObjectManager.cpp rename to src/core/objectmanager/ObjectManager.cpp diff --git a/objectmanager/SystemObject.cpp b/src/core/objectmanager/SystemObject.cpp similarity index 100% rename from objectmanager/SystemObject.cpp rename to src/core/objectmanager/SystemObject.cpp diff --git a/parameters/CMakeLists.txt b/src/core/parameters/CMakeLists.txt similarity index 100% rename from parameters/CMakeLists.txt rename to src/core/parameters/CMakeLists.txt diff --git a/parameters/ParameterHelper.cpp b/src/core/parameters/ParameterHelper.cpp similarity index 100% rename from parameters/ParameterHelper.cpp rename to src/core/parameters/ParameterHelper.cpp diff --git a/parameters/ParameterMessage.cpp b/src/core/parameters/ParameterMessage.cpp similarity index 100% rename from parameters/ParameterMessage.cpp rename to src/core/parameters/ParameterMessage.cpp diff --git a/parameters/ParameterWrapper.cpp b/src/core/parameters/ParameterWrapper.cpp similarity index 100% rename from parameters/ParameterWrapper.cpp rename to src/core/parameters/ParameterWrapper.cpp diff --git a/power/CMakeLists.txt b/src/core/power/CMakeLists.txt similarity index 100% rename from power/CMakeLists.txt rename to src/core/power/CMakeLists.txt diff --git a/power/Fuse.cpp b/src/core/power/Fuse.cpp similarity index 100% rename from power/Fuse.cpp rename to src/core/power/Fuse.cpp diff --git a/power/PowerComponent.cpp b/src/core/power/PowerComponent.cpp similarity index 100% rename from power/PowerComponent.cpp rename to src/core/power/PowerComponent.cpp diff --git a/power/PowerSensor.cpp b/src/core/power/PowerSensor.cpp similarity index 100% rename from power/PowerSensor.cpp rename to src/core/power/PowerSensor.cpp diff --git a/power/PowerSwitcher.cpp b/src/core/power/PowerSwitcher.cpp similarity index 100% rename from power/PowerSwitcher.cpp rename to src/core/power/PowerSwitcher.cpp diff --git a/serialize/CMakeLists.txt b/src/core/serialize/CMakeLists.txt similarity index 100% rename from serialize/CMakeLists.txt rename to src/core/serialize/CMakeLists.txt diff --git a/serialize/SerialBufferAdapter.cpp b/src/core/serialize/SerialBufferAdapter.cpp similarity index 100% rename from serialize/SerialBufferAdapter.cpp rename to src/core/serialize/SerialBufferAdapter.cpp diff --git a/serviceinterface/CMakeLists.txt b/src/core/serviceinterface/CMakeLists.txt similarity index 100% rename from serviceinterface/CMakeLists.txt rename to src/core/serviceinterface/CMakeLists.txt diff --git a/serviceinterface/ServiceInterfaceBuffer.cpp b/src/core/serviceinterface/ServiceInterfaceBuffer.cpp similarity index 100% rename from serviceinterface/ServiceInterfaceBuffer.cpp rename to src/core/serviceinterface/ServiceInterfaceBuffer.cpp diff --git a/serviceinterface/ServiceInterfacePrinter.cpp b/src/core/serviceinterface/ServiceInterfacePrinter.cpp similarity index 100% rename from serviceinterface/ServiceInterfacePrinter.cpp rename to src/core/serviceinterface/ServiceInterfacePrinter.cpp diff --git a/serviceinterface/ServiceInterfaceStream.cpp b/src/core/serviceinterface/ServiceInterfaceStream.cpp similarity index 100% rename from serviceinterface/ServiceInterfaceStream.cpp rename to src/core/serviceinterface/ServiceInterfaceStream.cpp diff --git a/storagemanager/CMakeLists.txt b/src/core/storagemanager/CMakeLists.txt similarity index 100% rename from storagemanager/CMakeLists.txt rename to src/core/storagemanager/CMakeLists.txt diff --git a/storagemanager/ConstStorageAccessor.cpp b/src/core/storagemanager/ConstStorageAccessor.cpp similarity index 100% rename from storagemanager/ConstStorageAccessor.cpp rename to src/core/storagemanager/ConstStorageAccessor.cpp diff --git a/storagemanager/LocalPool.cpp b/src/core/storagemanager/LocalPool.cpp similarity index 100% rename from storagemanager/LocalPool.cpp rename to src/core/storagemanager/LocalPool.cpp diff --git a/storagemanager/PoolManager.cpp b/src/core/storagemanager/PoolManager.cpp similarity index 100% rename from storagemanager/PoolManager.cpp rename to src/core/storagemanager/PoolManager.cpp diff --git a/storagemanager/StorageAccessor.cpp b/src/core/storagemanager/StorageAccessor.cpp similarity index 100% rename from storagemanager/StorageAccessor.cpp rename to src/core/storagemanager/StorageAccessor.cpp diff --git a/subsystem/CMakeLists.txt b/src/core/subsystem/CMakeLists.txt similarity index 100% rename from subsystem/CMakeLists.txt rename to src/core/subsystem/CMakeLists.txt diff --git a/subsystem/Subsystem.cpp b/src/core/subsystem/Subsystem.cpp similarity index 100% rename from subsystem/Subsystem.cpp rename to src/core/subsystem/Subsystem.cpp diff --git a/subsystem/SubsystemBase.cpp b/src/core/subsystem/SubsystemBase.cpp similarity index 100% rename from subsystem/SubsystemBase.cpp rename to src/core/subsystem/SubsystemBase.cpp diff --git a/subsystem/modes/CMakeLists.txt b/src/core/subsystem/modes/CMakeLists.txt similarity index 100% rename from subsystem/modes/CMakeLists.txt rename to src/core/subsystem/modes/CMakeLists.txt diff --git a/subsystem/modes/ModeSequenceMessage.cpp b/src/core/subsystem/modes/ModeSequenceMessage.cpp similarity index 100% rename from subsystem/modes/ModeSequenceMessage.cpp rename to src/core/subsystem/modes/ModeSequenceMessage.cpp diff --git a/subsystem/modes/ModeStore.cpp b/src/core/subsystem/modes/ModeStore.cpp similarity index 100% rename from subsystem/modes/ModeStore.cpp rename to src/core/subsystem/modes/ModeStore.cpp diff --git a/tasks/CMakeLists.txt b/src/core/tasks/CMakeLists.txt similarity index 100% rename from tasks/CMakeLists.txt rename to src/core/tasks/CMakeLists.txt diff --git a/tasks/FixedSequenceSlot.cpp b/src/core/tasks/FixedSequenceSlot.cpp similarity index 100% rename from tasks/FixedSequenceSlot.cpp rename to src/core/tasks/FixedSequenceSlot.cpp diff --git a/tasks/FixedSlotSequence.cpp b/src/core/tasks/FixedSlotSequence.cpp similarity index 100% rename from tasks/FixedSlotSequence.cpp rename to src/core/tasks/FixedSlotSequence.cpp diff --git a/tcdistribution/CCSDSDistributor.cpp b/src/core/tcdistribution/CCSDSDistributor.cpp similarity index 100% rename from tcdistribution/CCSDSDistributor.cpp rename to src/core/tcdistribution/CCSDSDistributor.cpp diff --git a/tcdistribution/CMakeLists.txt b/src/core/tcdistribution/CMakeLists.txt similarity index 100% rename from tcdistribution/CMakeLists.txt rename to src/core/tcdistribution/CMakeLists.txt diff --git a/tcdistribution/PUSDistributor.cpp b/src/core/tcdistribution/PUSDistributor.cpp similarity index 100% rename from tcdistribution/PUSDistributor.cpp rename to src/core/tcdistribution/PUSDistributor.cpp diff --git a/tcdistribution/TcDistributor.cpp b/src/core/tcdistribution/TcDistributor.cpp similarity index 100% rename from tcdistribution/TcDistributor.cpp rename to src/core/tcdistribution/TcDistributor.cpp diff --git a/tcdistribution/TcPacketCheck.cpp b/src/core/tcdistribution/TcPacketCheck.cpp similarity index 100% rename from tcdistribution/TcPacketCheck.cpp rename to src/core/tcdistribution/TcPacketCheck.cpp diff --git a/thermal/AbstractTemperatureSensor.cpp b/src/core/thermal/AbstractTemperatureSensor.cpp similarity index 100% rename from thermal/AbstractTemperatureSensor.cpp rename to src/core/thermal/AbstractTemperatureSensor.cpp diff --git a/thermal/CMakeLists.txt b/src/core/thermal/CMakeLists.txt similarity index 100% rename from thermal/CMakeLists.txt rename to src/core/thermal/CMakeLists.txt diff --git a/thermal/Heater.cpp b/src/core/thermal/Heater.cpp similarity index 100% rename from thermal/Heater.cpp rename to src/core/thermal/Heater.cpp diff --git a/thermal/RedundantHeater.cpp b/src/core/thermal/RedundantHeater.cpp similarity index 100% rename from thermal/RedundantHeater.cpp rename to src/core/thermal/RedundantHeater.cpp diff --git a/thermal/ThermalComponent.cpp b/src/core/thermal/ThermalComponent.cpp similarity index 100% rename from thermal/ThermalComponent.cpp rename to src/core/thermal/ThermalComponent.cpp diff --git a/thermal/ThermalComponentCore.cpp b/src/core/thermal/ThermalComponentCore.cpp similarity index 100% rename from thermal/ThermalComponentCore.cpp rename to src/core/thermal/ThermalComponentCore.cpp diff --git a/thermal/ThermalModule.cpp b/src/core/thermal/ThermalModule.cpp similarity index 100% rename from thermal/ThermalModule.cpp rename to src/core/thermal/ThermalModule.cpp diff --git a/thermal/ThermalMonitorReporter.cpp b/src/core/thermal/ThermalMonitorReporter.cpp similarity index 100% rename from thermal/ThermalMonitorReporter.cpp rename to src/core/thermal/ThermalMonitorReporter.cpp diff --git a/timemanager/CCSDSTime.cpp b/src/core/timemanager/CCSDSTime.cpp similarity index 100% rename from timemanager/CCSDSTime.cpp rename to src/core/timemanager/CCSDSTime.cpp diff --git a/timemanager/CMakeLists.txt b/src/core/timemanager/CMakeLists.txt similarity index 100% rename from timemanager/CMakeLists.txt rename to src/core/timemanager/CMakeLists.txt diff --git a/timemanager/ClockCommon.cpp b/src/core/timemanager/ClockCommon.cpp similarity index 100% rename from timemanager/ClockCommon.cpp rename to src/core/timemanager/ClockCommon.cpp diff --git a/timemanager/Countdown.cpp b/src/core/timemanager/Countdown.cpp similarity index 100% rename from timemanager/Countdown.cpp rename to src/core/timemanager/Countdown.cpp diff --git a/timemanager/Stopwatch.cpp b/src/core/timemanager/Stopwatch.cpp similarity index 100% rename from timemanager/Stopwatch.cpp rename to src/core/timemanager/Stopwatch.cpp diff --git a/timemanager/TimeMessage.cpp b/src/core/timemanager/TimeMessage.cpp similarity index 100% rename from timemanager/TimeMessage.cpp rename to src/core/timemanager/TimeMessage.cpp diff --git a/timemanager/TimeStamper.cpp b/src/core/timemanager/TimeStamper.cpp similarity index 100% rename from timemanager/TimeStamper.cpp rename to src/core/timemanager/TimeStamper.cpp diff --git a/tmtcpacket/CMakeLists.txt b/src/core/tmtcpacket/CMakeLists.txt similarity index 100% rename from tmtcpacket/CMakeLists.txt rename to src/core/tmtcpacket/CMakeLists.txt diff --git a/tmtcpacket/SpacePacket.cpp b/src/core/tmtcpacket/SpacePacket.cpp similarity index 100% rename from tmtcpacket/SpacePacket.cpp rename to src/core/tmtcpacket/SpacePacket.cpp diff --git a/tmtcpacket/SpacePacketBase.cpp b/src/core/tmtcpacket/SpacePacketBase.cpp similarity index 100% rename from tmtcpacket/SpacePacketBase.cpp rename to src/core/tmtcpacket/SpacePacketBase.cpp diff --git a/tmtcpacket/packetmatcher/CMakeLists.txt b/src/core/tmtcpacket/packetmatcher/CMakeLists.txt similarity index 100% rename from tmtcpacket/packetmatcher/CMakeLists.txt rename to src/core/tmtcpacket/packetmatcher/CMakeLists.txt diff --git a/tmtcpacket/packetmatcher/PacketMatchTree.cpp b/src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp similarity index 100% rename from tmtcpacket/packetmatcher/PacketMatchTree.cpp rename to src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp diff --git a/tmtcpacket/pus/CMakeLists.txt b/src/core/tmtcpacket/pus/CMakeLists.txt similarity index 100% rename from tmtcpacket/pus/CMakeLists.txt rename to src/core/tmtcpacket/pus/CMakeLists.txt diff --git a/tmtcpacket/pus/tc/CMakeLists.txt b/src/core/tmtcpacket/pus/tc/CMakeLists.txt similarity index 100% rename from tmtcpacket/pus/tc/CMakeLists.txt rename to src/core/tmtcpacket/pus/tc/CMakeLists.txt diff --git a/tmtcpacket/pus/tc/TcPacketBase.cpp b/src/core/tmtcpacket/pus/tc/TcPacketBase.cpp similarity index 100% rename from tmtcpacket/pus/tc/TcPacketBase.cpp rename to src/core/tmtcpacket/pus/tc/TcPacketBase.cpp diff --git a/tmtcpacket/pus/tc/TcPacketPus.cpp b/src/core/tmtcpacket/pus/tc/TcPacketPus.cpp similarity index 100% rename from tmtcpacket/pus/tc/TcPacketPus.cpp rename to src/core/tmtcpacket/pus/tc/TcPacketPus.cpp diff --git a/tmtcpacket/pus/tc/TcPacketStoredBase.cpp b/src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp similarity index 100% rename from tmtcpacket/pus/tc/TcPacketStoredBase.cpp rename to src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp diff --git a/tmtcpacket/pus/tc/TcPacketStoredPus.cpp b/src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp similarity index 100% rename from tmtcpacket/pus/tc/TcPacketStoredPus.cpp rename to src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp diff --git a/tmtcpacket/pus/tm/CMakeLists.txt b/src/core/tmtcpacket/pus/tm/CMakeLists.txt similarity index 100% rename from tmtcpacket/pus/tm/CMakeLists.txt rename to src/core/tmtcpacket/pus/tm/CMakeLists.txt diff --git a/tmtcpacket/pus/tm/TmPacketBase.cpp b/src/core/tmtcpacket/pus/tm/TmPacketBase.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketBase.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketBase.cpp diff --git a/tmtcpacket/pus/tm/TmPacketMinimal.cpp b/src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketMinimal.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp diff --git a/tmtcpacket/pus/tm/TmPacketPusA.cpp b/src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketPusA.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp diff --git a/tmtcpacket/pus/tm/TmPacketPusC.cpp b/src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketPusC.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp diff --git a/tmtcpacket/pus/tm/TmPacketStoredBase.cpp b/src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStoredBase.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp diff --git a/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp b/src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStoredPusA.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp diff --git a/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp b/src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp similarity index 100% rename from tmtcpacket/pus/tm/TmPacketStoredPusC.cpp rename to src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp diff --git a/tmtcservices/CMakeLists.txt b/src/core/tmtcservices/CMakeLists.txt similarity index 100% rename from tmtcservices/CMakeLists.txt rename to src/core/tmtcservices/CMakeLists.txt diff --git a/tmtcservices/CommandingServiceBase.cpp b/src/core/tmtcservices/CommandingServiceBase.cpp similarity index 100% rename from tmtcservices/CommandingServiceBase.cpp rename to src/core/tmtcservices/CommandingServiceBase.cpp diff --git a/tmtcservices/PusServiceBase.cpp b/src/core/tmtcservices/PusServiceBase.cpp similarity index 100% rename from tmtcservices/PusServiceBase.cpp rename to src/core/tmtcservices/PusServiceBase.cpp diff --git a/tmtcservices/PusVerificationReport.cpp b/src/core/tmtcservices/PusVerificationReport.cpp similarity index 100% rename from tmtcservices/PusVerificationReport.cpp rename to src/core/tmtcservices/PusVerificationReport.cpp diff --git a/tmtcservices/TmTcBridge.cpp b/src/core/tmtcservices/TmTcBridge.cpp similarity index 100% rename from tmtcservices/TmTcBridge.cpp rename to src/core/tmtcservices/TmTcBridge.cpp diff --git a/tmtcservices/TmTcMessage.cpp b/src/core/tmtcservices/TmTcMessage.cpp similarity index 100% rename from tmtcservices/TmTcMessage.cpp rename to src/core/tmtcservices/TmTcMessage.cpp diff --git a/tmtcservices/VerificationReporter.cpp b/src/core/tmtcservices/VerificationReporter.cpp similarity index 100% rename from tmtcservices/VerificationReporter.cpp rename to src/core/tmtcservices/VerificationReporter.cpp diff --git a/opt/src/coordinates/CMakeLists.txt b/src/opt/coordinates/CMakeLists.txt similarity index 100% rename from opt/src/coordinates/CMakeLists.txt rename to src/opt/coordinates/CMakeLists.txt diff --git a/opt/src/coordinates/CoordinateTransformations.cpp b/src/opt/coordinates/CoordinateTransformations.cpp similarity index 100% rename from opt/src/coordinates/CoordinateTransformations.cpp rename to src/opt/coordinates/CoordinateTransformations.cpp diff --git a/opt/src/coordinates/Sgp4Propagator.cpp b/src/opt/coordinates/Sgp4Propagator.cpp similarity index 100% rename from opt/src/coordinates/Sgp4Propagator.cpp rename to src/opt/coordinates/Sgp4Propagator.cpp diff --git a/opt/src/datalinklayer/CMakeLists.txt b/src/opt/datalinklayer/CMakeLists.txt similarity index 100% rename from opt/src/datalinklayer/CMakeLists.txt rename to src/opt/datalinklayer/CMakeLists.txt diff --git a/opt/src/datalinklayer/Clcw.cpp b/src/opt/datalinklayer/Clcw.cpp similarity index 100% rename from opt/src/datalinklayer/Clcw.cpp rename to src/opt/datalinklayer/Clcw.cpp diff --git a/opt/src/datalinklayer/DataLinkLayer.cpp b/src/opt/datalinklayer/DataLinkLayer.cpp similarity index 100% rename from opt/src/datalinklayer/DataLinkLayer.cpp rename to src/opt/datalinklayer/DataLinkLayer.cpp diff --git a/opt/src/datalinklayer/Farm1StateLockout.cpp b/src/opt/datalinklayer/Farm1StateLockout.cpp similarity index 100% rename from opt/src/datalinklayer/Farm1StateLockout.cpp rename to src/opt/datalinklayer/Farm1StateLockout.cpp diff --git a/opt/src/datalinklayer/Farm1StateOpen.cpp b/src/opt/datalinklayer/Farm1StateOpen.cpp similarity index 100% rename from opt/src/datalinklayer/Farm1StateOpen.cpp rename to src/opt/datalinklayer/Farm1StateOpen.cpp diff --git a/opt/src/datalinklayer/Farm1StateWait.cpp b/src/opt/datalinklayer/Farm1StateWait.cpp similarity index 100% rename from opt/src/datalinklayer/Farm1StateWait.cpp rename to src/opt/datalinklayer/Farm1StateWait.cpp diff --git a/opt/src/datalinklayer/MapPacketExtraction.cpp b/src/opt/datalinklayer/MapPacketExtraction.cpp similarity index 100% rename from opt/src/datalinklayer/MapPacketExtraction.cpp rename to src/opt/datalinklayer/MapPacketExtraction.cpp diff --git a/opt/src/datalinklayer/TcTransferFrame.cpp b/src/opt/datalinklayer/TcTransferFrame.cpp similarity index 100% rename from opt/src/datalinklayer/TcTransferFrame.cpp rename to src/opt/datalinklayer/TcTransferFrame.cpp diff --git a/opt/src/datalinklayer/TcTransferFrameLocal.cpp b/src/opt/datalinklayer/TcTransferFrameLocal.cpp similarity index 100% rename from opt/src/datalinklayer/TcTransferFrameLocal.cpp rename to src/opt/datalinklayer/TcTransferFrameLocal.cpp diff --git a/opt/src/datalinklayer/VirtualChannelReception.cpp b/src/opt/datalinklayer/VirtualChannelReception.cpp similarity index 100% rename from opt/src/datalinklayer/VirtualChannelReception.cpp rename to src/opt/datalinklayer/VirtualChannelReception.cpp diff --git a/memory/CMakeLists.txt b/src/opt/memory/CMakeLists.txt similarity index 100% rename from memory/CMakeLists.txt rename to src/opt/memory/CMakeLists.txt diff --git a/memory/GenericFileSystemMessage.cpp b/src/opt/memory/GenericFileSystemMessage.cpp similarity index 100% rename from memory/GenericFileSystemMessage.cpp rename to src/opt/memory/GenericFileSystemMessage.cpp diff --git a/memory/MemoryHelper.cpp b/src/opt/memory/MemoryHelper.cpp similarity index 100% rename from memory/MemoryHelper.cpp rename to src/opt/memory/MemoryHelper.cpp diff --git a/memory/MemoryMessage.cpp b/src/opt/memory/MemoryMessage.cpp similarity index 100% rename from memory/MemoryMessage.cpp rename to src/opt/memory/MemoryMessage.cpp diff --git a/monitoring/CMakeLists.txt b/src/opt/monitoring/CMakeLists.txt similarity index 100% rename from monitoring/CMakeLists.txt rename to src/opt/monitoring/CMakeLists.txt diff --git a/monitoring/LimitViolationReporter.cpp b/src/opt/monitoring/LimitViolationReporter.cpp similarity index 100% rename from monitoring/LimitViolationReporter.cpp rename to src/opt/monitoring/LimitViolationReporter.cpp diff --git a/monitoring/MonitoringMessage.cpp b/src/opt/monitoring/MonitoringMessage.cpp similarity index 100% rename from monitoring/MonitoringMessage.cpp rename to src/opt/monitoring/MonitoringMessage.cpp diff --git a/pus/CMakeLists.txt b/src/opt/pus/CMakeLists.txt similarity index 100% rename from pus/CMakeLists.txt rename to src/opt/pus/CMakeLists.txt diff --git a/pus/CService200ModeCommanding.cpp b/src/opt/pus/CService200ModeCommanding.cpp similarity index 100% rename from pus/CService200ModeCommanding.cpp rename to src/opt/pus/CService200ModeCommanding.cpp diff --git a/pus/CService201HealthCommanding.cpp b/src/opt/pus/CService201HealthCommanding.cpp similarity index 100% rename from pus/CService201HealthCommanding.cpp rename to src/opt/pus/CService201HealthCommanding.cpp diff --git a/pus/Service17Test.cpp b/src/opt/pus/Service17Test.cpp similarity index 100% rename from pus/Service17Test.cpp rename to src/opt/pus/Service17Test.cpp diff --git a/pus/Service1TelecommandVerification.cpp b/src/opt/pus/Service1TelecommandVerification.cpp similarity index 100% rename from pus/Service1TelecommandVerification.cpp rename to src/opt/pus/Service1TelecommandVerification.cpp diff --git a/pus/Service20ParameterManagement.cpp b/src/opt/pus/Service20ParameterManagement.cpp similarity index 100% rename from pus/Service20ParameterManagement.cpp rename to src/opt/pus/Service20ParameterManagement.cpp diff --git a/pus/Service2DeviceAccess.cpp b/src/opt/pus/Service2DeviceAccess.cpp similarity index 100% rename from pus/Service2DeviceAccess.cpp rename to src/opt/pus/Service2DeviceAccess.cpp diff --git a/pus/Service3Housekeeping.cpp b/src/opt/pus/Service3Housekeeping.cpp similarity index 100% rename from pus/Service3Housekeeping.cpp rename to src/opt/pus/Service3Housekeeping.cpp diff --git a/pus/Service5EventReporting.cpp b/src/opt/pus/Service5EventReporting.cpp similarity index 100% rename from pus/Service5EventReporting.cpp rename to src/opt/pus/Service5EventReporting.cpp diff --git a/pus/Service8FunctionManagement.cpp b/src/opt/pus/Service8FunctionManagement.cpp similarity index 100% rename from pus/Service8FunctionManagement.cpp rename to src/opt/pus/Service8FunctionManagement.cpp diff --git a/pus/Service9TimeManagement.cpp b/src/opt/pus/Service9TimeManagement.cpp similarity index 100% rename from pus/Service9TimeManagement.cpp rename to src/opt/pus/Service9TimeManagement.cpp diff --git a/rmap/CMakeLists.txt b/src/opt/rmap/CMakeLists.txt similarity index 100% rename from rmap/CMakeLists.txt rename to src/opt/rmap/CMakeLists.txt diff --git a/rmap/RMAP.cpp b/src/opt/rmap/RMAP.cpp similarity index 100% rename from rmap/RMAP.cpp rename to src/opt/rmap/RMAP.cpp diff --git a/rmap/RMAPCookie.cpp b/src/opt/rmap/RMAPCookie.cpp similarity index 100% rename from rmap/RMAPCookie.cpp rename to src/opt/rmap/RMAPCookie.cpp diff --git a/rmap/RmapDeviceCommunicationIF.cpp b/src/opt/rmap/RmapDeviceCommunicationIF.cpp similarity index 100% rename from rmap/RmapDeviceCommunicationIF.cpp rename to src/opt/rmap/RmapDeviceCommunicationIF.cpp diff --git a/tmstorage/CMakeLists.txt b/src/opt/tmstorage/CMakeLists.txt similarity index 100% rename from tmstorage/CMakeLists.txt rename to src/opt/tmstorage/CMakeLists.txt diff --git a/tmstorage/TmStoreMessage.cpp b/src/opt/tmstorage/TmStoreMessage.cpp similarity index 100% rename from tmstorage/TmStoreMessage.cpp rename to src/opt/tmstorage/TmStoreMessage.cpp diff --git a/osal/CMakeLists.txt b/src/osal/CMakeLists.txt similarity index 100% rename from osal/CMakeLists.txt rename to src/osal/CMakeLists.txt diff --git a/osal/common/CMakeLists.txt b/src/osal/common/CMakeLists.txt similarity index 100% rename from osal/common/CMakeLists.txt rename to src/osal/common/CMakeLists.txt diff --git a/osal/common/TcpIpBase.cpp b/src/osal/common/TcpIpBase.cpp similarity index 100% rename from osal/common/TcpIpBase.cpp rename to src/osal/common/TcpIpBase.cpp diff --git a/osal/common/TcpTmTcBridge.cpp b/src/osal/common/TcpTmTcBridge.cpp similarity index 100% rename from osal/common/TcpTmTcBridge.cpp rename to src/osal/common/TcpTmTcBridge.cpp diff --git a/osal/common/TcpTmTcServer.cpp b/src/osal/common/TcpTmTcServer.cpp similarity index 100% rename from osal/common/TcpTmTcServer.cpp rename to src/osal/common/TcpTmTcServer.cpp diff --git a/osal/common/UdpTcPollingTask.cpp b/src/osal/common/UdpTcPollingTask.cpp similarity index 100% rename from osal/common/UdpTcPollingTask.cpp rename to src/osal/common/UdpTcPollingTask.cpp diff --git a/osal/common/UdpTmTcBridge.cpp b/src/osal/common/UdpTmTcBridge.cpp similarity index 100% rename from osal/common/UdpTmTcBridge.cpp rename to src/osal/common/UdpTmTcBridge.cpp diff --git a/osal/common/tcpipCommon.cpp b/src/osal/common/tcpipCommon.cpp similarity index 100% rename from osal/common/tcpipCommon.cpp rename to src/osal/common/tcpipCommon.cpp diff --git a/osal/FreeRTOS/BinSemaphUsingTask.cpp b/src/osal/freertos/BinSemaphUsingTask.cpp similarity index 100% rename from osal/FreeRTOS/BinSemaphUsingTask.cpp rename to src/osal/freertos/BinSemaphUsingTask.cpp diff --git a/osal/FreeRTOS/BinarySemaphore.cpp b/src/osal/freertos/BinarySemaphore.cpp similarity index 100% rename from osal/FreeRTOS/BinarySemaphore.cpp rename to src/osal/freertos/BinarySemaphore.cpp diff --git a/osal/FreeRTOS/CMakeLists.txt b/src/osal/freertos/CMakeLists.txt similarity index 100% rename from osal/FreeRTOS/CMakeLists.txt rename to src/osal/freertos/CMakeLists.txt diff --git a/osal/FreeRTOS/Clock.cpp b/src/osal/freertos/Clock.cpp similarity index 100% rename from osal/FreeRTOS/Clock.cpp rename to src/osal/freertos/Clock.cpp diff --git a/osal/FreeRTOS/CountingSemaphUsingTask.cpp b/src/osal/freertos/CountingSemaphUsingTask.cpp similarity index 100% rename from osal/FreeRTOS/CountingSemaphUsingTask.cpp rename to src/osal/freertos/CountingSemaphUsingTask.cpp diff --git a/osal/FreeRTOS/CountingSemaphore.cpp b/src/osal/freertos/CountingSemaphore.cpp similarity index 100% rename from osal/FreeRTOS/CountingSemaphore.cpp rename to src/osal/freertos/CountingSemaphore.cpp diff --git a/osal/FreeRTOS/FixedTimeslotTask.cpp b/src/osal/freertos/FixedTimeslotTask.cpp similarity index 100% rename from osal/FreeRTOS/FixedTimeslotTask.cpp rename to src/osal/freertos/FixedTimeslotTask.cpp diff --git a/osal/FreeRTOS/MessageQueue.cpp b/src/osal/freertos/MessageQueue.cpp similarity index 100% rename from osal/FreeRTOS/MessageQueue.cpp rename to src/osal/freertos/MessageQueue.cpp diff --git a/osal/FreeRTOS/Mutex.cpp b/src/osal/freertos/Mutex.cpp similarity index 100% rename from osal/FreeRTOS/Mutex.cpp rename to src/osal/freertos/Mutex.cpp diff --git a/osal/FreeRTOS/MutexFactory.cpp b/src/osal/freertos/MutexFactory.cpp similarity index 100% rename from osal/FreeRTOS/MutexFactory.cpp rename to src/osal/freertos/MutexFactory.cpp diff --git a/osal/FreeRTOS/PeriodicTask.cpp b/src/osal/freertos/PeriodicTask.cpp similarity index 100% rename from osal/FreeRTOS/PeriodicTask.cpp rename to src/osal/freertos/PeriodicTask.cpp diff --git a/osal/FreeRTOS/QueueFactory.cpp b/src/osal/freertos/QueueFactory.cpp similarity index 100% rename from osal/FreeRTOS/QueueFactory.cpp rename to src/osal/freertos/QueueFactory.cpp diff --git a/osal/FreeRTOS/QueueMapManager.cpp b/src/osal/freertos/QueueMapManager.cpp similarity index 100% rename from osal/FreeRTOS/QueueMapManager.cpp rename to src/osal/freertos/QueueMapManager.cpp diff --git a/osal/FreeRTOS/SemaphoreFactory.cpp b/src/osal/freertos/SemaphoreFactory.cpp similarity index 100% rename from osal/FreeRTOS/SemaphoreFactory.cpp rename to src/osal/freertos/SemaphoreFactory.cpp diff --git a/osal/FreeRTOS/TaskFactory.cpp b/src/osal/freertos/TaskFactory.cpp similarity index 100% rename from osal/FreeRTOS/TaskFactory.cpp rename to src/osal/freertos/TaskFactory.cpp diff --git a/osal/FreeRTOS/TaskManagement.cpp b/src/osal/freertos/TaskManagement.cpp similarity index 100% rename from osal/FreeRTOS/TaskManagement.cpp rename to src/osal/freertos/TaskManagement.cpp diff --git a/osal/FreeRTOS/Timekeeper.cpp b/src/osal/freertos/Timekeeper.cpp similarity index 100% rename from osal/FreeRTOS/Timekeeper.cpp rename to src/osal/freertos/Timekeeper.cpp diff --git a/osal/host/CMakeLists.txt b/src/osal/host/CMakeLists.txt similarity index 100% rename from osal/host/CMakeLists.txt rename to src/osal/host/CMakeLists.txt diff --git a/osal/host/Clock.cpp b/src/osal/host/Clock.cpp similarity index 100% rename from osal/host/Clock.cpp rename to src/osal/host/Clock.cpp diff --git a/osal/host/FixedTimeslotTask.cpp b/src/osal/host/FixedTimeslotTask.cpp similarity index 100% rename from osal/host/FixedTimeslotTask.cpp rename to src/osal/host/FixedTimeslotTask.cpp diff --git a/osal/host/MessageQueue.cpp b/src/osal/host/MessageQueue.cpp similarity index 100% rename from osal/host/MessageQueue.cpp rename to src/osal/host/MessageQueue.cpp diff --git a/osal/host/MutexFactory.cpp b/src/osal/host/MutexFactory.cpp similarity index 100% rename from osal/host/MutexFactory.cpp rename to src/osal/host/MutexFactory.cpp diff --git a/osal/host/PeriodicTask.cpp b/src/osal/host/PeriodicTask.cpp similarity index 100% rename from osal/host/PeriodicTask.cpp rename to src/osal/host/PeriodicTask.cpp diff --git a/osal/host/QueueFactory.cpp b/src/osal/host/QueueFactory.cpp similarity index 100% rename from osal/host/QueueFactory.cpp rename to src/osal/host/QueueFactory.cpp diff --git a/osal/host/QueueMapManager.cpp b/src/osal/host/QueueMapManager.cpp similarity index 100% rename from osal/host/QueueMapManager.cpp rename to src/osal/host/QueueMapManager.cpp diff --git a/osal/host/SemaphoreFactory.cpp b/src/osal/host/SemaphoreFactory.cpp similarity index 100% rename from osal/host/SemaphoreFactory.cpp rename to src/osal/host/SemaphoreFactory.cpp diff --git a/osal/host/TaskFactory.cpp b/src/osal/host/TaskFactory.cpp similarity index 100% rename from osal/host/TaskFactory.cpp rename to src/osal/host/TaskFactory.cpp diff --git a/osal/host/taskHelpers.cpp b/src/osal/host/taskHelpers.cpp similarity index 100% rename from osal/host/taskHelpers.cpp rename to src/osal/host/taskHelpers.cpp diff --git a/osal/linux/BinarySemaphore.cpp b/src/osal/linux/BinarySemaphore.cpp similarity index 100% rename from osal/linux/BinarySemaphore.cpp rename to src/osal/linux/BinarySemaphore.cpp diff --git a/osal/linux/CMakeLists.txt b/src/osal/linux/CMakeLists.txt similarity index 100% rename from osal/linux/CMakeLists.txt rename to src/osal/linux/CMakeLists.txt diff --git a/osal/linux/Clock.cpp b/src/osal/linux/Clock.cpp similarity index 100% rename from osal/linux/Clock.cpp rename to src/osal/linux/Clock.cpp diff --git a/osal/linux/CountingSemaphore.cpp b/src/osal/linux/CountingSemaphore.cpp similarity index 100% rename from osal/linux/CountingSemaphore.cpp rename to src/osal/linux/CountingSemaphore.cpp diff --git a/osal/linux/FixedTimeslotTask.cpp b/src/osal/linux/FixedTimeslotTask.cpp similarity index 100% rename from osal/linux/FixedTimeslotTask.cpp rename to src/osal/linux/FixedTimeslotTask.cpp diff --git a/osal/linux/InternalErrorCodes.cpp b/src/osal/linux/InternalErrorCodes.cpp similarity index 100% rename from osal/linux/InternalErrorCodes.cpp rename to src/osal/linux/InternalErrorCodes.cpp diff --git a/osal/linux/MessageQueue.cpp b/src/osal/linux/MessageQueue.cpp similarity index 100% rename from osal/linux/MessageQueue.cpp rename to src/osal/linux/MessageQueue.cpp diff --git a/osal/linux/Mutex.cpp b/src/osal/linux/Mutex.cpp similarity index 100% rename from osal/linux/Mutex.cpp rename to src/osal/linux/Mutex.cpp diff --git a/osal/linux/MutexFactory.cpp b/src/osal/linux/MutexFactory.cpp similarity index 100% rename from osal/linux/MutexFactory.cpp rename to src/osal/linux/MutexFactory.cpp diff --git a/osal/linux/PeriodicPosixTask.cpp b/src/osal/linux/PeriodicPosixTask.cpp similarity index 100% rename from osal/linux/PeriodicPosixTask.cpp rename to src/osal/linux/PeriodicPosixTask.cpp diff --git a/osal/linux/PosixThread.cpp b/src/osal/linux/PosixThread.cpp similarity index 100% rename from osal/linux/PosixThread.cpp rename to src/osal/linux/PosixThread.cpp diff --git a/osal/linux/QueueFactory.cpp b/src/osal/linux/QueueFactory.cpp similarity index 100% rename from osal/linux/QueueFactory.cpp rename to src/osal/linux/QueueFactory.cpp diff --git a/osal/linux/SemaphoreFactory.cpp b/src/osal/linux/SemaphoreFactory.cpp similarity index 100% rename from osal/linux/SemaphoreFactory.cpp rename to src/osal/linux/SemaphoreFactory.cpp diff --git a/osal/linux/TaskFactory.cpp b/src/osal/linux/TaskFactory.cpp similarity index 100% rename from osal/linux/TaskFactory.cpp rename to src/osal/linux/TaskFactory.cpp diff --git a/osal/linux/Timer.cpp b/src/osal/linux/Timer.cpp similarity index 100% rename from osal/linux/Timer.cpp rename to src/osal/linux/Timer.cpp diff --git a/osal/linux/tcpipHelpers.cpp b/src/osal/linux/tcpipHelpers.cpp similarity index 100% rename from osal/linux/tcpipHelpers.cpp rename to src/osal/linux/tcpipHelpers.cpp diff --git a/osal/linux/unixUtility.cpp b/src/osal/linux/unixUtility.cpp similarity index 100% rename from osal/linux/unixUtility.cpp rename to src/osal/linux/unixUtility.cpp diff --git a/osal/rtems/CMakeLists.txt b/src/osal/rtems/CMakeLists.txt similarity index 100% rename from osal/rtems/CMakeLists.txt rename to src/osal/rtems/CMakeLists.txt diff --git a/osal/rtems/Clock.cpp b/src/osal/rtems/Clock.cpp similarity index 100% rename from osal/rtems/Clock.cpp rename to src/osal/rtems/Clock.cpp diff --git a/osal/rtems/CpuUsage.cpp b/src/osal/rtems/CpuUsage.cpp similarity index 100% rename from osal/rtems/CpuUsage.cpp rename to src/osal/rtems/CpuUsage.cpp diff --git a/osal/rtems/FixedTimeslotTask.cpp b/src/osal/rtems/FixedTimeslotTask.cpp similarity index 100% rename from osal/rtems/FixedTimeslotTask.cpp rename to src/osal/rtems/FixedTimeslotTask.cpp diff --git a/osal/rtems/InitTask.cpp b/src/osal/rtems/InitTask.cpp similarity index 100% rename from osal/rtems/InitTask.cpp rename to src/osal/rtems/InitTask.cpp diff --git a/osal/rtems/InternalErrorCodes.cpp b/src/osal/rtems/InternalErrorCodes.cpp similarity index 100% rename from osal/rtems/InternalErrorCodes.cpp rename to src/osal/rtems/InternalErrorCodes.cpp diff --git a/osal/rtems/MessageQueue.cpp b/src/osal/rtems/MessageQueue.cpp similarity index 100% rename from osal/rtems/MessageQueue.cpp rename to src/osal/rtems/MessageQueue.cpp diff --git a/osal/rtems/Mutex.cpp b/src/osal/rtems/Mutex.cpp similarity index 100% rename from osal/rtems/Mutex.cpp rename to src/osal/rtems/Mutex.cpp diff --git a/osal/rtems/MutexFactory.cpp b/src/osal/rtems/MutexFactory.cpp similarity index 100% rename from osal/rtems/MutexFactory.cpp rename to src/osal/rtems/MutexFactory.cpp diff --git a/osal/rtems/PeriodicTask.cpp b/src/osal/rtems/PeriodicTask.cpp similarity index 100% rename from osal/rtems/PeriodicTask.cpp rename to src/osal/rtems/PeriodicTask.cpp diff --git a/osal/rtems/QueueFactory.cpp b/src/osal/rtems/QueueFactory.cpp similarity index 100% rename from osal/rtems/QueueFactory.cpp rename to src/osal/rtems/QueueFactory.cpp diff --git a/osal/rtems/RTEMSTaskBase.cpp b/src/osal/rtems/RTEMSTaskBase.cpp similarity index 100% rename from osal/rtems/RTEMSTaskBase.cpp rename to src/osal/rtems/RTEMSTaskBase.cpp diff --git a/osal/rtems/RtemsBasic.cpp b/src/osal/rtems/RtemsBasic.cpp similarity index 100% rename from osal/rtems/RtemsBasic.cpp rename to src/osal/rtems/RtemsBasic.cpp diff --git a/osal/rtems/TaskFactory.cpp b/src/osal/rtems/TaskFactory.cpp similarity index 100% rename from osal/rtems/TaskFactory.cpp rename to src/osal/rtems/TaskFactory.cpp diff --git a/osal/windows/CMakeLists.txt b/src/osal/windows/CMakeLists.txt similarity index 100% rename from osal/windows/CMakeLists.txt rename to src/osal/windows/CMakeLists.txt diff --git a/osal/windows/tcpipHelpers.cpp b/src/osal/windows/tcpipHelpers.cpp similarity index 100% rename from osal/windows/tcpipHelpers.cpp rename to src/osal/windows/tcpipHelpers.cpp diff --git a/osal/windows/winTaskHelpers.cpp b/src/osal/windows/winTaskHelpers.cpp similarity index 100% rename from osal/windows/winTaskHelpers.cpp rename to src/osal/windows/winTaskHelpers.cpp diff --git a/unittest/CMakeLists.txt b/src/tests/CMakeLists.txt similarity index 100% rename from unittest/CMakeLists.txt rename to src/tests/CMakeLists.txt diff --git a/unittest/README.md b/src/tests/README.md similarity index 100% rename from unittest/README.md rename to src/tests/README.md diff --git a/unittest/internal/CMakeLists.txt b/src/tests/internal/CMakeLists.txt similarity index 100% rename from unittest/internal/CMakeLists.txt rename to src/tests/internal/CMakeLists.txt diff --git a/unittest/internal/InternalUnitTester.cpp b/src/tests/internal/InternalUnitTester.cpp similarity index 100% rename from unittest/internal/InternalUnitTester.cpp rename to src/tests/internal/InternalUnitTester.cpp diff --git a/unittest/internal/InternalUnitTester.h b/src/tests/internal/InternalUnitTester.h similarity index 100% rename from unittest/internal/InternalUnitTester.h rename to src/tests/internal/InternalUnitTester.h diff --git a/unittest/internal/UnittDefinitions.cpp b/src/tests/internal/UnittDefinitions.cpp similarity index 100% rename from unittest/internal/UnittDefinitions.cpp rename to src/tests/internal/UnittDefinitions.cpp diff --git a/unittest/internal/UnittDefinitions.h b/src/tests/internal/UnittDefinitions.h similarity index 100% rename from unittest/internal/UnittDefinitions.h rename to src/tests/internal/UnittDefinitions.h diff --git a/unittest/internal/globalfunctions/CMakeLists.txt b/src/tests/internal/globalfunctions/CMakeLists.txt similarity index 100% rename from unittest/internal/globalfunctions/CMakeLists.txt rename to src/tests/internal/globalfunctions/CMakeLists.txt diff --git a/unittest/internal/globalfunctions/TestArrayPrinter.cpp b/src/tests/internal/globalfunctions/TestArrayPrinter.cpp similarity index 100% rename from unittest/internal/globalfunctions/TestArrayPrinter.cpp rename to src/tests/internal/globalfunctions/TestArrayPrinter.cpp diff --git a/unittest/internal/globalfunctions/TestArrayPrinter.h b/src/tests/internal/globalfunctions/TestArrayPrinter.h similarity index 100% rename from unittest/internal/globalfunctions/TestArrayPrinter.h rename to src/tests/internal/globalfunctions/TestArrayPrinter.h diff --git a/unittest/internal/internal.mk b/src/tests/internal/internal.mk similarity index 100% rename from unittest/internal/internal.mk rename to src/tests/internal/internal.mk diff --git a/unittest/internal/osal/CMakeLists.txt b/src/tests/internal/osal/CMakeLists.txt similarity index 100% rename from unittest/internal/osal/CMakeLists.txt rename to src/tests/internal/osal/CMakeLists.txt diff --git a/unittest/internal/osal/IntTestMq.cpp b/src/tests/internal/osal/IntTestMq.cpp similarity index 100% rename from unittest/internal/osal/IntTestMq.cpp rename to src/tests/internal/osal/IntTestMq.cpp diff --git a/unittest/internal/osal/IntTestMq.h b/src/tests/internal/osal/IntTestMq.h similarity index 100% rename from unittest/internal/osal/IntTestMq.h rename to src/tests/internal/osal/IntTestMq.h diff --git a/unittest/internal/osal/IntTestMutex.cpp b/src/tests/internal/osal/IntTestMutex.cpp similarity index 100% rename from unittest/internal/osal/IntTestMutex.cpp rename to src/tests/internal/osal/IntTestMutex.cpp diff --git a/unittest/internal/osal/IntTestMutex.h b/src/tests/internal/osal/IntTestMutex.h similarity index 100% rename from unittest/internal/osal/IntTestMutex.h rename to src/tests/internal/osal/IntTestMutex.h diff --git a/unittest/internal/osal/IntTestSemaphore.cpp b/src/tests/internal/osal/IntTestSemaphore.cpp similarity index 100% rename from unittest/internal/osal/IntTestSemaphore.cpp rename to src/tests/internal/osal/IntTestSemaphore.cpp diff --git a/unittest/internal/osal/IntTestSemaphore.h b/src/tests/internal/osal/IntTestSemaphore.h similarity index 100% rename from unittest/internal/osal/IntTestSemaphore.h rename to src/tests/internal/osal/IntTestSemaphore.h diff --git a/unittest/internal/serialize/CMakeLists.txt b/src/tests/internal/serialize/CMakeLists.txt similarity index 100% rename from unittest/internal/serialize/CMakeLists.txt rename to src/tests/internal/serialize/CMakeLists.txt diff --git a/unittest/internal/serialize/IntTestSerialization.cpp b/src/tests/internal/serialize/IntTestSerialization.cpp similarity index 100% rename from unittest/internal/serialize/IntTestSerialization.cpp rename to src/tests/internal/serialize/IntTestSerialization.cpp diff --git a/unittest/internal/serialize/IntTestSerialization.h b/src/tests/internal/serialize/IntTestSerialization.h similarity index 100% rename from unittest/internal/serialize/IntTestSerialization.h rename to src/tests/internal/serialize/IntTestSerialization.h diff --git a/unittest/lcov.sh b/src/tests/lcov.sh similarity index 100% rename from unittest/lcov.sh rename to src/tests/lcov.sh diff --git a/unittest/tests/CMakeLists.txt b/src/tests/tests/CMakeLists.txt similarity index 100% rename from unittest/tests/CMakeLists.txt rename to src/tests/tests/CMakeLists.txt diff --git a/unittest/tests/action/CMakeLists.txt b/src/tests/tests/action/CMakeLists.txt similarity index 100% rename from unittest/tests/action/CMakeLists.txt rename to src/tests/tests/action/CMakeLists.txt diff --git a/unittest/tests/action/TestActionHelper.cpp b/src/tests/tests/action/TestActionHelper.cpp similarity index 100% rename from unittest/tests/action/TestActionHelper.cpp rename to src/tests/tests/action/TestActionHelper.cpp diff --git a/unittest/tests/action/TestActionHelper.h b/src/tests/tests/action/TestActionHelper.h similarity index 100% rename from unittest/tests/action/TestActionHelper.h rename to src/tests/tests/action/TestActionHelper.h diff --git a/unittest/tests/container/CMakeLists.txt b/src/tests/tests/container/CMakeLists.txt similarity index 100% rename from unittest/tests/container/CMakeLists.txt rename to src/tests/tests/container/CMakeLists.txt diff --git a/unittest/tests/container/RingBufferTest.cpp b/src/tests/tests/container/RingBufferTest.cpp similarity index 100% rename from unittest/tests/container/RingBufferTest.cpp rename to src/tests/tests/container/RingBufferTest.cpp diff --git a/unittest/tests/container/TestArrayList.cpp b/src/tests/tests/container/TestArrayList.cpp similarity index 100% rename from unittest/tests/container/TestArrayList.cpp rename to src/tests/tests/container/TestArrayList.cpp diff --git a/unittest/tests/container/TestDynamicFifo.cpp b/src/tests/tests/container/TestDynamicFifo.cpp similarity index 100% rename from unittest/tests/container/TestDynamicFifo.cpp rename to src/tests/tests/container/TestDynamicFifo.cpp diff --git a/unittest/tests/container/TestFifo.cpp b/src/tests/tests/container/TestFifo.cpp similarity index 100% rename from unittest/tests/container/TestFifo.cpp rename to src/tests/tests/container/TestFifo.cpp diff --git a/unittest/tests/container/TestFixedArrayList.cpp b/src/tests/tests/container/TestFixedArrayList.cpp similarity index 100% rename from unittest/tests/container/TestFixedArrayList.cpp rename to src/tests/tests/container/TestFixedArrayList.cpp diff --git a/unittest/tests/container/TestFixedMap.cpp b/src/tests/tests/container/TestFixedMap.cpp similarity index 100% rename from unittest/tests/container/TestFixedMap.cpp rename to src/tests/tests/container/TestFixedMap.cpp diff --git a/unittest/tests/container/TestFixedOrderedMultimap.cpp b/src/tests/tests/container/TestFixedOrderedMultimap.cpp similarity index 100% rename from unittest/tests/container/TestFixedOrderedMultimap.cpp rename to src/tests/tests/container/TestFixedOrderedMultimap.cpp diff --git a/unittest/tests/container/TestPlacementFactory.cpp b/src/tests/tests/container/TestPlacementFactory.cpp similarity index 100% rename from unittest/tests/container/TestPlacementFactory.cpp rename to src/tests/tests/container/TestPlacementFactory.cpp diff --git a/unittest/tests/datapoollocal/CMakeLists.txt b/src/tests/tests/datapoollocal/CMakeLists.txt similarity index 100% rename from unittest/tests/datapoollocal/CMakeLists.txt rename to src/tests/tests/datapoollocal/CMakeLists.txt diff --git a/unittest/tests/datapoollocal/DataSetTest.cpp b/src/tests/tests/datapoollocal/DataSetTest.cpp similarity index 100% rename from unittest/tests/datapoollocal/DataSetTest.cpp rename to src/tests/tests/datapoollocal/DataSetTest.cpp diff --git a/unittest/tests/datapoollocal/LocalPoolManagerTest.cpp b/src/tests/tests/datapoollocal/LocalPoolManagerTest.cpp similarity index 100% rename from unittest/tests/datapoollocal/LocalPoolManagerTest.cpp rename to src/tests/tests/datapoollocal/LocalPoolManagerTest.cpp diff --git a/unittest/tests/datapoollocal/LocalPoolOwnerBase.cpp b/src/tests/tests/datapoollocal/LocalPoolOwnerBase.cpp similarity index 100% rename from unittest/tests/datapoollocal/LocalPoolOwnerBase.cpp rename to src/tests/tests/datapoollocal/LocalPoolOwnerBase.cpp diff --git a/unittest/tests/datapoollocal/LocalPoolOwnerBase.h b/src/tests/tests/datapoollocal/LocalPoolOwnerBase.h similarity index 100% rename from unittest/tests/datapoollocal/LocalPoolOwnerBase.h rename to src/tests/tests/datapoollocal/LocalPoolOwnerBase.h diff --git a/unittest/tests/datapoollocal/LocalPoolVariableTest.cpp b/src/tests/tests/datapoollocal/LocalPoolVariableTest.cpp similarity index 100% rename from unittest/tests/datapoollocal/LocalPoolVariableTest.cpp rename to src/tests/tests/datapoollocal/LocalPoolVariableTest.cpp diff --git a/unittest/tests/datapoollocal/LocalPoolVectorTest.cpp b/src/tests/tests/datapoollocal/LocalPoolVectorTest.cpp similarity index 100% rename from unittest/tests/datapoollocal/LocalPoolVectorTest.cpp rename to src/tests/tests/datapoollocal/LocalPoolVectorTest.cpp diff --git a/unittest/tests/globalfunctions/CMakeLists.txt b/src/tests/tests/globalfunctions/CMakeLists.txt similarity index 100% rename from unittest/tests/globalfunctions/CMakeLists.txt rename to src/tests/tests/globalfunctions/CMakeLists.txt diff --git a/unittest/tests/mocks/HkReceiverMock.h b/src/tests/tests/mocks/HkReceiverMock.h similarity index 100% rename from unittest/tests/mocks/HkReceiverMock.h rename to src/tests/tests/mocks/HkReceiverMock.h diff --git a/unittest/tests/mocks/MessageQueueMockBase.h b/src/tests/tests/mocks/MessageQueueMockBase.h similarity index 100% rename from unittest/tests/mocks/MessageQueueMockBase.h rename to src/tests/tests/mocks/MessageQueueMockBase.h diff --git a/unittest/tests/osal/CMakeLists.txt b/src/tests/tests/osal/CMakeLists.txt similarity index 100% rename from unittest/tests/osal/CMakeLists.txt rename to src/tests/tests/osal/CMakeLists.txt diff --git a/unittest/tests/osal/TestMessageQueue.cpp b/src/tests/tests/osal/TestMessageQueue.cpp similarity index 100% rename from unittest/tests/osal/TestMessageQueue.cpp rename to src/tests/tests/osal/TestMessageQueue.cpp diff --git a/unittest/tests/osal/TestSemaphore.cpp b/src/tests/tests/osal/TestSemaphore.cpp similarity index 100% rename from unittest/tests/osal/TestSemaphore.cpp rename to src/tests/tests/osal/TestSemaphore.cpp diff --git a/unittest/tests/serialize/CMakeLists.txt b/src/tests/tests/serialize/CMakeLists.txt similarity index 100% rename from unittest/tests/serialize/CMakeLists.txt rename to src/tests/tests/serialize/CMakeLists.txt diff --git a/unittest/tests/serialize/TestSerialBufferAdapter.cpp b/src/tests/tests/serialize/TestSerialBufferAdapter.cpp similarity index 100% rename from unittest/tests/serialize/TestSerialBufferAdapter.cpp rename to src/tests/tests/serialize/TestSerialBufferAdapter.cpp diff --git a/unittest/tests/serialize/TestSerialLinkedPacket.cpp b/src/tests/tests/serialize/TestSerialLinkedPacket.cpp similarity index 100% rename from unittest/tests/serialize/TestSerialLinkedPacket.cpp rename to src/tests/tests/serialize/TestSerialLinkedPacket.cpp diff --git a/unittest/tests/serialize/TestSerialLinkedPacket.h b/src/tests/tests/serialize/TestSerialLinkedPacket.h similarity index 100% rename from unittest/tests/serialize/TestSerialLinkedPacket.h rename to src/tests/tests/serialize/TestSerialLinkedPacket.h diff --git a/unittest/tests/serialize/TestSerialization.cpp b/src/tests/tests/serialize/TestSerialization.cpp similarity index 100% rename from unittest/tests/serialize/TestSerialization.cpp rename to src/tests/tests/serialize/TestSerialization.cpp diff --git a/unittest/tests/storagemanager/CMakeLists.txt b/src/tests/tests/storagemanager/CMakeLists.txt similarity index 100% rename from unittest/tests/storagemanager/CMakeLists.txt rename to src/tests/tests/storagemanager/CMakeLists.txt diff --git a/unittest/tests/storagemanager/TestNewAccessor.cpp b/src/tests/tests/storagemanager/TestNewAccessor.cpp similarity index 100% rename from unittest/tests/storagemanager/TestNewAccessor.cpp rename to src/tests/tests/storagemanager/TestNewAccessor.cpp diff --git a/unittest/tests/storagemanager/TestPool.cpp b/src/tests/tests/storagemanager/TestPool.cpp similarity index 100% rename from unittest/tests/storagemanager/TestPool.cpp rename to src/tests/tests/storagemanager/TestPool.cpp diff --git a/unittest/tests/tests.mk b/src/tests/tests/tests.mk similarity index 100% rename from unittest/tests/tests.mk rename to src/tests/tests/tests.mk diff --git a/unittest/tests/tmtcpacket/CMakeLists.txt b/src/tests/tests/tmtcpacket/CMakeLists.txt similarity index 100% rename from unittest/tests/tmtcpacket/CMakeLists.txt rename to src/tests/tests/tmtcpacket/CMakeLists.txt diff --git a/unittest/tests/tmtcpacket/PusTmTest.cpp b/src/tests/tests/tmtcpacket/PusTmTest.cpp similarity index 100% rename from unittest/tests/tmtcpacket/PusTmTest.cpp rename to src/tests/tests/tmtcpacket/PusTmTest.cpp diff --git a/unittest/user/CMakeLists.txt b/src/tests/user/CMakeLists.txt similarity index 100% rename from unittest/user/CMakeLists.txt rename to src/tests/user/CMakeLists.txt diff --git a/unittest/user/testcfg/CMakeLists.txt b/src/tests/user/testcfg/CMakeLists.txt similarity index 100% rename from unittest/user/testcfg/CMakeLists.txt rename to src/tests/user/testcfg/CMakeLists.txt diff --git a/unittest/user/testcfg/FSFWConfig.h b/src/tests/user/testcfg/FSFWConfig.h similarity index 100% rename from unittest/user/testcfg/FSFWConfig.h rename to src/tests/user/testcfg/FSFWConfig.h diff --git a/unittest/user/testcfg/Makefile-FSFW-Tests b/src/tests/user/testcfg/Makefile-FSFW-Tests similarity index 100% rename from unittest/user/testcfg/Makefile-FSFW-Tests rename to src/tests/user/testcfg/Makefile-FSFW-Tests diff --git a/unittest/user/testcfg/TestsConfig.h b/src/tests/user/testcfg/TestsConfig.h similarity index 100% rename from unittest/user/testcfg/TestsConfig.h rename to src/tests/user/testcfg/TestsConfig.h diff --git a/unittest/user/testcfg/cdatapool/dataPoolInit.cpp b/src/tests/user/testcfg/cdatapool/dataPoolInit.cpp similarity index 100% rename from unittest/user/testcfg/cdatapool/dataPoolInit.cpp rename to src/tests/user/testcfg/cdatapool/dataPoolInit.cpp diff --git a/unittest/user/testcfg/cdatapool/dataPoolInit.h b/src/tests/user/testcfg/cdatapool/dataPoolInit.h similarity index 100% rename from unittest/user/testcfg/cdatapool/dataPoolInit.h rename to src/tests/user/testcfg/cdatapool/dataPoolInit.h diff --git a/unittest/user/testcfg/devices/logicalAddresses.cpp b/src/tests/user/testcfg/devices/logicalAddresses.cpp similarity index 100% rename from unittest/user/testcfg/devices/logicalAddresses.cpp rename to src/tests/user/testcfg/devices/logicalAddresses.cpp diff --git a/unittest/user/testcfg/devices/logicalAddresses.h b/src/tests/user/testcfg/devices/logicalAddresses.h similarity index 100% rename from unittest/user/testcfg/devices/logicalAddresses.h rename to src/tests/user/testcfg/devices/logicalAddresses.h diff --git a/unittest/user/testcfg/devices/powerSwitcherList.cpp b/src/tests/user/testcfg/devices/powerSwitcherList.cpp similarity index 100% rename from unittest/user/testcfg/devices/powerSwitcherList.cpp rename to src/tests/user/testcfg/devices/powerSwitcherList.cpp diff --git a/unittest/user/testcfg/devices/powerSwitcherList.h b/src/tests/user/testcfg/devices/powerSwitcherList.h similarity index 100% rename from unittest/user/testcfg/devices/powerSwitcherList.h rename to src/tests/user/testcfg/devices/powerSwitcherList.h diff --git a/unittest/user/testcfg/events/subsystemIdRanges.h b/src/tests/user/testcfg/events/subsystemIdRanges.h similarity index 100% rename from unittest/user/testcfg/events/subsystemIdRanges.h rename to src/tests/user/testcfg/events/subsystemIdRanges.h diff --git a/unittest/user/testcfg/ipc/MissionMessageTypes.cpp b/src/tests/user/testcfg/ipc/MissionMessageTypes.cpp similarity index 100% rename from unittest/user/testcfg/ipc/MissionMessageTypes.cpp rename to src/tests/user/testcfg/ipc/MissionMessageTypes.cpp diff --git a/unittest/user/testcfg/ipc/MissionMessageTypes.h b/src/tests/user/testcfg/ipc/MissionMessageTypes.h similarity index 100% rename from unittest/user/testcfg/ipc/MissionMessageTypes.h rename to src/tests/user/testcfg/ipc/MissionMessageTypes.h diff --git a/unittest/user/testcfg/objects/systemObjectList.h b/src/tests/user/testcfg/objects/systemObjectList.h similarity index 100% rename from unittest/user/testcfg/objects/systemObjectList.h rename to src/tests/user/testcfg/objects/systemObjectList.h diff --git a/unittest/user/testcfg/pollingsequence/PollingSequenceFactory.cpp b/src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp similarity index 100% rename from unittest/user/testcfg/pollingsequence/PollingSequenceFactory.cpp rename to src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp diff --git a/unittest/user/testcfg/pollingsequence/PollingSequenceFactory.h b/src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.h similarity index 100% rename from unittest/user/testcfg/pollingsequence/PollingSequenceFactory.h rename to src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.h diff --git a/unittest/user/testcfg/returnvalues/classIds.h b/src/tests/user/testcfg/returnvalues/classIds.h similarity index 100% rename from unittest/user/testcfg/returnvalues/classIds.h rename to src/tests/user/testcfg/returnvalues/classIds.h diff --git a/unittest/user/testcfg/testcfg.mk b/src/tests/user/testcfg/testcfg.mk similarity index 100% rename from unittest/user/testcfg/testcfg.mk rename to src/tests/user/testcfg/testcfg.mk diff --git a/unittest/user/testcfg/tmtc/apid.h b/src/tests/user/testcfg/tmtc/apid.h similarity index 100% rename from unittest/user/testcfg/tmtc/apid.h rename to src/tests/user/testcfg/tmtc/apid.h diff --git a/unittest/user/testcfg/tmtc/pusIds.h b/src/tests/user/testcfg/tmtc/pusIds.h similarity index 100% rename from unittest/user/testcfg/tmtc/pusIds.h rename to src/tests/user/testcfg/tmtc/pusIds.h diff --git a/unittest/user/testtemplate/TestTemplate.cpp b/src/tests/user/testtemplate/TestTemplate.cpp similarity index 100% rename from unittest/user/testtemplate/TestTemplate.cpp rename to src/tests/user/testtemplate/TestTemplate.cpp diff --git a/unittest/user/unittest/CMakeLists.txt b/src/tests/user/unittest/CMakeLists.txt similarity index 100% rename from unittest/user/unittest/CMakeLists.txt rename to src/tests/user/unittest/CMakeLists.txt diff --git a/unittest/user/unittest/core/CMakeLists.txt b/src/tests/user/unittest/core/CMakeLists.txt similarity index 100% rename from unittest/user/unittest/core/CMakeLists.txt rename to src/tests/user/unittest/core/CMakeLists.txt diff --git a/unittest/user/unittest/core/CatchDefinitions.cpp b/src/tests/user/unittest/core/CatchDefinitions.cpp similarity index 100% rename from unittest/user/unittest/core/CatchDefinitions.cpp rename to src/tests/user/unittest/core/CatchDefinitions.cpp diff --git a/unittest/user/unittest/core/CatchDefinitions.h b/src/tests/user/unittest/core/CatchDefinitions.h similarity index 100% rename from unittest/user/unittest/core/CatchDefinitions.h rename to src/tests/user/unittest/core/CatchDefinitions.h diff --git a/unittest/user/unittest/core/CatchFactory.cpp b/src/tests/user/unittest/core/CatchFactory.cpp similarity index 100% rename from unittest/user/unittest/core/CatchFactory.cpp rename to src/tests/user/unittest/core/CatchFactory.cpp diff --git a/unittest/user/unittest/core/CatchFactory.h b/src/tests/user/unittest/core/CatchFactory.h similarity index 100% rename from unittest/user/unittest/core/CatchFactory.h rename to src/tests/user/unittest/core/CatchFactory.h diff --git a/unittest/user/unittest/core/CatchRunner.cpp b/src/tests/user/unittest/core/CatchRunner.cpp similarity index 100% rename from unittest/user/unittest/core/CatchRunner.cpp rename to src/tests/user/unittest/core/CatchRunner.cpp diff --git a/unittest/user/unittest/core/CatchSetup.cpp b/src/tests/user/unittest/core/CatchSetup.cpp similarity index 100% rename from unittest/user/unittest/core/CatchSetup.cpp rename to src/tests/user/unittest/core/CatchSetup.cpp diff --git a/unittest/user/unittest/core/core.mk b/src/tests/user/unittest/core/core.mk similarity index 100% rename from unittest/user/unittest/core/core.mk rename to src/tests/user/unittest/core/core.mk diff --git a/unittest/user/unittest/core/printChar.cpp b/src/tests/user/unittest/core/printChar.cpp similarity index 100% rename from unittest/user/unittest/core/printChar.cpp rename to src/tests/user/unittest/core/printChar.cpp diff --git a/unittest/user/unittest/core/printChar.h b/src/tests/user/unittest/core/printChar.h similarity index 100% rename from unittest/user/unittest/core/printChar.h rename to src/tests/user/unittest/core/printChar.h diff --git a/unittest/user/unlockRealtime.sh b/src/tests/user/unlockRealtime.sh similarity index 100% rename from unittest/user/unlockRealtime.sh rename to src/tests/user/unlockRealtime.sh From f15352bb2f8eee905ef7485a2a72dd5ed52e0530 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 18:46:09 +0200 Subject: [PATCH 013/136] moved memory helper to core --- src/{opt => core}/memory/CMakeLists.txt | 0 src/{opt => core}/memory/GenericFileSystemMessage.cpp | 0 src/{opt => core}/memory/MemoryHelper.cpp | 0 src/{opt => core}/memory/MemoryMessage.cpp | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename src/{opt => core}/memory/CMakeLists.txt (100%) rename src/{opt => core}/memory/GenericFileSystemMessage.cpp (100%) rename src/{opt => core}/memory/MemoryHelper.cpp (100%) rename src/{opt => core}/memory/MemoryMessage.cpp (100%) diff --git a/src/opt/memory/CMakeLists.txt b/src/core/memory/CMakeLists.txt similarity index 100% rename from src/opt/memory/CMakeLists.txt rename to src/core/memory/CMakeLists.txt diff --git a/src/opt/memory/GenericFileSystemMessage.cpp b/src/core/memory/GenericFileSystemMessage.cpp similarity index 100% rename from src/opt/memory/GenericFileSystemMessage.cpp rename to src/core/memory/GenericFileSystemMessage.cpp diff --git a/src/opt/memory/MemoryHelper.cpp b/src/core/memory/MemoryHelper.cpp similarity index 100% rename from src/opt/memory/MemoryHelper.cpp rename to src/core/memory/MemoryHelper.cpp diff --git a/src/opt/memory/MemoryMessage.cpp b/src/core/memory/MemoryMessage.cpp similarity index 100% rename from src/opt/memory/MemoryMessage.cpp rename to src/core/memory/MemoryMessage.cpp From f14d5edf42f593b21598de45dec67fec42916b15 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 18:52:19 +0200 Subject: [PATCH 014/136] added more cmakelists files --- CMakeLists.txt | 53 ++++------------------------------------- src/CMakeLists.txt | 5 ++++ src/core/CMakeLists.txt | 29 ++++++++++++++++++++++ src/opt/CMakeLists.txt | 6 +++++ src/osal/CMakeLists.txt | 8 +++---- 5 files changed, 49 insertions(+), 52 deletions(-) create mode 100644 src/CMakeLists.txt create mode 100644 src/core/CMakeLists.txt create mode 100644 src/opt/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ff504f7b..2b04b978d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,18 +43,18 @@ endif() set(FSFW_OSAL_DEFINITION FSFW_HOST) -if(OS_FSFW MATCHES host) +if(FSFW_OSAL MATCHES host) set(OS_FSFW_NAME "Host") -elseif(OS_FSFW MATCHES linux) +elseif(FSFW_OSAL MATCHES linux) set(OS_FSFW_NAME "Linux") set(FSFW_OSAL_DEFINITION FSFW_LINUX) -elseif(OS_FSFW MATCHES freertos) +elseif(FSFW_OSAL MATCHES freertos) set(OS_FSFW_NAME "FreeRTOS") set(FSFW_OSAL_DEFINITION FSFW_FREERTOS) target_link_libraries(${LIB_FSFW_NAME} PRIVATE ${LIB_OS_NAME} ) -elseif(${OS_FSFW} STREQUAL rtems) +elseif(FSFW_OSAL STREQUAL rtems) set(OS_FSFW_NAME "RTEMS") set(FSFW_OSAL_DEFINITION FSFW_RTEMS) else() @@ -75,50 +75,7 @@ target_compile_definitions(${LIB_FSFW_NAME} INTERFACE message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") -add_subdirectory(action) -add_subdirectory(container) -add_subdirectory(controller) -add_subdirectory(coordinates) - -if(FSFW_USE_DATALINKLAYER) - add_subdirectory(datalinklayer) -endif() - -add_subdirectory(datapool) -add_subdirectory(datapoollocal) -add_subdirectory(housekeeping) -add_subdirectory(devicehandlers) -add_subdirectory(events) -add_subdirectory(fdir) -add_subdirectory(globalfunctions) -add_subdirectory(health) -add_subdirectory(internalError) -add_subdirectory(ipc) -add_subdirectory(memory) -add_subdirectory(modes) -add_subdirectory(monitoring) -add_subdirectory(objectmanager) -add_subdirectory(osal) -add_subdirectory(parameters) -add_subdirectory(power) -add_subdirectory(pus) - -if(FSFW_USE_RMAP) - add_subdirectory(rmap) -endif() - -add_subdirectory(serialize) -add_subdirectory(serviceinterface) -add_subdirectory(storagemanager) -add_subdirectory(subsystem) -add_subdirectory(tasks) -add_subdirectory(tcdistribution) -add_subdirectory(thermal) -add_subdirectory(timemanager) -add_subdirectory(tmstorage) -add_subdirectory(tmtcpacket) -add_subdirectory(tmtcservices) -add_subdirectory(unittest) +add_subdirectory(src) # The project CMakeLists file has to set the FSFW_CONFIG_PATH and add it. # If this is not given, we include the default configuration and emit a warning. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 000000000..b4f52cb12 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,5 @@ +add_subdirectory(core) +add_subdirectory(hal) +add_subdirectory(opt) +add_subdirectory(osal) +# add_subdirectory(tests) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt new file mode 100644 index 000000000..6240d8f2b --- /dev/null +++ b/src/core/CMakeLists.txt @@ -0,0 +1,29 @@ +add_subdirectory(action) +add_subdirectory(container) +add_subdirectory(controller) +add_subdirectory(datapool) +add_subdirectory(datapoollocal) +add_subdirectory(devicehandlers) +add_subdirectory(events) +add_subdirectory(fdir) +add_subdirectory(globalfunctions) +add_subdirectory(health) +add_subdirectory(housekeeping) +add_subdirectory(internalError) +add_subdirectory(ipc) +add_subdirectory(memory) +add_subdirectory(modes) +add_subdirectory(objectmanager) +add_subdirectory(parameters) +add_subdirectory(power) +add_subdirectory(serialize) +add_subdirectory(serviceinterface) +add_subdirectory(storagemanager) +add_subdirectory(subsystem) +add_subdirectory(tasks) +add_subdirectory(tcdistribution) +add_subdirectory(thermal) +add_subdirectory(timemanager) +add_subdirectory(tmstorage) +add_subdirectory(tmtcpacket) +add_subdirectory(tmtcservices) diff --git a/src/opt/CMakeLists.txt b/src/opt/CMakeLists.txt new file mode 100644 index 000000000..48ee664b3 --- /dev/null +++ b/src/opt/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(coordinates) +add_subdirectory(datalinklayer) +add_subdirectory(monitoring) +add_subdirectory(pus) +add_subdirectory(rmap) +add_subdirectory(tmstorage) diff --git a/src/osal/CMakeLists.txt b/src/osal/CMakeLists.txt index 76b939b1a..0e28bd3c1 100644 --- a/src/osal/CMakeLists.txt +++ b/src/osal/CMakeLists.txt @@ -1,11 +1,11 @@ # Check the OS_FSFW variable -if(${OS_FSFW} STREQUAL "freertos") +if(FSFW_OSAL MATCHES "freertos") add_subdirectory(FreeRTOS) -elseif(${OS_FSFW} STREQUAL "rtems") +elseif(FSFW_OSAL MATCHES "rtems") add_subdirectory(rtems) -elseif(${OS_FSFW} STREQUAL "linux") +elseif(FSFW_OSAL MATCHES "linux") add_subdirectory(linux) -elseif(${OS_FSFW} STREQUAL "host") +elseif(FSFW_OSAL MATCHES "host") add_subdirectory(host) if (WIN32) add_subdirectory(windows) From eee84f93186c454dd1b33944c5a73563b8adaca1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 18:53:07 +0200 Subject: [PATCH 015/136] some more corrections --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b04b978d..e21868226 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) set(LIB_FSFW_NAME fsfw) add_library(${LIB_FSFW_NAME}) -set_property(CACHE OS_FSFW PROPERTY STRINGS host linux rtems freertos) +set_property(CACHE FSFW_OSAL PROPERTY STRINGS host linux rtems freertos) if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 11) @@ -25,16 +25,16 @@ elseif(${CMAKE_CXX_STANDARD} LESS 11) message(FATAL_ERROR "Compiling the FSFW requires a minimum of C++11 support") endif() -if(NOT OS_FSFW) - message(STATUS "No OS for FSFW via OS_FSFW set. Assuming host OS") +if(NOT FSFW_OSAL) + message(STATUS "No OS for FSFW via FSFW_OSAL set. Assuming host OS") # Assume host OS and autodetermine from OS_FSFW if(UNIX) - set(OS_FSFW "linux" + set(FSFW_OSAL "linux" CACHE STRING "OS abstraction layer used in the FSFW" ) elseif(WIN32) - set(OS_FSFW "host" + set(FSFW_OSAL "host" CACHE STRING "OS abstraction layer used in the FSFW" ) endif() From 3a9add82fe56b4b75b0079b48c094e6c4f778c42 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 18:58:31 +0200 Subject: [PATCH 016/136] additonal warning --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e21868226..1efb856fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,12 @@ elseif(${CMAKE_CXX_STANDARD} LESS 11) message(FATAL_ERROR "Compiling the FSFW requires a minimum of C++11 support") endif() +# Backwards comptability +if(OS_FSFW) + message(WARNING "Please pass the FSFW OSAL as FSFW_OSAL instead of OS_FSFW") + set(FSFW_OSAL OS_FSFW) +endif() + if(NOT FSFW_OSAL) message(STATUS "No OS for FSFW via FSFW_OSAL set. Assuming host OS") # Assume host OS and autodetermine from OS_FSFW From ca297a7dcda6579173afe323a89dfac7e75fe80c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 19:19:25 +0200 Subject: [PATCH 017/136] added hal folder --- hal/CMakeLists.txt | 89 +++ hal/inc/fsfw/common/gpio/GpioCookie.h | 41 ++ hal/inc/fsfw/common/gpio/GpioIF.h | 54 ++ hal/inc/fsfw/common/gpio/gpioDefinitions.h | 110 ++++ hal/inc/fsfw/common/spi/spiCommon.h | 17 + .../fsfw/devicehandlers/GyroL3GD20Handler.h | 86 +++ .../devicedefinitions/GyroL3GD20Definitions.h | 143 +++++ hal/inc/fsfw/linux/UnixFileGuard.h | 33 ++ hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h | 77 +++ hal/inc/fsfw/linux/i2c/I2cComIF.h | 61 ++ hal/inc/fsfw/linux/i2c/I2cCookie.h | 38 ++ hal/inc/fsfw/linux/rpi/GpioRPi.h | 26 + hal/inc/fsfw/linux/spi/SpiComIF.h | 90 +++ hal/inc/fsfw/linux/spi/SpiCookie.h | 185 ++++++ hal/inc/fsfw/linux/spi/spiDefinitions.h | 28 + hal/inc/fsfw/linux/uart/UartComIF.h | 110 ++++ hal/inc/fsfw/linux/uart/UartCookie.h | 121 ++++ hal/inc/fsfw/linux/utility.h | 10 + hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h | 70 +++ hal/inc/fsfw/stm32h7/dma.h | 49 ++ hal/inc/fsfw/stm32h7/gpio/gpio.h | 14 + hal/inc/fsfw/stm32h7/interrupts.h | 28 + hal/inc/fsfw/stm32h7/spi/SpiComIF.h | 130 ++++ hal/inc/fsfw/stm32h7/spi/SpiCookie.h | 75 +++ hal/inc/fsfw/stm32h7/spi/mspInit.h | 114 ++++ hal/inc/fsfw/stm32h7/spi/spiCore.h | 53 ++ hal/inc/fsfw/stm32h7/spi/spiDefinitions.h | 50 ++ hal/inc/fsfw/stm32h7/spi/spiInterrupts.h | 41 ++ hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h | 23 + hal/src/common/gpio/CMakeLists.txt | 3 + hal/src/common/gpio/GpioCookie.cpp | 50 ++ hal/src/devicehandlers/CMakeLists.txt | 3 + hal/src/devicehandlers/GyroL3GD20Handler.cpp | 262 ++++++++ hal/src/host/CMakeLists.txt | 1 + hal/src/linux/CMakeLists.txt | 13 + hal/src/linux/UnixFileGuard.cpp | 33 ++ hal/src/linux/gpio/CMakeLists.txt | 12 + hal/src/linux/gpio/LinuxLibgpioIF.cpp | 305 ++++++++++ hal/src/linux/i2c/CMakeLists.txt | 8 + hal/src/linux/i2c/I2cComIF.cpp | 205 +++++++ hal/src/linux/i2c/I2cCookie.cpp | 20 + hal/src/linux/rpi/CMakeLists.txt | 3 + hal/src/linux/rpi/GpioRPi.cpp | 37 ++ hal/src/linux/spi/CMakeLists.txt | 8 + hal/src/linux/spi/SpiComIF.cpp | 398 +++++++++++++ hal/src/linux/spi/SpiCookie.cpp | 144 +++++ hal/src/linux/uart/CMakeLists.txt | 8 + hal/src/linux/uart/UartComIF.cpp | 455 ++++++++++++++ hal/src/linux/uart/UartCookie.cpp | 97 +++ hal/src/linux/utility.cpp | 21 + hal/src/stm32h7/CMakeLists.txt | 7 + hal/src/stm32h7/devicetest/CMakeLists.txt | 3 + hal/src/stm32h7/devicetest/GyroL3GD20H.cpp | 559 ++++++++++++++++++ hal/src/stm32h7/dma.cpp | 83 +++ hal/src/stm32h7/gpio/CMakeLists.txt | 3 + hal/src/stm32h7/gpio/gpio.cpp | 71 +++ hal/src/stm32h7/i2c/CMakeLists.txt | 2 + hal/src/stm32h7/spi/CMakeLists.txt | 9 + hal/src/stm32h7/spi/SpiComIF.cpp | 453 ++++++++++++++ hal/src/stm32h7/spi/SpiCookie.cpp | 78 +++ hal/src/stm32h7/spi/mspInit.cpp | 252 ++++++++ hal/src/stm32h7/spi/spiCore.cpp | 340 +++++++++++ hal/src/stm32h7/spi/spiDefinitions.cpp | 52 ++ hal/src/stm32h7/spi/spiInterrupts.cpp | 106 ++++ hal/src/stm32h7/spi/stm32h743ziSpi.cpp | 81 +++ hal/src/stm32h7/uart/CMakeLists.txt | 2 + src/CMakeLists.txt | 1 - 67 files changed, 6153 insertions(+), 1 deletion(-) create mode 100644 hal/CMakeLists.txt create mode 100644 hal/inc/fsfw/common/gpio/GpioCookie.h create mode 100644 hal/inc/fsfw/common/gpio/GpioIF.h create mode 100644 hal/inc/fsfw/common/gpio/gpioDefinitions.h create mode 100644 hal/inc/fsfw/common/spi/spiCommon.h create mode 100644 hal/inc/fsfw/devicehandlers/GyroL3GD20Handler.h create mode 100644 hal/inc/fsfw/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h create mode 100644 hal/inc/fsfw/linux/UnixFileGuard.h create mode 100644 hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h create mode 100644 hal/inc/fsfw/linux/i2c/I2cComIF.h create mode 100644 hal/inc/fsfw/linux/i2c/I2cCookie.h create mode 100644 hal/inc/fsfw/linux/rpi/GpioRPi.h create mode 100644 hal/inc/fsfw/linux/spi/SpiComIF.h create mode 100644 hal/inc/fsfw/linux/spi/SpiCookie.h create mode 100644 hal/inc/fsfw/linux/spi/spiDefinitions.h create mode 100644 hal/inc/fsfw/linux/uart/UartComIF.h create mode 100644 hal/inc/fsfw/linux/uart/UartCookie.h create mode 100644 hal/inc/fsfw/linux/utility.h create mode 100644 hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h create mode 100644 hal/inc/fsfw/stm32h7/dma.h create mode 100644 hal/inc/fsfw/stm32h7/gpio/gpio.h create mode 100644 hal/inc/fsfw/stm32h7/interrupts.h create mode 100644 hal/inc/fsfw/stm32h7/spi/SpiComIF.h create mode 100644 hal/inc/fsfw/stm32h7/spi/SpiCookie.h create mode 100644 hal/inc/fsfw/stm32h7/spi/mspInit.h create mode 100644 hal/inc/fsfw/stm32h7/spi/spiCore.h create mode 100644 hal/inc/fsfw/stm32h7/spi/spiDefinitions.h create mode 100644 hal/inc/fsfw/stm32h7/spi/spiInterrupts.h create mode 100644 hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h create mode 100644 hal/src/common/gpio/CMakeLists.txt create mode 100644 hal/src/common/gpio/GpioCookie.cpp create mode 100644 hal/src/devicehandlers/CMakeLists.txt create mode 100644 hal/src/devicehandlers/GyroL3GD20Handler.cpp create mode 100644 hal/src/host/CMakeLists.txt create mode 100644 hal/src/linux/CMakeLists.txt create mode 100644 hal/src/linux/UnixFileGuard.cpp create mode 100644 hal/src/linux/gpio/CMakeLists.txt create mode 100644 hal/src/linux/gpio/LinuxLibgpioIF.cpp create mode 100644 hal/src/linux/i2c/CMakeLists.txt create mode 100644 hal/src/linux/i2c/I2cComIF.cpp create mode 100644 hal/src/linux/i2c/I2cCookie.cpp create mode 100644 hal/src/linux/rpi/CMakeLists.txt create mode 100644 hal/src/linux/rpi/GpioRPi.cpp create mode 100644 hal/src/linux/spi/CMakeLists.txt create mode 100644 hal/src/linux/spi/SpiComIF.cpp create mode 100644 hal/src/linux/spi/SpiCookie.cpp create mode 100644 hal/src/linux/uart/CMakeLists.txt create mode 100644 hal/src/linux/uart/UartComIF.cpp create mode 100644 hal/src/linux/uart/UartCookie.cpp create mode 100644 hal/src/linux/utility.cpp create mode 100644 hal/src/stm32h7/CMakeLists.txt create mode 100644 hal/src/stm32h7/devicetest/CMakeLists.txt create mode 100644 hal/src/stm32h7/devicetest/GyroL3GD20H.cpp create mode 100644 hal/src/stm32h7/dma.cpp create mode 100644 hal/src/stm32h7/gpio/CMakeLists.txt create mode 100644 hal/src/stm32h7/gpio/gpio.cpp create mode 100644 hal/src/stm32h7/i2c/CMakeLists.txt create mode 100644 hal/src/stm32h7/spi/CMakeLists.txt create mode 100644 hal/src/stm32h7/spi/SpiComIF.cpp create mode 100644 hal/src/stm32h7/spi/SpiCookie.cpp create mode 100644 hal/src/stm32h7/spi/mspInit.cpp create mode 100644 hal/src/stm32h7/spi/spiCore.cpp create mode 100644 hal/src/stm32h7/spi/spiDefinitions.cpp create mode 100644 hal/src/stm32h7/spi/spiInterrupts.cpp create mode 100644 hal/src/stm32h7/spi/stm32h743ziSpi.cpp create mode 100644 hal/src/stm32h7/uart/CMakeLists.txt diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt new file mode 100644 index 000000000..24d7dac35 --- /dev/null +++ b/hal/CMakeLists.txt @@ -0,0 +1,89 @@ +cmake_minimum_required(VERSION 3.13) + +# Can also be changed by upper CMakeLists.txt file +find_library(LIB_FSFW_NAME fsfw REQUIRED) + +option(FSFW_HAL_ADD_LINUX "Add the Linux HAL to the sources. Required gpiod library" OFF) +option(FSFW_HAL_ADD_RASPBERRY_PI "Add Raspberry Pi specific code to the sources" OFF) + +option(FSFW_HAL_ADD_STM32H7 "Add the STM32H7 HAL to the sources" OFF) + +option(FSFW_HAL_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) + +set(LIB_FSFW_HAL_NAME fsfw_hal) +set(LINUX_HAL_PATH_NAME linux) +set(STM32H7_PATH_NAME stm32h7) + +add_library(${LIB_FSFW_HAL_NAME}) + +if(NOT LIB_FSFW_NAME) + message(ERROR "LIB_FSFW_NAME needs to be set as a linkable target") +endif() + +add_subdirectory(devicehandlers) +add_subdirectory(common) + +if(FSFW_HAL_ADD_LINUX) + add_subdirectory(${LINUX_HAL_PATH_NAME}) +endif() + +if(FSFW_HAL_ADD_STM32H7) + add_subdirectory(${STM32H7_PATH_NAME}) +endif() + +target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE + ${LIB_FSFW_NAME} +) + +foreach(INCLUDE_PATH ${FSFW_HAL_ADDITIONAL_INC_PATHS}) + if(IS_ABSOLUTE ${INCLUDE_PATH}) + set(CURR_ABS_INC_PATH "${INCLUDE_PATH}") + else() + get_filename_component(CURR_ABS_INC_PATH + ${INCLUDE_PATH} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR}) + endif() + + if(CMAKE_VERBOSE) + message(STATUS "FSFW include path: ${CURR_ABS_INC_PATH}") + endif() + + list(APPEND FSFW_HAL_ADD_INC_PATHS_ABS ${CURR_ABS_INC_PATH}) +endforeach() + +target_include_directories(${LIB_FSFW_HAL_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${FSFW_HAL_ADD_INC_PATHS_ABS} +) + +target_compile_definitions(${LIB_FSFW_HAL_NAME} PRIVATE + ${FSFW_HAL_DEFINES} +) + +target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE + ${FSFW_HAL_LINK_LIBS} +) + +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if(NOT DEFINED FSFW_WARNING_FLAGS) + set(FSFW_WARNING_FLAGS + -Wall + -Wextra + -Wimplicit-fallthrough=1 + -Wno-unused-parameter + ) + endif() + + target_compile_options(${LIB_FSFW_NAME} PRIVATE + "-ffunction-sections" + "-fdata-sections" + ) + + target_link_options(${LIB_FSFW_NAME} PRIVATE + "Wl,--gc-sections" + ) + + if(FSFW_HAL_WARNING_SHADOW_LOCAL_GCC) + list(APPEND WARNING_FLAGS "-Wshadow=local") + endif() + +endif() diff --git a/hal/inc/fsfw/common/gpio/GpioCookie.h b/hal/inc/fsfw/common/gpio/GpioCookie.h new file mode 100644 index 000000000..0473fe0f2 --- /dev/null +++ b/hal/inc/fsfw/common/gpio/GpioCookie.h @@ -0,0 +1,41 @@ +#ifndef COMMON_GPIO_GPIOCOOKIE_H_ +#define COMMON_GPIO_GPIOCOOKIE_H_ + +#include "GpioIF.h" +#include "gpioDefinitions.h" + +#include +#include + +/** + * @brief Cookie for the GpioIF. Allows the GpioIF to determine which + * GPIOs to initialize and whether they should be configured as in- or + * output. + * @details One GpioCookie can hold multiple GPIO configurations. To add a new + * GPIO configuration to a GpioCookie use the GpioCookie::addGpio + * function. + * + * @author J. Meier + */ +class GpioCookie: public CookieIF { +public: + + GpioCookie(); + + virtual ~GpioCookie(); + + ReturnValue_t addGpio(gpioId_t gpioId, GpioBase* gpioConfig); + + /** + * @brief Get map with registered GPIOs. + */ + GpioMap getGpioMap() const; + +private: + /** + * Returns a copy of the internal GPIO map. + */ + GpioMap gpioMap; +}; + +#endif /* COMMON_GPIO_GPIOCOOKIE_H_ */ diff --git a/hal/inc/fsfw/common/gpio/GpioIF.h b/hal/inc/fsfw/common/gpio/GpioIF.h new file mode 100644 index 000000000..af73f94c5 --- /dev/null +++ b/hal/inc/fsfw/common/gpio/GpioIF.h @@ -0,0 +1,54 @@ +#ifndef COMMON_GPIO_GPIOIF_H_ +#define COMMON_GPIO_GPIOIF_H_ + +#include "gpioDefinitions.h" +#include +#include + +class GpioCookie; + +/** + * @brief This class defines the interface for objects requiring the control + * over GPIOs. + * @author J. Meier + */ +class GpioIF : public HasReturnvaluesIF { +public: + + virtual ~GpioIF() {}; + + /** + * @brief Called by the GPIO using object. + * @param cookie Cookie specifying informations of the GPIOs required + * by a object. + */ + virtual ReturnValue_t addGpios(GpioCookie* cookie) = 0; + + /** + * @brief By implementing this function a child must provide the + * functionality to pull a certain GPIO to high logic level. + * + * @param gpioId A unique number which specifies the GPIO to drive. + * @return Returns RETURN_OK for success. This should never return RETURN_FAILED. + */ + virtual ReturnValue_t pullHigh(gpioId_t gpioId) = 0; + + /** + * @brief By implementing this function a child must provide the + * functionality to pull a certain GPIO to low logic level. + * + * @param gpioId A unique number which specifies the GPIO to drive. + */ + virtual ReturnValue_t pullLow(gpioId_t gpioId) = 0; + + /** + * @brief This function requires a child to implement the functionality to read the state of + * an ouput or input gpio. + * + * @param gpioId A unique number which specifies the GPIO to read. + * @param gpioState State of GPIO will be written to this pointer. + */ + virtual ReturnValue_t readGpio(gpioId_t gpioId, int* gpioState) = 0; +}; + +#endif /* COMMON_GPIO_GPIOIF_H_ */ diff --git a/hal/inc/fsfw/common/gpio/gpioDefinitions.h b/hal/inc/fsfw/common/gpio/gpioDefinitions.h new file mode 100644 index 000000000..710b2e2c1 --- /dev/null +++ b/hal/inc/fsfw/common/gpio/gpioDefinitions.h @@ -0,0 +1,110 @@ +#ifndef COMMON_GPIO_GPIODEFINITIONS_H_ +#define COMMON_GPIO_GPIODEFINITIONS_H_ + +#include +#include +#include + +using gpioId_t = uint16_t; + +namespace gpio { + +enum Levels { + LOW = 0, + HIGH = 1 +}; + +enum Direction { + IN = 0, + OUT = 1 +}; + +enum GpioOperation { + READ, + WRITE +}; + +enum GpioTypes { + NONE, + GPIO_REGULAR, + CALLBACK +}; + +static constexpr gpioId_t NO_GPIO = -1; + +using gpio_cb_t = void (*) (gpioId_t gpioId, gpio::GpioOperation gpioOp, int value, void* args); + +} + +/** + * @brief Struct containing information about the GPIO to use. This is + * required by the libgpiod to access and drive a GPIO. + * @param chipname String of the chipname specifying the group which contains the GPIO to + * access. E.g. gpiochip0. To detect names of GPIO groups run gpiodetect on + * the linux command line. + * @param lineNum The offset of the GPIO within the GPIO group. + * @param consumer Name of the consumer. Simply a description of the GPIO configuration. + * @param direction Specifies whether the GPIO should be used as in- or output. + * @param initValue Defines the initial state of the GPIO when configured as output. + * Only required for output GPIOs. + * @param lineHandle The handle returned by gpiod_chip_get_line will be later written to this + * pointer. + */ +class GpioBase { +public: + + GpioBase() = default; + + GpioBase(gpio::GpioTypes gpioType, std::string consumer, gpio::Direction direction, + int initValue): + gpioType(gpioType), consumer(consumer),direction(direction), initValue(initValue) {} + + virtual~ GpioBase() {}; + + // Can be used to cast GpioBase to a concrete child implementation + gpio::GpioTypes gpioType = gpio::GpioTypes::NONE; + std::string consumer; + gpio::Direction direction = gpio::Direction::IN; + int initValue = 0; +}; + +class GpiodRegular: public GpioBase { +public: + GpiodRegular() : + GpioBase(gpio::GpioTypes::GPIO_REGULAR, std::string(), gpio::Direction::IN, 0) { + } + ; + + GpiodRegular(std::string chipname_, int lineNum_, std::string consumer_, + gpio::Direction direction_, int initValue_) : + GpioBase(gpio::GpioTypes::GPIO_REGULAR, consumer_, direction_, initValue_), + chipname(chipname_), lineNum(lineNum_) { + } + + GpiodRegular(std::string chipname_, int lineNum_, std::string consumer_) : + GpioBase(gpio::GpioTypes::GPIO_REGULAR, consumer_, gpio::Direction::IN, 0), + chipname(chipname_), lineNum(lineNum_) { + } + std::string chipname; + int lineNum = 0; + struct gpiod_line* lineHandle = nullptr; +}; + +class GpioCallback: public GpioBase { +public: + GpioCallback(std::string consumer, gpio::Direction direction_, int initValue_, + gpio::gpio_cb_t callback, void* callbackArgs): + GpioBase(gpio::GpioTypes::CALLBACK, consumer, direction_, initValue_), + callback(callback), callbackArgs(callbackArgs) {} + + gpio::gpio_cb_t callback = nullptr; + void* callbackArgs = nullptr; +}; + + +using GpioMap = std::map; +using GpioUnorderedMap = std::unordered_map; +using GpioMapIter = GpioMap::iterator; +using GpioUnorderedMapIter = GpioUnorderedMap::iterator; + +#endif /* LINUX_GPIO_GPIODEFINITIONS_H_ */ diff --git a/hal/inc/fsfw/common/spi/spiCommon.h b/hal/inc/fsfw/common/spi/spiCommon.h new file mode 100644 index 000000000..9b3aef6a2 --- /dev/null +++ b/hal/inc/fsfw/common/spi/spiCommon.h @@ -0,0 +1,17 @@ +#ifndef FSFW_HAL_COMMON_SPI_SPICOMMON_H_ +#define FSFW_HAL_COMMON_SPI_SPICOMMON_H_ + +#include + +namespace spi { + +enum SpiModes: uint8_t { + MODE_0, + MODE_1, + MODE_2, + MODE_3 +}; + +} + +#endif /* FSFW_HAL_COMMON_SPI_SPICOMMON_H_ */ diff --git a/hal/inc/fsfw/devicehandlers/GyroL3GD20Handler.h b/hal/inc/fsfw/devicehandlers/GyroL3GD20Handler.h new file mode 100644 index 000000000..f82ba9359 --- /dev/null +++ b/hal/inc/fsfw/devicehandlers/GyroL3GD20Handler.h @@ -0,0 +1,86 @@ +#ifndef MISSION_DEVICES_GYROL3GD20HANDLER_H_ +#define MISSION_DEVICES_GYROL3GD20HANDLER_H_ + +#include "OBSWConfig.h" +#include "devicedefinitions/GyroL3GD20Definitions.h" + +#include +#include + +#ifndef FSFW_HAL_L3GD20_GYRO_DEBUG +#define FSFW_HAL_L3GD20_GYRO_DEBUG 1 +#endif /* FSFW_HAL_L3GD20_GYRO_DEBUG */ + +/** + * @brief Device Handler for the L3GD20H gyroscope sensor + * (https://www.st.com/en/mems-and-sensors/l3gd20h.html) + * @details + * Advanced documentation: + * https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/L3GD20H_Gyro + * + * Data is read big endian with the smallest possible range of 245 degrees per second. + */ +class GyroHandlerL3GD20H: public DeviceHandlerBase { +public: + GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, + CookieIF* comCookie); + virtual ~GyroHandlerL3GD20H(); + + void setGoNormalModeAtStartup(); +protected: + + /* DeviceHandlerBase overrides */ + ReturnValue_t buildTransitionDeviceCommand( + DeviceCommandId_t *id) override; + void doStartUp() override; + void doShutDown() override; + ReturnValue_t buildNormalDeviceCommand( + DeviceCommandId_t *id) override; + ReturnValue_t buildCommandFromCommand( + DeviceCommandId_t deviceCommand, const uint8_t *commandData, + size_t commandDataLen) override; + ReturnValue_t scanForReply(const uint8_t *start, size_t len, + DeviceCommandId_t *foundId, size_t *foundLen) override; + ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, + const uint8_t *packet) override; + + void fillCommandAndReplyMap() override; + void modeChanged() override; + uint32_t getTransitionDelayMs(Mode_t from, Mode_t to) override; + ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, + LocalDataPoolManager &poolManager) override; + +private: + GyroPrimaryDataset dataset; + + enum class InternalState { + NONE, + CONFIGURE, + CHECK_REGS, + NORMAL + }; + InternalState internalState = InternalState::NONE; + bool commandExecuted = false; + + uint8_t statusReg = 0; + bool goNormalModeImmediately = false; + + uint8_t ctrlReg1Value = L3GD20H::CTRL_REG_1_VAL; + uint8_t ctrlReg2Value = L3GD20H::CTRL_REG_2_VAL; + uint8_t ctrlReg3Value = L3GD20H::CTRL_REG_3_VAL; + uint8_t ctrlReg4Value = L3GD20H::CTRL_REG_4_VAL; + uint8_t ctrlReg5Value = L3GD20H::CTRL_REG_5_VAL; + + uint8_t commandBuffer[L3GD20H::READ_LEN + 1]; + + // Set default value + float sensitivity = L3GD20H::SENSITIVITY_00; + +#if FSFW_HAL_L3GD20_GYRO_DEBUG == 1 + PeriodicOperationDivider* debugDivider = nullptr; +#endif +}; + + + +#endif /* MISSION_DEVICES_GYROL3GD20HANDLER_H_ */ diff --git a/hal/inc/fsfw/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h b/hal/inc/fsfw/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h new file mode 100644 index 000000000..56a2468dc --- /dev/null +++ b/hal/inc/fsfw/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h @@ -0,0 +1,143 @@ +#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_GYROL3GD20DEFINITIONS_H_ +#define MISSION_DEVICES_DEVICEDEFINITIONS_GYROL3GD20DEFINITIONS_H_ + +#include +#include +#include + +namespace L3GD20H { + +/* Actual size is 15 but we round up a bit */ +static constexpr size_t MAX_BUFFER_SIZE = 16; + +static constexpr uint8_t READ_MASK = 0b10000000; + +static constexpr uint8_t AUTO_INCREMENT_MASK = 0b01000000; + +static constexpr uint8_t WHO_AM_I_REG = 0b00001111; +static constexpr uint8_t WHO_AM_I_VAL = 0b11010111; + +/*------------------------------------------------------------------------*/ +/* Control registers */ +/*------------------------------------------------------------------------*/ +static constexpr uint8_t CTRL_REG_1 = 0b00100000; +static constexpr uint8_t CTRL_REG_2 = 0b00100001; +static constexpr uint8_t CTRL_REG_3 = 0b00100010; +static constexpr uint8_t CTRL_REG_4 = 0b00100011; +static constexpr uint8_t CTRL_REG_5 = 0b00100100; + +/* Register 1 */ +static constexpr uint8_t SET_DR_1 = 1 << 7; +static constexpr uint8_t SET_DR_0 = 1 << 6; +static constexpr uint8_t SET_BW_1 = 1 << 5; +static constexpr uint8_t SET_BW_0 = 1 << 4; +static constexpr uint8_t SET_POWER_NORMAL_MODE = 1 << 3; +static constexpr uint8_t SET_Z_ENABLE = 1 << 2; +static constexpr uint8_t SET_X_ENABLE = 1 << 1; +static constexpr uint8_t SET_Y_ENABLE = 1; + +static constexpr uint8_t CTRL_REG_1_VAL = SET_POWER_NORMAL_MODE | SET_Z_ENABLE | + SET_Y_ENABLE | SET_X_ENABLE; + +/* Register 2 */ +static constexpr uint8_t EXTERNAL_EDGE_ENB = 1 << 7; +static constexpr uint8_t LEVEL_SENSITIVE_TRIGGER = 1 << 6; +static constexpr uint8_t SET_HPM_1 = 1 << 5; +static constexpr uint8_t SET_HPM_0 = 1 << 4; +static constexpr uint8_t SET_HPCF_3 = 1 << 3; +static constexpr uint8_t SET_HPCF_2 = 1 << 2; +static constexpr uint8_t SET_HPCF_1 = 1 << 1; +static constexpr uint8_t SET_HPCF_0 = 1; + +static constexpr uint8_t CTRL_REG_2_VAL = 0b00000000; + +/* Register 3 */ +static constexpr uint8_t CTRL_REG_3_VAL = 0b00000000; + +/* Register 4 */ +static constexpr uint8_t SET_BNU = 1 << 7; +static constexpr uint8_t SET_BLE = 1 << 6; +static constexpr uint8_t SET_FS_1 = 1 << 5; +static constexpr uint8_t SET_FS_0 = 1 << 4; +static constexpr uint8_t SET_IMP_ENB = 1 << 3; +static constexpr uint8_t SET_SELF_TEST_ENB_1 = 1 << 2; +static constexpr uint8_t SET_SELF_TEST_ENB_0 = 1 << 1; +static constexpr uint8_t SET_SPI_IF_SELECT = 1; + +/* Enable big endian data format */ +static constexpr uint8_t CTRL_REG_4_VAL = SET_BLE; + +/* Register 5 */ +static constexpr uint8_t SET_REBOOT_MEM = 1 << 7; +static constexpr uint8_t SET_FIFO_ENB = 1 << 6; + +static constexpr uint8_t CTRL_REG_5_VAL = 0b00000000; + +/* Possible range values in degrees per second (DPS). */ +static constexpr uint16_t RANGE_DPS_00 = 245; +static constexpr float SENSITIVITY_00 = 8.75 * 0.001; +static constexpr uint16_t RANGE_DPS_01 = 500; +static constexpr float SENSITIVITY_01 = 17.5 * 0.001; +static constexpr uint16_t RANGE_DPS_11 = 2000; +static constexpr float SENSITIVITY_11 = 70.0 * 0.001; + +static constexpr uint8_t READ_START = CTRL_REG_1; +static constexpr size_t READ_LEN = 14; + +/* Indexing */ +static constexpr uint8_t REFERENCE_IDX = 6; +static constexpr uint8_t TEMPERATURE_IDX = 7; +static constexpr uint8_t STATUS_IDX = 8; +static constexpr uint8_t OUT_X_H = 9; +static constexpr uint8_t OUT_X_L = 10; +static constexpr uint8_t OUT_Y_H = 11; +static constexpr uint8_t OUT_Y_L = 12; +static constexpr uint8_t OUT_Z_H = 13; +static constexpr uint8_t OUT_Z_L = 14; + +/*------------------------------------------------------------------------*/ +/* Device Handler specific */ +/*------------------------------------------------------------------------*/ +static constexpr DeviceCommandId_t READ_REGS = 0; +static constexpr DeviceCommandId_t CONFIGURE_CTRL_REGS = 1; +static constexpr DeviceCommandId_t READ_CTRL_REGS = 2; + +static constexpr uint32_t GYRO_DATASET_ID = READ_REGS; + +enum GyroPoolIds: lp_id_t { + ANG_VELOC_X, + ANG_VELOC_Y, + ANG_VELOC_Z, + TEMPERATURE +}; + +} + +class GyroPrimaryDataset: public StaticLocalDataSet<5> { +public: + + /** Constructor for data users like controllers */ + GyroPrimaryDataset(object_id_t mgmId): + StaticLocalDataSet(sid_t(mgmId, L3GD20H::GYRO_DATASET_ID)) { + setAllVariablesReadOnly(); + } + + /* Angular velocities in degrees per second (DPS) */ + lp_var_t angVelocX = lp_var_t(sid.objectId, + L3GD20H::ANG_VELOC_X, this); + lp_var_t angVelocY = lp_var_t(sid.objectId, + L3GD20H::ANG_VELOC_Y, this); + lp_var_t angVelocZ = lp_var_t(sid.objectId, + L3GD20H::ANG_VELOC_Z, this); + lp_var_t temperature = lp_var_t(sid.objectId, + L3GD20H::TEMPERATURE, this); +private: + + friend class GyroHandlerL3GD20H; + /** Constructor for the data creator */ + GyroPrimaryDataset(HasLocalDataPoolIF* hkOwner): + StaticLocalDataSet(hkOwner, L3GD20H::GYRO_DATASET_ID) {} +}; + + +#endif /* MISSION_DEVICES_DEVICEDEFINITIONS_GYROL3GD20DEFINITIONS_H_ */ diff --git a/hal/inc/fsfw/linux/UnixFileGuard.h b/hal/inc/fsfw/linux/UnixFileGuard.h new file mode 100644 index 000000000..fb595704e --- /dev/null +++ b/hal/inc/fsfw/linux/UnixFileGuard.h @@ -0,0 +1,33 @@ +#ifndef LINUX_UTILITY_UNIXFILEGUARD_H_ +#define LINUX_UTILITY_UNIXFILEGUARD_H_ + +#include + +#include + +#include +#include + + +class UnixFileGuard { +public: + static constexpr int READ_WRITE_FLAG = O_RDWR; + static constexpr int READ_ONLY_FLAG = O_RDONLY; + static constexpr int NON_BLOCKING_IO_FLAG = O_NONBLOCK; + + static constexpr ReturnValue_t OPEN_FILE_FAILED = 1; + + UnixFileGuard(std::string device, int* fileDescriptor, int flags, + std::string diagnosticPrefix = ""); + + virtual~ UnixFileGuard(); + + ReturnValue_t getOpenResult() const; +private: + int* fileDescriptor = nullptr; + ReturnValue_t openStatus = HasReturnvaluesIF::RETURN_OK; +}; + + + +#endif /* LINUX_UTILITY_UNIXFILEGUARD_H_ */ diff --git a/hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h b/hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h new file mode 100644 index 000000000..00e1bdfea --- /dev/null +++ b/hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h @@ -0,0 +1,77 @@ +#ifndef LINUX_GPIO_LINUXLIBGPIOIF_H_ +#define LINUX_GPIO_LINUXLIBGPIOIF_H_ + +#include "../../common/gpio/GpioIF.h" +#include +#include + +class GpioCookie; + +/** + * @brief This class implements the GpioIF for a linux based system. The + * implementation is based on the libgpiod lib which requires linux 4.8 + * or higher. + * @note The Petalinux SDK from Xilinx supports libgpiod since Petalinux + * 2019.1. + */ +class LinuxLibgpioIF : public GpioIF, public SystemObject { +public: + + static const uint8_t gpioRetvalId = CLASS_ID::HAL_GPIO; + + static constexpr ReturnValue_t UNKNOWN_GPIO_ID = + HasReturnvaluesIF::makeReturnCode(gpioRetvalId, 1); + static constexpr ReturnValue_t DRIVE_GPIO_FAILURE = + HasReturnvaluesIF::makeReturnCode(gpioRetvalId, 2); + static constexpr ReturnValue_t GPIO_TYPE_FAILURE = + HasReturnvaluesIF::makeReturnCode(gpioRetvalId, 3); + static constexpr ReturnValue_t GPIO_INVALID_INSTANCE = + HasReturnvaluesIF::makeReturnCode(gpioRetvalId, 4); + + LinuxLibgpioIF(object_id_t objectId); + virtual ~LinuxLibgpioIF(); + + ReturnValue_t addGpios(GpioCookie* gpioCookie) override; + ReturnValue_t pullHigh(gpioId_t gpioId) override; + ReturnValue_t pullLow(gpioId_t gpioId) override; + ReturnValue_t readGpio(gpioId_t gpioId, int* gpioState) override; + +private: + /* Holds the information and configuration of all used GPIOs */ + GpioUnorderedMap gpioMap; + GpioUnorderedMapIter gpioMapIter; + + /** + * @brief This functions drives line of a GPIO specified by the GPIO ID. + * + * @param gpioId The GPIO ID of the GPIO to drive. + * @param logiclevel The logic level to set. O or 1. + */ + ReturnValue_t driveGpio(gpioId_t gpioId, GpiodRegular* regularGpio, unsigned int logiclevel); + + ReturnValue_t configureRegularGpio(gpioId_t gpioId, GpiodRegular* regularGpio); + + /** + * @brief This function checks if GPIOs are already registered and whether + * there exists a conflict in the GPIO configuration. E.g. the + * direction. + * + * @param mapToAdd The GPIOs which shall be added to the gpioMap. + * + * @return RETURN_OK if successful, otherwise RETURN_FAILED + */ + ReturnValue_t checkForConflicts(GpioMap& mapToAdd); + + ReturnValue_t checkForConflictsRegularGpio(gpioId_t gpiodId, GpiodRegular* regularGpio, + GpioMap& mapToAdd); + ReturnValue_t checkForConflictsCallbackGpio(gpioId_t gpiodId, GpioCallback* regularGpio, + GpioMap& mapToAdd); + + /** + * @brief Performs the initial configuration of all GPIOs specified in the GpioMap mapToAdd. + */ + ReturnValue_t configureGpios(GpioMap& mapToAdd); + +}; + +#endif /* LINUX_GPIO_LINUXLIBGPIOIF_H_ */ diff --git a/hal/inc/fsfw/linux/i2c/I2cComIF.h b/hal/inc/fsfw/linux/i2c/I2cComIF.h new file mode 100644 index 000000000..0856c9bde --- /dev/null +++ b/hal/inc/fsfw/linux/i2c/I2cComIF.h @@ -0,0 +1,61 @@ +#ifndef LINUX_I2C_I2COMIF_H_ +#define LINUX_I2C_I2COMIF_H_ + +#include "I2cCookie.h" +#include +#include + +#include +#include + +/** + * @brief This is the communication interface for I2C devices connected + * to a system running a Linux OS. + * + * @note The Xilinx Linux kernel might not support to read more than 255 bytes at once. + * + * @author J. Meier + */ +class I2cComIF: public DeviceCommunicationIF, public SystemObject { +public: + I2cComIF(object_id_t objectId); + + virtual ~I2cComIF(); + + ReturnValue_t initializeInterface(CookieIF * cookie) override; + ReturnValue_t sendMessage(CookieIF *cookie,const uint8_t *sendData, + size_t sendLen) override; + ReturnValue_t getSendSuccess(CookieIF *cookie) override; + ReturnValue_t requestReceiveMessage(CookieIF *cookie, + size_t requestLen) override; + ReturnValue_t readReceivedMessage(CookieIF *cookie, uint8_t **buffer, + size_t *size) override; + +private: + + struct I2cInstance { + std::vector replyBuffer; + size_t replyLen; + }; + + using I2cDeviceMap = std::unordered_map; + using I2cDeviceMapIter = I2cDeviceMap::iterator; + + /* In this map all i2c devices will be registered with their address and + * the appropriate file descriptor will be stored */ + I2cDeviceMap i2cDeviceMap; + I2cDeviceMapIter i2cDeviceMapIter; + + /** + * @brief This function opens an I2C device and binds the opened file + * to a specific I2C address. + * @param deviceFile The name of the device file. E.g. i2c-0 + * @param i2cAddress The address of the i2c slave device. + * @param fileDescriptor Pointer to device descriptor. + * @return RETURN_OK if successful, otherwise RETURN_FAILED. + */ + ReturnValue_t openDevice(std::string deviceFile, + address_t i2cAddress, int* fileDescriptor); +}; + +#endif /* LINUX_I2C_I2COMIF_H_ */ diff --git a/hal/inc/fsfw/linux/i2c/I2cCookie.h b/hal/inc/fsfw/linux/i2c/I2cCookie.h new file mode 100644 index 000000000..888a2b124 --- /dev/null +++ b/hal/inc/fsfw/linux/i2c/I2cCookie.h @@ -0,0 +1,38 @@ +#ifndef LINUX_I2C_I2CCOOKIE_H_ +#define LINUX_I2C_I2CCOOKIE_H_ + +#include +#include + +/** + * @brief Cookie for the i2cDeviceComIF. + * + * @author J. Meier + */ +class I2cCookie: public CookieIF { +public: + + /** + * @brief Constructor for the I2C cookie. + * @param i2cAddress_ The i2c address of the target device. + * @param maxReplyLen_ The maximum expected length of a reply from the + * target device. + * @param devicFile_ The device file specifying the i2c interface to use. E.g. "/dev/i2c-0". + */ + I2cCookie(address_t i2cAddress_, size_t maxReplyLen_, + std::string deviceFile_); + + virtual ~I2cCookie(); + + address_t getAddress() const; + size_t getMaxReplyLen() const; + std::string getDeviceFile() const; + +private: + + address_t i2cAddress = 0; + size_t maxReplyLen = 0; + std::string deviceFile; +}; + +#endif /* LINUX_I2C_I2CCOOKIE_H_ */ diff --git a/hal/inc/fsfw/linux/rpi/GpioRPi.h b/hal/inc/fsfw/linux/rpi/GpioRPi.h new file mode 100644 index 000000000..54917e6d0 --- /dev/null +++ b/hal/inc/fsfw/linux/rpi/GpioRPi.h @@ -0,0 +1,26 @@ +#ifndef BSP_RPI_GPIO_GPIORPI_H_ +#define BSP_RPI_GPIO_GPIORPI_H_ + +#include +#include "../../common/gpio/gpioDefinitions.h" + +class GpioCookie; + +namespace gpio { + +/** + * Create a GpioConfig_t. This function does a sanity check on the BCM pin number and fails if the + * BCM pin is invalid. + * @param cookie Adds the configuration to this cookie directly + * @param gpioId ID which identifies the GPIO configuration + * @param bcmPin Raspberry Pi BCM pin + * @param consumer Information string + * @param direction GPIO direction + * @param initValue Intial value for output pins, 0 for low, 1 for high + * @return + */ +ReturnValue_t createRpiGpioConfig(GpioCookie* cookie, gpioId_t gpioId, int bcmPin, + std::string consumer, gpio::Direction direction, int initValue); +} + +#endif /* BSP_RPI_GPIO_GPIORPI_H_ */ diff --git a/hal/inc/fsfw/linux/spi/SpiComIF.h b/hal/inc/fsfw/linux/spi/SpiComIF.h new file mode 100644 index 000000000..676c7cba7 --- /dev/null +++ b/hal/inc/fsfw/linux/spi/SpiComIF.h @@ -0,0 +1,90 @@ +#ifndef LINUX_SPI_SPICOMIF_H_ +#define LINUX_SPI_SPICOMIF_H_ + +#include "spiDefinitions.h" +#include "returnvalues/classIds.h" +#include "../../common/gpio/GpioIF.h" + +#include +#include + +#include +#include + +class SpiCookie; + +/** + * @brief Encapsulates access to linux SPI driver for FSFW objects + * @details + * Right now, only full-duplex SPI is supported. Most device specific transfer properties + * are contained in the SPI cookie. + * @author R. Mueller + */ +class SpiComIF: public DeviceCommunicationIF, public SystemObject { +public: + static constexpr uint8_t spiRetvalId = CLASS_ID::HAL_SPI; + static constexpr ReturnValue_t OPENING_FILE_FAILED = + HasReturnvaluesIF::makeReturnCode(spiRetvalId, 0); + /* Full duplex (ioctl) transfer failure */ + static constexpr ReturnValue_t FULL_DUPLEX_TRANSFER_FAILED = + HasReturnvaluesIF::makeReturnCode(spiRetvalId, 1); + /* Half duplex (read/write) transfer failure */ + static constexpr ReturnValue_t HALF_DUPLEX_TRANSFER_FAILED = + HasReturnvaluesIF::makeReturnCode(spiRetvalId, 2); + + SpiComIF(object_id_t objectId, GpioIF* gpioComIF); + + ReturnValue_t initializeInterface(CookieIF * cookie) override; + ReturnValue_t sendMessage(CookieIF *cookie,const uint8_t *sendData, + size_t sendLen) override; + ReturnValue_t getSendSuccess(CookieIF *cookie) override; + ReturnValue_t requestReceiveMessage(CookieIF *cookie, + size_t requestLen) override; + ReturnValue_t readReceivedMessage(CookieIF *cookie, uint8_t **buffer, + size_t *size) override; + + /** + * @brief This function returns the mutex which can be used to protect the spi bus when + * the chip select must be driven from outside of the com if. + */ + MutexIF* getMutex(MutexIF::TimeoutType* timeoutType = nullptr, uint32_t* timeoutMs = nullptr); + + /** + * Perform a regular send operation using Linux iotcl. This is public so it can be used + * in functions like a user callback if special handling is only necessary for certain commands. + * @param spiCookie + * @param sendData + * @param sendLen + * @return + */ + ReturnValue_t performRegularSendOperation(SpiCookie* spiCookie, const uint8_t *sendData, + size_t sendLen); + + GpioIF* getGpioInterface(); + void setSpiSpeedAndMode(int spiFd, spi::SpiModes mode, uint32_t speed); + void performSpiWiretapping(SpiCookie* spiCookie); + + ReturnValue_t getReadBuffer(address_t spiAddress, uint8_t** buffer); + +private: + + struct SpiInstance { + SpiInstance(size_t maxRecvSize): replyBuffer(std::vector(maxRecvSize)) {} + std::vector replyBuffer; + }; + + GpioIF* gpioComIF = nullptr; + + MutexIF* spiMutex = nullptr; + MutexIF::TimeoutType timeoutType = MutexIF::TimeoutType::WAITING; + uint32_t timeoutMs = 20; + + using SpiDeviceMap = std::unordered_map; + using SpiDeviceMapIter = SpiDeviceMap::iterator; + + SpiDeviceMap spiDeviceMap; + + ReturnValue_t performHalfDuplexReception(SpiCookie* spiCookie); +}; + +#endif /* LINUX_SPI_SPICOMIF_H_ */ diff --git a/hal/inc/fsfw/linux/spi/SpiCookie.h b/hal/inc/fsfw/linux/spi/SpiCookie.h new file mode 100644 index 000000000..acf7c77c3 --- /dev/null +++ b/hal/inc/fsfw/linux/spi/SpiCookie.h @@ -0,0 +1,185 @@ +#ifndef LINUX_SPI_SPICOOKIE_H_ +#define LINUX_SPI_SPICOOKIE_H_ + +#include "spiDefinitions.h" +#include "../../common/gpio/gpioDefinitions.h" + +#include + +#include + +/** + * @brief This cookie class is passed to the SPI communication interface + * @details + * This cookie contains device specific properties like speed and SPI mode or the SPI transfer + * struct required by the Linux SPI driver. It also contains a handle to a GPIO interface + * to perform slave select switching when necessary. + * + * The user can specify gpio::NO_GPIO as the GPIO ID or use a custom send callback to meet + * special requirements like expander slave select switching (e.g. GPIO or I2C expander) + * or special timing related requirements. + */ +class SpiCookie: public CookieIF { +public: + /** + * Each SPI device will have a corresponding cookie. The cookie is used by the communication + * interface and contains device specific information like the largest expected size to be + * sent and received and the GPIO pin used to toggle the SPI slave select pin. + * @param spiAddress + * @param chipSelect Chip select. gpio::NO_GPIO can be used for hardware slave selects. + * @param spiDev + * @param maxSize + */ + SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, + const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed); + + /** + * Like constructor above, but without a dedicated GPIO CS. Can be used for hardware + * slave select or if CS logic is performed with decoders. + */ + SpiCookie(address_t spiAddress, std::string spiDev, const size_t maxReplySize, + spi::SpiModes spiMode, uint32_t spiSpeed); + + /** + * Use the callback mode of the SPI communication interface. The user can pass the callback + * function here or by using the setter function #setCallbackMode + */ + SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, const size_t maxSize, + spi::SpiModes spiMode, uint32_t spiSpeed, spi::send_callback_function_t callback, + void *args); + + /** + * Get the callback function + * @param callback + * @param args + */ + void getCallback(spi::send_callback_function_t* callback, void** args); + + address_t getSpiAddress() const; + std::string getSpiDevice() const; + gpioId_t getChipSelectPin() const; + size_t getMaxBufferSize() const; + + spi::SpiComIfModes getComIfMode() const; + + /** Enables changing SPI speed at run-time */ + void setSpiSpeed(uint32_t newSpeed); + /** Enables changing the SPI mode at run-time */ + void setSpiMode(spi::SpiModes newMode); + + /** + * Set the SPI to callback mode and assigns the user supplied callback and an argument + * passed to the callback. + * @param callback + * @param args + */ + void setCallbackMode(spi::send_callback_function_t callback, void* args); + + /** + * Can be used to set the callback arguments and a later point than initialization. + * @param args + */ + void setCallbackArgs(void* args); + + /** + * True if SPI transfers should be performed in full duplex mode + * @return + */ + bool isFullDuplex() const; + + /** + * Set transfer type to full duplex or half duplex. Full duplex is the default setting, + * ressembling common SPI hardware implementation with shift registers, where read and writes + * happen simultaneosly. + * @param fullDuplex + */ + void setFullOrHalfDuplex(bool halfDuplex); + + /** + * This needs to be called to specify where the SPI driver writes to or reads from. + * @param readLocation + * @param writeLocation + */ + void assignReadBuffer(uint8_t* rx); + void assignWriteBuffer(const uint8_t* tx); + /** + * Assign size for the next transfer. + * @param transferSize + */ + void assignTransferSize(size_t transferSize); + size_t getCurrentTransferSize() const; + + struct UncommonParameters { + uint8_t bitsPerWord = 8; + bool noCs = false; + bool csHigh = false; + bool threeWireSpi = false; + /* MSB first is more common */ + bool lsbFirst = false; + }; + + /** + * Can be used to explicitely disable hardware chip select. + * Some drivers like the Raspberry Pi Linux driver will not use hardware chip select by default + * (see https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md) + * @param enable + */ + void setNoCs(bool enable); + void setThreeWireSpi(bool enable); + void setLsbFirst(bool enable); + void setCsHigh(bool enable); + void setBitsPerWord(uint8_t bitsPerWord); + + void getSpiParameters(spi::SpiModes& spiMode, uint32_t& spiSpeed, + UncommonParameters* parameters = nullptr) const; + + /** + * See spidev.h cs_change and delay_usecs + * @param deselectCs + * @param delayUsecs + */ + void activateCsDeselect(bool deselectCs, uint16_t delayUsecs); + + spi_ioc_transfer* getTransferStructHandle(); +private: + + /** + * Internal constructor which initializes every field + * @param spiAddress + * @param chipSelect + * @param spiDev + * @param maxSize + * @param spiMode + * @param spiSpeed + * @param callback + * @param args + */ + SpiCookie(spi::SpiComIfModes comIfMode, address_t spiAddress, gpioId_t chipSelect, + std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed, + spi::send_callback_function_t callback, void* args); + + size_t currentTransferSize = 0; + + address_t spiAddress; + gpioId_t chipSelectPin; + std::string spiDevice; + + spi::SpiComIfModes comIfMode; + + // Required for regular mode + const size_t maxSize; + spi::SpiModes spiMode; + uint32_t spiSpeed; + bool halfDuplex = false; + + // Required for callback mode + spi::send_callback_function_t sendCallback = nullptr; + void* callbackArgs = nullptr; + + struct spi_ioc_transfer spiTransferStruct = {}; + UncommonParameters uncommonParameters; +}; + + + +#endif /* LINUX_SPI_SPICOOKIE_H_ */ diff --git a/hal/inc/fsfw/linux/spi/spiDefinitions.h b/hal/inc/fsfw/linux/spi/spiDefinitions.h new file mode 100644 index 000000000..14af4fd52 --- /dev/null +++ b/hal/inc/fsfw/linux/spi/spiDefinitions.h @@ -0,0 +1,28 @@ +#ifndef LINUX_SPI_SPIDEFINITONS_H_ +#define LINUX_SPI_SPIDEFINITONS_H_ + +#include "../../common/gpio/gpioDefinitions.h" +#include "../../common/spi/spiCommon.h" + +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include + +#include + +class SpiCookie; +class SpiComIF; + +namespace spi { + +enum SpiComIfModes { + REGULAR, + CALLBACK +}; + + +using send_callback_function_t = ReturnValue_t (*) (SpiComIF* comIf, SpiCookie *cookie, + const uint8_t *sendData, size_t sendLen, void* args); + +} + +#endif /* LINUX_SPI_SPIDEFINITONS_H_ */ diff --git a/hal/inc/fsfw/linux/uart/UartComIF.h b/hal/inc/fsfw/linux/uart/UartComIF.h new file mode 100644 index 000000000..e513aa869 --- /dev/null +++ b/hal/inc/fsfw/linux/uart/UartComIF.h @@ -0,0 +1,110 @@ +#ifndef BSP_Q7S_COMIF_UARTCOMIF_H_ +#define BSP_Q7S_COMIF_UARTCOMIF_H_ + +#include "UartCookie.h" +#include +#include + +#include +#include + +/** + * @brief This is the communication interface to access serial ports on linux based operating + * systems. + * + * @details The implementation follows the instructions from https://blog.mbedded.ninja/programming/ + * operating-systems/linux/linux-serial-ports-using-c-cpp/#disabling-canonical-mode + * + * @author J. Meier + */ +class UartComIF: public DeviceCommunicationIF, public SystemObject { +public: + static constexpr uint8_t uartRetvalId = CLASS_ID::HAL_UART; + + static constexpr ReturnValue_t UART_READ_FAILURE = + HasReturnvaluesIF::makeReturnCode(uartRetvalId, 1); + static constexpr ReturnValue_t UART_READ_SIZE_MISSMATCH = + HasReturnvaluesIF::makeReturnCode(uartRetvalId, 2); + static constexpr ReturnValue_t UART_RX_BUFFER_TOO_SMALL = + HasReturnvaluesIF::makeReturnCode(uartRetvalId, 3); + + UartComIF(object_id_t objectId); + + virtual ~UartComIF(); + + ReturnValue_t initializeInterface(CookieIF * cookie) override; + ReturnValue_t sendMessage(CookieIF *cookie,const uint8_t *sendData, + size_t sendLen) override; + ReturnValue_t getSendSuccess(CookieIF *cookie) override; + ReturnValue_t requestReceiveMessage(CookieIF *cookie, + size_t requestLen) override; + ReturnValue_t readReceivedMessage(CookieIF *cookie, uint8_t **buffer, + size_t *size) override; + +private: + + using UartDeviceFile_t = std::string; + + struct UartElements { + int fileDescriptor; + std::vector replyBuffer; + /** Number of bytes read will be written to this variable */ + size_t replyLen; + }; + + using UartDeviceMap = std::unordered_map; + using UartDeviceMapIter = UartDeviceMap::iterator; + + /** + * The uart devie map stores informations of initialized uart ports. + */ + UartDeviceMap uartDeviceMap; + + /** + * @brief This function opens and configures a uart device by using the information stored + * in the uart cookie. + * @param uartCookie Pointer to uart cookie with information about the uart. Contains the + * uart device file, baudrate, parity, stopbits etc. + * @return The file descriptor of the configured uart. + */ + int configureUartPort(UartCookie* uartCookie); + + /** + * @brief This function adds the parity settings to the termios options struct. + * + * @param options Pointer to termios options struct which will be modified to enable or disable + * parity checking. + * @param uartCookie Pointer to uart cookie containing the information about the desired + * parity settings. + * + */ + void setParityOptions(struct termios* options, UartCookie* uartCookie); + + void setStopBitOptions(struct termios* options, UartCookie* uartCookie); + + /** + * @brief This function sets options which are not configurable by the uartCookie. + */ + void setFixedOptions(struct termios* options); + + /** + * @brief With this function the datasize settings are added to the termios options struct. + */ + void setDatasizeOptions(struct termios* options, UartCookie* uartCookie); + + /** + * @brief This functions adds the baudrate specified in the uartCookie to the termios options + * struct. + */ + void configureBaudrate(struct termios* options, UartCookie* uartCookie); + + void setUartMode(struct termios* options, UartCookie& uartCookie); + + ReturnValue_t handleCanonicalRead(UartCookie& uartCookie, UartDeviceMapIter& iter, + size_t requestLen); + ReturnValue_t handleNoncanonicalRead(UartCookie& uartCookie, UartDeviceMapIter& iter, + size_t requestLen); + +}; + +#endif /* BSP_Q7S_COMIF_UARTCOMIF_H_ */ diff --git a/hal/inc/fsfw/linux/uart/UartCookie.h b/hal/inc/fsfw/linux/uart/UartCookie.h new file mode 100644 index 000000000..faf95d50e --- /dev/null +++ b/hal/inc/fsfw/linux/uart/UartCookie.h @@ -0,0 +1,121 @@ +#ifndef SAM9G20_COMIF_COOKIES_UART_COOKIE_H_ +#define SAM9G20_COMIF_COOKIES_UART_COOKIE_H_ + +#include +#include + +#include + +enum class Parity { + NONE, + EVEN, + ODD +}; + +enum class StopBits { + ONE_STOP_BIT, + TWO_STOP_BITS +}; + +enum class UartModes { + CANONICAL, + NON_CANONICAL +}; + +/** + * @brief Cookie for the UartComIF. There are many options available to configure the UART driver. + * The constructor only requests for common options like the baudrate. Other options can + * be set by member functions. + * + * @author J. Meier + */ +class UartCookie: public CookieIF { +public: + + /** + * @brief Constructor for the uart cookie. + * @param deviceFile The device file specifying the uart to use, e.g. "/dev/ttyPS1" + * @param uartMode Specify the UART mode. The canonical mode should be used if the + * messages are separated by a delimited character like '\n'. See the + * termios documentation for more information + * @param baudrate The baudrate to use for input and output. Possible Baudrates are: 50, + * 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, B19200, + * 38400, 57600, 115200, 230400, 460800 + * @param maxReplyLen The maximum size an object using this cookie expects + * @details + * Default configuration: No parity + * 8 databits (number of bits transfered with one uart frame) + * One stop bit + */ + UartCookie(object_id_t handlerId, std::string deviceFile, UartModes uartMode, + uint32_t baudrate, size_t maxReplyLen); + + virtual ~UartCookie(); + + uint32_t getBaudrate() const; + size_t getMaxReplyLen() const; + std::string getDeviceFile() const; + Parity getParity() const; + uint8_t getBitsPerWord() const; + StopBits getStopBits() const; + UartModes getUartMode() const; + object_id_t getHandlerId() const; + + /** + * The UART ComIF will only perform a specified number of read cycles for the canonical mode. + * The user can specify how many of those read cycles are performed for one device handler + * communication cycle. An example use-case would be to read all available GPS NMEA strings + * at once. + * @param readCycles + */ + void setReadCycles(uint8_t readCycles); + uint8_t getReadCycles() const; + + /** + * Allows to flush the data which was received but has not been read yet. This is useful + * to discard obsolete data at software startup. + */ + void setToFlushInput(bool enable); + bool getInputShouldBeFlushed(); + + /** + * Functions two enable parity checking. + */ + void setParityOdd(); + void setParityEven(); + + /** + * Function two set number of bits per UART frame. + */ + void setBitsPerWord(uint8_t bitsPerWord_); + + /** + * Function to specify the number of stopbits. + */ + void setTwoStopBits(); + void setOneStopBit(); + + /** + * Calling this function prevents the UartComIF to return failed if not all requested bytes + * could be read. This is required by a device handler when the size of a reply is not known. + */ + void setNoFixedSizeReply(); + + bool isReplySizeFixed(); + +private: + + const object_id_t handlerId; + std::string deviceFile; + const UartModes uartMode; + bool flushInput = false; + uint32_t baudrate; + size_t maxReplyLen = 0; + Parity parity = Parity::NONE; + uint8_t bitsPerWord = 8; + uint8_t readCycles = 1; + StopBits stopBits = StopBits::ONE_STOP_BIT; + bool replySizeFixed = true; +}; + +#endif diff --git a/hal/inc/fsfw/linux/utility.h b/hal/inc/fsfw/linux/utility.h new file mode 100644 index 000000000..0353b1d07 --- /dev/null +++ b/hal/inc/fsfw/linux/utility.h @@ -0,0 +1,10 @@ +#ifndef LINUX_UTILITY_UTILITY_H_ +#define LINUX_UTILITY_UTILITY_H_ + +namespace utility { + +void handleIoctlError(const char* const customPrintout); + +} + +#endif /* LINUX_UTILITY_UTILITY_H_ */ diff --git a/hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h b/hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h new file mode 100644 index 000000000..b65654de6 --- /dev/null +++ b/hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h @@ -0,0 +1,70 @@ +#ifndef FSFW_HAL_STM32H7_DEVICETEST_GYRO_L3GD20H_H_ +#define FSFW_HAL_STM32H7_DEVICETEST_GYRO_L3GD20H_H_ + +#include "stm32h7xx_hal.h" +#include "stm32h7xx_hal_spi.h" +#include "../spi/mspInit.h" +#include "../spi/spiDefinitions.h" + +#include "fsfw/returnvalues/HasReturnvaluesIF.h" + +#include +#include + +enum class TransferStates { + IDLE, + WAIT, + SUCCESS, + FAILURE +}; + +class GyroL3GD20H { +public: + GyroL3GD20H(SPI_HandleTypeDef* spiHandle, spi::TransferModes transferMode); + ~GyroL3GD20H(); + + ReturnValue_t initialize(); + ReturnValue_t performOperation(); + +private: + + const uint8_t WHO_AM_I_REG = 0b00001111; + const uint8_t STM_READ_MASK = 0b10000000; + const uint8_t STM_AUTO_INCREMENT_MASK = 0b01000000; + const uint8_t EXPECTED_WHO_AM_I_VAL = 0b11010111; + const uint8_t CTRL_REG_1 = 0b00100000; + const uint32_t L3G_RANGE = 245; + + SPI_HandleTypeDef* spiHandle; + + static spi::TransferModes transferMode; + static constexpr size_t recvBufferSize = 32 * 10; + static std::array rxBuffer; + static constexpr size_t txBufferSize = 32; + static std::array txBuffer; + + ReturnValue_t handleDmaTransferInit(); + ReturnValue_t handlePollingTransferInit(); + ReturnValue_t handleInterruptTransferInit(); + + ReturnValue_t handleDmaSensorRead(); + HAL_StatusTypeDef performDmaTransfer(size_t sendSize); + ReturnValue_t handlePollingSensorRead(); + ReturnValue_t handleInterruptSensorRead(); + + uint8_t readRegPolling(uint8_t reg); + + static void spiTransferCompleteCallback(SPI_HandleTypeDef *hspi, void* args); + static void spiTransferErrorCallback(SPI_HandleTypeDef *hspi, void* args); + + + void prepareConfigRegs(uint8_t* configRegs); + void handleSensorReadout(); + + + DMA_HandleTypeDef* txDmaHandle = {}; + DMA_HandleTypeDef* rxDmaHandle = {}; + spi::MspCfgBase* mspCfg = {}; +}; + +#endif /* FSFW_HAL_STM32H7_DEVICETEST_GYRO_L3GD20H_H_ */ diff --git a/hal/inc/fsfw/stm32h7/dma.h b/hal/inc/fsfw/stm32h7/dma.h new file mode 100644 index 000000000..779a64cbe --- /dev/null +++ b/hal/inc/fsfw/stm32h7/dma.h @@ -0,0 +1,49 @@ +#ifndef FSFW_HAL_STM32H7_DMA_H_ +#define FSFW_HAL_STM32H7_DMA_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "interrupts.h" +#include + +namespace dma { + +enum DMAType { + TX = 0, + RX = 1 +}; + +enum DMAIndexes: uint8_t { + DMA_1 = 1, + DMA_2 = 2 +}; + +enum DMAStreams { + STREAM_0 = 0, + STREAM_1 = 1, + STREAM_2 = 2, + STREAM_3 = 3, + STREAM_4 = 4, + STREAM_5 = 5, + STREAM_6 = 6, + STREAM_7 = 7, +} ; + +/** + * Assign user interrupt handlers for DMA streams, allowing to pass an + * arbitrary argument as well. Generally, this argument will be the related DMA handle. + * @param user_handler + * @param user_args + */ +void assignDmaUserHandler(DMAIndexes dma_idx, DMAStreams stream_idx, + user_handler_t user_handler, user_args_t user_args); + +} + +#ifdef __cplusplus +} +#endif + +#endif /* FSFW_HAL_STM32H7_DMA_H_ */ diff --git a/hal/inc/fsfw/stm32h7/gpio/gpio.h b/hal/inc/fsfw/stm32h7/gpio/gpio.h new file mode 100644 index 000000000..adb60de65 --- /dev/null +++ b/hal/inc/fsfw/stm32h7/gpio/gpio.h @@ -0,0 +1,14 @@ +#ifndef FSFW_HAL_STM32H7_GPIO_GPIO_H_ +#define FSFW_HAL_STM32H7_GPIO_GPIO_H_ + +#include "stm32h7xx.h" + +namespace gpio { + +void initializeGpioClock(GPIO_TypeDef* gpioPort); + +} + + + +#endif /* FSFW_HAL_STM32H7_GPIO_GPIO_H_ */ diff --git a/hal/inc/fsfw/stm32h7/interrupts.h b/hal/inc/fsfw/stm32h7/interrupts.h new file mode 100644 index 000000000..aef60bf74 --- /dev/null +++ b/hal/inc/fsfw/stm32h7/interrupts.h @@ -0,0 +1,28 @@ +#ifndef FSFW_HAL_STM32H7_INTERRUPTS_H_ +#define FSFW_HAL_STM32H7_INTERRUPTS_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Default handler which is defined in startup file as assembly code. + */ +extern void Default_Handler(); + +typedef void (*user_handler_t) (void*); +typedef void* user_args_t; + +enum IrqPriorities: uint8_t { + HIGHEST = 0, + HIGHEST_FREERTOS = 6, + LOWEST = 15 +}; + +#ifdef __cplusplus +} +#endif + +#endif /* FSFW_HAL_STM32H7_INTERRUPTS_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/SpiComIF.h b/hal/inc/fsfw/stm32h7/spi/SpiComIF.h new file mode 100644 index 000000000..4b1ef801b --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/SpiComIF.h @@ -0,0 +1,130 @@ +#ifndef FSFW_HAL_STM32H7_SPI_SPICOMIF_H_ +#define FSFW_HAL_STM32H7_SPI_SPICOMIF_H_ + +#include "fsfw/tasks/SemaphoreIF.h" +#include "fsfw/devicehandlers/DeviceCommunicationIF.h" +#include "fsfw/objectmanager/SystemObject.h" + +#include "fsfw/osal/FreeRTOS/BinarySemaphore.h" +#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" +#include "stm32h7xx_hal_spi.h" +#include "stm32h743xx.h" + +#include +#include + +class SpiCookie; + +/** + * @brief This communication interface allows using generic device handlers with using + * the STM32H7 SPI peripherals + * @details + * This communication interface supports all three major communcation modes: + * - Polling: Simple, but not recommended to real use-cases, blocks the CPU + * - Interrupt: Good for small data only arriving occasionally + * - DMA: Good for large data which also occur regularly. Please note that the number + * of DMA channels in limited + * The device specific information is usually kept in the SpiCookie class. The current + * implementation limits the transfer mode for a given SPI bus. + * @author R. Mueller + */ +class SpiComIF: + public SystemObject, + public DeviceCommunicationIF { +public: + /** + * Create a SPI communication interface for the given SPI peripheral (spiInstance) + * @param objectId + * @param spiInstance + * @param spiHandle + * @param transferMode + */ + SpiComIF(object_id_t objectId); + + /** + * Allows the user to disable cache maintenance on the TX buffer. This can be done if the + * TX buffers are places and MPU protected properly like specified in this link: + * https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices + * The cache maintenace is enabled by default. + * @param enable + */ + void configureCacheMaintenanceOnTxBuffer(bool enable); + + void setDefaultPollingTimeout(dur_millis_t timeout); + + /** + * Add the DMA handles. These need to be set in the DMA transfer mode is used. + * @param txHandle + * @param rxHandle + */ + void addDmaHandles(DMA_HandleTypeDef* txHandle, DMA_HandleTypeDef* rxHandle); + + ReturnValue_t initialize() override; +protected: + + // DeviceCommunicationIF overrides + virtual ReturnValue_t initializeInterface(CookieIF * cookie) override; + virtual ReturnValue_t sendMessage(CookieIF *cookie, + const uint8_t * sendData, size_t sendLen) override; + virtual ReturnValue_t getSendSuccess(CookieIF *cookie) override; + virtual ReturnValue_t requestReceiveMessage(CookieIF *cookie, + size_t requestLen) override; + virtual ReturnValue_t readReceivedMessage(CookieIF *cookie, + uint8_t **buffer, size_t *size) override; + +private: + + struct SpiInstance { + SpiInstance(size_t maxRecvSize): replyBuffer(std::vector(maxRecvSize)) {} + std::vector replyBuffer; + size_t currentTransferLen = 0; + }; + + struct IrqArgs { + SpiComIF* comIF = nullptr; + SpiCookie* spiCookie = nullptr; + }; + + IrqArgs irqArgs; + + uint32_t defaultPollingTimeout = 50; + + SemaphoreIF::TimeoutType timeoutType = SemaphoreIF::TimeoutType::WAITING; + dur_millis_t timeoutMs = 20; + + BinarySemaphore* spiSemaphore = nullptr; + bool cacheMaintenanceOnTxBuffer = true; + + using SpiDeviceMap = std::map; + using SpiDeviceMapIter = SpiDeviceMap::iterator; + + uint8_t* currentRecvPtr = nullptr; + size_t currentRecvBuffSize = 0; + + SpiDeviceMap spiDeviceMap; + + ReturnValue_t handlePollingSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen); + ReturnValue_t handleInterruptSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen); + ReturnValue_t handleDmaSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen); + ReturnValue_t handleIrqSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen); + ReturnValue_t genericIrqSendSetup(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen); + ReturnValue_t halErrorHandler(HAL_StatusTypeDef status, spi::TransferModes transferMode); + + static void spiTransferTxCompleteCallback(SPI_HandleTypeDef *hspi, void* args); + static void spiTransferRxCompleteCallback(SPI_HandleTypeDef *hspi, void* args); + static void spiTransferCompleteCallback(SPI_HandleTypeDef *hspi, void* args); + static void spiTransferErrorCallback(SPI_HandleTypeDef *hspi, void* args); + + static void genericIrqHandler(void* irqArgs, spi::TransferStates targetState); + + void printCfgError(const char* const type); +}; + + + +#endif /* FSFW_HAL_STM32H7_SPI_SPICOMIF_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/SpiCookie.h b/hal/inc/fsfw/stm32h7/spi/SpiCookie.h new file mode 100644 index 000000000..45226b4a9 --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/SpiCookie.h @@ -0,0 +1,75 @@ +#ifndef FSFW_HAL_STM32H7_SPI_SPICOOKIE_H_ +#define FSFW_HAL_STM32H7_SPI_SPICOOKIE_H_ + +#include "spiDefinitions.h" +#include "mspInit.h" + +#include "fsfw/devicehandlers/CookieIF.h" + +#include "stm32h743xx.h" + +/** + * @brief SPI cookie implementation for the STM32H7 device family + * @details + * This cookie contains and caches device specific information to be used by the + * SPI communication interface + * @author R. Mueller + */ +class SpiCookie: public CookieIF { + friend class SpiComIF; +public: + /** + * Allows construction of a SPI cookie for a connected SPI device + * @param deviceAddress + * @param spiIdx SPI bus, e.g. SPI1 or SPI2 + * @param transferMode + * @param mspCfg This is the MSP configuration. The user is expected to supply + * a valid MSP configuration. See mspInit.h for functions + * to create one. + * @param spiSpeed + * @param spiMode + * @param chipSelectGpioPin GPIO port. Don't use a number here, use the 16 bit type + * definitions supplied in the MCU header file! (e.g. GPIO_PIN_X) + * @param chipSelectGpioPort GPIO port (e.g. GPIOA) + * @param maxRecvSize Maximum expected receive size. Chose as small as possible. + */ + SpiCookie(address_t deviceAddress, spi::SpiBus spiIdx, spi::TransferModes transferMode, + spi::MspCfgBase* mspCfg, uint32_t spiSpeed, spi::SpiModes spiMode, + uint16_t chipSelectGpioPin, GPIO_TypeDef* chipSelectGpioPort, size_t maxRecvSize); + + uint16_t getChipSelectGpioPin() const; + GPIO_TypeDef* getChipSelectGpioPort(); + address_t getDeviceAddress() const; + spi::SpiBus getSpiIdx() const; + spi::SpiModes getSpiMode() const; + spi::TransferModes getTransferMode() const; + uint32_t getSpiSpeed() const; + size_t getMaxRecvSize() const; + SPI_HandleTypeDef& getSpiHandle(); + +private: + address_t deviceAddress; + SPI_HandleTypeDef spiHandle = {}; + spi::SpiBus spiIdx; + uint32_t spiSpeed; + spi::SpiModes spiMode; + spi::TransferModes transferMode; + volatile spi::TransferStates transferState = spi::TransferStates::IDLE; + uint16_t chipSelectGpioPin; + GPIO_TypeDef* chipSelectGpioPort; + // The MSP configuration is cached here. Be careful when using this, it is automatically + // deleted by the SPI communication interface if it is not required anymore! + spi::MspCfgBase* mspCfg = nullptr; + const size_t maxRecvSize; + + // Only the SpiComIF is allowed to use this to prevent dangling pointers issues + spi::MspCfgBase* getMspCfg(); + void deleteMspCfg(); + + void setTransferState(spi::TransferStates transferState); + spi::TransferStates getTransferState() const; +}; + + + +#endif /* FSFW_HAL_STM32H7_SPI_SPICOOKIE_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/mspInit.h b/hal/inc/fsfw/stm32h7/spi/mspInit.h new file mode 100644 index 000000000..e6de2f8ea --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/mspInit.h @@ -0,0 +1,114 @@ +#ifndef FSFW_HAL_STM32H7_SPI_MSPINIT_H_ +#define FSFW_HAL_STM32H7_SPI_MSPINIT_H_ + +#include "spiDefinitions.h" +#include "../dma.h" + +#include "stm32h7xx_hal_spi.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief This file provides MSP implementation for DMA, IRQ and Polling mode for the + * SPI peripheral. This configuration is required for the SPI communication to work. + */ +namespace spi { + +struct MspCfgBase { + virtual ~MspCfgBase() = default; + + void (* cleanUpMacroWrapper) (void) = nullptr; + void (* setupMacroWrapper) (void) = nullptr; + + GPIO_TypeDef* sckPort = nullptr; + uint32_t sckPin = 0; + uint8_t sckAlternateFunction = 0; + GPIO_TypeDef* mosiPort = nullptr; + uint32_t mosiPin = 0; + uint8_t mosiAlternateFunction = 0; + GPIO_TypeDef* misoPort = nullptr; + uint32_t misoPin = 0; + uint8_t misoAlternateFunction = 0; +}; + +struct MspPollingConfigStruct: public MspCfgBase {}; + +/* A valid instance of this struct must be passed to the MSP initialization function as a void* +argument */ +struct MspIrqConfigStruct: public MspPollingConfigStruct { + SpiBus spiBus = SpiBus::SPI_1; + user_handler_t spiIrqHandler = nullptr; + user_args_t spiUserArgs = nullptr; + IRQn_Type spiIrqNumber = SPI1_IRQn; + // Priorities for NVIC + // Pre-Empt priority ranging from 0 to 15. If FreeRTOS calls are used, only 5-15 are allowed + IrqPriorities preEmptPriority = IrqPriorities::LOWEST; + IrqPriorities subpriority = IrqPriorities::LOWEST; +}; + +/* A valid instance of this struct must be passed to the MSP initialization function as a void* +argument */ +struct MspDmaConfigStruct: public MspIrqConfigStruct { + void (* dmaClkEnableWrapper) (void) = nullptr; + dma::DMAIndexes txDmaIndex; + dma::DMAIndexes rxDmaIndex; + dma::DMAStreams txDmaStream; + dma::DMAStreams rxDmaStream; + IRQn_Type txDmaIrqNumber = DMA1_Stream0_IRQn; + IRQn_Type rxDmaIrqNumber = DMA1_Stream1_IRQn; + // Priorities for NVIC + IrqPriorities txPreEmptPriority = IrqPriorities::LOWEST; + IrqPriorities rxPreEmptPriority = IrqPriorities::LOWEST; + IrqPriorities txSubpriority = IrqPriorities::LOWEST; + IrqPriorities rxSubpriority = IrqPriorities::LOWEST; +}; + +using msp_func_t = void (*) (SPI_HandleTypeDef* hspi, MspCfgBase* cfg); + + +void getMspInitFunction(msp_func_t* init_func, MspCfgBase **args); +void getMspDeinitFunction(msp_func_t* deinit_func, MspCfgBase **args); + +void halMspInitDma(SPI_HandleTypeDef* hspi, MspCfgBase* cfg); +void halMspDeinitDma(SPI_HandleTypeDef* hspi, MspCfgBase* cfg); + +void halMspInitInterrupt(SPI_HandleTypeDef* hspi, MspCfgBase* cfg); +void halMspDeinitInterrupt(SPI_HandleTypeDef* hspi, MspCfgBase* cfg); + +void halMspInitPolling(SPI_HandleTypeDef* hspi, MspCfgBase* cfg); +void halMspDeinitPolling(SPI_HandleTypeDef* hspi, MspCfgBase* cfg); + +/** + * Assign MSP init functions. Important for SPI configuration + * @param init_func + * @param init_args + * @param deinit_func + * @param deinit_args + */ +void setSpiDmaMspFunctions(MspDmaConfigStruct* cfg, + msp_func_t initFunc = &spi::halMspInitDma, + msp_func_t deinitFunc= &spi::halMspDeinitDma +); +void setSpiIrqMspFunctions(MspIrqConfigStruct* cfg, + msp_func_t initFunc = &spi::halMspInitInterrupt, + msp_func_t deinitFunc= &spi::halMspDeinitInterrupt +); +void setSpiPollingMspFunctions(MspPollingConfigStruct* cfg, + msp_func_t initFunc = &spi::halMspInitPolling, + msp_func_t deinitFunc= &spi::halMspDeinitPolling +); + +void mspErrorHandler(const char* const function, const char *const message); + +} + + +#ifdef __cplusplus +} +#endif + +#endif /* FSFW_HAL_STM32H7_SPI_MSPINIT_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/spiCore.h b/hal/inc/fsfw/stm32h7/spi/spiCore.h new file mode 100644 index 000000000..7a9a0e18e --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/spiCore.h @@ -0,0 +1,53 @@ +#ifndef FSFW_HAL_STM32H7_SPI_SPICORE_H_ +#define FSFW_HAL_STM32H7_SPI_SPICORE_H_ + +#include +#include "stm32h7xx_hal.h" +#include "stm32h7xx_hal_dma.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +using spi_transfer_cb_t = void (*) (SPI_HandleTypeDef *hspi, void* userArgs); + +namespace spi { + +void configureDmaHandle(DMA_HandleTypeDef* handle, spi::SpiBus spiBus, + dma::DMAType dmaType, dma::DMAIndexes dmaIdx, + dma::DMAStreams dmaStream, IRQn_Type* dmaIrqNumber, uint32_t dmaMode = DMA_NORMAL, + uint32_t dmaPriority = DMA_PRIORITY_LOW); + +/** + * Assign DMA handles. Required to use DMA for SPI transfers. + * @param txHandle + * @param rxHandle + */ +void setDmaHandles(DMA_HandleTypeDef* txHandle, DMA_HandleTypeDef* rxHandle); +void getDmaHandles(DMA_HandleTypeDef** txHandle, DMA_HandleTypeDef** rxHandle); + +/** + * Assign SPI handle. Needs to be done before using the SPI + * @param spiHandle + */ +void setSpiHandle(SPI_HandleTypeDef *spiHandle); + +void assignTransferRxTxCompleteCallback(spi_transfer_cb_t callback, void* userArgs); +void assignTransferRxCompleteCallback(spi_transfer_cb_t callback, void* userArgs); +void assignTransferTxCompleteCallback(spi_transfer_cb_t callback, void* userArgs); +void assignTransferErrorCallback(spi_transfer_cb_t callback, void* userArgs); + +/** + * Get the assigned SPI handle. + * @return + */ +SPI_HandleTypeDef* getSpiHandle(); + +} + +#ifdef __cplusplus +} +#endif + +#endif /* FSFW_HAL_STM32H7_SPI_SPICORE_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/spiDefinitions.h b/hal/inc/fsfw/stm32h7/spi/spiDefinitions.h new file mode 100644 index 000000000..772bf32de --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/spiDefinitions.h @@ -0,0 +1,50 @@ +#ifndef FSFW_HAL_STM32H7_SPI_SPIDEFINITIONS_H_ +#define FSFW_HAL_STM32H7_SPI_SPIDEFINITIONS_H_ + +#include "../../common/spi/spiCommon.h" + +#include "fsfw/returnvalues/FwClassIds.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" + +#include "stm32h7xx_hal.h" +#include "stm32h7xx_hal_spi.h" + +namespace spi { + +static constexpr uint8_t HAL_SPI_ID = CLASS_ID::HAL_SPI; +static constexpr ReturnValue_t HAL_TIMEOUT_RETVAL = HasReturnvaluesIF::makeReturnCode(HAL_SPI_ID, 0); +static constexpr ReturnValue_t HAL_BUSY_RETVAL = HasReturnvaluesIF::makeReturnCode(HAL_SPI_ID, 1); +static constexpr ReturnValue_t HAL_ERROR_RETVAL = HasReturnvaluesIF::makeReturnCode(HAL_SPI_ID, 2); + +enum class TransferStates { + IDLE, + WAIT, + SUCCESS, + FAILURE +}; + +enum SpiBus { + SPI_1, + SPI_2 +}; + +enum TransferModes { + POLLING, + INTERRUPT, + DMA +}; + +void assignSpiMode(SpiModes spiMode, SPI_HandleTypeDef& spiHandle); + +/** + * @brief Set SPI frequency to calculate correspondent baud-rate prescaler. + * @param clock_src_freq Frequency of clock source + * @param baudrate_mbps Baudrate to set to set + * @retval Baudrate prescaler + */ +uint32_t getPrescaler(uint32_t clock_src_freq, uint32_t baudrate_mbps); + +} + + +#endif /* FSFW_HAL_STM32H7_SPI_SPIDEFINITIONS_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/spiInterrupts.h b/hal/inc/fsfw/stm32h7/spi/spiInterrupts.h new file mode 100644 index 000000000..0b53f48bd --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/spiInterrupts.h @@ -0,0 +1,41 @@ +#ifndef FSFW_HAL_STM32H7_SPI_INTERRUPTS_H_ +#define FSFW_HAL_STM32H7_SPI_INTERRUPTS_H_ + +#include "../interrupts.h" +#include "spiDefinitions.h" + +#ifdef __cplusplus +extern "C" { +#endif + +namespace spi { + +void assignSpiUserArgs(spi::SpiBus spiBus, user_args_t userArgs); + +/** + * Assign a user interrupt handler for SPI bus 1, allowing to pass an arbitrary argument as well. + * Generally, this argument will be the related SPI handle. + * @param user_handler + * @param user_args + */ +void assignSpiUserHandler(spi::SpiBus spiBus, user_handler_t user_handler, + user_args_t user_args); +void getSpiUserHandler(spi::SpiBus spiBus, user_handler_t* user_handler, + user_args_t* user_args); + +/** + * Generic interrupt handlers supplied for convenience. Do not call these directly! Set them + * instead with assign_dma_user_handler and assign_spi_user_handler functions. + * @param dma_handle + */ +void dmaRxIrqHandler(void* dma_handle); +void dmaTxIrqHandler(void* dma_handle); +void spiIrqHandler(void* spi_handle); + +} + +#ifdef __cplusplus +} +#endif + +#endif /* FSFW_HAL_STM32H7_SPI_INTERRUPTS_H_ */ diff --git a/hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h b/hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h new file mode 100644 index 000000000..87689addf --- /dev/null +++ b/hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h @@ -0,0 +1,23 @@ +#ifndef FSFW_HAL_STM32H7_SPI_STM32H743ZISPI_H_ +#define FSFW_HAL_STM32H7_SPI_STM32H743ZISPI_H_ + +#include "mspInit.h" + +namespace spi { + +namespace h743zi { + +void standardPollingCfg(MspPollingConfigStruct& cfg); +void standardInterruptCfg(MspIrqConfigStruct& cfg, IrqPriorities spiIrqPrio, + IrqPriorities spiSubprio = HIGHEST); +void standardDmaCfg(MspDmaConfigStruct& cfg, IrqPriorities spiIrqPrio, + IrqPriorities txIrqPrio, IrqPriorities rxIrqPrio, + IrqPriorities spiSubprio = HIGHEST, IrqPriorities txSubPrio = HIGHEST, + IrqPriorities rxSubprio = HIGHEST); + +} +} + + + +#endif /* FSFW_HAL_STM32H7_SPI_STM32H743ZISPI_H_ */ diff --git a/hal/src/common/gpio/CMakeLists.txt b/hal/src/common/gpio/CMakeLists.txt new file mode 100644 index 000000000..9dbcdf9d2 --- /dev/null +++ b/hal/src/common/gpio/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + GpioCookie.cpp +) \ No newline at end of file diff --git a/hal/src/common/gpio/GpioCookie.cpp b/hal/src/common/gpio/GpioCookie.cpp new file mode 100644 index 000000000..da765ceac --- /dev/null +++ b/hal/src/common/gpio/GpioCookie.cpp @@ -0,0 +1,50 @@ +#include "GpioCookie.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + +GpioCookie::GpioCookie() { +} + +ReturnValue_t GpioCookie::addGpio(gpioId_t gpioId, GpioBase* gpioConfig) { + if (gpioConfig == nullptr) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "GpioCookie::addGpio: gpioConfig is nullpointer" << std::endl; +#else + sif::printWarning("GpioCookie::addGpio: gpioConfig is nullpointer\n"); +#endif + return HasReturnvaluesIF::RETURN_FAILED; + } + auto gpioMapIter = gpioMap.find(gpioId); + if(gpioMapIter == gpioMap.end()) { + auto statusPair = gpioMap.emplace(gpioId, gpioConfig); + if (statusPair.second == false) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "GpioCookie::addGpio: Failed to add GPIO " << gpioId << + " to GPIO map" << std::endl; +#else + sif::printWarning("GpioCookie::addGpio: Failed to add GPIO %d to GPIO map\n", gpioId); +#endif +#endif + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; + } +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "GpioCookie::addGpio: GPIO already exists in GPIO map " << std::endl; +#else + sif::printWarning("GpioCookie::addGpio: GPIO already exists in GPIO map\n"); +#endif +#endif + return HasReturnvaluesIF::RETURN_FAILED; +} + +GpioMap GpioCookie::getGpioMap() const { + return gpioMap; +} + +GpioCookie::~GpioCookie() { + for(auto& config: gpioMap) { + delete(config.second); + } +} diff --git a/hal/src/devicehandlers/CMakeLists.txt b/hal/src/devicehandlers/CMakeLists.txt new file mode 100644 index 000000000..1cde7e498 --- /dev/null +++ b/hal/src/devicehandlers/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + GyroL3GD20Handler.cpp +) diff --git a/hal/src/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/devicehandlers/GyroL3GD20Handler.cpp new file mode 100644 index 000000000..79cbe4354 --- /dev/null +++ b/hal/src/devicehandlers/GyroL3GD20Handler.cpp @@ -0,0 +1,262 @@ +#include "GyroL3GD20Handler.h" + +#include + +GyroHandlerL3GD20H::GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, + CookieIF *comCookie): + DeviceHandlerBase(objectId, deviceCommunication, comCookie), + dataset(this) { +#if FSFW_HAL_L3GD20_GYRO_DEBUG == 1 + debugDivider = new PeriodicOperationDivider(5); +#endif +} + +GyroHandlerL3GD20H::~GyroHandlerL3GD20H() {} + +void GyroHandlerL3GD20H::doStartUp() { + if(internalState == InternalState::NONE) { + internalState = InternalState::CONFIGURE; + } + + if(internalState == InternalState::CONFIGURE) { + if(commandExecuted) { + internalState = InternalState::CHECK_REGS; + commandExecuted = false; + } + } + + if(internalState == InternalState::CHECK_REGS) { + if(commandExecuted) { + internalState = InternalState::NORMAL; + if(goNormalModeImmediately) { + setMode(MODE_NORMAL); + } + else { + setMode(_MODE_TO_ON); + } + commandExecuted = false; + } + } +} + +void GyroHandlerL3GD20H::doShutDown() { + setMode(_MODE_POWER_DOWN); +} + +ReturnValue_t GyroHandlerL3GD20H::buildTransitionDeviceCommand(DeviceCommandId_t *id) { + switch(internalState) { + case(InternalState::NONE): + case(InternalState::NORMAL): { + return HasReturnvaluesIF::RETURN_OK; + } + case(InternalState::CONFIGURE): { + *id = L3GD20H::CONFIGURE_CTRL_REGS; + uint8_t command [5]; + command[0] = L3GD20H::CTRL_REG_1_VAL; + command[1] = L3GD20H::CTRL_REG_2_VAL; + command[2] = L3GD20H::CTRL_REG_3_VAL; + command[3] = L3GD20H::CTRL_REG_4_VAL; + command[4] = L3GD20H::CTRL_REG_5_VAL; + return buildCommandFromCommand(*id, command, 5); + } + case(InternalState::CHECK_REGS): { + *id = L3GD20H::READ_REGS; + return buildCommandFromCommand(*id, nullptr, 0); + } + default: +#if FSFW_CPP_OSTREAM_ENABLED == 1 + /* Might be a configuration error. */ + sif::debug << "GyroHandler::buildTransitionDeviceCommand: Unknown internal state!" << + std::endl; +#else + sif::printDebug("GyroHandler::buildTransitionDeviceCommand: Unknown internal state!\n"); +#endif + return HasReturnvaluesIF::RETURN_OK; + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroHandlerL3GD20H::buildNormalDeviceCommand(DeviceCommandId_t *id) { + *id = L3GD20H::READ_REGS; + return buildCommandFromCommand(*id, nullptr, 0); +} + +ReturnValue_t GyroHandlerL3GD20H::buildCommandFromCommand( + DeviceCommandId_t deviceCommand, const uint8_t *commandData, + size_t commandDataLen) { + switch(deviceCommand) { + case(L3GD20H::READ_REGS): { + commandBuffer[0] = L3GD20H::READ_START | L3GD20H::AUTO_INCREMENT_MASK | L3GD20H::READ_MASK; + std::memset(commandBuffer + 1, 0, L3GD20H::READ_LEN); + rawPacket = commandBuffer; + rawPacketLen = L3GD20H::READ_LEN + 1; + break; + } + case(L3GD20H::CONFIGURE_CTRL_REGS): { + commandBuffer[0] = L3GD20H::CTRL_REG_1 | L3GD20H::AUTO_INCREMENT_MASK; + if(commandData == nullptr or commandDataLen != 5) { + return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; + } + + ctrlReg1Value = commandData[0]; + ctrlReg2Value = commandData[1]; + ctrlReg3Value = commandData[2]; + ctrlReg4Value = commandData[3]; + ctrlReg5Value = commandData[4]; + + bool fsH = ctrlReg4Value & L3GD20H::SET_FS_1; + bool fsL = ctrlReg4Value & L3GD20H::SET_FS_0; + + if(not fsH and not fsL) { + sensitivity = L3GD20H::SENSITIVITY_00; + } + else if(not fsH and fsL) { + sensitivity = L3GD20H::SENSITIVITY_01; + } + else { + sensitivity = L3GD20H::SENSITIVITY_11; + } + + commandBuffer[1] = ctrlReg1Value; + commandBuffer[2] = ctrlReg2Value; + commandBuffer[3] = ctrlReg3Value; + commandBuffer[4] = ctrlReg4Value; + commandBuffer[5] = ctrlReg5Value; + + rawPacket = commandBuffer; + rawPacketLen = 6; + break; + } + case(L3GD20H::READ_CTRL_REGS): { + commandBuffer[0] = L3GD20H::READ_START | L3GD20H::AUTO_INCREMENT_MASK | + L3GD20H::READ_MASK; + + std::memset(commandBuffer + 1, 0, 5); + rawPacket = commandBuffer; + rawPacketLen = 6; + break; + } + default: + return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED; + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroHandlerL3GD20H::scanForReply(const uint8_t *start, size_t len, + DeviceCommandId_t *foundId, size_t *foundLen) { + /* For SPI, the ID will always be the one of the last sent command. */ + *foundId = this->getPendingCommand(); + *foundLen = this->rawPacketLen; + + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroHandlerL3GD20H::interpretDeviceReply(DeviceCommandId_t id, + const uint8_t *packet) { + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + switch(id) { + case(L3GD20H::CONFIGURE_CTRL_REGS): { + commandExecuted = true; + break; + } + case(L3GD20H::READ_CTRL_REGS): { + if(packet[1] == ctrlReg1Value and packet[2] == ctrlReg2Value and + packet[3] == ctrlReg3Value and packet[4] == ctrlReg4Value and + packet[5] == ctrlReg5Value) { + commandExecuted = true; + } + else { + /* Attempt reconfiguration. */ + internalState = InternalState::CONFIGURE; + return DeviceHandlerIF::DEVICE_REPLY_INVALID; + } + break; + } + case(L3GD20H::READ_REGS): { + if(packet[1] != ctrlReg1Value and packet[2] != ctrlReg2Value and + packet[3] != ctrlReg3Value and packet[4] != ctrlReg4Value and + packet[5] != ctrlReg5Value) { + return DeviceHandlerIF::DEVICE_REPLY_INVALID; + } + else { + if(internalState == InternalState::CHECK_REGS) { + commandExecuted = true; + } + } + + statusReg = packet[L3GD20H::STATUS_IDX]; + + int16_t angVelocXRaw = packet[L3GD20H::OUT_X_H] << 8 | packet[L3GD20H::OUT_X_L]; + int16_t angVelocYRaw = packet[L3GD20H::OUT_Y_H] << 8 | packet[L3GD20H::OUT_Y_L]; + int16_t angVelocZRaw = packet[L3GD20H::OUT_Z_H] << 8 | packet[L3GD20H::OUT_Z_L]; + float angVelocX = angVelocXRaw * sensitivity; + float angVelocY = angVelocYRaw * sensitivity; + float angVelocZ = angVelocZRaw * sensitivity; + + int8_t temperaturOffset = (-1) * packet[L3GD20H::TEMPERATURE_IDX]; + float temperature = 25.0 + temperaturOffset; +#if FSFW_HAL_L3GD20_GYRO_DEBUG == 1 + if(debugDivider->checkAndIncrement()) { + /* Set terminal to utf-8 if there is an issue with micro printout. */ +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::info << "GyroHandlerL3GD20H: Angular velocities in degrees per second:" << + std::endl; + sif::info << "X: " << angVelocX << " \xC2\xB0" << std::endl; + sif::info << "Y: " << angVelocY << " \xC2\xB0" << std::endl; + sif::info << "Z: " << angVelocZ << " \xC2\xB0" << std::endl; +#else + sif::printInfo("GyroHandlerL3GD20H: Angular velocities in degrees per second:\n"); + sif::printInfo("X: %f\n", angVelocX); + sif::printInfo("Y: %f\n", angVelocY); + sif::printInfo("Z: %f\n", angVelocZ); +#endif + } +#endif + + PoolReadGuard readSet(&dataset); + if(readSet.getReadResult() == HasReturnvaluesIF::RETURN_OK) { + dataset.angVelocX = angVelocX; + dataset.angVelocY = angVelocY; + dataset.angVelocZ = angVelocZ; + dataset.temperature = temperature; + dataset.setValidity(true, true); + } + break; + } + default: + return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED; + } + return result; +} + + +uint32_t GyroHandlerL3GD20H::getTransitionDelayMs(Mode_t from, Mode_t to) { + return 10000; +} + +void GyroHandlerL3GD20H::setGoNormalModeAtStartup() { + this->goNormalModeImmediately = true; +} + +ReturnValue_t GyroHandlerL3GD20H::initializeLocalDataPool( + localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { + localDataPoolMap.emplace(L3GD20H::ANG_VELOC_X, + new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::ANG_VELOC_Y, + new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::ANG_VELOC_Z, + new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::TEMPERATURE, + new PoolEntry({0.0})); + return HasReturnvaluesIF::RETURN_OK; +} + +void GyroHandlerL3GD20H::fillCommandAndReplyMap() { + insertInCommandAndReplyMap(L3GD20H::READ_REGS, 1, &dataset); + insertInCommandAndReplyMap(L3GD20H::CONFIGURE_CTRL_REGS, 1); + insertInCommandAndReplyMap(L3GD20H::READ_CTRL_REGS, 1); +} + +void GyroHandlerL3GD20H::modeChanged() { + internalState = InternalState::NONE; +} diff --git a/hal/src/host/CMakeLists.txt b/hal/src/host/CMakeLists.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/hal/src/host/CMakeLists.txt @@ -0,0 +1 @@ + diff --git a/hal/src/linux/CMakeLists.txt b/hal/src/linux/CMakeLists.txt new file mode 100644 index 000000000..6c2ec77eb --- /dev/null +++ b/hal/src/linux/CMakeLists.txt @@ -0,0 +1,13 @@ +if(FSFW_HAL_ADD_RASPBERRY_PI) + add_subdirectory(rpi) +endif() + +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + UnixFileGuard.cpp + utility.cpp +) + +add_subdirectory(gpio) +add_subdirectory(spi) +add_subdirectory(i2c) +add_subdirectory(uart) \ No newline at end of file diff --git a/hal/src/linux/UnixFileGuard.cpp b/hal/src/linux/UnixFileGuard.cpp new file mode 100644 index 000000000..3aec58d8d --- /dev/null +++ b/hal/src/linux/UnixFileGuard.cpp @@ -0,0 +1,33 @@ +#include "UnixFileGuard.h" + +UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, + std::string diagnosticPrefix): + fileDescriptor(fileDescriptor) { + if(fileDescriptor == nullptr) { + return; + } + *fileDescriptor = open(device.c_str(), flags); + if (*fileDescriptor < 0) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << diagnosticPrefix <<"Opening device failed with error code " << errno << + "." << std::endl; + sif::warning << "Error description: " << strerror(errno) << std::endl; +#else + sif::printError("%sOpening device failed with error code %d.\n", diagnosticPrefix); + sif::printWarning("Error description: %s\n", strerror(errno)); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + openStatus = OPEN_FILE_FAILED; + } +} + +UnixFileGuard::~UnixFileGuard() { + if(fileDescriptor != nullptr) { + close(*fileDescriptor); + } +} + +ReturnValue_t UnixFileGuard::getOpenResult() const { + return openStatus; +} diff --git a/hal/src/linux/gpio/CMakeLists.txt b/hal/src/linux/gpio/CMakeLists.txt new file mode 100644 index 000000000..b2041b401 --- /dev/null +++ b/hal/src/linux/gpio/CMakeLists.txt @@ -0,0 +1,12 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + LinuxLibgpioIF.cpp +) + +# This abstraction layer requires the gpiod library. You can install this library +# with "sudo apt-get install -y libgpiod-dev". If you are cross-compiling, you need +# to install the package before syncing the sysroot to your host computer. +find_library(LIB_GPIO gpiod REQUIRED) + +target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE + ${LIB_GPIO} +) \ No newline at end of file diff --git a/hal/src/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/linux/gpio/LinuxLibgpioIF.cpp new file mode 100644 index 000000000..cfdac2bf5 --- /dev/null +++ b/hal/src/linux/gpio/LinuxLibgpioIF.cpp @@ -0,0 +1,305 @@ +#include "LinuxLibgpioIF.h" +#include +#include + +#include + +#include +#include +#include + +LinuxLibgpioIF::LinuxLibgpioIF(object_id_t objectId) : SystemObject(objectId) { +} + +LinuxLibgpioIF::~LinuxLibgpioIF() { + for(auto& config: gpioMap) { + delete(config.second); + } +} + +ReturnValue_t LinuxLibgpioIF::addGpios(GpioCookie* gpioCookie) { + ReturnValue_t result; + if(gpioCookie == nullptr) { + sif::error << "LinuxLibgpioIF::initialize: Invalid cookie" << std::endl; + return RETURN_FAILED; + } + + GpioMap mapToAdd = gpioCookie->getGpioMap(); + + /* Check whether this ID already exists in the map and remove duplicates */ + result = checkForConflicts(mapToAdd); + if (result != RETURN_OK){ + return result; + } + + result = configureGpios(mapToAdd); + if (result != RETURN_OK) { + return RETURN_FAILED; + } + + /* Register new GPIOs in gpioMap */ + gpioMap.insert(mapToAdd.begin(), mapToAdd.end()); + + return RETURN_OK; +} + +ReturnValue_t LinuxLibgpioIF::configureGpios(GpioMap& mapToAdd) { + for(auto& gpioConfig: mapToAdd) { + switch(gpioConfig.second->gpioType) { + case(gpio::GpioTypes::NONE): { + return GPIO_INVALID_INSTANCE; + } + case(gpio::GpioTypes::GPIO_REGULAR): { + GpiodRegular* regularGpio = dynamic_cast(gpioConfig.second); + if(regularGpio == nullptr) { + return GPIO_INVALID_INSTANCE; + } + configureRegularGpio(gpioConfig.first, regularGpio); + break; + } + case(gpio::GpioTypes::CALLBACK): { + auto gpioCallback = dynamic_cast(gpioConfig.second); + if(gpioCallback->callback == nullptr) { + return GPIO_INVALID_INSTANCE; + } + gpioCallback->callback(gpioConfig.first, gpio::GpioOperation::WRITE, + gpioCallback->initValue, gpioCallback->callbackArgs); + } + } + } + return RETURN_OK; +} + +ReturnValue_t LinuxLibgpioIF::configureRegularGpio(gpioId_t gpioId, GpiodRegular *regularGpio) { + std::string chipname; + unsigned int lineNum; + struct gpiod_chip *chip; + gpio::Direction direction; + std::string consumer; + struct gpiod_line *lineHandle; + int result = 0; + + chipname = regularGpio->chipname; + chip = gpiod_chip_open_by_name(chipname.c_str()); + if (!chip) { + sif::warning << "LinuxLibgpioIF::configureRegularGpio: Failed to open chip " + << chipname << ". Gpio ID: " << gpioId << std::endl; + return RETURN_FAILED; + } + + lineNum = regularGpio->lineNum; + lineHandle = gpiod_chip_get_line(chip, lineNum); + if (!lineHandle) { + sif::debug << "LinuxLibgpioIF::configureRegularGpio: Failed to open line " << std::endl; + sif::debug << "GPIO ID: " << gpioId << ", line number: " << lineNum << + ", chipname: " << chipname << std::endl; + sif::debug << "Check if linux GPIO configuration has changed. " << std::endl; + gpiod_chip_close(chip); + return RETURN_FAILED; + } + + direction = regularGpio->direction; + consumer = regularGpio->consumer; + /* Configure direction and add a description to the GPIO */ + switch (direction) { + case(gpio::OUT): { + result = gpiod_line_request_output(lineHandle, consumer.c_str(), + regularGpio->initValue); + if (result < 0) { + sif::error << "LinuxLibgpioIF::configureRegularGpio: Failed to request line " << lineNum << + " from GPIO instance with ID: " << gpioId << std::endl; + gpiod_line_release(lineHandle); + return RETURN_FAILED; + } + break; + } + case(gpio::IN): { + result = gpiod_line_request_input(lineHandle, consumer.c_str()); + if (result < 0) { + sif::error << "LinuxLibgpioIF::configureGpios: Failed to request line " + << lineNum << " from GPIO instance with ID: " << gpioId << std::endl; + gpiod_line_release(lineHandle); + return RETURN_FAILED; + } + break; + } + default: { + sif::error << "LinuxLibgpioIF::configureGpios: Invalid direction specified" + << std::endl; + return GPIO_INVALID_INSTANCE; + } + + } + /** + * Write line handle to GPIO configuration instance so it can later be used to set or + * read states of GPIOs. + */ + regularGpio->lineHandle = lineHandle; + return RETURN_OK; +} + +ReturnValue_t LinuxLibgpioIF::pullHigh(gpioId_t gpioId) { + gpioMapIter = gpioMap.find(gpioId); + if (gpioMapIter == gpioMap.end()) { + sif::warning << "LinuxLibgpioIF::pullHigh: Unknown GPIO ID " << gpioId << std::endl; + return UNKNOWN_GPIO_ID; + } + + if(gpioMapIter->second->gpioType == gpio::GpioTypes::GPIO_REGULAR) { + return driveGpio(gpioId, dynamic_cast(gpioMapIter->second), 1); + } + else { + auto gpioCallback = dynamic_cast(gpioMapIter->second); + if(gpioCallback->callback == nullptr) { + return GPIO_INVALID_INSTANCE; + } + gpioCallback->callback(gpioMapIter->first, gpio::GpioOperation::WRITE, + 1, gpioCallback->callbackArgs); + return RETURN_OK; + } + return GPIO_TYPE_FAILURE; +} + +ReturnValue_t LinuxLibgpioIF::pullLow(gpioId_t gpioId) { + gpioMapIter = gpioMap.find(gpioId); + if (gpioMapIter == gpioMap.end()) { + sif::warning << "LinuxLibgpioIF::pullLow: Unknown GPIO ID " << gpioId << std::endl; + return UNKNOWN_GPIO_ID; + } + + if(gpioMapIter->second->gpioType == gpio::GpioTypes::GPIO_REGULAR) { + return driveGpio(gpioId, dynamic_cast(gpioMapIter->second), 0); + } + else { + auto gpioCallback = dynamic_cast(gpioMapIter->second); + if(gpioCallback->callback == nullptr) { + return GPIO_INVALID_INSTANCE; + } + gpioCallback->callback(gpioMapIter->first, gpio::GpioOperation::WRITE, + 0, gpioCallback->callbackArgs); + return RETURN_OK; + } + return GPIO_TYPE_FAILURE; +} + +ReturnValue_t LinuxLibgpioIF::driveGpio(gpioId_t gpioId, + GpiodRegular* regularGpio, unsigned int logicLevel) { + if(regularGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + + int result = gpiod_line_set_value(regularGpio->lineHandle, logicLevel); + if (result < 0) { + sif::warning << "LinuxLibgpioIF::driveGpio: Failed to pull GPIO with ID " << gpioId << + " to logic level " << logicLevel << std::endl; + return DRIVE_GPIO_FAILURE; + } + + return RETURN_OK; +} + +ReturnValue_t LinuxLibgpioIF::readGpio(gpioId_t gpioId, int* gpioState) { + gpioMapIter = gpioMap.find(gpioId); + if (gpioMapIter == gpioMap.end()){ + sif::warning << "LinuxLibgpioIF::readGpio: Unknown GPIOD ID " << gpioId << std::endl; + return UNKNOWN_GPIO_ID; + } + + if(gpioMapIter->second->gpioType == gpio::GpioTypes::GPIO_REGULAR) { + GpiodRegular* regularGpio = dynamic_cast(gpioMapIter->second); + if(regularGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + *gpioState = gpiod_line_get_value(regularGpio->lineHandle); + } + else { + + } + + + return RETURN_OK; +} + +ReturnValue_t LinuxLibgpioIF::checkForConflicts(GpioMap& mapToAdd){ + ReturnValue_t status = HasReturnvaluesIF::RETURN_OK; + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + for(auto& gpioConfig: mapToAdd) { + switch(gpioConfig.second->gpioType) { + case(gpio::GpioTypes::GPIO_REGULAR): { + auto regularGpio = dynamic_cast(gpioConfig.second); + if(regularGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + /* Check for conflicts and remove duplicates if necessary */ + result = checkForConflictsRegularGpio(gpioConfig.first, regularGpio, mapToAdd); + if(result != HasReturnvaluesIF::RETURN_OK) { + status = result; + } + break; + } + case(gpio::GpioTypes::CALLBACK): { + auto callbackGpio = dynamic_cast(gpioConfig.second); + if(callbackGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + /* Check for conflicts and remove duplicates if necessary */ + result = checkForConflictsCallbackGpio(gpioConfig.first, callbackGpio, mapToAdd); + if(result != HasReturnvaluesIF::RETURN_OK) { + status = result; + } + break; + } + default: { + + } + } + } + return status; +} + + +ReturnValue_t LinuxLibgpioIF::checkForConflictsRegularGpio(gpioId_t gpioIdToCheck, + GpiodRegular* gpioToCheck, GpioMap& mapToAdd) { + /* Cross check with private map */ + gpioMapIter = gpioMap.find(gpioIdToCheck); + if(gpioMapIter != gpioMap.end()) { + if(gpioMapIter->second->gpioType != gpio::GpioTypes::GPIO_REGULAR) { + sif::warning << "LinuxLibgpioIF::checkForConflicts: ID already exists for different " + "GPIO type" << gpioIdToCheck << ". Removing duplicate." << std::endl; + mapToAdd.erase(gpioIdToCheck); + return HasReturnvaluesIF::RETURN_OK; + } + auto ownRegularGpio = dynamic_cast(gpioMapIter->second); + if(ownRegularGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + + /* Remove element from map to add because a entry for this GPIO + already exists */ + sif::warning << "LinuxLibgpioIF::checkForConflictsRegularGpio: Duplicate GPIO definition" + << " detected. Duplicate will be removed from map to add." << std::endl; + mapToAdd.erase(gpioIdToCheck); + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t LinuxLibgpioIF::checkForConflictsCallbackGpio(gpioId_t gpioIdToCheck, + GpioCallback *callbackGpio, GpioMap& mapToAdd) { + /* Cross check with private map */ + gpioMapIter = gpioMap.find(gpioIdToCheck); + if(gpioMapIter != gpioMap.end()) { + if(gpioMapIter->second->gpioType != gpio::GpioTypes::CALLBACK) { + sif::warning << "LinuxLibgpioIF::checkForConflicts: ID already exists for different " + "GPIO type" << gpioIdToCheck << ". Removing duplicate." << std::endl; + mapToAdd.erase(gpioIdToCheck); + return HasReturnvaluesIF::RETURN_OK; + } + + /* Remove element from map to add because a entry for this GPIO + already exists */ + sif::warning << "LinuxLibgpioIF::checkForConflictsRegularGpio: Duplicate GPIO definition" + << " detected. Duplicate will be removed from map to add." << std::endl; + mapToAdd.erase(gpioIdToCheck); + } + return HasReturnvaluesIF::RETURN_OK; +} diff --git a/hal/src/linux/i2c/CMakeLists.txt b/hal/src/linux/i2c/CMakeLists.txt new file mode 100644 index 000000000..0e50313c7 --- /dev/null +++ b/hal/src/linux/i2c/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(${LIB_FSFW_HAL_NAME} PUBLIC + I2cComIF.cpp + I2cCookie.cpp +) + + + + diff --git a/hal/src/linux/i2c/I2cComIF.cpp b/hal/src/linux/i2c/I2cComIF.cpp new file mode 100644 index 000000000..aa336c7b5 --- /dev/null +++ b/hal/src/linux/i2c/I2cComIF.cpp @@ -0,0 +1,205 @@ +#include "I2cComIF.h" +#include "../utility.h" +#include "../UnixFileGuard.h" + +#include + +#include +#include +#include +#include +#include + +#include + + +I2cComIF::I2cComIF(object_id_t objectId): SystemObject(objectId){ +} + +I2cComIF::~I2cComIF() {} + +ReturnValue_t I2cComIF::initializeInterface(CookieIF* cookie) { + + address_t i2cAddress; + std::string deviceFile; + + if(cookie == nullptr) { + sif::error << "I2cComIF::initializeInterface: Invalid cookie!" << std::endl; + return NULLPOINTER; + } + I2cCookie* i2cCookie = dynamic_cast(cookie); + if(i2cCookie == nullptr) { + sif::error << "I2cComIF::initializeInterface: Invalid I2C cookie!" << std::endl; + return NULLPOINTER; + } + + i2cAddress = i2cCookie->getAddress(); + + i2cDeviceMapIter = i2cDeviceMap.find(i2cAddress); + if(i2cDeviceMapIter == i2cDeviceMap.end()) { + size_t maxReplyLen = i2cCookie->getMaxReplyLen(); + I2cInstance i2cInstance = {std::vector(maxReplyLen), 0}; + auto statusPair = i2cDeviceMap.emplace(i2cAddress, i2cInstance); + if (not statusPair.second) { + sif::error << "I2cComIF::initializeInterface: Failed to insert device with address " << + i2cAddress << "to I2C device " << "map" << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; + } + + sif::error << "I2cComIF::initializeInterface: Device with address " << i2cAddress << + "already in use" << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; +} + +ReturnValue_t I2cComIF::sendMessage(CookieIF *cookie, + const uint8_t *sendData, size_t sendLen) { + + ReturnValue_t result; + int fd; + std::string deviceFile; + + if(sendData == nullptr) { + sif::error << "I2cComIF::sendMessage: Send Data is nullptr" + << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; + } + + if(sendLen == 0) { + return HasReturnvaluesIF::RETURN_OK; + } + + I2cCookie* i2cCookie = dynamic_cast(cookie); + if(i2cCookie == nullptr) { + sif::error << "I2cComIF::sendMessage: Invalid I2C Cookie!" << std::endl; + return NULLPOINTER; + } + + address_t i2cAddress = i2cCookie->getAddress(); + i2cDeviceMapIter = i2cDeviceMap.find(i2cAddress); + if (i2cDeviceMapIter == i2cDeviceMap.end()) { + sif::error << "I2cComIF::sendMessage: i2cAddress of Cookie not " + << "registered in i2cDeviceMap" << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; + } + + deviceFile = i2cCookie->getDeviceFile(); + UnixFileGuard fileHelper(deviceFile, &fd, O_RDWR, "I2cComIF::sendMessage"); + if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { + return fileHelper.getOpenResult(); + } + result = openDevice(deviceFile, i2cAddress, &fd); + if (result != HasReturnvaluesIF::RETURN_OK){ + return result; + } + + if (write(fd, sendData, sendLen) != (int)sendLen) { + sif::error << "I2cComIF::sendMessage: Failed to send data to I2C " + "device with error code " << errno << ". Error description: " + << strerror(errno) << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t I2cComIF::getSendSuccess(CookieIF *cookie) { + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t I2cComIF::requestReceiveMessage(CookieIF *cookie, + size_t requestLen) { + ReturnValue_t result; + int fd; + std::string deviceFile; + + if (requestLen == 0) { + return HasReturnvaluesIF::RETURN_OK; + } + + I2cCookie* i2cCookie = dynamic_cast(cookie); + if(i2cCookie == nullptr) { + sif::error << "I2cComIF::requestReceiveMessage: Invalid I2C Cookie!" << std::endl; + i2cDeviceMapIter->second.replyLen = 0; + return NULLPOINTER; + } + + address_t i2cAddress = i2cCookie->getAddress(); + i2cDeviceMapIter = i2cDeviceMap.find(i2cAddress); + if (i2cDeviceMapIter == i2cDeviceMap.end()) { + sif::error << "I2cComIF::requestReceiveMessage: i2cAddress of Cookie not " + << "registered in i2cDeviceMap" << std::endl; + i2cDeviceMapIter->second.replyLen = 0; + return HasReturnvaluesIF::RETURN_FAILED; + } + + deviceFile = i2cCookie->getDeviceFile(); + UnixFileGuard fileHelper(deviceFile, &fd, O_RDWR, "I2cComIF::requestReceiveMessage"); + if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { + return fileHelper.getOpenResult(); + } + result = openDevice(deviceFile, i2cAddress, &fd); + if (result != HasReturnvaluesIF::RETURN_OK){ + i2cDeviceMapIter->second.replyLen = 0; + return result; + } + + uint8_t* replyBuffer = i2cDeviceMapIter->second.replyBuffer.data(); + + int readLen = read(fd, replyBuffer, requestLen); + if (readLen != static_cast(requestLen)) { +#if FSFW_VERBOSE_LEVEL >= 1 and FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "I2cComIF::requestReceiveMessage: Reading from I2C " + << "device failed with error code " << errno <<". Description" + << " of error: " << strerror(errno) << std::endl; + sif::error << "I2cComIF::requestReceiveMessage: Read only " << readLen << " from " + << requestLen << " bytes" << std::endl; +#endif + i2cDeviceMapIter->second.replyLen = 0; + sif::debug << "I2cComIF::requestReceiveMessage: Read " << readLen << " of " << requestLen << " bytes" << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; + } + + i2cDeviceMapIter->second.replyLen = requestLen; + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t I2cComIF::readReceivedMessage(CookieIF *cookie, + uint8_t **buffer, size_t* size) { + I2cCookie* i2cCookie = dynamic_cast(cookie); + if(i2cCookie == nullptr) { + sif::error << "I2cComIF::readReceivedMessage: Invalid I2C Cookie!" << std::endl; + return NULLPOINTER; + } + + address_t i2cAddress = i2cCookie->getAddress(); + i2cDeviceMapIter = i2cDeviceMap.find(i2cAddress); + if (i2cDeviceMapIter == i2cDeviceMap.end()) { + sif::error << "I2cComIF::readReceivedMessage: i2cAddress of Cookie not " + << "found in i2cDeviceMap" << std::endl; + return HasReturnvaluesIF::RETURN_FAILED; + } + *buffer = i2cDeviceMapIter->second.replyBuffer.data(); + *size = i2cDeviceMapIter->second.replyLen; + + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t I2cComIF::openDevice(std::string deviceFile, + address_t i2cAddress, int* fileDescriptor) { + + if (ioctl(*fileDescriptor, I2C_SLAVE, i2cAddress) < 0) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "I2cComIF: Specifying target device failed with error code " << errno << "." + << std::endl; + sif::warning << "Error description " << strerror(errno) << std::endl; +#else + sif::printWarning("I2cComIF: Specifying target device failed with error code %d.\n"); + sif::printWarning("Error description: %s\n", strerror(errno)); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; +} diff --git a/hal/src/linux/i2c/I2cCookie.cpp b/hal/src/linux/i2c/I2cCookie.cpp new file mode 100644 index 000000000..fe0f3f925 --- /dev/null +++ b/hal/src/linux/i2c/I2cCookie.cpp @@ -0,0 +1,20 @@ +#include "I2cCookie.h" + +I2cCookie::I2cCookie(address_t i2cAddress_, size_t maxReplyLen_, + std::string deviceFile_) : + i2cAddress(i2cAddress_), maxReplyLen(maxReplyLen_), deviceFile(deviceFile_) { +} + +address_t I2cCookie::getAddress() const { + return i2cAddress; +} + +size_t I2cCookie::getMaxReplyLen() const { + return maxReplyLen; +} + +std::string I2cCookie::getDeviceFile() const { + return deviceFile; +} + +I2cCookie::~I2cCookie() {} diff --git a/hal/src/linux/rpi/CMakeLists.txt b/hal/src/linux/rpi/CMakeLists.txt new file mode 100644 index 000000000..053583aa0 --- /dev/null +++ b/hal/src/linux/rpi/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + GpioRPi.cpp +) \ No newline at end of file diff --git a/hal/src/linux/rpi/GpioRPi.cpp b/hal/src/linux/rpi/GpioRPi.cpp new file mode 100644 index 000000000..64b6fcaa4 --- /dev/null +++ b/hal/src/linux/rpi/GpioRPi.cpp @@ -0,0 +1,37 @@ +#include "GpioRPi.h" +#include "../../common/gpio/GpioCookie.h" +#include + +#include + + +ReturnValue_t gpio::createRpiGpioConfig(GpioCookie* cookie, gpioId_t gpioId, int bcmPin, + std::string consumer, gpio::Direction direction, int initValue) { + if(cookie == nullptr) { + return HasReturnvaluesIF::RETURN_FAILED; + } + + GpiodRegular* config = new GpiodRegular(); + /* Default chipname for Raspberry Pi. There is still gpiochip1 for expansion, but most users + will not need this */ + config->chipname = "gpiochip0"; + + config->consumer = consumer; + config->direction = direction; + config->initValue = initValue; + + /* Sanity check for the BCM pins before assigning it */ + if(bcmPin > 27) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "createRpiGpioConfig: BCM pin " << bcmPin << " invalid!" << std::endl; +#else + sif::printError("createRpiGpioConfig: BCM pin %d invalid!\n", bcmPin); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return HasReturnvaluesIF::RETURN_FAILED; + } + config->lineNum = bcmPin; + cookie->addGpio(gpioId, config); + return HasReturnvaluesIF::RETURN_OK; +} diff --git a/hal/src/linux/spi/CMakeLists.txt b/hal/src/linux/spi/CMakeLists.txt new file mode 100644 index 000000000..5794547c4 --- /dev/null +++ b/hal/src/linux/spi/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(${LIB_FSFW_HAL_NAME} PUBLIC + SpiComIF.cpp + SpiCookie.cpp +) + + + + diff --git a/hal/src/linux/spi/SpiComIF.cpp b/hal/src/linux/spi/SpiComIF.cpp new file mode 100644 index 000000000..9dc44295e --- /dev/null +++ b/hal/src/linux/spi/SpiComIF.cpp @@ -0,0 +1,398 @@ +#include "SpiComIF.h" +#include "SpiCookie.h" +#include "../utility.h" +#include "../UnixFileGuard.h" +#include "FSFWConfig.h" + +#include +#include + +#include +#include +#include +#include + +#include +#include + +/* Can be used for low-level debugging of the SPI bus */ +#ifndef FSFW_HAL_LINUX_SPI_WIRETAPPING +#define FSFW_HAL_LINUX_SPI_WIRETAPPING 0 +#endif + +SpiComIF::SpiComIF(object_id_t objectId, GpioIF* gpioComIF): + SystemObject(objectId), gpioComIF(gpioComIF) { + if(gpioComIF == nullptr) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::SpiComIF: GPIO communication interface invalid!" << std::endl; +#else + sif::printError("SpiComIF::SpiComIF: GPIO communication interface invalid!\n"); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + } + + spiMutex = MutexFactory::instance()->createMutex(); +} + +ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) { + int retval = 0; + SpiCookie* spiCookie = dynamic_cast(cookie); + if(spiCookie == nullptr) { + return NULLPOINTER; + } + + address_t spiAddress = spiCookie->getSpiAddress(); + + auto iter = spiDeviceMap.find(spiAddress); + if(iter == spiDeviceMap.end()) { + size_t bufferSize = spiCookie->getMaxBufferSize(); + SpiInstance spiInstance(bufferSize); + auto statusPair = spiDeviceMap.emplace(spiAddress, spiInstance); + if (not statusPair.second) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::initializeInterface: Failed to insert device with address " << + spiAddress << "to SPI device map" << std::endl; +#else + sif::printError("SpiComIF::initializeInterface: Failed to insert device with address " + "%lu to SPI device map\n", static_cast(spiAddress)); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return HasReturnvaluesIF::RETURN_FAILED; + } + /* Now we emplaced the read buffer in the map, we still need to assign that location + to the SPI driver transfer struct */ + spiCookie->assignReadBuffer(statusPair.first->second.replyBuffer.data()); + } + else { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::initializeInterface: SPI address already exists!" << std::endl; +#else + sif::printError("SpiComIF::initializeInterface: SPI address already exists!\n"); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return HasReturnvaluesIF::RETURN_FAILED; + } + + /* Pull CS high in any case to be sure that device is inactive */ + gpioId_t gpioId = spiCookie->getChipSelectPin(); + if(gpioId != gpio::NO_GPIO) { + gpioComIF->pullHigh(gpioId); + } + + size_t spiSpeed = 0; + spi::SpiModes spiMode = spi::SpiModes::MODE_0; + + SpiCookie::UncommonParameters params; + spiCookie->getSpiParameters(spiMode, spiSpeed, ¶ms); + + int fileDescriptor = 0; + UnixFileGuard fileHelper(spiCookie->getSpiDevice(), &fileDescriptor, O_RDWR, + "SpiComIF::initializeInterface: "); + if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { + return fileHelper.getOpenResult(); + } + + /* These flags are rather uncommon */ + if(params.threeWireSpi or params.noCs or params.csHigh) { + uint32_t currentMode = 0; + retval = ioctl(fileDescriptor, SPI_IOC_RD_MODE32, ¤tMode); + if(retval != 0) { + utility::handleIoctlError("SpiComIF::initialiezInterface: Could not read full mode!"); + } + + if(params.threeWireSpi) { + currentMode |= SPI_3WIRE; + } + if(params.noCs) { + /* Some drivers like the Raspberry Pi ignore this flag in any case */ + currentMode |= SPI_NO_CS; + } + if(params.csHigh) { + currentMode |= SPI_CS_HIGH; + } + /* Write adapted mode */ + retval = ioctl(fileDescriptor, SPI_IOC_WR_MODE32, ¤tMode); + if(retval != 0) { + utility::handleIoctlError("SpiComIF::initialiezInterface: Could not write full mode!"); + } + } + if(params.lsbFirst) { + retval = ioctl(fileDescriptor, SPI_IOC_WR_LSB_FIRST, ¶ms.lsbFirst); + if(retval != 0) { + utility::handleIoctlError("SpiComIF::initializeInterface: Setting LSB first failed"); + } + } + if(params.bitsPerWord != 8) { + retval = ioctl(fileDescriptor, SPI_IOC_WR_BITS_PER_WORD, ¶ms.bitsPerWord); + if(retval != 0) { + utility::handleIoctlError("SpiComIF::initializeInterface: " + "Could not write bits per word!"); + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, size_t sendLen) { + SpiCookie* spiCookie = dynamic_cast(cookie); + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + + if(spiCookie == nullptr) { + return NULLPOINTER; + } + + if(sendLen > spiCookie->getMaxBufferSize()) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::sendMessage: Too much data sent, send length" << sendLen << + "larger than maximum buffer length" << spiCookie->getMaxBufferSize() << std::endl; +#else + sif::printWarning("SpiComIF::sendMessage: Too much data sent, send length %lu larger " + "than maximum buffer length %lu!\n", static_cast(sendLen), + static_cast(spiCookie->getMaxBufferSize())); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return DeviceCommunicationIF::TOO_MUCH_DATA; + } + + if(spiCookie->getComIfMode() == spi::SpiComIfModes::REGULAR) { + result = performRegularSendOperation(spiCookie, sendData, sendLen); + } + else if(spiCookie->getComIfMode() == spi::SpiComIfModes::CALLBACK) { + spi::send_callback_function_t sendFunc = nullptr; + void* funcArgs = nullptr; + spiCookie->getCallback(&sendFunc, &funcArgs); + if(sendFunc != nullptr) { + result = sendFunc(this, spiCookie, sendData, sendLen, funcArgs); + } + } + return result; +} + +ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie *spiCookie, const uint8_t *sendData, + size_t sendLen) { + address_t spiAddress = spiCookie->getSpiAddress(); + auto iter = spiDeviceMap.find(spiAddress); + if(iter != spiDeviceMap.end()) { + spiCookie->assignReadBuffer(iter->second.replyBuffer.data()); + } + + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + int retval = 0; + /* Prepare transfer */ + int fileDescriptor = 0; + std::string device = spiCookie->getSpiDevice(); + UnixFileGuard fileHelper(device, &fileDescriptor, O_RDWR, "SpiComIF::sendMessage: "); + if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { + return OPENING_FILE_FAILED; + } + spi::SpiModes spiMode = spi::SpiModes::MODE_0; + uint32_t spiSpeed = 0; + spiCookie->getSpiParameters(spiMode, spiSpeed, nullptr); + setSpiSpeedAndMode(fileDescriptor, spiMode, spiSpeed); + spiCookie->assignWriteBuffer(sendData); + spiCookie->assignTransferSize(sendLen); + + bool fullDuplex = spiCookie->isFullDuplex(); + gpioId_t gpioId = spiCookie->getChipSelectPin(); + + /* Pull SPI CS low. For now, no support for active high given */ + if(gpioId != gpio::NO_GPIO) { + result = spiMutex->lockMutex(timeoutType, timeoutMs); + if (result != RETURN_OK) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::sendMessage: Failed to lock mutex" << std::endl; +#endif + return result; + } + gpioComIF->pullLow(gpioId); + } + + /* Execute transfer */ + if(fullDuplex) { + /* Initiate a full duplex SPI transfer. */ + retval = ioctl(fileDescriptor, SPI_IOC_MESSAGE(1), spiCookie->getTransferStructHandle()); + if(retval < 0) { + utility::handleIoctlError("SpiComIF::sendMessage: ioctl error."); + result = FULL_DUPLEX_TRANSFER_FAILED; + } +#if FSFW_HAL_LINUX_SPI_WIRETAPPING == 1 + performSpiWiretapping(spiCookie); +#endif /* FSFW_LINUX_SPI_WIRETAPPING == 1 */ + } + else { + /* We write with a blocking half-duplex transfer here */ + if (write(fileDescriptor, sendData, sendLen) != static_cast(sendLen)) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::sendMessage: Half-Duplex write operation failed!" << + std::endl; +#else + sif::printWarning("SpiComIF::sendMessage: Half-Duplex write operation failed!\n"); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + result = HALF_DUPLEX_TRANSFER_FAILED; + } + } + + if(gpioId != gpio::NO_GPIO) { + gpioComIF->pullHigh(gpioId); + result = spiMutex->unlockMutex(); + if (result != RETURN_OK) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::sendMessage: Failed to unlock mutex" << std::endl; +#endif + return result; + } + } + return result; +} + +ReturnValue_t SpiComIF::getSendSuccess(CookieIF *cookie) { + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::requestReceiveMessage(CookieIF *cookie, size_t requestLen) { + SpiCookie* spiCookie = dynamic_cast(cookie); + if(spiCookie == nullptr) { + return NULLPOINTER; + } + + if(spiCookie->isFullDuplex()) { + return HasReturnvaluesIF::RETURN_OK; + } + + return performHalfDuplexReception(spiCookie); +} + + +ReturnValue_t SpiComIF::performHalfDuplexReception(SpiCookie* spiCookie) { + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + std::string device = spiCookie->getSpiDevice(); + int fileDescriptor = 0; + UnixFileGuard fileHelper(device, &fileDescriptor, O_RDWR, + "SpiComIF::requestReceiveMessage: "); + if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { + return OPENING_FILE_FAILED; + } + + uint8_t* rxBuf = nullptr; + size_t readSize = spiCookie->getCurrentTransferSize(); + result = getReadBuffer(spiCookie->getSpiAddress(), &rxBuf); + if(result != HasReturnvaluesIF::RETURN_OK) { + return result; + } + + gpioId_t gpioId = spiCookie->getChipSelectPin(); + if(gpioId != gpio::NO_GPIO) { + result = spiMutex->lockMutex(timeoutType, timeoutMs); + if (result != RETURN_OK) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::getSendSuccess: Failed to lock mutex" << std::endl; +#endif + return result; + } + gpioComIF->pullLow(gpioId); + } + + if(read(fileDescriptor, rxBuf, readSize) != static_cast(readSize)) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::sendMessage: Half-Duplex read operation failed!" << std::endl; +#else + sif::printWarning("SpiComIF::sendMessage: Half-Duplex read operation failed!\n"); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + result = HALF_DUPLEX_TRANSFER_FAILED; + } + + if(gpioId != gpio::NO_GPIO) { + gpioComIF->pullHigh(gpioId); + result = spiMutex->unlockMutex(); + if (result != RETURN_OK) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::getSendSuccess: Failed to unlock mutex" << std::endl; +#endif + return result; + } + } + + return result; +} + +ReturnValue_t SpiComIF::readReceivedMessage(CookieIF *cookie, uint8_t **buffer, size_t *size) { + SpiCookie* spiCookie = dynamic_cast(cookie); + if(spiCookie == nullptr) { + return HasReturnvaluesIF::RETURN_FAILED; + } + uint8_t* rxBuf = nullptr; + ReturnValue_t result = getReadBuffer(spiCookie->getSpiAddress(), &rxBuf); + if(result != HasReturnvaluesIF::RETURN_OK) { + return result; + } + + *buffer = rxBuf; + *size = spiCookie->getCurrentTransferSize(); + return HasReturnvaluesIF::RETURN_OK; +} + +MutexIF* SpiComIF::getMutex(MutexIF::TimeoutType* timeoutType, uint32_t* timeoutMs) { + if(timeoutType != nullptr) { + *timeoutType = this->timeoutType; + } + if(timeoutMs != nullptr) { + *timeoutMs = this->timeoutMs; + } + return spiMutex; +} + +void SpiComIF::performSpiWiretapping(SpiCookie* spiCookie) { + if(spiCookie == nullptr) { + return; + } + size_t dataLen = spiCookie->getTransferStructHandle()->len; + uint8_t* dataPtr = reinterpret_cast(spiCookie->getTransferStructHandle()->tx_buf); +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::info << "Sent SPI data: " << std::endl; + arrayprinter::print(dataPtr, dataLen, OutputType::HEX, false); + sif::info << "Received SPI data: " << std::endl; +#else + sif::printInfo("Sent SPI data: \n"); + arrayprinter::print(dataPtr, dataLen, OutputType::HEX, false); + sif::printInfo("Received SPI data: \n"); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ + dataPtr = reinterpret_cast(spiCookie->getTransferStructHandle()->rx_buf); + arrayprinter::print(dataPtr, dataLen, OutputType::HEX, false); +} + +ReturnValue_t SpiComIF::getReadBuffer(address_t spiAddress, uint8_t** buffer) { + if(buffer == nullptr) { + return HasReturnvaluesIF::RETURN_FAILED; + } + + auto iter = spiDeviceMap.find(spiAddress); + if(iter == spiDeviceMap.end()) { + return HasReturnvaluesIF::RETURN_FAILED; + } + + *buffer = iter->second.replyBuffer.data(); + return HasReturnvaluesIF::RETURN_OK; +} + +GpioIF* SpiComIF::getGpioInterface() { + return gpioComIF; +} + +void SpiComIF::setSpiSpeedAndMode(int spiFd, spi::SpiModes mode, uint32_t speed) { + int retval = ioctl(spiFd, SPI_IOC_WR_MODE, reinterpret_cast(&mode)); + if(retval != 0) { + utility::handleIoctlError("SpiTestClass::performRm3100Test: Setting SPI mode failed!"); + } + + retval = ioctl(spiFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); + if(retval != 0) { + utility::handleIoctlError("SpiTestClass::performRm3100Test: Setting SPI speed failed!"); + } +} diff --git a/hal/src/linux/spi/SpiCookie.cpp b/hal/src/linux/spi/SpiCookie.cpp new file mode 100644 index 000000000..e34ea36a7 --- /dev/null +++ b/hal/src/linux/spi/SpiCookie.cpp @@ -0,0 +1,144 @@ +#include "SpiCookie.h" + +SpiCookie::SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, + const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed): + SpiCookie(spi::SpiComIfModes::REGULAR, spiAddress, chipSelect, spiDev, maxSize, spiMode, + spiSpeed, nullptr, nullptr) { + +} + +SpiCookie::SpiCookie(address_t spiAddress, std::string spiDev, const size_t maxSize, + spi::SpiModes spiMode, uint32_t spiSpeed): + SpiCookie(spiAddress, gpio::NO_GPIO, spiDev, maxSize, spiMode, spiSpeed) { +} + +SpiCookie::SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, + const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed, + spi::send_callback_function_t callback, void *args): + SpiCookie(spi::SpiComIfModes::CALLBACK, spiAddress, chipSelect, spiDev, maxSize, + spiMode, spiSpeed, callback, args) { +} + +SpiCookie::SpiCookie(spi::SpiComIfModes comIfMode, address_t spiAddress, gpioId_t chipSelect, + std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed, + spi::send_callback_function_t callback, void* args): + spiAddress(spiAddress), chipSelectPin(chipSelect), spiDevice(spiDev), + comIfMode(comIfMode), maxSize(maxSize), spiMode(spiMode), spiSpeed(spiSpeed), + sendCallback(callback), callbackArgs(args) { +} + +spi::SpiComIfModes SpiCookie::getComIfMode() const { + return this->comIfMode; +} + +void SpiCookie::getSpiParameters(spi::SpiModes& spiMode, uint32_t& spiSpeed, + UncommonParameters* parameters) const { + spiMode = this->spiMode; + spiSpeed = this->spiSpeed; + + if(parameters != nullptr) { + parameters->threeWireSpi = uncommonParameters.threeWireSpi; + parameters->lsbFirst = uncommonParameters.lsbFirst; + parameters->noCs = uncommonParameters.noCs; + parameters->bitsPerWord = uncommonParameters.bitsPerWord; + parameters->csHigh = uncommonParameters.csHigh; + } +} + +gpioId_t SpiCookie::getChipSelectPin() const { + return chipSelectPin; +} + +size_t SpiCookie::getMaxBufferSize() const { + return maxSize; +} + +address_t SpiCookie::getSpiAddress() const { + return spiAddress; +} + +std::string SpiCookie::getSpiDevice() const { + return spiDevice; +} + +void SpiCookie::setThreeWireSpi(bool enable) { + uncommonParameters.threeWireSpi = enable; +} + +void SpiCookie::setLsbFirst(bool enable) { + uncommonParameters.lsbFirst = enable; +} + +void SpiCookie::setNoCs(bool enable) { + uncommonParameters.noCs = enable; +} + +void SpiCookie::setBitsPerWord(uint8_t bitsPerWord) { + uncommonParameters.bitsPerWord = bitsPerWord; +} + +void SpiCookie::setCsHigh(bool enable) { + uncommonParameters.csHigh = enable; +} + +void SpiCookie::activateCsDeselect(bool deselectCs, uint16_t delayUsecs) { + spiTransferStruct.cs_change = deselectCs; + spiTransferStruct.delay_usecs = delayUsecs; +} + +void SpiCookie::assignReadBuffer(uint8_t* rx) { + if(rx != nullptr) { + spiTransferStruct.rx_buf = reinterpret_cast<__u64>(rx); + } +} + +void SpiCookie::assignWriteBuffer(const uint8_t* tx) { + if(tx != nullptr) { + spiTransferStruct.tx_buf = reinterpret_cast<__u64>(tx); + } +} + +void SpiCookie::setCallbackMode(spi::send_callback_function_t callback, + void *args) { + this->comIfMode = spi::SpiComIfModes::CALLBACK; + this->sendCallback = callback; + this->callbackArgs = args; +} + +void SpiCookie::setCallbackArgs(void *args) { + this->callbackArgs = args; +} + +spi_ioc_transfer* SpiCookie::getTransferStructHandle() { + return &spiTransferStruct; +} + +void SpiCookie::setFullOrHalfDuplex(bool halfDuplex) { + this->halfDuplex = halfDuplex; +} + +bool SpiCookie::isFullDuplex() const { + return not this->halfDuplex; +} + +void SpiCookie::assignTransferSize(size_t transferSize) { + spiTransferStruct.len = transferSize; +} + +size_t SpiCookie::getCurrentTransferSize() const { + return spiTransferStruct.len; +} + +void SpiCookie::setSpiSpeed(uint32_t newSpeed) { + this->spiSpeed = newSpeed; +} + +void SpiCookie::setSpiMode(spi::SpiModes newMode) { + this->spiMode = newMode; +} + +void SpiCookie::getCallback(spi::send_callback_function_t *callback, + void **args) { + *callback = this->sendCallback; + *args = this->callbackArgs; +} diff --git a/hal/src/linux/uart/CMakeLists.txt b/hal/src/linux/uart/CMakeLists.txt new file mode 100644 index 000000000..7b503d02a --- /dev/null +++ b/hal/src/linux/uart/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(${TARGET_NAME} PUBLIC + UartComIF.cpp + UartCookie.cpp +) + + + + diff --git a/hal/src/linux/uart/UartComIF.cpp b/hal/src/linux/uart/UartComIF.cpp new file mode 100644 index 000000000..c84affa9e --- /dev/null +++ b/hal/src/linux/uart/UartComIF.cpp @@ -0,0 +1,455 @@ +#include "UartComIF.h" +#include "OBSWConfig.h" + +#include "fsfw/serviceinterface/ServiceInterface.h" + +#include +#include +#include +#include +#include + +UartComIF::UartComIF(object_id_t objectId): SystemObject(objectId){ +} + +UartComIF::~UartComIF() {} + +ReturnValue_t UartComIF::initializeInterface(CookieIF* cookie) { + + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + + if(cookie == nullptr) { + return NULLPOINTER; + } + + UartCookie* uartCookie = dynamic_cast(cookie); + if (uartCookie == nullptr) { + sif::error << "UartComIF::initializeInterface: Invalid UART Cookie!" << std::endl; + return NULLPOINTER; + } + + deviceFile = uartCookie->getDeviceFile(); + + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + if(uartDeviceMapIter == uartDeviceMap.end()) { + int fileDescriptor = configureUartPort(uartCookie); + if (fileDescriptor < 0) { + return RETURN_FAILED; + } + size_t maxReplyLen = uartCookie->getMaxReplyLen(); + UartElements uartElements = {fileDescriptor, std::vector(maxReplyLen), 0}; + auto status = uartDeviceMap.emplace(deviceFile, uartElements); + if (status.second == false) { + sif::warning << "UartComIF::initializeInterface: Failed to insert device " << + deviceFile << "to UART device map" << std::endl; + return RETURN_FAILED; + } + } + else { + sif::warning << "UartComIF::initializeInterface: UART device " << deviceFile << + " already in use" << std::endl; + return RETURN_FAILED; + } + + return RETURN_OK; +} + +int UartComIF::configureUartPort(UartCookie* uartCookie) { + + struct termios options = {}; + + std::string deviceFile = uartCookie->getDeviceFile(); + int fd = open(deviceFile.c_str(), O_RDWR); + + if (fd < 0) { + sif::warning << "UartComIF::configureUartPort: Failed to open uart " << deviceFile << + "with error code " << errno << strerror(errno) << std::endl; + return fd; + } + + /* Read in existing settings */ + if(tcgetattr(fd, &options) != 0) { + sif::warning << "UartComIF::configureUartPort: Error " << errno << "from tcgetattr: " + << strerror(errno) << std::endl; + return fd; + } + + setParityOptions(&options, uartCookie); + setStopBitOptions(&options, uartCookie); + setDatasizeOptions(&options, uartCookie); + setFixedOptions(&options); + setUartMode(&options, *uartCookie); + if(uartCookie->getInputShouldBeFlushed()) { + tcflush(fd, TCIFLUSH); + } + + /* Sets uart to non-blocking mode. Read returns immediately when there are no data available */ + options.c_cc[VTIME] = 0; + options.c_cc[VMIN] = 0; + + configureBaudrate(&options, uartCookie); + + /* Save option settings */ + if (tcsetattr(fd, TCSANOW, &options) != 0) { + sif::warning << "UartComIF::configureUartPort: Failed to set options with error " << + errno << ": " << strerror(errno); + return fd; + } + return fd; +} + +void UartComIF::setParityOptions(struct termios* options, UartCookie* uartCookie) { + /* Clear parity bit */ + options->c_cflag &= ~PARENB; + switch (uartCookie->getParity()) { + case Parity::EVEN: + options->c_cflag |= PARENB; + options->c_cflag &= ~PARODD; + break; + case Parity::ODD: + options->c_cflag |= PARENB; + options->c_cflag |= PARODD; + break; + default: + break; + } +} + +void UartComIF::setStopBitOptions(struct termios* options, UartCookie* uartCookie) { + /* Clear stop field. Sets stop bit to one bit */ + options->c_cflag &= ~CSTOPB; + switch (uartCookie->getStopBits()) { + case StopBits::TWO_STOP_BITS: + options->c_cflag |= CSTOPB; + break; + default: + break; + } +} + +void UartComIF::setDatasizeOptions(struct termios* options, UartCookie* uartCookie) { + /* Clear size bits */ + options->c_cflag &= ~CSIZE; + switch (uartCookie->getBitsPerWord()) { + case 5: + options->c_cflag |= CS5; + break; + case 6: + options->c_cflag |= CS6; + break; + case 7: + options->c_cflag |= CS7; + break; + case 8: + options->c_cflag |= CS8; + break; + default: + sif::warning << "UartComIF::setDatasizeOptions: Invalid size specified" << std::endl; + break; + } +} + +void UartComIF::setFixedOptions(struct termios* options) { + /* Disable RTS/CTS hardware flow control */ + options->c_cflag &= ~CRTSCTS; + /* Turn on READ & ignore ctrl lines (CLOCAL = 1) */ + options->c_cflag |= CREAD | CLOCAL; + /* Disable echo */ + options->c_lflag &= ~ECHO; + /* Disable erasure */ + options->c_lflag &= ~ECHOE; + /* Disable new-line echo */ + options->c_lflag &= ~ECHONL; + /* Disable interpretation of INTR, QUIT and SUSP */ + options->c_lflag &= ~ISIG; + /* Turn off s/w flow ctrl */ + options->c_iflag &= ~(IXON | IXOFF | IXANY); + /* Disable any special handling of received bytes */ + options->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL); + /* Prevent special interpretation of output bytes (e.g. newline chars) */ + options->c_oflag &= ~OPOST; + /* Prevent conversion of newline to carriage return/line feed */ + options->c_oflag &= ~ONLCR; +} + +void UartComIF::configureBaudrate(struct termios* options, UartCookie* uartCookie) { + switch (uartCookie->getBaudrate()) { + case 50: + cfsetispeed(options, B50); + cfsetospeed(options, B50); + break; + case 75: + cfsetispeed(options, B75); + cfsetospeed(options, B75); + break; + case 110: + cfsetispeed(options, B110); + cfsetospeed(options, B110); + break; + case 134: + cfsetispeed(options, B134); + cfsetospeed(options, B134); + break; + case 150: + cfsetispeed(options, B150); + cfsetospeed(options, B150); + break; + case 200: + cfsetispeed(options, B200); + cfsetospeed(options, B200); + break; + case 300: + cfsetispeed(options, B300); + cfsetospeed(options, B300); + break; + case 600: + cfsetispeed(options, B600); + cfsetospeed(options, B600); + break; + case 1200: + cfsetispeed(options, B1200); + cfsetospeed(options, B1200); + break; + case 1800: + cfsetispeed(options, B1800); + cfsetospeed(options, B1800); + break; + case 2400: + cfsetispeed(options, B2400); + cfsetospeed(options, B2400); + break; + case 4800: + cfsetispeed(options, B4800); + cfsetospeed(options, B4800); + break; + case 9600: + cfsetispeed(options, B9600); + cfsetospeed(options, B9600); + break; + case 19200: + cfsetispeed(options, B19200); + cfsetospeed(options, B19200); + break; + case 38400: + cfsetispeed(options, B38400); + cfsetospeed(options, B38400); + break; + case 57600: + cfsetispeed(options, B57600); + cfsetospeed(options, B57600); + break; + case 115200: + cfsetispeed(options, B115200); + cfsetospeed(options, B115200); + break; + case 230400: + cfsetispeed(options, B230400); + cfsetospeed(options, B230400); + break; + case 460800: + cfsetispeed(options, B460800); + cfsetospeed(options, B460800); + break; + default: + sif::warning << "UartComIF::configureBaudrate: Baudrate not supported" << std::endl; + break; + } +} + +ReturnValue_t UartComIF::sendMessage(CookieIF *cookie, + const uint8_t *sendData, size_t sendLen) { + + int fd = 0; + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + + if(sendData == nullptr) { + sif::debug << "UartComIF::sendMessage: Send Data is nullptr" << std::endl; + return RETURN_FAILED; + } + + if(sendLen == 0) { + return RETURN_OK; + } + + UartCookie* uartCookie = dynamic_cast(cookie); + if(uartCookie == nullptr) { + sif::debug << "UartComIF::sendMessasge: Invalid UART Cookie!" << std::endl; + return NULLPOINTER; + } + + deviceFile = uartCookie->getDeviceFile(); + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + if (uartDeviceMapIter == uartDeviceMap.end()) { + sif::debug << "UartComIF::sendMessage: Device file " << deviceFile << + "not in UART map" << std::endl; + return RETURN_FAILED; + } + + fd = uartDeviceMapIter->second.fileDescriptor; + + if (write(fd, sendData, sendLen) != (int)sendLen) { + sif::error << "UartComIF::sendMessage: Failed to send data with error code " << + errno << ": Error description: " << strerror(errno) << std::endl; + return RETURN_FAILED; + } + + return RETURN_OK; +} + +ReturnValue_t UartComIF::getSendSuccess(CookieIF *cookie) { + return RETURN_OK; +} + +ReturnValue_t UartComIF::requestReceiveMessage(CookieIF *cookie, size_t requestLen) { + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + + UartCookie* uartCookie = dynamic_cast(cookie); + if(uartCookie == nullptr) { + sif::debug << "UartComIF::requestReceiveMessage: Invalid Uart Cookie!" << std::endl; + return NULLPOINTER; + } + + UartModes uartMode = uartCookie->getUartMode(); + deviceFile = uartCookie->getDeviceFile(); + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + + if(uartMode == UartModes::NON_CANONICAL and requestLen == 0) { + return RETURN_OK; + } + + if (uartDeviceMapIter == uartDeviceMap.end()) { + sif::debug << "UartComIF::requestReceiveMessage: Device file " << deviceFile + << " not in uart map" << std::endl; + return RETURN_FAILED; + } + + if (uartMode == UartModes::CANONICAL) { + return handleCanonicalRead(*uartCookie, uartDeviceMapIter, requestLen); + } + else if (uartMode == UartModes::NON_CANONICAL) { + return handleNoncanonicalRead(*uartCookie, uartDeviceMapIter, requestLen); + } + else { + return HasReturnvaluesIF::RETURN_FAILED; + } +} + +ReturnValue_t UartComIF::handleCanonicalRead(UartCookie& uartCookie, UartDeviceMapIter& iter, + size_t requestLen) { + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + uint8_t maxReadCycles = uartCookie.getReadCycles(); + uint8_t currentReadCycles = 0; + int bytesRead = 0; + size_t currentBytesRead = 0; + size_t maxReplySize = uartCookie.getMaxReplyLen(); + int fd = iter->second.fileDescriptor; + auto bufferPtr = iter->second.replyBuffer.data(); + do { + size_t allowedReadSize = 0; + if(currentBytesRead >= maxReplySize) { + // Overflow risk. Emit warning, trigger event and break. If this happens, + // the reception buffer is not large enough or data is not polled often enough. +#if OBSW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "UartComIF::requestReceiveMessage: Next read would cause overflow!" + << std::endl; +#else + sif::printWarning("UartComIF::requestReceiveMessage: " + "Next read would cause overflow!"); +#endif +#endif + result = UART_RX_BUFFER_TOO_SMALL; + break; + } + else { + allowedReadSize = maxReplySize - currentBytesRead; + } + + bytesRead = read(fd, bufferPtr, allowedReadSize); + if (bytesRead < 0) { + return RETURN_FAILED; + } + else if(bytesRead > 0) { + iter->second.replyLen += bytesRead; + bufferPtr += bytesRead; + currentBytesRead += bytesRead; + } + currentReadCycles++; + } while(bytesRead > 0 and currentReadCycles < maxReadCycles); + return result; +} + +ReturnValue_t UartComIF::handleNoncanonicalRead(UartCookie &uartCookie, UartDeviceMapIter &iter, + size_t requestLen) { + int fd = iter->second.fileDescriptor; + auto bufferPtr = iter->second.replyBuffer.data(); + // Size check to prevent buffer overflow + if(requestLen > uartCookie.getMaxReplyLen()) { +#if OBSW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "UartComIF::requestReceiveMessage: Next read would cause overflow!" + << std::endl; +#else + sif::printWarning("UartComIF::requestReceiveMessage: " + "Next read would cause overflow!"); +#endif +#endif + return UART_RX_BUFFER_TOO_SMALL; + } + int bytesRead = read(fd, bufferPtr, requestLen); + if (bytesRead < 0) { + return RETURN_FAILED; + } + else if (bytesRead != static_cast(requestLen)) { + if(uartCookie.isReplySizeFixed()) { + sif::warning << "UartComIF::requestReceiveMessage: Only read " << bytesRead << + " of " << requestLen << " bytes" << std::endl; + return RETURN_FAILED; + } + } + iter->second.replyLen = bytesRead; + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t UartComIF::readReceivedMessage(CookieIF *cookie, + uint8_t **buffer, size_t* size) { + + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + + UartCookie* uartCookie = dynamic_cast(cookie); + if(uartCookie == nullptr) { + sif::debug << "UartComIF::readReceivedMessage: Invalid uart cookie!" << std::endl; + return NULLPOINTER; + } + + deviceFile = uartCookie->getDeviceFile(); + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + if (uartDeviceMapIter == uartDeviceMap.end()) { + sif::debug << "UartComIF::readReceivedMessage: Device file " << deviceFile << + " not in uart map" << std::endl; + return RETURN_FAILED; + } + + *buffer = uartDeviceMapIter->second.replyBuffer.data(); + *size = uartDeviceMapIter->second.replyLen; + + /* Length is reset to 0 to prevent reading the same data twice */ + uartDeviceMapIter->second.replyLen = 0; + + return RETURN_OK; +} + +void UartComIF::setUartMode(struct termios *options, UartCookie &uartCookie) { + UartModes uartMode = uartCookie.getUartMode(); + if(uartMode == UartModes::NON_CANONICAL) { + /* Disable canonical mode */ + options->c_lflag &= ~ICANON; + } + else if(uartMode == UartModes::CANONICAL) { + options->c_lflag |= ICANON; + } +} diff --git a/hal/src/linux/uart/UartCookie.cpp b/hal/src/linux/uart/UartCookie.cpp new file mode 100644 index 000000000..2e9cede95 --- /dev/null +++ b/hal/src/linux/uart/UartCookie.cpp @@ -0,0 +1,97 @@ +#include "UartCookie.h" + +#include + +UartCookie::UartCookie(object_id_t handlerId, std::string deviceFile, UartModes uartMode, + uint32_t baudrate, size_t maxReplyLen): + handlerId(handlerId), deviceFile(deviceFile), uartMode(uartMode), baudrate(baudrate), + maxReplyLen(maxReplyLen) { +} + +UartCookie::~UartCookie() {} + +uint32_t UartCookie::getBaudrate() const { + return baudrate; +} + +size_t UartCookie::getMaxReplyLen() const { + return maxReplyLen; +} + +std::string UartCookie::getDeviceFile() const { + return deviceFile; +} + +void UartCookie::setParityOdd() { + parity = Parity::ODD; +} + +void UartCookie::setParityEven() { + parity = Parity::EVEN; +} + +Parity UartCookie::getParity() const { + return parity; +} + +void UartCookie::setBitsPerWord(uint8_t bitsPerWord_) { + switch(bitsPerWord_) { + case 5: + case 6: + case 7: + case 8: + break; + default: + sif::debug << "UartCookie::setBitsPerWord: Invalid bits per word specified" << std::endl; + return; + } + bitsPerWord = bitsPerWord_; +} + +uint8_t UartCookie::getBitsPerWord() const { + return bitsPerWord; +} + +StopBits UartCookie::getStopBits() const { + return stopBits; +} + +void UartCookie::setTwoStopBits() { + stopBits = StopBits::TWO_STOP_BITS; +} + +void UartCookie::setOneStopBit() { + stopBits = StopBits::ONE_STOP_BIT; +} + +UartModes UartCookie::getUartMode() const { + return uartMode; +} + +void UartCookie::setReadCycles(uint8_t readCycles) { + this->readCycles = readCycles; +} + +void UartCookie::setToFlushInput(bool enable) { + this->flushInput = enable; +} + +uint8_t UartCookie::getReadCycles() const { + return readCycles; +} + +bool UartCookie::getInputShouldBeFlushed() { + return this->flushInput; +} + +object_id_t UartCookie::getHandlerId() const { + return this->handlerId; +} + +void UartCookie::setNoFixedSizeReply() { + replySizeFixed = false; +} + +bool UartCookie::isReplySizeFixed() { + return replySizeFixed; +} diff --git a/hal/src/linux/utility.cpp b/hal/src/linux/utility.cpp new file mode 100644 index 000000000..c63b80148 --- /dev/null +++ b/hal/src/linux/utility.cpp @@ -0,0 +1,21 @@ +#include + +void utility::handleIoctlError(const char* const customPrintout) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + if(customPrintout != nullptr) { + sif::warning << customPrintout << std::endl; + } + sif::warning << "handleIoctlError: Error code " << errno << ", "<< strerror(errno) << + std::endl; +#else + if(customPrintout != nullptr) { + sif::printWarning("%s\n", customPrintout); + } + sif::printWarning("handleIoctlError: Error code %d, %s\n", errno, strerror(errno)); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + +} + + diff --git a/hal/src/stm32h7/CMakeLists.txt b/hal/src/stm32h7/CMakeLists.txt new file mode 100644 index 000000000..63c137349 --- /dev/null +++ b/hal/src/stm32h7/CMakeLists.txt @@ -0,0 +1,7 @@ +add_subdirectory(spi) +add_subdirectory(gpio) +add_subdirectory(devicetest) + +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + dma.cpp +) diff --git a/hal/src/stm32h7/devicetest/CMakeLists.txt b/hal/src/stm32h7/devicetest/CMakeLists.txt new file mode 100644 index 000000000..1ee43134a --- /dev/null +++ b/hal/src/stm32h7/devicetest/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + GyroL3GD20H.cpp +) \ No newline at end of file diff --git a/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp new file mode 100644 index 000000000..8176c3c25 --- /dev/null +++ b/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp @@ -0,0 +1,559 @@ +#include "GyroL3GD20H.h" + +#include "../spi/mspInit.h" +#include "../spi/spiDefinitions.h" +#include "../spi/spiCore.h" +#include "../spi/spiInterrupts.h" +#include "../spi/stm32h743ziSpi.h" + +#include "fsfw/tasks/TaskFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + +#include "stm32h7xx_nucleo.h" +#include "stm32h7xx_hal_spi.h" +#include "stm32h7xx_hal_rcc.h" + +#include + +alignas(32) std::array GyroL3GD20H::rxBuffer; +alignas(32) std::array +GyroL3GD20H::txBuffer __attribute__((section(".dma_buffer"))); + +TransferStates transferState = TransferStates::IDLE; +spi::TransferModes GyroL3GD20H::transferMode = spi::TransferModes::POLLING; + + +GyroL3GD20H::GyroL3GD20H(SPI_HandleTypeDef *spiHandle, spi::TransferModes transferMode_): + spiHandle(spiHandle) { + txDmaHandle = new DMA_HandleTypeDef(); + rxDmaHandle = new DMA_HandleTypeDef(); + spi::setSpiHandle(spiHandle); + spi::assignSpiUserArgs(spi::SpiBus::SPI_1, spiHandle); + transferMode = transferMode_; + if(transferMode == spi::TransferModes::DMA) { + mspCfg = new spi::MspDmaConfigStruct(); + auto typedCfg = dynamic_cast(mspCfg); + spi::setDmaHandles(txDmaHandle, rxDmaHandle); + spi::h743zi::standardDmaCfg(*typedCfg, IrqPriorities::HIGHEST_FREERTOS, + IrqPriorities::HIGHEST_FREERTOS, IrqPriorities::HIGHEST_FREERTOS); + spi::setSpiDmaMspFunctions(typedCfg); + } + else if(transferMode == spi::TransferModes::INTERRUPT) { + mspCfg = new spi::MspIrqConfigStruct(); + auto typedCfg = dynamic_cast(mspCfg); + spi::h743zi::standardInterruptCfg(*typedCfg, IrqPriorities::HIGHEST_FREERTOS); + spi::setSpiIrqMspFunctions(typedCfg); + } + else if(transferMode == spi::TransferModes::POLLING) { + mspCfg = new spi::MspPollingConfigStruct(); + auto typedCfg = dynamic_cast(mspCfg); + spi::h743zi::standardPollingCfg(*typedCfg); + spi::setSpiPollingMspFunctions(typedCfg); + } + + spi::assignTransferRxTxCompleteCallback(&spiTransferCompleteCallback, nullptr); + spi::assignTransferErrorCallback(&spiTransferErrorCallback, nullptr); + + GPIO_InitTypeDef chipSelect = {}; + __HAL_RCC_GPIOD_CLK_ENABLE(); + chipSelect.Pin = GPIO_PIN_14; + chipSelect.Mode = GPIO_MODE_OUTPUT_PP; + HAL_GPIO_Init(GPIOD, &chipSelect); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); +} + +GyroL3GD20H::~GyroL3GD20H() { + delete txDmaHandle; + delete rxDmaHandle; + if(mspCfg != nullptr) { + delete mspCfg; + } +} + +ReturnValue_t GyroL3GD20H::initialize() { + // Configure the SPI peripheral + spiHandle->Instance = SPI1; + spiHandle->Init.BaudRatePrescaler = spi::getPrescaler(HAL_RCC_GetHCLKFreq(), 3900000); + spiHandle->Init.Direction = SPI_DIRECTION_2LINES; + spi::assignSpiMode(spi::SpiModes::MODE_3, *spiHandle); + spiHandle->Init.DataSize = SPI_DATASIZE_8BIT; + spiHandle->Init.FirstBit = SPI_FIRSTBIT_MSB; + spiHandle->Init.TIMode = SPI_TIMODE_DISABLE; + spiHandle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + spiHandle->Init.CRCPolynomial = 7; + spiHandle->Init.CRCLength = SPI_CRC_LENGTH_8BIT; + spiHandle->Init.NSS = SPI_NSS_SOFT; + spiHandle->Init.NSSPMode = SPI_NSS_PULSE_DISABLE; + // Recommended setting to avoid glitches + spiHandle->Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ENABLE; + spiHandle->Init.Mode = SPI_MODE_MASTER; + if(HAL_SPI_Init(spiHandle) != HAL_OK) { + sif::printWarning("Error initializing SPI\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + + delete mspCfg; + transferState = TransferStates::WAIT; + + sif::printInfo("GyroL3GD20H::performOperation: Reading WHO AM I register\n"); + + txBuffer[0] = WHO_AM_I_REG | STM_READ_MASK; + txBuffer[1] = 0; + + switch(transferMode) { + case(spi::TransferModes::DMA): { + return handleDmaTransferInit(); + } + case(spi::TransferModes::INTERRUPT): { + return handleInterruptTransferInit(); + } + case(spi::TransferModes::POLLING): { + return handlePollingTransferInit(); + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroL3GD20H::performOperation() { + switch(transferMode) { + case(spi::TransferModes::DMA): { + return handleDmaSensorRead(); + } + case(spi::TransferModes::POLLING): { + return handlePollingSensorRead(); + } + case(spi::TransferModes::INTERRUPT): { + return handleInterruptSensorRead(); + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroL3GD20H::handleDmaTransferInit() { + /* Clean D-cache */ + /* Make sure the address is 32-byte aligned and add 32-bytes to length, + in case it overlaps cacheline */ + // See https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices + HAL_StatusTypeDef result = performDmaTransfer(2); + if(result != HAL_OK) { + // Transfer error in transmission process + sif::printWarning("GyroL3GD20H::initialize: Error transmitting SPI with DMA\n"); + } + + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + + switch(transferState) { + case(TransferStates::SUCCESS): { + uint8_t whoAmIVal = rxBuffer[1]; + if(whoAmIVal != EXPECTED_WHO_AM_I_VAL) { + sif::printDebug("GyroL3GD20H::initialize: " + "Read WHO AM I value %d not equal to expected value!\n", whoAmIVal); + } + transferState = TransferStates::IDLE; + break; + } + case(TransferStates::FAILURE): { + sif::printWarning("Transfer failure\n"); + transferState = TransferStates::FAILURE; + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + sif::printInfo("GyroL3GD20H::initialize: Configuring device\n"); + // Configure the 5 configuration registers + uint8_t configRegs[5]; + prepareConfigRegs(configRegs); + + result = performDmaTransfer(6); + if(result != HAL_OK) { + // Transfer error in transmission process + sif::printWarning("Error transmitting SPI with DMA\n"); + } + + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + + switch(transferState) { + case(TransferStates::SUCCESS): { + sif::printInfo("GyroL3GD20H::initialize: Configuration transfer success\n"); + transferState = TransferStates::IDLE; + break; + } + case(TransferStates::FAILURE): { + sif::printWarning("GyroL3GD20H::initialize: Configuration transfer failure\n"); + transferState = TransferStates::FAILURE; + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK | STM_READ_MASK; + std::memset(txBuffer.data() + 1, 0 , 5); + result = performDmaTransfer(6); + if(result != HAL_OK) { + // Transfer error in transmission process + sif::printWarning("Error transmitting SPI with DMA\n"); + } + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + + switch(transferState) { + case(TransferStates::SUCCESS): { + if(rxBuffer[1] != configRegs[0] or rxBuffer[2] != configRegs[1] or + rxBuffer[3] != configRegs[2] or rxBuffer[4] != configRegs[3] or + rxBuffer[5] != configRegs[4]) { + sif::printWarning("GyroL3GD20H::initialize: Configuration failure\n"); + } + else { + sif::printInfo("GyroL3GD20H::initialize: Configuration success\n"); + } + transferState = TransferStates::IDLE; + break; + } + case(TransferStates::FAILURE): { + sif::printWarning("GyroL3GD20H::initialize: Configuration transfer failure\n"); + transferState = TransferStates::FAILURE; + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroL3GD20H::handleDmaSensorRead() { + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK | STM_READ_MASK; + std::memset(txBuffer.data() + 1, 0 , 14); + + HAL_StatusTypeDef result = performDmaTransfer(15); + if(result != HAL_OK) { + // Transfer error in transmission process + sif::printDebug("GyroL3GD20H::handleDmaSensorRead: Error transmitting SPI with DMA\n"); + } + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + + switch(transferState) { + case(TransferStates::SUCCESS): { + handleSensorReadout(); + break; + } + case(TransferStates::FAILURE): { + sif::printWarning("GyroL3GD20H::handleDmaSensorRead: Sensor read failure\n"); + transferState = TransferStates::FAILURE; + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +HAL_StatusTypeDef GyroL3GD20H::performDmaTransfer(size_t sendSize) { + transferState = TransferStates::WAIT; +#if STM_USE_PERIPHERAL_TX_BUFFER_MPU_PROTECTION == 0 + SCB_CleanDCache_by_Addr((uint32_t*)(((uint32_t)txBuffer.data()) & ~(uint32_t)0x1F), + txBuffer.size()+32); +#endif + + // Start SPI transfer via DMA + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + return HAL_SPI_TransmitReceive_DMA(spiHandle, txBuffer.data(), rxBuffer.data(), sendSize); +} + +ReturnValue_t GyroL3GD20H::handlePollingTransferInit() { + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + auto result = HAL_SPI_TransmitReceive(spiHandle, txBuffer.data(), rxBuffer.data(), 2, 1000); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); + switch(result) { + case(HAL_OK): { + sif::printInfo("GyroL3GD20H::initialize: Polling transfer success\n"); + uint8_t whoAmIVal = rxBuffer[1]; + if(whoAmIVal != EXPECTED_WHO_AM_I_VAL) { + sif::printDebug("GyroL3GD20H::performOperation: " + "Read WHO AM I value %d not equal to expected value!\n", whoAmIVal); + } + break; + } + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer timeout\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + case(HAL_ERROR): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer failure\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + sif::printInfo("GyroL3GD20H::initialize: Configuring device\n"); + // Configure the 5 configuration registers + uint8_t configRegs[5]; + prepareConfigRegs(configRegs); + + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + result = HAL_SPI_TransmitReceive(spiHandle, txBuffer.data(), rxBuffer.data(), 6, 1000); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); + switch(result) { + case(HAL_OK): { + break; + } + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer timeout\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + case(HAL_ERROR): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer failure\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK | STM_READ_MASK; + std::memset(txBuffer.data() + 1, 0 , 5); + + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + result = HAL_SPI_TransmitReceive(spiHandle, txBuffer.data(), rxBuffer.data(), 6, 1000); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); + switch(result) { + case(HAL_OK): { + if(rxBuffer[1] != configRegs[0] or rxBuffer[2] != configRegs[1] or + rxBuffer[3] != configRegs[2] or rxBuffer[4] != configRegs[3] or + rxBuffer[5] != configRegs[4]) { + sif::printWarning("GyroL3GD20H::initialize: Configuration failure\n"); + } + else { + sif::printInfo("GyroL3GD20H::initialize: Configuration success\n"); + } + break; + } + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer timeout\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + case(HAL_ERROR): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer failure\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroL3GD20H::handlePollingSensorRead() { + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK | STM_READ_MASK; + std::memset(txBuffer.data() + 1, 0 , 14); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + auto result = HAL_SPI_TransmitReceive(spiHandle, txBuffer.data(), rxBuffer.data(), 15, 1000); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); + + switch(result) { + case(HAL_OK): { + handleSensorReadout(); + break; + } + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer timeout\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + case(HAL_ERROR): { + sif::printDebug("GyroL3GD20H::initialize: Polling transfer failure\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroL3GD20H::handleInterruptTransferInit() { + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + switch(HAL_SPI_TransmitReceive_IT(spiHandle, txBuffer.data(), rxBuffer.data(), 2)) { + case(HAL_OK): { + sif::printInfo("GyroL3GD20H::initialize: Interrupt transfer success\n"); + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + + uint8_t whoAmIVal = rxBuffer[1]; + if(whoAmIVal != EXPECTED_WHO_AM_I_VAL) { + sif::printDebug("GyroL3GD20H::initialize: " + "Read WHO AM I value %d not equal to expected value!\n", whoAmIVal); + } + break; + } + case(HAL_BUSY): + case(HAL_ERROR): + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Initialization failure using interrupts\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + sif::printInfo("GyroL3GD20H::initialize: Configuring device\n"); + transferState = TransferStates::WAIT; + // Configure the 5 configuration registers + uint8_t configRegs[5]; + prepareConfigRegs(configRegs); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + switch(HAL_SPI_TransmitReceive_IT(spiHandle, txBuffer.data(), rxBuffer.data(), 6)) { + case(HAL_OK): { + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + break; + } + case(HAL_BUSY): + case(HAL_ERROR): + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Initialization failure using interrupts\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK | STM_READ_MASK; + std::memset(txBuffer.data() + 1, 0 , 5); + transferState = TransferStates::WAIT; + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + switch(HAL_SPI_TransmitReceive_IT(spiHandle, txBuffer.data(), rxBuffer.data(), 6)) { + case(HAL_OK): { + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + if(rxBuffer[1] != configRegs[0] or rxBuffer[2] != configRegs[1] or + rxBuffer[3] != configRegs[2] or rxBuffer[4] != configRegs[3] or + rxBuffer[5] != configRegs[4]) { + sif::printWarning("GyroL3GD20H::initialize: Configuration failure\n"); + } + else { + sif::printInfo("GyroL3GD20H::initialize: Configuration success\n"); + } + break; + } + case(HAL_BUSY): + case(HAL_ERROR): + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Initialization failure using interrupts\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t GyroL3GD20H::handleInterruptSensorRead() { + transferState = TransferStates::WAIT; + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK | STM_READ_MASK; + std::memset(txBuffer.data() + 1, 0 , 14); + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + switch(HAL_SPI_TransmitReceive_IT(spiHandle, txBuffer.data(), rxBuffer.data(), 15)) { + case(HAL_OK): { + // Wait for the transfer to complete + while (transferState == TransferStates::WAIT) { + TaskFactory::delayTask(1); + } + handleSensorReadout(); + break; + } + case(HAL_BUSY): + case(HAL_ERROR): + case(HAL_TIMEOUT): { + sif::printDebug("GyroL3GD20H::initialize: Sensor read failure using interrupts\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +void GyroL3GD20H::prepareConfigRegs(uint8_t* configRegs) { + // Enable sensor + configRegs[0] = 0b00001111; + configRegs[1] = 0b00000000; + configRegs[2] = 0b00000000; + // Big endian select + configRegs[3] = 0b01000000; + configRegs[4] = 0b00000000; + + txBuffer[0] = CTRL_REG_1 | STM_AUTO_INCREMENT_MASK; + std::memcpy(txBuffer.data() + 1, configRegs, 5); +} + +uint8_t GyroL3GD20H::readRegPolling(uint8_t reg) { + uint8_t rxBuf[2] = {}; + uint8_t txBuf[2] = {}; + txBuf[0] = reg | STM_READ_MASK; + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); + auto result = HAL_SPI_TransmitReceive(spiHandle, txBuf, rxBuf, 2, 1000); + if(result) {}; + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); + return rxBuf[1]; +} + +void GyroL3GD20H::handleSensorReadout() { + uint8_t statusReg = rxBuffer[8]; + int16_t gyroXRaw = rxBuffer[9] << 8 | rxBuffer[10]; + float gyroX = static_cast(gyroXRaw) * 0.00875; + int16_t gyroYRaw = rxBuffer[11] << 8 | rxBuffer[12]; + float gyroY = static_cast(gyroYRaw) * 0.00875; + int16_t gyroZRaw = rxBuffer[13] << 8 | rxBuffer[14]; + float gyroZ = static_cast(gyroZRaw) * 0.00875; + sif::printInfo("Status register: 0b" BYTE_TO_BINARY_PATTERN "\n", BYTE_TO_BINARY(statusReg)); + sif::printInfo("Gyro X: %f\n", gyroX); + sif::printInfo("Gyro Y: %f\n", gyroY); + sif::printInfo("Gyro Z: %f\n", gyroZ); +} + + +void GyroL3GD20H::spiTransferCompleteCallback(SPI_HandleTypeDef *hspi, void* args) { + transferState = TransferStates::SUCCESS; + HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET); + if(GyroL3GD20H::transferMode == spi::TransferModes::DMA) { + // Invalidate cache prior to access by CPU + SCB_InvalidateDCache_by_Addr ((uint32_t *)GyroL3GD20H::rxBuffer.data(), + GyroL3GD20H::recvBufferSize); + } +} + +/** + * @brief SPI error callbacks. + * @param hspi: SPI handle + * @note This example shows a simple way to report transfer error, and you can + * add your own implementation. + * @retval None + */ +void GyroL3GD20H::spiTransferErrorCallback(SPI_HandleTypeDef *hspi, void* args) { + transferState = TransferStates::FAILURE; +} diff --git a/hal/src/stm32h7/dma.cpp b/hal/src/stm32h7/dma.cpp new file mode 100644 index 000000000..91fb3382a --- /dev/null +++ b/hal/src/stm32h7/dma.cpp @@ -0,0 +1,83 @@ +#include +#include +#include + +user_handler_t DMA_1_USER_HANDLERS[8]; +user_args_t DMA_1_USER_ARGS[8]; + +user_handler_t DMA_2_USER_HANDLERS[8]; +user_args_t DMA_2_USER_ARGS[8]; + +void dma::assignDmaUserHandler(DMAIndexes dma_idx, DMAStreams stream_idx, + user_handler_t user_handler, user_args_t user_args) { + if(dma_idx == DMA_1) { + DMA_1_USER_HANDLERS[stream_idx] = user_handler; + DMA_1_USER_ARGS[stream_idx] = user_args; + } + else if(dma_idx == DMA_2) { + DMA_2_USER_HANDLERS[stream_idx] = user_handler; + DMA_2_USER_ARGS[stream_idx] = user_args; + } +} + +// The interrupt handlers in the format required for the IRQ vector table + +/* Do not change these function names! They need to be exactly equal to the name of the functions +defined in the startup_stm32h743xx.s files! */ + +#define GENERIC_DMA_IRQ_HANDLER(DMA_IDX, STREAM_IDX) \ + if(DMA_##DMA_IDX##_USER_HANDLERS[STREAM_IDX] != NULL) { \ + DMA_##DMA_IDX##_USER_HANDLERS[STREAM_IDX](DMA_##DMA_IDX##_USER_ARGS[STREAM_IDX]); \ + return; \ + } \ + Default_Handler() \ + +extern"C" void DMA1_Stream0_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 0); +} +extern"C" void DMA1_Stream1_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 1); +} +extern"C" void DMA1_Stream2_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 2); +} +extern"C" void DMA1_Stream3_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 3); +} +extern"C" void DMA1_Stream4_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 4); +} +extern"C" void DMA1_Stream5_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 5); +} +extern"C" void DMA1_Stream6_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 6); +} +extern"C" void DMA1_Stream7_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(1, 7); +} + +extern"C" void DMA2_Stream0_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 0); +} +extern"C" void DMA2_Stream1_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 1); +} +extern"C" void DMA2_Stream2_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 2); +} +extern"C" void DMA2_Stream3_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 3); +} +extern"C" void DMA2_Stream4_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 4); +} +extern"C" void DMA2_Stream5_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 5); +} +extern"C" void DMA2_Stream6_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 6); +} +extern"C" void DMA2_Stream7_IRQHandler() { + GENERIC_DMA_IRQ_HANDLER(2, 7); +} diff --git a/hal/src/stm32h7/gpio/CMakeLists.txt b/hal/src/stm32h7/gpio/CMakeLists.txt new file mode 100644 index 000000000..66027dd97 --- /dev/null +++ b/hal/src/stm32h7/gpio/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + gpio.cpp +) diff --git a/hal/src/stm32h7/gpio/gpio.cpp b/hal/src/stm32h7/gpio/gpio.cpp new file mode 100644 index 000000000..50873f753 --- /dev/null +++ b/hal/src/stm32h7/gpio/gpio.cpp @@ -0,0 +1,71 @@ +#include "gpio.h" + +#include "stm32h7xx_hal_rcc.h" + +void gpio::initializeGpioClock(GPIO_TypeDef* gpioPort) { +#ifdef GPIOA + if(gpioPort == GPIOA) { + __HAL_RCC_GPIOA_CLK_ENABLE(); + } +#endif + +#ifdef GPIOB + if(gpioPort == GPIOB) { + __HAL_RCC_GPIOB_CLK_ENABLE(); + } +#endif + +#ifdef GPIOC + if(gpioPort == GPIOC) { + __HAL_RCC_GPIOC_CLK_ENABLE(); + } +#endif + +#ifdef GPIOD + if(gpioPort == GPIOD) { + __HAL_RCC_GPIOD_CLK_ENABLE(); + } +#endif + +#ifdef GPIOE + if(gpioPort == GPIOE) { + __HAL_RCC_GPIOE_CLK_ENABLE(); + } +#endif + +#ifdef GPIOF + if(gpioPort == GPIOF) { + __HAL_RCC_GPIOF_CLK_ENABLE(); + } +#endif + +#ifdef GPIOG + if(gpioPort == GPIOG) { + __HAL_RCC_GPIOG_CLK_ENABLE(); + } +#endif + +#ifdef GPIOH + if(gpioPort == GPIOH) { + __HAL_RCC_GPIOH_CLK_ENABLE(); + } +#endif + +#ifdef GPIOI + if(gpioPort == GPIOI) { + __HAL_RCC_GPIOI_CLK_ENABLE(); + } +#endif + +#ifdef GPIOJ + if(gpioPort == GPIOJ) { + __HAL_RCC_GPIOJ_CLK_ENABLE(); + } +#endif + +#ifdef GPIOK + if(gpioPort == GPIOK) { + __HAL_RCC_GPIOK_CLK_ENABLE(); + } +#endif +} diff --git a/hal/src/stm32h7/i2c/CMakeLists.txt b/hal/src/stm32h7/i2c/CMakeLists.txt new file mode 100644 index 000000000..aa3194a93 --- /dev/null +++ b/hal/src/stm32h7/i2c/CMakeLists.txt @@ -0,0 +1,2 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +) diff --git a/hal/src/stm32h7/spi/CMakeLists.txt b/hal/src/stm32h7/spi/CMakeLists.txt new file mode 100644 index 000000000..fb4f64746 --- /dev/null +++ b/hal/src/stm32h7/spi/CMakeLists.txt @@ -0,0 +1,9 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE + spiCore.cpp + spiDefinitions.cpp + spiInterrupts.cpp + mspInit.cpp + SpiCookie.cpp + SpiComIF.cpp + stm32h743ziSpi.cpp +) diff --git a/hal/src/stm32h7/spi/SpiComIF.cpp b/hal/src/stm32h7/spi/SpiComIF.cpp new file mode 100644 index 000000000..732fb5ea7 --- /dev/null +++ b/hal/src/stm32h7/spi/SpiComIF.cpp @@ -0,0 +1,453 @@ +#include "SpiComIF.h" +#include "SpiCookie.h" + +#include "fsfw/tasks/SemaphoreFactory.h" +#include "fsfw/osal/FreeRTOS/TaskManagement.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw_hal/stm32h7/spi/mspInit.h" +#include "fsfw_hal/stm32h7/gpio/gpio.h" + +#include "stm32h7xx_hal_gpio.h" + +SpiComIF::SpiComIF(object_id_t objectId): SystemObject(objectId) { + void* irqArgsVoided = reinterpret_cast(&irqArgs); + spi::assignTransferRxTxCompleteCallback(&spiTransferCompleteCallback, irqArgsVoided); + spi::assignTransferRxCompleteCallback(&spiTransferRxCompleteCallback, irqArgsVoided); + spi::assignTransferTxCompleteCallback(&spiTransferTxCompleteCallback, irqArgsVoided); + spi::assignTransferErrorCallback(&spiTransferErrorCallback, irqArgsVoided); +} + +void SpiComIF::configureCacheMaintenanceOnTxBuffer(bool enable) { + this->cacheMaintenanceOnTxBuffer = enable; +} + +void SpiComIF::addDmaHandles(DMA_HandleTypeDef *txHandle, DMA_HandleTypeDef *rxHandle) { + spi::setDmaHandles(txHandle, rxHandle); +} + +ReturnValue_t SpiComIF::initialize() { + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) { + SpiCookie* spiCookie = dynamic_cast(cookie); + if(spiCookie == nullptr) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error < "SpiComIF::initializeInterface: Invalid cookie" << std::endl; +#else + sif::printError("SpiComIF::initializeInterface: Invalid cookie\n"); +#endif + return NULLPOINTER; + } + auto transferMode = spiCookie->getTransferMode(); + + if(transferMode == spi::TransferModes::DMA) { + DMA_HandleTypeDef *txHandle = nullptr; + DMA_HandleTypeDef *rxHandle = nullptr; + spi::getDmaHandles(&txHandle, &rxHandle); + if(txHandle == nullptr or rxHandle == nullptr) { + sif::printError("SpiComIF::initialize: DMA handles not set!\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + } + // This semaphore ensures thread-safety for a given bus + spiSemaphore = dynamic_cast( + SemaphoreFactory::instance()->createBinarySemaphore()); + address_t spiAddress = spiCookie->getDeviceAddress(); + + auto iter = spiDeviceMap.find(spiAddress); + if(iter == spiDeviceMap.end()) { + size_t bufferSize = spiCookie->getMaxRecvSize(); + auto statusPair = spiDeviceMap.emplace(spiAddress, SpiInstance(bufferSize)); + if (not statusPair.second) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::error << "SpiComIF::initializeInterface: Failed to insert device with address " << + spiAddress << "to SPI device map" << std::endl; +#else + sif::printError("SpiComIF::initializeInterface: Failed to insert device with address " + "%lu to SPI device map\n", static_cast(spiAddress)); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return HasReturnvaluesIF::RETURN_FAILED; + } + } + auto gpioPin = spiCookie->getChipSelectGpioPin(); + auto gpioPort = spiCookie->getChipSelectGpioPort(); + + SPI_HandleTypeDef& spiHandle = spiCookie->getSpiHandle(); + + auto spiIdx = spiCookie->getSpiIdx(); + if(spiIdx == spi::SpiBus::SPI_1) { +#ifdef SPI1 + spiHandle.Instance = SPI1; +#endif + } + else if(spiIdx == spi::SpiBus::SPI_2) { +#ifdef SPI2 + spiHandle.Instance = SPI2; +#endif + } + else { + printCfgError("SPI Bus Index"); + return HasReturnvaluesIF::RETURN_FAILED; + } + + auto mspCfg = spiCookie->getMspCfg(); + + if(transferMode == spi::TransferModes::POLLING) { + auto typedCfg = dynamic_cast(mspCfg); + if(typedCfg == nullptr) { + printCfgError("Polling MSP"); + return HasReturnvaluesIF::RETURN_FAILED; + } + spi::setSpiPollingMspFunctions(typedCfg); + } + else if(transferMode == spi::TransferModes::INTERRUPT) { + auto typedCfg = dynamic_cast(mspCfg); + if(typedCfg == nullptr) { + printCfgError("IRQ MSP"); + return HasReturnvaluesIF::RETURN_FAILED; + } + spi::setSpiIrqMspFunctions(typedCfg); + } + else if(transferMode == spi::TransferModes::DMA) { + auto typedCfg = dynamic_cast(mspCfg); + if(typedCfg == nullptr) { + printCfgError("DMA MSP"); + return HasReturnvaluesIF::RETURN_FAILED; + } + // Check DMA handles + DMA_HandleTypeDef* txHandle = nullptr; + DMA_HandleTypeDef* rxHandle = nullptr; + spi::getDmaHandles(&txHandle, &rxHandle); + if(txHandle == nullptr or rxHandle == nullptr) { + printCfgError("DMA Handle"); + return HasReturnvaluesIF::RETURN_FAILED; + } + spi::setSpiDmaMspFunctions(typedCfg); + } + + gpio::initializeGpioClock(gpioPort); + GPIO_InitTypeDef chipSelect = {}; + chipSelect.Pin = gpioPin; + chipSelect.Mode = GPIO_MODE_OUTPUT_PP; + HAL_GPIO_Init(gpioPort, &chipSelect); + HAL_GPIO_WritePin(gpioPort, gpioPin, GPIO_PIN_SET); + + if(HAL_SPI_Init(&spiHandle) != HAL_OK) { + sif::printWarning("SpiComIF::initialize: Error initializing SPI\n"); + return HasReturnvaluesIF::RETURN_FAILED; + } + // The MSP configuration struct is not required anymore + spiCookie->deleteMspCfg(); + + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, size_t sendLen) { + SpiCookie* spiCookie = dynamic_cast(cookie); + if(spiCookie == nullptr) { + return NULLPOINTER; + } + + SPI_HandleTypeDef& spiHandle = spiCookie->getSpiHandle(); + + auto iter = spiDeviceMap.find(spiCookie->getDeviceAddress()); + if(iter == spiDeviceMap.end()) { + return HasReturnvaluesIF::RETURN_FAILED; + } + iter->second.currentTransferLen = sendLen; + + auto transferMode = spiCookie->getTransferMode(); + switch(spiCookie->getTransferState()) { + case(spi::TransferStates::IDLE): { + break; + } + case(spi::TransferStates::WAIT): + case(spi::TransferStates::FAILURE): + case(spi::TransferStates::SUCCESS): + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + switch(transferMode) { + case(spi::TransferModes::POLLING): { + return handlePollingSendOperation(iter->second.replyBuffer.data(), spiHandle, *spiCookie, + sendData, sendLen); + } + case(spi::TransferModes::INTERRUPT): { + return handleInterruptSendOperation(iter->second.replyBuffer.data(), spiHandle, *spiCookie, + sendData, sendLen); + } + case(spi::TransferModes::DMA): { + return handleDmaSendOperation(iter->second.replyBuffer.data(), spiHandle, *spiCookie, + sendData, sendLen); + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::getSendSuccess(CookieIF *cookie) { + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::requestReceiveMessage(CookieIF *cookie, size_t requestLen) { + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::readReceivedMessage(CookieIF *cookie, uint8_t **buffer, size_t *size) { + SpiCookie* spiCookie = dynamic_cast(cookie); + if(spiCookie == nullptr) { + return NULLPOINTER; + } + switch(spiCookie->getTransferState()) { + case(spi::TransferStates::SUCCESS): { + auto iter = spiDeviceMap.find(spiCookie->getDeviceAddress()); + if(iter == spiDeviceMap.end()) { + return HasReturnvaluesIF::RETURN_FAILED; + } + *buffer = iter->second.replyBuffer.data(); + *size = iter->second.currentTransferLen; + spiCookie->setTransferState(spi::TransferStates::IDLE); + break; + } + case(spi::TransferStates::FAILURE): { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::readReceivedMessage: Transfer failure" << std::endl; +#else + sif::printWarning("SpiComIF::readReceivedMessage: Transfer failure\n"); +#endif +#endif + spiCookie->setTransferState(spi::TransferStates::IDLE); + return HasReturnvaluesIF::RETURN_FAILED; + } + case(spi::TransferStates::WAIT): + case(spi::TransferStates::IDLE): { + break; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } + + return HasReturnvaluesIF::RETURN_OK; +} + +void SpiComIF::setDefaultPollingTimeout(dur_millis_t timeout) { + this->defaultPollingTimeout = timeout; +} + +ReturnValue_t SpiComIF::handlePollingSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t *sendData, size_t sendLen) { + auto gpioPort = spiCookie.getChipSelectGpioPort(); + auto gpioPin = spiCookie.getChipSelectGpioPin(); + auto returnval = spiSemaphore->acquire(timeoutType, timeoutMs); + if(returnval != HasReturnvaluesIF::RETURN_OK) { + return returnval; + } + spiCookie.setTransferState(spi::TransferStates::WAIT); + HAL_GPIO_WritePin(gpioPort, gpioPin, GPIO_PIN_RESET); + auto result = HAL_SPI_TransmitReceive(&spiHandle, const_cast(sendData), + recvPtr, sendLen, defaultPollingTimeout); + HAL_GPIO_WritePin(gpioPort, gpioPin, GPIO_PIN_SET); + spiSemaphore->release(); + switch(result) { + case(HAL_OK): { + spiCookie.setTransferState(spi::TransferStates::SUCCESS); + break; + } + case(HAL_TIMEOUT): { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::sendMessage: Polling Mode | Timeout for SPI device" << + spiCookie->getDeviceAddress() << std::endl; +#else + sif::printWarning("SpiComIF::sendMessage: Polling Mode | Timeout for SPI device %d\n", + spiCookie.getDeviceAddress()); +#endif +#endif + spiCookie.setTransferState(spi::TransferStates::FAILURE); + return spi::HAL_TIMEOUT_RETVAL; + } + case(HAL_ERROR): + default: { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::sendMessage: Polling Mode | HAL error for SPI device" << + spiCookie->getDeviceAddress() << std::endl; +#else + sif::printWarning("SpiComIF::sendMessage: Polling Mode | HAL error for SPI device %d\n", + spiCookie.getDeviceAddress()); +#endif +#endif + spiCookie.setTransferState(spi::TransferStates::FAILURE); + return spi::HAL_ERROR_RETVAL; + } + } + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t SpiComIF::handleInterruptSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen) { + return handleIrqSendOperation(recvPtr, spiHandle, spiCookie, sendData, sendLen); +} + +ReturnValue_t SpiComIF::handleDmaSendOperation(uint8_t* recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t * sendData, size_t sendLen) { + return handleIrqSendOperation(recvPtr, spiHandle, spiCookie, sendData, sendLen); +} + +ReturnValue_t SpiComIF::handleIrqSendOperation(uint8_t *recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t *sendData, size_t sendLen) { + ReturnValue_t result = genericIrqSendSetup(recvPtr, spiHandle, spiCookie, sendData, sendLen); + if(result != HasReturnvaluesIF::RETURN_OK) { + return result; + } + // yet another HAL driver which is not const-correct.. + HAL_StatusTypeDef status = HAL_OK; + auto transferMode = spiCookie.getTransferMode(); + if(transferMode == spi::TransferModes::DMA) { + if(cacheMaintenanceOnTxBuffer) { + /* Clean D-cache. Make sure the address is 32-byte aligned and add 32-bytes to length, + in case it overlaps cacheline */ + SCB_CleanDCache_by_Addr((uint32_t*)(((uint32_t) sendData ) & ~(uint32_t)0x1F), + sendLen + 32); + } + status = HAL_SPI_TransmitReceive_DMA(&spiHandle, const_cast(sendData), + currentRecvPtr, sendLen); + } + else { + status = HAL_SPI_TransmitReceive_IT(&spiHandle, const_cast(sendData), + currentRecvPtr, sendLen); + } + switch(status) { + case(HAL_OK): { + break; + } + default: { + return halErrorHandler(status, transferMode); + } + } + return result; +} + +ReturnValue_t SpiComIF::halErrorHandler(HAL_StatusTypeDef status, spi::TransferModes transferMode) { + char modeString[10]; + if(transferMode == spi::TransferModes::DMA) { + std::snprintf(modeString, sizeof(modeString), "Dma"); + } + else { + std::snprintf(modeString, sizeof(modeString), "Interrupt"); + } + sif::printWarning("SpiComIF::handle%sSendOperation: HAL error %d occured\n", modeString, + status); + switch(status) { + case(HAL_BUSY): { + return spi::HAL_BUSY_RETVAL; + } + case(HAL_ERROR): { + return spi::HAL_ERROR_RETVAL; + } + case(HAL_TIMEOUT): { + return spi::HAL_TIMEOUT_RETVAL; + } + default: { + return HasReturnvaluesIF::RETURN_FAILED; + } + } +} + + +ReturnValue_t SpiComIF::genericIrqSendSetup(uint8_t *recvPtr, SPI_HandleTypeDef& spiHandle, + SpiCookie& spiCookie, const uint8_t *sendData, size_t sendLen) { + currentRecvPtr = recvPtr; + currentRecvBuffSize = sendLen; + + // Take the semaphore which will be released by a callback when the transfer is complete + ReturnValue_t result = spiSemaphore->acquire(SemaphoreIF::TimeoutType::WAITING, timeoutMs); + if(result != HasReturnvaluesIF::RETURN_OK) { + // Configuration error + sif::printWarning("SpiComIF::handleInterruptSendOperation: Semaphore " + "could not be acquired after %d ms\n", timeoutMs); + return result; + } + // Cache the current SPI handle in any case + spi::setSpiHandle(&spiHandle); + // Assign the IRQ arguments for the user callbacks + irqArgs.comIF = this; + irqArgs.spiCookie = &spiCookie; + // The SPI handle is passed to the default SPI callback as a void argument. This callback + // is different from the user callbacks specified above! + spi::assignSpiUserArgs(spiCookie.getSpiIdx(), reinterpret_cast(&spiHandle)); + HAL_GPIO_WritePin(spiCookie.getChipSelectGpioPort(), spiCookie.getChipSelectGpioPin(), + GPIO_PIN_RESET); + return HasReturnvaluesIF::RETURN_OK; +} + +void SpiComIF::spiTransferTxCompleteCallback(SPI_HandleTypeDef *hspi, void *args) { + genericIrqHandler(args, spi::TransferStates::SUCCESS); +} + +void SpiComIF::spiTransferRxCompleteCallback(SPI_HandleTypeDef *hspi, void *args) { + genericIrqHandler(args, spi::TransferStates::SUCCESS); +} + +void SpiComIF::spiTransferCompleteCallback(SPI_HandleTypeDef *hspi, void *args) { + genericIrqHandler(args, spi::TransferStates::SUCCESS); +} + +void SpiComIF::spiTransferErrorCallback(SPI_HandleTypeDef *hspi, void *args) { + genericIrqHandler(args, spi::TransferStates::FAILURE); +} + +void SpiComIF::genericIrqHandler(void *irqArgsVoid, spi::TransferStates targetState) { + IrqArgs* irqArgs = reinterpret_cast(irqArgsVoid); + if(irqArgs == nullptr) { + return; + } + SpiCookie* spiCookie = irqArgs->spiCookie; + SpiComIF* comIF = irqArgs->comIF; + if(spiCookie == nullptr or comIF == nullptr) { + return; + } + + spiCookie->setTransferState(targetState); + + // Pull CS pin high again + HAL_GPIO_WritePin(spiCookie->getChipSelectGpioPort(), spiCookie->getChipSelectGpioPin(), + GPIO_PIN_SET); + + // Release the task semaphore + BaseType_t taskWoken = pdFALSE; + ReturnValue_t result = BinarySemaphore::releaseFromISR(comIF->spiSemaphore->getSemaphore(), + &taskWoken); + if(result != HasReturnvaluesIF::RETURN_OK) { + // Configuration error + printf("SpiComIF::genericIrqHandler: Failure releasing Semaphore!\n"); + } + + // Perform cache maintenance operation for DMA transfers + if(spiCookie->getTransferMode() == spi::TransferModes::DMA) { + // Invalidate cache prior to access by CPU + SCB_InvalidateDCache_by_Addr ((uint32_t *) comIF->currentRecvPtr, + comIF->currentRecvBuffSize); + } + /* Request a context switch if the SPI ComIF task was woken up and has a higher priority + than the currently running task */ + if(taskWoken == pdTRUE) { + TaskManagement::requestContextSwitch(CallContext::ISR); + } +} + +void SpiComIF::printCfgError(const char *const type) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::initializeInterface: Invalid " << type << " configuration" + << std::endl; +#else + sif::printWarning("SpiComIF::initializeInterface: Invalid %s configuration\n", type); +#endif +} diff --git a/hal/src/stm32h7/spi/SpiCookie.cpp b/hal/src/stm32h7/spi/SpiCookie.cpp new file mode 100644 index 000000000..06c0ac5ff --- /dev/null +++ b/hal/src/stm32h7/spi/SpiCookie.cpp @@ -0,0 +1,78 @@ +#include "SpiCookie.h" + + +SpiCookie::SpiCookie(address_t deviceAddress, spi::SpiBus spiIdx, spi::TransferModes transferMode, + spi::MspCfgBase* mspCfg, uint32_t spiSpeed, spi::SpiModes spiMode, + uint16_t chipSelectGpioPin, GPIO_TypeDef* chipSelectGpioPort, size_t maxRecvSize): + deviceAddress(deviceAddress), spiIdx(spiIdx), spiSpeed(spiSpeed), spiMode(spiMode), + transferMode(transferMode), chipSelectGpioPin(chipSelectGpioPin), + chipSelectGpioPort(chipSelectGpioPort), mspCfg(mspCfg), maxRecvSize(maxRecvSize) { + spiHandle.Init.DataSize = SPI_DATASIZE_8BIT; + spiHandle.Init.FirstBit = SPI_FIRSTBIT_MSB; + spiHandle.Init.TIMode = SPI_TIMODE_DISABLE; + spiHandle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + spiHandle.Init.CRCPolynomial = 7; + spiHandle.Init.CRCLength = SPI_CRC_LENGTH_8BIT; + spiHandle.Init.NSS = SPI_NSS_SOFT; + spiHandle.Init.NSSPMode = SPI_NSS_PULSE_DISABLE; + spiHandle.Init.Direction = SPI_DIRECTION_2LINES; + // Recommended setting to avoid glitches + spiHandle.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ENABLE; + spiHandle.Init.Mode = SPI_MODE_MASTER; + spi::assignSpiMode(spiMode, spiHandle); + spiHandle.Init.BaudRatePrescaler = spi::getPrescaler(HAL_RCC_GetHCLKFreq(), spiSpeed); +} + +uint16_t SpiCookie::getChipSelectGpioPin() const { + return chipSelectGpioPin; +} + +GPIO_TypeDef* SpiCookie::getChipSelectGpioPort() { + return chipSelectGpioPort; +} + +address_t SpiCookie::getDeviceAddress() const { + return deviceAddress; +} + +spi::SpiBus SpiCookie::getSpiIdx() const { + return spiIdx; +} + +spi::SpiModes SpiCookie::getSpiMode() const { + return spiMode; +} + +uint32_t SpiCookie::getSpiSpeed() const { + return spiSpeed; +} + +size_t SpiCookie::getMaxRecvSize() const { + return maxRecvSize; +} + +SPI_HandleTypeDef& SpiCookie::getSpiHandle() { + return spiHandle; +} + +spi::MspCfgBase* SpiCookie::getMspCfg() { + return mspCfg; +} + +void SpiCookie::deleteMspCfg() { + if(mspCfg != nullptr) { + delete mspCfg; + } +} + +spi::TransferModes SpiCookie::getTransferMode() const { + return transferMode; +} + +void SpiCookie::setTransferState(spi::TransferStates transferState) { + this->transferState = transferState; +} + +spi::TransferStates SpiCookie::getTransferState() const { + return this->transferState; +} diff --git a/hal/src/stm32h7/spi/mspInit.cpp b/hal/src/stm32h7/spi/mspInit.cpp new file mode 100644 index 000000000..80d2ffe04 --- /dev/null +++ b/hal/src/stm32h7/spi/mspInit.cpp @@ -0,0 +1,252 @@ +#include +#include "mspInit.h" +#include "spiCore.h" +#include "spiInterrupts.h" +#include "stm32h743xx.h" +#include "stm32h7xx_hal_spi.h" +#include "stm32h7xx_hal_dma.h" +#include "stm32h7xx_hal_def.h" + +#include + +spi::msp_func_t mspInitFunc = nullptr; +spi::MspCfgBase* mspInitArgs = nullptr; + +spi::msp_func_t mspDeinitFunc = nullptr; +spi::MspCfgBase* mspDeinitArgs = nullptr; + +/** + * @brief SPI MSP Initialization + * This function configures the hardware resources used in this example: + * - Peripheral's clock enable + * - Peripheral's GPIO Configuration + * - DMA configuration for transmission request by peripheral + * - NVIC configuration for DMA interrupt request enable + * @param hspi: SPI handle pointer + * @retval None + */ +void spi::halMspInitDma(SPI_HandleTypeDef* hspi, MspCfgBase* cfgBase) { + auto cfg = dynamic_cast(cfgBase); + if(hspi == nullptr or cfg == nullptr) { + return; + } + setSpiHandle(hspi); + + DMA_HandleTypeDef* hdma_tx = nullptr; + DMA_HandleTypeDef* hdma_rx = nullptr; + spi::getDmaHandles(&hdma_tx, &hdma_rx); + if(hdma_tx == nullptr or hdma_rx == nullptr) { + printf("HAL_SPI_MspInit: Invalid DMA handles. Make sure to call setDmaHandles!\n"); + return; + } + + spi::halMspInitInterrupt(hspi, cfg); + + // DMA setup + if(cfg->dmaClkEnableWrapper == nullptr) { + mspErrorHandler("spi::halMspInitDma", "DMA Clock init invalid"); + } + cfg->dmaClkEnableWrapper(); + + // Configure the DMA + /* Configure the DMA handler for Transmission process */ + if(hdma_tx->Instance == nullptr) { + // Assume it was not configured properly + mspErrorHandler("spi::halMspInitDma", "DMA TX handle invalid"); + } + + HAL_DMA_Init(hdma_tx); + /* Associate the initialized DMA handle to the the SPI handle */ + __HAL_LINKDMA(hspi, hdmatx, *hdma_tx); + + HAL_DMA_Init(hdma_rx); + /* Associate the initialized DMA handle to the the SPI handle */ + __HAL_LINKDMA(hspi, hdmarx, *hdma_rx); + + /*##-4- Configure the NVIC for DMA #########################################*/ + /* NVIC configuration for DMA transfer complete interrupt (SPI1_RX) */ + // Assign the interrupt handler + dma::assignDmaUserHandler(cfg->rxDmaIndex, cfg->rxDmaStream, &spi::dmaRxIrqHandler, hdma_rx); + HAL_NVIC_SetPriority(cfg->rxDmaIrqNumber, cfg->rxPreEmptPriority, cfg->rxSubpriority); + HAL_NVIC_EnableIRQ(cfg->rxDmaIrqNumber); + + /* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */ + // Assign the interrupt handler + dma::assignDmaUserHandler(cfg->txDmaIndex, cfg->txDmaStream, + &spi::dmaTxIrqHandler, hdma_tx); + HAL_NVIC_SetPriority(cfg->txDmaIrqNumber, cfg->txPreEmptPriority, cfg->txSubpriority); + HAL_NVIC_EnableIRQ(cfg->txDmaIrqNumber); +} + +/** + * @brief SPI MSP De-Initialization + * This function frees the hardware resources used in this example: + * - Disable the Peripheral's clock + * - Revert GPIO, DMA and NVIC configuration to their default state + * @param hspi: SPI handle pointer + * @retval None + */ +void spi::halMspDeinitDma(SPI_HandleTypeDef* hspi, MspCfgBase* cfgBase) { + auto cfg = dynamic_cast(cfgBase); + if(hspi == nullptr or cfg == nullptr) { + return; + } + spi::halMspDeinitInterrupt(hspi, cfgBase); + DMA_HandleTypeDef* hdma_tx = NULL; + DMA_HandleTypeDef* hdma_rx = NULL; + spi::getDmaHandles(&hdma_tx, &hdma_rx); + if(hdma_tx == NULL || hdma_rx == NULL) { + printf("HAL_SPI_MspInit: Invalid DMA handles. Make sure to call setDmaHandles!\n"); + } + else { + // Disable the DMA + /* De-Initialize the DMA associated to transmission process */ + HAL_DMA_DeInit(hdma_tx); + /* De-Initialize the DMA associated to reception process */ + HAL_DMA_DeInit(hdma_rx); + } + + // Disable the NVIC for DMA + HAL_NVIC_DisableIRQ(cfg->txDmaIrqNumber); + HAL_NVIC_DisableIRQ(cfg->rxDmaIrqNumber); + +} + +void spi::halMspInitPolling(SPI_HandleTypeDef* hspi, MspCfgBase* cfgBase) { + auto cfg = dynamic_cast(cfgBase); + GPIO_InitTypeDef GPIO_InitStruct = {}; + /*##-1- Enable peripherals and GPIO Clocks #################################*/ + /* Enable GPIO TX/RX clock */ + cfg->setupMacroWrapper(); + + /*##-2- Configure peripheral GPIO ##########################################*/ + /* SPI SCK GPIO pin configuration */ + GPIO_InitStruct.Pin = cfg->sckPin; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = cfg->sckAlternateFunction; + HAL_GPIO_Init(cfg->sckPort, &GPIO_InitStruct); + + /* SPI MISO GPIO pin configuration */ + GPIO_InitStruct.Pin = cfg->misoPin; + GPIO_InitStruct.Alternate = cfg->misoAlternateFunction; + HAL_GPIO_Init(cfg->misoPort, &GPIO_InitStruct); + + /* SPI MOSI GPIO pin configuration */ + GPIO_InitStruct.Pin = cfg->mosiPin; + GPIO_InitStruct.Alternate = cfg->mosiAlternateFunction; + HAL_GPIO_Init(cfg->mosiPort, &GPIO_InitStruct); +} + +void spi::halMspDeinitPolling(SPI_HandleTypeDef* hspi, MspCfgBase* cfgBase) { + auto cfg = reinterpret_cast(cfgBase); + // Reset peripherals + cfg->cleanUpMacroWrapper(); + + // Disable peripherals and GPIO Clocks + /* Configure SPI SCK as alternate function */ + HAL_GPIO_DeInit(cfg->sckPort, cfg->sckPin); + /* Configure SPI MISO as alternate function */ + HAL_GPIO_DeInit(cfg->misoPort, cfg->misoPin); + /* Configure SPI MOSI as alternate function */ + HAL_GPIO_DeInit(cfg->mosiPort, cfg->mosiPin); +} + +void spi::halMspInitInterrupt(SPI_HandleTypeDef* hspi, MspCfgBase* cfgBase) { + auto cfg = dynamic_cast(cfgBase); + if(cfg == nullptr or hspi == nullptr) { + return; + } + + spi::halMspInitPolling(hspi, cfg); + // Configure the NVIC for SPI + spi::assignSpiUserHandler(cfg->spiBus, cfg->spiIrqHandler, cfg->spiUserArgs); + HAL_NVIC_SetPriority(cfg->spiIrqNumber, cfg->preEmptPriority, cfg->subpriority); + HAL_NVIC_EnableIRQ(cfg->spiIrqNumber); +} + +void spi::halMspDeinitInterrupt(SPI_HandleTypeDef* hspi, MspCfgBase* cfgBase) { + auto cfg = dynamic_cast(cfgBase); + spi::halMspDeinitPolling(hspi, cfg); + // Disable the NVIC for SPI + HAL_NVIC_DisableIRQ(cfg->spiIrqNumber); +} + +void spi::getMspInitFunction(msp_func_t* init_func, MspCfgBase** args) { + if(init_func != NULL && args != NULL) { + *init_func = mspInitFunc; + *args = mspInitArgs; + } +} + +void spi::getMspDeinitFunction(msp_func_t* deinit_func, MspCfgBase** args) { + if(deinit_func != NULL && args != NULL) { + *deinit_func = mspDeinitFunc; + *args = mspDeinitArgs; + } +} + +void spi::setSpiDmaMspFunctions(MspDmaConfigStruct* cfg, + msp_func_t initFunc, msp_func_t deinitFunc) { + mspInitFunc = initFunc; + mspDeinitFunc = deinitFunc; + mspInitArgs = cfg; + mspDeinitArgs = cfg; +} + +void spi::setSpiIrqMspFunctions(MspIrqConfigStruct *cfg, msp_func_t initFunc, + msp_func_t deinitFunc) { + mspInitFunc = initFunc; + mspDeinitFunc = deinitFunc; + mspInitArgs = cfg; + mspDeinitArgs = cfg; +} + +void spi::setSpiPollingMspFunctions(MspPollingConfigStruct *cfg, msp_func_t initFunc, + msp_func_t deinitFunc) { + mspInitFunc = initFunc; + mspDeinitFunc = deinitFunc; + mspInitArgs = cfg; + mspDeinitArgs = cfg; +} + +/** + * @brief SPI MSP Initialization + * This function configures the hardware resources used in this example: + * - Peripheral's clock enable + * - Peripheral's GPIO Configuration + * - DMA configuration for transmission request by peripheral + * - NVIC configuration for DMA interrupt request enable + * @param hspi: SPI handle pointer + * @retval None + */ +extern "C" void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) { + if(mspInitFunc != NULL) { + mspInitFunc(hspi, mspInitArgs); + } + else { + printf("HAL_SPI_MspInit: Please call set_msp_functions to assign SPI MSP functions\n"); + } +} + +/** + * @brief SPI MSP De-Initialization + * This function frees the hardware resources used in this example: + * - Disable the Peripheral's clock + * - Revert GPIO, DMA and NVIC configuration to their default state + * @param hspi: SPI handle pointer + * @retval None + */ +extern "C" void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) { + if(mspDeinitFunc != NULL) { + mspDeinitFunc(hspi, mspDeinitArgs); + } + else { + printf("HAL_SPI_MspDeInit: Please call set_msp_functions to assign SPI MSP functions\n"); + } +} + +void spi::mspErrorHandler(const char* const function, const char *const message) { + printf("%s failure: %s\n", function, message); +} diff --git a/hal/src/stm32h7/spi/spiCore.cpp b/hal/src/stm32h7/spi/spiCore.cpp new file mode 100644 index 000000000..feec65f07 --- /dev/null +++ b/hal/src/stm32h7/spi/spiCore.cpp @@ -0,0 +1,340 @@ +#include "spiDefinitions.h" +#include "spiCore.h" +#include + +SPI_HandleTypeDef* spiHandle = nullptr; +DMA_HandleTypeDef* hdmaTx = nullptr; +DMA_HandleTypeDef* hdmaRx = nullptr; + +spi_transfer_cb_t rxTxCb = nullptr; +void* rxTxArgs = nullptr; +spi_transfer_cb_t txCb = nullptr; +void* txArgs = nullptr; +spi_transfer_cb_t rxCb = nullptr; +void* rxArgs = nullptr; +spi_transfer_cb_t errorCb = nullptr; +void* errorArgs = nullptr; + +void mapIndexAndStream(DMA_HandleTypeDef* handle, dma::DMAType dmaType, dma::DMAIndexes dmaIdx, + dma::DMAStreams dmaStream, IRQn_Type* dmaIrqNumber); +void mapSpiBus(DMA_HandleTypeDef *handle, dma::DMAType dmaType, spi::SpiBus spiBus); + +void spi::configureDmaHandle(DMA_HandleTypeDef *handle, spi::SpiBus spiBus, dma::DMAType dmaType, + dma::DMAIndexes dmaIdx, dma::DMAStreams dmaStream, IRQn_Type* dmaIrqNumber, + uint32_t dmaMode, uint32_t dmaPriority) { + using namespace dma; + mapIndexAndStream(handle, dmaType, dmaIdx, dmaStream, dmaIrqNumber); + mapSpiBus(handle, dmaType, spiBus); + + if(dmaType == DMAType::TX) { + handle->Init.Direction = DMA_MEMORY_TO_PERIPH; + } + else { + handle->Init.Direction = DMA_PERIPH_TO_MEMORY; + } + + handle->Init.Priority = dmaPriority; + handle->Init.Mode = dmaMode; + + // Standard settings for the rest for now + handle->Init.FIFOMode = DMA_FIFOMODE_DISABLE; + handle->Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; + handle->Init.MemBurst = DMA_MBURST_INC4; + handle->Init.PeriphBurst = DMA_PBURST_INC4; + handle->Init.PeriphInc = DMA_PINC_DISABLE; + handle->Init.MemInc = DMA_MINC_ENABLE; + handle->Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + handle->Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; +} + +void spi::setDmaHandles(DMA_HandleTypeDef* txHandle, DMA_HandleTypeDef* rxHandle) { + hdmaTx = txHandle; + hdmaRx = rxHandle; +} + +void spi::getDmaHandles(DMA_HandleTypeDef** txHandle, DMA_HandleTypeDef** rxHandle) { + *txHandle = hdmaTx; + *rxHandle = hdmaRx; +} + +void spi::setSpiHandle(SPI_HandleTypeDef *spiHandle_) { + if(spiHandle_ == NULL) { + return; + } + spiHandle = spiHandle_; +} + +void spi::assignTransferRxTxCompleteCallback(spi_transfer_cb_t callback, void *userArgs) { + rxTxCb = callback; + rxTxArgs = userArgs; +} + +void spi::assignTransferRxCompleteCallback(spi_transfer_cb_t callback, void *userArgs) { + rxCb = callback; + rxArgs = userArgs; +} + +void spi::assignTransferTxCompleteCallback(spi_transfer_cb_t callback, void *userArgs) { + txCb = callback; + txArgs = userArgs; +} + +void spi::assignTransferErrorCallback(spi_transfer_cb_t callback, void *userArgs) { + errorCb = callback; + errorArgs = userArgs; +} + +SPI_HandleTypeDef* spi::getSpiHandle() { + return spiHandle; +} + + + +/** + * @brief TxRx Transfer completed callback. + * @param hspi: SPI handle + */ +extern "C" void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) { + if(rxTxCb != NULL) { + rxTxCb(hspi, rxTxArgs); + } + else { + printf("HAL_SPI_TxRxCpltCallback: No user callback specified\n"); + } +} + +/** + * @brief TxRx Transfer completed callback. + * @param hspi: SPI handle + */ +extern "C" void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) { + if(txCb != NULL) { + txCb(hspi, txArgs); + } + else { + printf("HAL_SPI_TxCpltCallback: No user callback specified\n"); + } +} + +/** + * @brief TxRx Transfer completed callback. + * @param hspi: SPI handle + */ +extern "C" void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) { + if(rxCb != nullptr) { + rxCb(hspi, rxArgs); + } + else { + printf("HAL_SPI_RxCpltCallback: No user callback specified\n"); + } +} + +/** + * @brief SPI error callbacks. + * @param hspi: SPI handle + * @note This example shows a simple way to report transfer error, and you can + * add your own implementation. + * @retval None + */ +extern "C" void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) { + if(errorCb != nullptr) { + errorCb(hspi, rxArgs); + } + else { + printf("HAL_SPI_ErrorCallback: No user callback specified\n"); + } +} + +void mapIndexAndStream(DMA_HandleTypeDef* handle, dma::DMAType dmaType, dma::DMAIndexes dmaIdx, + dma::DMAStreams dmaStream, IRQn_Type* dmaIrqNumber) { + using namespace dma; + if(dmaIdx == DMAIndexes::DMA_1) { +#ifdef DMA1 + switch(dmaStream) { + case(DMAStreams::STREAM_0): { +#ifdef DMA1_Stream0 + handle->Instance = DMA1_Stream0; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream0_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_1): { +#ifdef DMA1_Stream1 + handle->Instance = DMA1_Stream1; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream1_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_2): { +#ifdef DMA1_Stream2 + handle->Instance = DMA1_Stream2; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream2_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_3): { +#ifdef DMA1_Stream3 + handle->Instance = DMA1_Stream3; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream3_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_4): { +#ifdef DMA1_Stream4 + handle->Instance = DMA1_Stream4; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream4_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_5): { +#ifdef DMA1_Stream5 + handle->Instance = DMA1_Stream5; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream5_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_6): { +#ifdef DMA1_Stream6 + handle->Instance = DMA1_Stream6; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream6_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_7): { +#ifdef DMA1_Stream7 + handle->Instance = DMA1_Stream7; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA1_Stream7_IRQn; + } +#endif + break; + } + } + if(dmaType == DMAType::TX) { + handle->Init.Request = DMA_REQUEST_SPI1_TX; + } + else { + handle->Init.Request = DMA_REQUEST_SPI1_RX; + } +#endif /* DMA1 */ + } + if(dmaIdx == DMAIndexes::DMA_2) { +#ifdef DMA2 + switch(dmaStream) { + case(DMAStreams::STREAM_0): { +#ifdef DMA2_Stream0 + handle->Instance = DMA2_Stream0; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream0_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_1): { +#ifdef DMA2_Stream1 + handle->Instance = DMA2_Stream1; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream1_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_2): { +#ifdef DMA2_Stream2 + handle->Instance = DMA2_Stream2; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream2_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_3): { +#ifdef DMA2_Stream3 + handle->Instance = DMA2_Stream3; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream3_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_4): { +#ifdef DMA2_Stream4 + handle->Instance = DMA2_Stream4; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream4_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_5): { +#ifdef DMA2_Stream5 + handle->Instance = DMA2_Stream5; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream5_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_6): { +#ifdef DMA2_Stream6 + handle->Instance = DMA2_Stream6; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream6_IRQn; + } +#endif + break; + } + case(DMAStreams::STREAM_7): { +#ifdef DMA2_Stream7 + handle->Instance = DMA2_Stream7; + if(dmaIrqNumber != nullptr) { + *dmaIrqNumber = DMA2_Stream7_IRQn; + } +#endif + break; + } + } +#endif /* DMA2 */ + } +} + +void mapSpiBus(DMA_HandleTypeDef *handle, dma::DMAType dmaType, spi::SpiBus spiBus) { + if(dmaType == dma::DMAType::TX) { + if(spiBus == spi::SpiBus::SPI_1) { +#ifdef DMA_REQUEST_SPI1_TX + handle->Init.Request = DMA_REQUEST_SPI1_TX; +#endif + } + else if(spiBus == spi::SpiBus::SPI_2) { +#ifdef DMA_REQUEST_SPI2_TX + handle->Init.Request = DMA_REQUEST_SPI2_TX; +#endif + } + } + else { + if(spiBus == spi::SpiBus::SPI_1) { +#ifdef DMA_REQUEST_SPI1_RX + handle->Init.Request = DMA_REQUEST_SPI1_RX; +#endif + } + else if(spiBus == spi::SpiBus::SPI_2) { +#ifdef DMA_REQUEST_SPI2_RX + handle->Init.Request = DMA_REQUEST_SPI2_RX; +#endif + } + } +} diff --git a/hal/src/stm32h7/spi/spiDefinitions.cpp b/hal/src/stm32h7/spi/spiDefinitions.cpp new file mode 100644 index 000000000..fbceb9345 --- /dev/null +++ b/hal/src/stm32h7/spi/spiDefinitions.cpp @@ -0,0 +1,52 @@ +#include "spiDefinitions.h" + +void spi::assignSpiMode(SpiModes spiMode, SPI_HandleTypeDef& spiHandle) { + switch(spiMode) { + case(SpiModes::MODE_0): { + spiHandle.Init.CLKPolarity = SPI_POLARITY_LOW; + spiHandle.Init.CLKPhase = SPI_PHASE_1EDGE; + break; + } + case(SpiModes::MODE_1): { + spiHandle.Init.CLKPolarity = SPI_POLARITY_LOW; + spiHandle.Init.CLKPhase = SPI_PHASE_2EDGE; + break; + } + case(SpiModes::MODE_2): { + spiHandle.Init.CLKPolarity = SPI_POLARITY_HIGH; + spiHandle.Init.CLKPhase = SPI_PHASE_1EDGE; + break; + } + case(SpiModes::MODE_3): { + spiHandle.Init.CLKPolarity = SPI_POLARITY_HIGH; + spiHandle.Init.CLKPhase = SPI_PHASE_2EDGE; + break; + } + } +} + +uint32_t spi::getPrescaler(uint32_t clock_src_freq, uint32_t baudrate_mbps) { + uint32_t divisor = 0; + uint32_t spi_clk = clock_src_freq; + uint32_t presc = 0; + static const uint32_t baudrate[] = { + SPI_BAUDRATEPRESCALER_2, + SPI_BAUDRATEPRESCALER_4, + SPI_BAUDRATEPRESCALER_8, + SPI_BAUDRATEPRESCALER_16, + SPI_BAUDRATEPRESCALER_32, + SPI_BAUDRATEPRESCALER_64, + SPI_BAUDRATEPRESCALER_128, + SPI_BAUDRATEPRESCALER_256, + }; + + while( spi_clk > baudrate_mbps) { + presc = baudrate[divisor]; + if (++divisor > 7) + break; + + spi_clk = ( spi_clk >> 1); + } + + return presc; +} diff --git a/hal/src/stm32h7/spi/spiInterrupts.cpp b/hal/src/stm32h7/spi/spiInterrupts.cpp new file mode 100644 index 000000000..83ba73229 --- /dev/null +++ b/hal/src/stm32h7/spi/spiInterrupts.cpp @@ -0,0 +1,106 @@ +#include "spiInterrupts.h" +#include "spiCore.h" + +#include "stm32h7xx_hal.h" +#include "stm32h7xx_hal_dma.h" +#include "stm32h7xx_hal_spi.h" + +#include + +user_handler_t spi1UserHandler = &spi::spiIrqHandler; +user_args_t spi1UserArgs = nullptr; + +user_handler_t spi2UserHandler = &spi::spiIrqHandler; +user_args_t spi2UserArgs = nullptr; + +/** + * @brief This function handles DMA Rx interrupt request. + * @param None + * @retval None + */ +void spi::dmaRxIrqHandler(void* dmaHandle) { + if(dmaHandle == nullptr) { + return; + } + HAL_DMA_IRQHandler((DMA_HandleTypeDef *) dmaHandle); +} + +/** + * @brief This function handles DMA Rx interrupt request. + * @param None + * @retval None + */ +void spi::dmaTxIrqHandler(void* dmaHandle) { + if(dmaHandle == nullptr) { + return; + } + HAL_DMA_IRQHandler((DMA_HandleTypeDef *) dmaHandle); +} + +/** + * @brief This function handles SPIx interrupt request. + * @param None + * @retval None + */ +void spi::spiIrqHandler(void* spiHandle) { + if(spiHandle == nullptr) { + return; + } + //auto currentSpiHandle = spi::getSpiHandle(); + HAL_SPI_IRQHandler((SPI_HandleTypeDef *) spiHandle); +} + +void spi::assignSpiUserHandler(spi::SpiBus spiIdx, user_handler_t userHandler, + user_args_t userArgs) { + if(spiIdx == spi::SpiBus::SPI_1) { + spi1UserHandler = userHandler; + spi1UserArgs = userArgs; + } + else { + spi2UserHandler = userHandler; + spi2UserArgs = userArgs; + } +} + +void spi::getSpiUserHandler(spi::SpiBus spiBus, user_handler_t *userHandler, + user_args_t *userArgs) { + if(userHandler == nullptr or userArgs == nullptr) { + return; + } + if(spiBus == spi::SpiBus::SPI_1) { + *userArgs = spi1UserArgs; + *userHandler = spi1UserHandler; + } + else { + *userArgs = spi2UserArgs; + *userHandler = spi2UserHandler; + } +} + +void spi::assignSpiUserArgs(spi::SpiBus spiBus, user_args_t userArgs) { + if(spiBus == spi::SpiBus::SPI_1) { + spi1UserArgs = userArgs; + } + else { + spi2UserArgs = userArgs; + } +} + +/* Do not change these function names! They need to be exactly equal to the name of the functions +defined in the startup_stm32h743xx.s files! */ + +extern "C" void SPI1_IRQHandler() { + if(spi1UserHandler != NULL) { + spi1UserHandler(spi1UserArgs); + return; + } + Default_Handler(); +} + +extern "C" void SPI2_IRQHandler() { + if(spi2UserHandler != nullptr) { + spi2UserHandler(spi2UserArgs); + return; + } + Default_Handler(); +} diff --git a/hal/src/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/stm32h7/spi/stm32h743ziSpi.cpp new file mode 100644 index 000000000..826ecb23a --- /dev/null +++ b/hal/src/stm32h7/spi/stm32h743ziSpi.cpp @@ -0,0 +1,81 @@ +#include "stm32h743ziSpi.h" +#include "spiCore.h" +#include "spiInterrupts.h" +#include "stm32h7xx_hal.h" +#include "stm32h7xx_hal_rcc.h" + +#include + +void spiSetupWrapper() { + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + __HAL_RCC_SPI1_CLK_ENABLE(); +} + +void spiCleanUpWrapper() { + __HAL_RCC_SPI1_FORCE_RESET(); + __HAL_RCC_SPI1_RELEASE_RESET(); +} + +void spiDmaClockEnableWrapper() { + __HAL_RCC_DMA2_CLK_ENABLE(); +} + +void spi::h743zi::standardPollingCfg(MspPollingConfigStruct& cfg) { + cfg.setupMacroWrapper = &spiSetupWrapper; + cfg.cleanUpMacroWrapper = &spiCleanUpWrapper; + cfg.sckPort = GPIOA; + cfg.sckPin = GPIO_PIN_5; + cfg.misoPort = GPIOA; + cfg.misoPin = GPIO_PIN_6; + cfg.mosiPort = GPIOA; + cfg.mosiPin = GPIO_PIN_7; + cfg.sckAlternateFunction = GPIO_AF5_SPI1; + cfg.mosiAlternateFunction = GPIO_AF5_SPI1; + cfg.misoAlternateFunction = GPIO_AF5_SPI1; +} + +void spi::h743zi::standardInterruptCfg(MspIrqConfigStruct& cfg, IrqPriorities spiIrqPrio, + IrqPriorities spiSubprio) { + // High, but works on FreeRTOS as well (priorities range from 0 to 15) + cfg.preEmptPriority = spiIrqPrio; + cfg.subpriority = spiSubprio; + cfg.spiIrqNumber = SPI1_IRQn; + cfg.spiBus = SpiBus::SPI_1; + user_handler_t spiUserHandler = nullptr; + user_args_t spiUserArgs = nullptr; + getSpiUserHandler(spi::SpiBus::SPI_1, &spiUserHandler, &spiUserArgs); + if(spiUserHandler == nullptr) { + printf("spi::h743zi::standardInterruptCfg: Invalid SPI user handlers\n"); + return; + } + cfg.spiUserArgs = spiUserArgs; + cfg.spiIrqHandler = spiUserHandler; + standardPollingCfg(cfg); +} + +void spi::h743zi::standardDmaCfg(MspDmaConfigStruct& cfg, IrqPriorities spiIrqPrio, + IrqPriorities txIrqPrio, IrqPriorities rxIrqPrio, IrqPriorities spiSubprio, + IrqPriorities txSubprio, IrqPriorities rxSubprio) { + cfg.dmaClkEnableWrapper = &spiDmaClockEnableWrapper; + cfg.rxDmaIndex = dma::DMAIndexes::DMA_2; + cfg.txDmaIndex = dma::DMAIndexes::DMA_2; + cfg.txDmaStream = dma::DMAStreams::STREAM_3; + cfg.rxDmaStream = dma::DMAStreams::STREAM_2; + DMA_HandleTypeDef* txHandle; + DMA_HandleTypeDef* rxHandle; + spi::getDmaHandles(&txHandle, &rxHandle); + if(txHandle == nullptr or rxHandle == nullptr) { + printf("spi::h743zi::standardDmaCfg: Invalid DMA handles\n"); + return; + } + spi::configureDmaHandle(txHandle, spi::SpiBus::SPI_1, dma::DMAType::TX, cfg.txDmaIndex, + cfg.txDmaStream, &cfg.txDmaIrqNumber); + spi::configureDmaHandle(rxHandle, spi::SpiBus::SPI_1, dma::DMAType::RX, cfg.rxDmaIndex, + cfg.rxDmaStream, &cfg.rxDmaIrqNumber, DMA_NORMAL, DMA_PRIORITY_HIGH); + cfg.txPreEmptPriority = txIrqPrio; + cfg.rxPreEmptPriority = txSubprio; + cfg.txSubpriority = rxIrqPrio; + cfg.rxSubpriority = rxSubprio; + standardInterruptCfg(cfg, spiIrqPrio, spiSubprio); +} diff --git a/hal/src/stm32h7/uart/CMakeLists.txt b/hal/src/stm32h7/uart/CMakeLists.txt new file mode 100644 index 000000000..aa3194a93 --- /dev/null +++ b/hal/src/stm32h7/uart/CMakeLists.txt @@ -0,0 +1,2 @@ +target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b4f52cb12..4d5bfc5a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory(core) -add_subdirectory(hal) add_subdirectory(opt) add_subdirectory(osal) # add_subdirectory(tests) From 936d0e9f0ce217709cf71ddc9be502526cf03e01 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 20:22:54 +0200 Subject: [PATCH 018/136] a lot of internal include replacements --- CMakeLists.txt | 3 +++ hal/src/linux/uart/CMakeLists.txt | 4 --- inc/fsfw/action.h | 11 ++++++++ inc/fsfw/action/ActionMessage.h | 6 ++--- inc/fsfw/action/CommandActionHelper.h | 10 +++---- inc/fsfw/container/SharedRingBuffer.h | 7 ++--- inc/fsfw/controller/ControllerBase.h | 16 ++++++------ inc/fsfw/controller/ExtendedControllerBase.h | 7 +++-- .../coordinates/CoordinateTransformations.h | 2 +- inc/fsfw/coordinates/Sgp4Propagator.h | 7 ++--- inc/fsfw/datalinklayer/Clcw.h | 7 ----- inc/fsfw/datalinklayer/Farm1StateLockout.h | 7 ----- inc/fsfw/datapool/HkSwitchHelper.h | 6 ++--- inc/fsfw/datapool/PoolDataSetBase.h | 5 ++-- inc/fsfw/datapoollocal/LocalDataPoolManager.h | 22 ++++++++-------- inc/fsfw/datapoollocal/LocalPoolDataSetBase.h | 4 +-- inc/fsfw/datapoollocal/LocalPoolObjectBase.h | 6 ++--- .../internal/LocalDpManagerAttorney.h | 0 inc/fsfw/devicehandlers/HealthDevice.h | 10 +++---- inc/fsfw/events/EventMessage.h | 10 +++---- inc/fsfw/fdir/FaultCounter.h | 10 +++---- inc/fsfw/globalfunctions/Type.h | 5 ++-- inc/fsfw/health/HealthMessage.h | 2 +- inc/fsfw/housekeeping/HousekeepingMessage.h | 10 +++---- .../housekeeping/PeriodicHousekeepingHelper.h | 2 +- .../InternalErrorDataset.h | 0 .../InternalErrorReporter.h | 12 ++++----- .../InternalErrorReporterIF.h | 0 inc/fsfw/ipc/MessageQueueMessage.h | 2 +- inc/fsfw/modes/ModeHelper.h | 6 ++--- inc/fsfw/objectmanager/SystemObject.h | 6 ++--- inc/fsfw/power/PowerComponent.h | 4 +-- inc/fsfw/power/PowerSensor.h | 12 ++++----- inc/fsfw/serialize/SerialBufferAdapter.h | 4 +-- inc/fsfw/storagemanager/LocalPool.h | 13 +++++----- .../subsystem/modes/ModeSequenceMessage.h | 4 +-- inc/fsfw/tasks/FixedSequenceSlot.h | 2 +- inc/fsfw/tcdistribution/PUSDistributor.h | 8 +++--- inc/fsfw/tcdistribution/TcDistributor.h | 14 +++++----- inc/fsfw/thermal/AbstractTemperatureSensor.h | 12 ++++----- inc/fsfw/thermal/Heater.h | 11 ++++---- inc/fsfw/timemanager/Clock.h | 6 ++--- .../packetmatcher/PacketMatchTree.h | 8 +++--- inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h | 2 +- .../tmtcpacket/pus/tm/TmPacketStoredBase.h | 10 +++---- inc/fsfw/tmtcservices/CommandingServiceBase.h | 19 +++++++------- inc/fsfw/tmtcservices/PusServiceBase.h | 12 ++++----- inc/fsfw/tmtcservices/PusVerificationReport.h | 6 ++--- src/core/CMakeLists.txt | 3 +-- src/core/action/ActionHelper.cpp | 9 +++---- src/core/action/ActionMessage.cpp | 7 +++-- src/core/action/CommandActionHelper.cpp | 7 ++--- src/core/action/SimpleActionHelper.cpp | 3 +-- src/core/container/SharedRingBuffer.cpp | 6 ++--- src/core/container/SimpleRingBuffer.cpp | 3 ++- src/core/controller/ControllerBase.cpp | 10 +++---- .../controller/ExtendedControllerBase.cpp | 3 +-- src/core/datapool/HkSwitchHelper.cpp | 4 +-- src/core/datapool/PoolDataSetBase.cpp | 6 ++--- src/core/datapool/PoolEntry.cpp | 7 ++--- .../datapoollocal/LocalDataPoolManager.cpp | 22 +++++++--------- src/core/datapoollocal/LocalDataSet.cpp | 7 ++--- .../datapoollocal/LocalPoolDataSetBase.cpp | 15 +++++------ .../datapoollocal/LocalPoolObjectBase.cpp | 10 +++---- src/core/datapoollocal/SharedLocalDataSet.cpp | 2 +- .../internal/HasLocalDpIFManagerAttorney.cpp | 6 ++--- .../internal/HasLocalDpIFManagerAttorney.h | 2 +- .../internal/HasLocalDpIFUserAttorney.cpp | 4 +-- .../internal/LocalPoolDataSetAttorney.h | 2 +- src/core/devicehandlers/AssemblyBase.cpp | 2 +- src/core/devicehandlers/CMakeLists.txt | 10 +++++++ src/core/devicehandlers/ChildHandlerBase.cpp | 4 +-- src/core/devicehandlers/ChildHandlerFDIR.cpp | 2 +- src/core/devicehandlers/DeviceHandlerBase.cpp | 26 +++++++++---------- .../DeviceHandlerFailureIsolation.cpp | 16 ++++++------ .../devicehandlers/DeviceHandlerMessage.cpp | 4 +-- .../DeviceTmReportingWrapper.cpp | 4 +-- src/core/devicehandlers/HealthDevice.cpp | 4 +-- src/core/events/CMakeLists.txt | 9 +++---- src/core/events/EventManager.cpp | 8 +++--- src/core/events/EventMessage.cpp | 2 +- .../core}/events/eventmatching/CMakeLists.txt | 0 .../eventmatching/EventIdRangeMatcher.cpp | 2 +- .../events/eventmatching/EventMatchTree.cpp | 8 +++--- .../eventmatching/ReporterRangeMatcher.cpp | 2 +- .../eventmatching/SeverityRangeMatcher.cpp | 6 ++--- src/core/fdir/EventCorrelation.cpp | 2 +- src/core/fdir/FailureIsolationBase.cpp | 12 ++++----- src/core/fdir/FaultCounter.cpp | 2 +- src/core/globalfunctions/AsciiConverter.cpp | 3 ++- src/core/globalfunctions/CRC.cpp | 2 +- src/core/globalfunctions/DleEncoder.cpp | 2 +- .../PeriodicOperationDivider.cpp | 2 +- src/core/globalfunctions/Type.cpp | 4 +-- src/core/globalfunctions/arrayprinter.cpp | 5 ++-- src/core/globalfunctions/bitutility.cpp | 2 +- .../math/QuaternionOperations.cpp | 4 +-- .../globalfunctions/timevalOperations.cpp | 2 +- src/core/health/HealthHelper.cpp | 5 ++-- src/core/health/HealthMessage.cpp | 2 +- src/core/health/HealthTable.cpp | 9 ++++--- src/core/housekeeping/CMakeLists.txt | 4 +++ src/core/housekeeping/HousekeepingMessage.cpp | 5 ++-- .../PeriodicHousekeepingHelper.cpp | 4 +-- .../CMakeLists.txt | 0 .../InternalErrorReporter.cpp | 10 +++---- src/core/ipc/CommandMessage.cpp | 5 ++-- src/core/ipc/CommandMessageCleaner.cpp | 22 ++++++++-------- src/core/ipc/MessageQueueMessage.cpp | 7 ++--- src/core/memory/GenericFileSystemMessage.cpp | 6 ++--- src/core/memory/MemoryHelper.cpp | 12 ++++----- src/core/memory/MemoryMessage.cpp | 4 +-- src/core/modes/ModeHelper.cpp | 8 +++--- src/core/modes/ModeMessage.cpp | 2 +- src/core/objectmanager/ObjectManager.cpp | 4 +-- src/core/objectmanager/SystemObject.cpp | 6 ++--- src/core/parameters/ParameterHelper.cpp | 6 ++--- src/core/parameters/ParameterMessage.cpp | 4 +-- src/core/parameters/ParameterWrapper.cpp | 6 ++--- src/core/power/Fuse.cpp | 12 ++++----- src/core/power/PowerComponent.cpp | 4 +-- src/core/power/PowerSensor.cpp | 4 +-- src/core/power/PowerSwitcher.cpp | 6 ++--- src/core/serialize/SerialBufferAdapter.cpp | 4 +-- .../ServiceInterfaceBuffer.cpp | 6 ++--- .../ServiceInterfacePrinter.cpp | 8 +++--- .../ServiceInterfaceStream.cpp | 2 +- .../storagemanager/ConstStorageAccessor.cpp | 8 +++--- src/core/storagemanager/LocalPool.cpp | 6 ++--- src/core/storagemanager/PoolManager.cpp | 5 ++-- src/core/storagemanager/StorageAccessor.cpp | 7 ++--- src/core/subsystem/Subsystem.cpp | 14 +++++----- src/core/subsystem/SubsystemBase.cpp | 8 +++--- .../subsystem/modes/ModeSequenceMessage.cpp | 6 ++--- src/core/subsystem/modes/ModeStore.cpp | 2 +- src/core/tasks/FixedSequenceSlot.cpp | 5 ++-- src/core/tasks/FixedSlotSequence.cpp | 4 +-- src/core/tcdistribution/CCSDSDistributor.cpp | 8 +++--- src/core/tcdistribution/PUSDistributor.cpp | 10 +++---- src/core/tcdistribution/TcDistributor.cpp | 8 +++--- src/core/tcdistribution/TcPacketCheck.cpp | 14 +++++----- .../thermal/AbstractTemperatureSensor.cpp | 4 +-- src/core/thermal/Heater.cpp | 10 +++---- src/core/thermal/RedundantHeater.cpp | 2 +- src/core/thermal/ThermalComponent.cpp | 2 +- src/core/thermal/ThermalModule.cpp | 8 +++--- src/core/timemanager/CCSDSTime.cpp | 5 ++-- src/core/timemanager/ClockCommon.cpp | 4 +-- src/core/timemanager/Countdown.cpp | 2 +- src/core/timemanager/Stopwatch.cpp | 4 +-- src/core/tmtcpacket/SpacePacket.cpp | 12 ++++----- src/core/tmtcpacket/SpacePacketBase.cpp | 5 ++-- .../packetmatcher/PacketMatchTree.cpp | 8 +++--- src/core/tmtcpacket/pus/tc/TcPacketBase.cpp | 8 +++--- .../tmtcservices/CommandingServiceBase.cpp | 19 +++++++------- src/core/tmtcservices/PusServiceBase.cpp | 16 ++++++------ .../tmtcservices/PusVerificationReport.cpp | 4 +-- .../coordinates/CoordinateTransformations.cpp | 17 +++++++----- src/opt/coordinates/Sgp4Propagator.cpp | 15 ++++++----- src/opt/datalinklayer/Clcw.cpp | 13 ++-------- src/opt/datalinklayer/DataLinkLayer.cpp | 6 ++--- src/opt/datalinklayer/Farm1StateLockout.cpp | 16 +++--------- src/opt/datalinklayer/Farm1StateOpen.cpp | 18 +++---------- 163 files changed, 558 insertions(+), 563 deletions(-) create mode 100644 inc/fsfw/action.h rename {src/core => inc/fsfw}/datapoollocal/internal/LocalDpManagerAttorney.h (100%) rename inc/fsfw/{internalError => internalerror}/InternalErrorDataset.h (100%) rename inc/fsfw/{internalError => internalerror}/InternalErrorReporter.h (91%) rename inc/fsfw/{internalError => internalerror}/InternalErrorReporterIF.h (100%) create mode 100644 src/core/devicehandlers/CMakeLists.txt rename {inc/fsfw => src/core}/events/eventmatching/CMakeLists.txt (100%) rename {inc/fsfw => src/core}/events/eventmatching/EventIdRangeMatcher.cpp (84%) rename {inc/fsfw => src/core}/events/eventmatching/EventMatchTree.cpp (94%) rename {inc/fsfw => src/core}/events/eventmatching/ReporterRangeMatcher.cpp (84%) rename {inc/fsfw => src/core}/events/eventmatching/SeverityRangeMatcher.cpp (70%) create mode 100644 src/core/housekeeping/CMakeLists.txt rename src/core/{internalError => internalerror}/CMakeLists.txt (100%) rename src/core/{internalError => internalerror}/InternalErrorReporter.cpp (96%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1efb856fa..021c3d0a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) set(LIB_FSFW_NAME fsfw) add_library(${LIB_FSFW_NAME}) +set(FSFW_CORE_INC_PATH "inc") set_property(CACHE FSFW_OSAL PROPERTY STRINGS host linux rtems freertos) @@ -154,6 +155,7 @@ endif() target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_SOURCE_DIR} ${FSFW_CONFIG_PATH_ABSOLUTE} + ${FSFW_CORE_INC_PATH} ${FSFW_ADD_INC_PATHS_ABS} ) @@ -163,6 +165,7 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE target_include_directories(${LIB_FSFW_NAME} PRIVATE ${CMAKE_SOURCE_DIR} ${FSFW_CONFIG_PATH_ABSOLUTE} + ${FSFW_CORE_INC_PATH} ${FSFW_ADD_INC_PATHS_ABS} ) diff --git a/hal/src/linux/uart/CMakeLists.txt b/hal/src/linux/uart/CMakeLists.txt index 7b503d02a..d8cea5a82 100644 --- a/hal/src/linux/uart/CMakeLists.txt +++ b/hal/src/linux/uart/CMakeLists.txt @@ -2,7 +2,3 @@ target_sources(${TARGET_NAME} PUBLIC UartComIF.cpp UartCookie.cpp ) - - - - diff --git a/inc/fsfw/action.h b/inc/fsfw/action.h new file mode 100644 index 000000000..543ccb0cf --- /dev/null +++ b/inc/fsfw/action.h @@ -0,0 +1,11 @@ +#ifndef FSFW_INC_FSFW_ACTION_H_ +#define FSFW_INC_FSFW_ACTION_H_ + +#include "action/ActionHelper.h" +#include "action/ActionMessage.h" +#include "action/CommandActionHelper.h" +#include "action/HasActionsIF.h" +#include "action/CommandsActionsIF.h" +#include "action/SimpleActionHelper.h" + +#endif /* FSFW_INC_FSFW_ACTION_H_ */ diff --git a/inc/fsfw/action/ActionMessage.h b/inc/fsfw/action/ActionMessage.h index 0c64588ca..c7570c9d9 100644 --- a/inc/fsfw/action/ActionMessage.h +++ b/inc/fsfw/action/ActionMessage.h @@ -1,9 +1,9 @@ #ifndef FSFW_ACTION_ACTIONMESSAGE_H_ #define FSFW_ACTION_ACTIONMESSAGE_H_ -#include "../ipc/CommandMessage.h" -#include "../objectmanager/ObjectManagerIF.h" -#include "../storagemanager/StorageManagerIF.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" using ActionId_t = uint32_t; diff --git a/inc/fsfw/action/CommandActionHelper.h b/inc/fsfw/action/CommandActionHelper.h index 96ef1763a..ce297e663 100644 --- a/inc/fsfw/action/CommandActionHelper.h +++ b/inc/fsfw/action/CommandActionHelper.h @@ -2,11 +2,11 @@ #define COMMANDACTIONHELPER_H_ #include "ActionMessage.h" -#include "../objectmanager/ObjectManagerIF.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../serialize/SerializeIF.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/serialize/SerializeIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/ipc/MessageQueueIF.h" class CommandsActionsIF; diff --git a/inc/fsfw/container/SharedRingBuffer.h b/inc/fsfw/container/SharedRingBuffer.h index 9d6ea56c2..26aa45c14 100644 --- a/inc/fsfw/container/SharedRingBuffer.h +++ b/inc/fsfw/container/SharedRingBuffer.h @@ -3,9 +3,10 @@ #include "SimpleRingBuffer.h" #include "DynamicFIFO.h" -#include "../ipc/MutexIF.h" -#include "../objectmanager/SystemObject.h" -#include "../timemanager/Clock.h" + +#include "fsfw/ipc/MutexIF.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/timemanager/Clock.h" /** * @brief Ring buffer which can be shared among multiple objects diff --git a/inc/fsfw/controller/ControllerBase.h b/inc/fsfw/controller/ControllerBase.h index f583342fe..1efe0cc1c 100644 --- a/inc/fsfw/controller/ControllerBase.h +++ b/inc/fsfw/controller/ControllerBase.h @@ -1,14 +1,14 @@ #ifndef FSFW_CONTROLLER_CONTROLLERBASE_H_ #define FSFW_CONTROLLER_CONTROLLERBASE_H_ -#include "../health/HasHealthIF.h" -#include "../health/HealthHelper.h" -#include "../modes/HasModesIF.h" -#include "../modes/ModeHelper.h" -#include "../objectmanager/SystemObject.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../tasks/PeriodicTaskIF.h" -#include "../datapool/HkSwitchHelper.h" +#include "fsfw/health/HasHealthIF.h" +#include "fsfw/health/HealthHelper.h" +#include "fsfw/modes/HasModesIF.h" +#include "fsfw/modes/ModeHelper.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/tasks/PeriodicTaskIF.h" +#include "fsfw/datapool/HkSwitchHelper.h" /** * @brief Generic base class for controller classes diff --git a/inc/fsfw/controller/ExtendedControllerBase.h b/inc/fsfw/controller/ExtendedControllerBase.h index 63c350e27..4172e03e8 100644 --- a/inc/fsfw/controller/ExtendedControllerBase.h +++ b/inc/fsfw/controller/ExtendedControllerBase.h @@ -3,10 +3,9 @@ #include "ControllerBase.h" -#include "../action/HasActionsIF.h" -#include "../datapoollocal/HasLocalDataPoolIF.h" -#include "../action/ActionHelper.h" -#include "../datapoollocal/LocalDataPoolManager.h" +#include "fsfw/action.h" +#include "fsfw/datapoollocal/HasLocalDataPoolIF.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" /** * @brief Extendes the basic ControllerBase with the common components diff --git a/inc/fsfw/coordinates/CoordinateTransformations.h b/inc/fsfw/coordinates/CoordinateTransformations.h index 09ea2c48c..a22e0bd4d 100644 --- a/inc/fsfw/coordinates/CoordinateTransformations.h +++ b/inc/fsfw/coordinates/CoordinateTransformations.h @@ -1,7 +1,7 @@ #ifndef COORDINATETRANSFORMATIONS_H_ #define COORDINATETRANSFORMATIONS_H_ -#include "../timemanager/Clock.h" +#include "fsfw/timemanager/Clock.h" #include class CoordinateTransformations { diff --git a/inc/fsfw/coordinates/Sgp4Propagator.h b/inc/fsfw/coordinates/Sgp4Propagator.h index f813c6f4d..53c5d3e52 100644 --- a/inc/fsfw/coordinates/Sgp4Propagator.h +++ b/inc/fsfw/coordinates/Sgp4Propagator.h @@ -1,11 +1,12 @@ #ifndef SGP4PROPAGATOR_H_ #define SGP4PROPAGATOR_H_ -#ifndef WIN32 +#include "fsfw/platform.h" +#ifndef PLATFORM_WIN #include #endif -#include "../contrib/sgp4/sgp4unit.h" -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/contrib/sgp4/sgp4unit.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" class Sgp4Propagator { public: diff --git a/inc/fsfw/datalinklayer/Clcw.h b/inc/fsfw/datalinklayer/Clcw.h index 8116d63b6..f6c77230c 100644 --- a/inc/fsfw/datalinklayer/Clcw.h +++ b/inc/fsfw/datalinklayer/Clcw.h @@ -1,10 +1,3 @@ -/** - * @file Clcw.h - * @brief This file defines the Clcw class. - * @date 17.04.2013 - * @author baetz - */ - #ifndef CLCW_H_ #define CLCW_H_ diff --git a/inc/fsfw/datalinklayer/Farm1StateLockout.h b/inc/fsfw/datalinklayer/Farm1StateLockout.h index 63cdc4d2b..28abf4e69 100644 --- a/inc/fsfw/datalinklayer/Farm1StateLockout.h +++ b/inc/fsfw/datalinklayer/Farm1StateLockout.h @@ -1,10 +1,3 @@ -/** - * @file Farm1StateLockout.h - * @brief This file defines the Farm1StateLockout class. - * @date 24.04.2013 - * @author baetz - */ - #ifndef FARM1STATELOCKOUT_H_ #define FARM1STATELOCKOUT_H_ diff --git a/inc/fsfw/datapool/HkSwitchHelper.h b/inc/fsfw/datapool/HkSwitchHelper.h index bb9e7dc68..611c5d86f 100644 --- a/inc/fsfw/datapool/HkSwitchHelper.h +++ b/inc/fsfw/datapool/HkSwitchHelper.h @@ -1,9 +1,9 @@ #ifndef FRAMEWORK_DATAPOOL_HKSWITCHHELPER_H_ #define FRAMEWORK_DATAPOOL_HKSWITCHHELPER_H_ -#include "../tasks/ExecutableObjectIF.h" -#include "../action/CommandsActionsIF.h" -#include "../events/EventReportingProxyIF.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/action/CommandsActionsIF.h" +#include "fsfw/events/EventReportingProxyIF.h" //TODO this class violations separation between mission and framework //but it is only a transitional solution until the Datapool is diff --git a/inc/fsfw/datapool/PoolDataSetBase.h b/inc/fsfw/datapool/PoolDataSetBase.h index 043c860a7..36cf2a30b 100644 --- a/inc/fsfw/datapool/PoolDataSetBase.h +++ b/inc/fsfw/datapool/PoolDataSetBase.h @@ -3,8 +3,9 @@ #include "PoolDataSetIF.h" #include "PoolVariableIF.h" -#include "../serialize/SerializeIF.h" -#include "../ipc/MutexIF.h" + +#include "fsfw/serialize/SerializeIF.h" +#include "fsfw/ipc/MutexIF.h" /** * @brief The DataSetBase class manages a set of locally checked out variables. diff --git a/inc/fsfw/datapoollocal/LocalDataPoolManager.h b/inc/fsfw/datapoollocal/LocalDataPoolManager.h index 2ec81f1cf..9f91613b0 100644 --- a/inc/fsfw/datapoollocal/LocalDataPoolManager.h +++ b/inc/fsfw/datapoollocal/LocalDataPoolManager.h @@ -4,17 +4,17 @@ #include "ProvidesDataPoolSubscriptionIF.h" #include "AccessLocalPoolF.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../housekeeping/HousekeepingPacketDownlink.h" -#include "../housekeeping/HousekeepingMessage.h" -#include "../housekeeping/PeriodicHousekeepingHelper.h" -#include "../datapool/DataSetIF.h" -#include "../datapool/PoolEntry.h" -#include "../objectmanager/SystemObjectIF.h" -#include "../ipc/MutexIF.h" -#include "../ipc/CommandMessage.h" -#include "../ipc/MessageQueueIF.h" -#include "../ipc/MutexGuard.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/housekeeping/HousekeepingPacketDownlink.h" +#include "fsfw/housekeeping/HousekeepingMessage.h" +#include "fsfw/housekeeping/PeriodicHousekeepingHelper.h" +#include "fsfw/datapool/DataSetIF.h" +#include "fsfw/datapool/PoolEntry.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/ipc/MutexIF.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/MutexGuard.h" #include #include diff --git a/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h b/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h index ab67dc3f9..822e2cb89 100644 --- a/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h +++ b/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h @@ -4,8 +4,8 @@ #include "MarkChangedIF.h" #include "localPoolDefinitions.h" -#include "../datapool/DataSetIF.h" -#include "../datapool/PoolDataSetBase.h" +#include "fsfw/datapool/DataSetIF.h" +#include "fsfw/datapool/PoolDataSetBase.h" #include diff --git a/inc/fsfw/datapoollocal/LocalPoolObjectBase.h b/inc/fsfw/datapoollocal/LocalPoolObjectBase.h index 3f7fb6ddf..72275646f 100644 --- a/inc/fsfw/datapoollocal/LocalPoolObjectBase.h +++ b/inc/fsfw/datapoollocal/LocalPoolObjectBase.h @@ -4,9 +4,9 @@ #include "MarkChangedIF.h" #include "localPoolDefinitions.h" -#include "../objectmanager/SystemObjectIF.h" -#include "../datapool/PoolVariableIF.h" -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/datapool/PoolVariableIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" class LocalDataPoolManager; class DataSetIF; diff --git a/src/core/datapoollocal/internal/LocalDpManagerAttorney.h b/inc/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h similarity index 100% rename from src/core/datapoollocal/internal/LocalDpManagerAttorney.h rename to inc/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h diff --git a/inc/fsfw/devicehandlers/HealthDevice.h b/inc/fsfw/devicehandlers/HealthDevice.h index 738f0c7ea..bf9cdb822 100644 --- a/inc/fsfw/devicehandlers/HealthDevice.h +++ b/inc/fsfw/devicehandlers/HealthDevice.h @@ -1,11 +1,11 @@ #ifndef FSFW_DEVICEHANDLERS_HEALTHDEVICE_H_ #define FSFW_DEVICEHANDLERS_HEALTHDEVICE_H_ -#include "../health/HasHealthIF.h" -#include "../health/HealthHelper.h" -#include "../objectmanager/SystemObject.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/health/HasHealthIF.h" +#include "fsfw/health/HealthHelper.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/ipc/MessageQueueIF.h" class HealthDevice: public SystemObject, public ExecutableObjectIF, diff --git a/inc/fsfw/events/EventMessage.h b/inc/fsfw/events/EventMessage.h index f2f5ffb50..36e261bd6 100644 --- a/inc/fsfw/events/EventMessage.h +++ b/inc/fsfw/events/EventMessage.h @@ -1,9 +1,9 @@ -#ifndef EVENTMESSAGE_H_ -#define EVENTMESSAGE_H_ +#ifndef FSFW_EVENTS_EVENTMESSAGE_H_ +#define FSFW_EVENTS_EVENTMESSAGE_H_ #include "Event.h" -#include "../ipc/MessageQueueMessage.h" -#include "../objectmanager/ObjectManagerIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" /** * Passing on events through IPC. @@ -49,4 +49,4 @@ protected: }; -#endif /* EVENTMESSAGE_H_ */ +#endif /* FSFW_EVENTS_EVENTMESSAGE_H_ */ diff --git a/inc/fsfw/fdir/FaultCounter.h b/inc/fsfw/fdir/FaultCounter.h index e0670c4b3..a85e8cf76 100644 --- a/inc/fsfw/fdir/FaultCounter.h +++ b/inc/fsfw/fdir/FaultCounter.h @@ -1,8 +1,8 @@ -#ifndef FRAMEWORK_FDIR_FAULTCOUNTER_H_ -#define FRAMEWORK_FDIR_FAULTCOUNTER_H_ +#ifndef FSFW_FDIR_FAULTCOUNTER_H_ +#define FSFW_FDIR_FAULTCOUNTER_H_ -#include "../parameters/HasParametersIF.h" -#include "../timemanager/Countdown.h" +#include "fsfw/parameters/HasParametersIF.h" +#include "fsfw/timemanager/Countdown.h" class FaultCounter: public HasParametersIF { public: @@ -35,4 +35,4 @@ private: uint32_t failureThreshold; }; -#endif /* FRAMEWORK_FDIR_FAULTCOUNTER_H_ */ +#endif /* FSFW_FDIR_FAULTCOUNTER_H_ */ diff --git a/inc/fsfw/globalfunctions/Type.h b/inc/fsfw/globalfunctions/Type.h index fa894e3e9..cfbb3cfa9 100644 --- a/inc/fsfw/globalfunctions/Type.h +++ b/inc/fsfw/globalfunctions/Type.h @@ -1,8 +1,9 @@ #ifndef FSFW_GLOBALFUNCTIONS_TYPE_H_ #define FSFW_GLOBALFUNCTIONS_TYPE_H_ -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../serialize/SerializeIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/serialize/SerializeIF.h" + #include /** diff --git a/inc/fsfw/health/HealthMessage.h b/inc/fsfw/health/HealthMessage.h index fb979c663..3dc58977d 100644 --- a/inc/fsfw/health/HealthMessage.h +++ b/inc/fsfw/health/HealthMessage.h @@ -2,7 +2,7 @@ #define FSFW_HEALTH_HEALTHMESSAGE_H_ #include "HasHealthIF.h" -#include "../ipc/CommandMessage.h" +#include "fsfw/ipc/CommandMessage.h" class HealthMessage { public: diff --git a/inc/fsfw/housekeeping/HousekeepingMessage.h b/inc/fsfw/housekeeping/HousekeepingMessage.h index a38ff73fd..509a68c9f 100644 --- a/inc/fsfw/housekeeping/HousekeepingMessage.h +++ b/inc/fsfw/housekeeping/HousekeepingMessage.h @@ -1,11 +1,11 @@ #ifndef FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_ #define FSFW_HOUSEKEEPING_HOUSEKEEPINGMESSAGE_H_ -#include "../datapoollocal/localPoolDefinitions.h" -#include "../ipc/CommandMessage.h" -#include "../ipc/FwMessageTypes.h" -#include "../objectmanager/frameworkObjects.h" -#include "../storagemanager/StorageManagerIF.h" +#include "fsfw/datapoollocal/localPoolDefinitions.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/ipc/FwMessageTypes.h" +#include "fsfw/objectmanager/frameworkObjects.h" +#include "fsfw/storagemanager/StorageManagerIF.h" /** diff --git a/inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h b/inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h index 3256fbffa..4e93308be 100644 --- a/inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h +++ b/inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h @@ -1,7 +1,7 @@ #ifndef FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_ #define FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_ -#include "../timemanager/Clock.h" +#include "fsfw/timemanager/Clock.h" #include class LocalPoolDataSetBase; diff --git a/inc/fsfw/internalError/InternalErrorDataset.h b/inc/fsfw/internalerror/InternalErrorDataset.h similarity index 100% rename from inc/fsfw/internalError/InternalErrorDataset.h rename to inc/fsfw/internalerror/InternalErrorDataset.h diff --git a/inc/fsfw/internalError/InternalErrorReporter.h b/inc/fsfw/internalerror/InternalErrorReporter.h similarity index 91% rename from inc/fsfw/internalError/InternalErrorReporter.h rename to inc/fsfw/internalerror/InternalErrorReporter.h index 580cb8f6c..57a6a1355 100644 --- a/inc/fsfw/internalError/InternalErrorReporter.h +++ b/inc/fsfw/internalerror/InternalErrorReporter.h @@ -3,12 +3,12 @@ #include "InternalErrorReporterIF.h" -#include "../tasks/PeriodicTaskIF.h" -#include "../internalError/InternalErrorDataset.h" -#include "../datapoollocal/LocalDataPoolManager.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../objectmanager/SystemObject.h" -#include "../ipc/MutexIF.h" +#include "fsfw/tasks/PeriodicTaskIF.h" +#include "fsfw/internalerror/InternalErrorDataset.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/ipc/MutexIF.h" /** * @brief This class is used to track internal errors like lost telemetry, diff --git a/inc/fsfw/internalError/InternalErrorReporterIF.h b/inc/fsfw/internalerror/InternalErrorReporterIF.h similarity index 100% rename from inc/fsfw/internalError/InternalErrorReporterIF.h rename to inc/fsfw/internalerror/InternalErrorReporterIF.h diff --git a/inc/fsfw/ipc/MessageQueueMessage.h b/inc/fsfw/ipc/MessageQueueMessage.h index 111056caf..e9ef67561 100644 --- a/inc/fsfw/ipc/MessageQueueMessage.h +++ b/inc/fsfw/ipc/MessageQueueMessage.h @@ -1,7 +1,7 @@ #ifndef FSFW_IPC_MESSAGEQUEUEMESSAGE_H_ #define FSFW_IPC_MESSAGEQUEUEMESSAGE_H_ -#include "../ipc/MessageQueueMessageIF.h" +#include "fsfw/ipc/MessageQueueMessageIF.h" #include /** diff --git a/inc/fsfw/modes/ModeHelper.h b/inc/fsfw/modes/ModeHelper.h index c2f089ec4..27928a295 100644 --- a/inc/fsfw/modes/ModeHelper.h +++ b/inc/fsfw/modes/ModeHelper.h @@ -2,9 +2,9 @@ #define FSFW_MODES_MODEHELPER_H_ #include "ModeMessage.h" -#include "../ipc/MessageQueueIF.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../timemanager/Countdown.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/timemanager/Countdown.h" class HasModesIF; diff --git a/inc/fsfw/objectmanager/SystemObject.h b/inc/fsfw/objectmanager/SystemObject.h index d9c4236d0..e7d2ae2bf 100644 --- a/inc/fsfw/objectmanager/SystemObject.h +++ b/inc/fsfw/objectmanager/SystemObject.h @@ -2,9 +2,9 @@ #define FSFW_OBJECTMANAGER_SYSTEMOBJECT_H_ #include "SystemObjectIF.h" -#include "../events/Event.h" -#include "../events/EventReportingProxyIF.h" -#include "../timemanager/Clock.h" +#include "fsfw/events/Event.h" +#include "fsfw/events/EventReportingProxyIF.h" +#include "fsfw/timemanager/Clock.h" /** * @brief This class automates insertion into the ObjectManager and diff --git a/inc/fsfw/power/PowerComponent.h b/inc/fsfw/power/PowerComponent.h index 6b9778a59..3889a2ae7 100644 --- a/inc/fsfw/power/PowerComponent.h +++ b/inc/fsfw/power/PowerComponent.h @@ -3,8 +3,8 @@ #include "PowerComponentIF.h" -#include "../objectmanager/frameworkObjects.h" -#include "../objectmanager/SystemObjectIF.h" +#include "fsfw/objectmanager/frameworkObjects.h" +#include "fsfw/objectmanager/SystemObjectIF.h" class PowerComponent: public PowerComponentIF { diff --git a/inc/fsfw/power/PowerSensor.h b/inc/fsfw/power/PowerSensor.h index 5a21ab104..d00c5420c 100644 --- a/inc/fsfw/power/PowerSensor.h +++ b/inc/fsfw/power/PowerSensor.h @@ -1,12 +1,12 @@ #ifndef FSFW_POWER_POWERSENSOR_H_ #define FSFW_POWER_POWERSENSOR_H_ -#include "../datapoollocal/StaticLocalDataSet.h" -#include "../devicehandlers/HealthDevice.h" -#include "../monitoring/LimitMonitor.h" -#include "../parameters/ParameterHelper.h" -#include "../objectmanager/SystemObject.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/datapoollocal/StaticLocalDataSet.h" +#include "fsfw/devicehandlers/HealthDevice.h" +#include "fsfw/monitoring/LimitMonitor.h" +#include "fsfw/parameters/ParameterHelper.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/ipc/MessageQueueIF.h" class PowerController; diff --git a/inc/fsfw/serialize/SerialBufferAdapter.h b/inc/fsfw/serialize/SerialBufferAdapter.h index 9a89e18ba..6c79cd03d 100644 --- a/inc/fsfw/serialize/SerialBufferAdapter.h +++ b/inc/fsfw/serialize/SerialBufferAdapter.h @@ -1,8 +1,8 @@ #ifndef SERIALBUFFERADAPTER_H_ #define SERIALBUFFERADAPTER_H_ -#include "../serialize/SerializeIF.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/serialize/SerializeIF.h" +#include "fsfw/serialize/SerializeAdapter.h" /** * This adapter provides an interface for SerializeIF to serialize or deserialize diff --git a/inc/fsfw/storagemanager/LocalPool.h b/inc/fsfw/storagemanager/LocalPool.h index 6a6664853..383d8a941 100644 --- a/inc/fsfw/storagemanager/LocalPool.h +++ b/inc/fsfw/storagemanager/LocalPool.h @@ -1,12 +1,13 @@ #ifndef FSFW_STORAGEMANAGER_LOCALPOOL_H_ #define FSFW_STORAGEMANAGER_LOCALPOOL_H_ -#include "StorageManagerIF.h" -#include "../objectmanager/SystemObject.h" -#include "../objectmanager/ObjectManagerIF.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../internalError/InternalErrorReporterIF.h" -#include "../storagemanager/StorageAccessor.h" +#include "fsfw/storagemanager/StorageManagerIF.h" + +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/internalerror/InternalErrorReporterIF.h" +#include "fsfw/storagemanager/StorageAccessor.h" #include #include diff --git a/inc/fsfw/subsystem/modes/ModeSequenceMessage.h b/inc/fsfw/subsystem/modes/ModeSequenceMessage.h index 7852c9848..0dbe7ffbf 100644 --- a/inc/fsfw/subsystem/modes/ModeSequenceMessage.h +++ b/inc/fsfw/subsystem/modes/ModeSequenceMessage.h @@ -3,8 +3,8 @@ #include "ModeDefinitions.h" -#include "../../ipc/CommandMessage.h" -#include "../../storagemanager/StorageManagerIF.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/storagemanager/StorageManagerIF.h" class ModeSequenceMessage { diff --git a/inc/fsfw/tasks/FixedSequenceSlot.h b/inc/fsfw/tasks/FixedSequenceSlot.h index 1744ec198..aea77dfe8 100644 --- a/inc/fsfw/tasks/FixedSequenceSlot.h +++ b/inc/fsfw/tasks/FixedSequenceSlot.h @@ -2,7 +2,7 @@ #define FSFW_TASKS_FIXEDSEQUENCESLOT_H_ #include "ExecutableObjectIF.h" -#include "../objectmanager/ObjectManagerIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" class PeriodicTaskIF; diff --git a/inc/fsfw/tcdistribution/PUSDistributor.h b/inc/fsfw/tcdistribution/PUSDistributor.h index c6f863f04..53a996ca7 100644 --- a/inc/fsfw/tcdistribution/PUSDistributor.h +++ b/inc/fsfw/tcdistribution/PUSDistributor.h @@ -5,10 +5,10 @@ #include "TcDistributor.h" #include "TcPacketCheck.h" -#include "../tmtcpacket/pus/tc.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../tmtcservices/AcceptsTelecommandsIF.h" -#include "../tmtcservices/VerificationReporter.h" +#include "fsfw/tmtcpacket/pus/tc.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tmtcservices/AcceptsTelecommandsIF.h" +#include "fsfw/tmtcservices/VerificationReporter.h" /** * This class accepts PUS Telecommands and forwards them to Application diff --git a/inc/fsfw/tcdistribution/TcDistributor.h b/inc/fsfw/tcdistribution/TcDistributor.h index 5d0ca45d2..14b532bd3 100644 --- a/inc/fsfw/tcdistribution/TcDistributor.h +++ b/inc/fsfw/tcdistribution/TcDistributor.h @@ -1,13 +1,13 @@ #ifndef FSFW_TMTCSERVICES_TCDISTRIBUTOR_H_ #define FSFW_TMTCSERVICES_TCDISTRIBUTOR_H_ -#include "../objectmanager/ObjectManagerIF.h" -#include "../objectmanager/SystemObject.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../tmtcservices/TmTcMessage.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/tmtcservices/TmTcMessage.h" +#include "fsfw/ipc/MessageQueueIF.h" #include /** diff --git a/inc/fsfw/thermal/AbstractTemperatureSensor.h b/inc/fsfw/thermal/AbstractTemperatureSensor.h index a1153314e..719d84fec 100644 --- a/inc/fsfw/thermal/AbstractTemperatureSensor.h +++ b/inc/fsfw/thermal/AbstractTemperatureSensor.h @@ -1,12 +1,12 @@ #ifndef ABSTRACTSENSOR_H_ #define ABSTRACTSENSOR_H_ -#include "../health/HasHealthIF.h" -#include "../health/HealthHelper.h" -#include "../objectmanager/SystemObject.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../parameters/ParameterHelper.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/health/HasHealthIF.h" +#include "fsfw/health/HealthHelper.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/parameters/ParameterHelper.h" +#include "fsfw/ipc/MessageQueueIF.h" #include "ThermalModuleIF.h" #include "tcsDefinitions.h" diff --git a/inc/fsfw/thermal/Heater.h b/inc/fsfw/thermal/Heater.h index 2caddd852..2a40cac6e 100644 --- a/inc/fsfw/thermal/Heater.h +++ b/inc/fsfw/thermal/Heater.h @@ -1,11 +1,12 @@ #ifndef FSFW_THERMAL_HEATER_H_ #define FSFW_THERMAL_HEATER_H_ -#include "../devicehandlers/HealthDevice.h" -#include "../parameters/ParameterHelper.h" -#include "../power/PowerSwitchIF.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../timemanager/Countdown.h" +#include "fsfw/devicehandlers/HealthDevice.h" +#include "fsfw/parameters/ParameterHelper.h" +#include "fsfw/power/PowerSwitchIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/timemanager/Countdown.h" + #include diff --git a/inc/fsfw/timemanager/Clock.h b/inc/fsfw/timemanager/Clock.h index 6a76c86d9..b1d6bfafb 100644 --- a/inc/fsfw/timemanager/Clock.h +++ b/inc/fsfw/timemanager/Clock.h @@ -2,9 +2,9 @@ #define FSFW_TIMEMANAGER_CLOCK_H_ #include "clockDefinitions.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../ipc/MutexFactory.h" -#include "../globalfunctions/timevalOperations.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/globalfunctions/timevalOperations.h" #include diff --git a/inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h b/inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h index a40b5099c..e2439c749 100644 --- a/inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h +++ b/inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h @@ -1,10 +1,10 @@ #ifndef FSFW_TMTCPACKET_PACKETMATCHER_PACKETMATCHTREE_H_ #define FSFW_TMTCPACKET_PACKETMATCHER_PACKETMATCHTREE_H_ -#include "../../container/PlacementFactory.h" -#include "../../globalfunctions/matching/MatchTree.h" -#include "../../storagemanager/LocalPool.h" -#include "../../tmtcpacket/pus/tm/TmPacketMinimal.h" +#include "fsfw/container/PlacementFactory.h" +#include "fsfw/globalfunctions/matching/MatchTree.h" +#include "fsfw/storagemanager/LocalPool.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h" class PacketMatchTree: public MatchTree, public HasReturnvaluesIF { public: diff --git a/inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h b/inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h index e28722469..14356c8cd 100644 --- a/inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h +++ b/inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h @@ -1,7 +1,7 @@ #ifndef TMTCPACKET_PUS_TCPACKETBASE_H_ #define TMTCPACKET_PUS_TCPACKETBASE_H_ -#include "../../../tmtcpacket/SpacePacketBase.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" #include /** diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h index 1bc092dd7..8e8b9c70b 100644 --- a/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h +++ b/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h @@ -1,15 +1,15 @@ #ifndef FSFW_TMTCPACKET_PUS_TMPACKETSTOREDBASE_H_ #define FSFW_TMTCPACKET_PUS_TMPACKETSTOREDBASE_H_ -#include "../../../FSFW.h" +#include "fsfw/FSFW.h" #include "TmPacketBase.h" #include "TmPacketStoredBase.h" #include "TmPacketPusA.h" -#include "../../../serialize/SerializeIF.h" -#include "../../../storagemanager/StorageManagerIF.h" -#include "../../../internalError/InternalErrorReporterIF.h" -#include "../../../ipc/MessageQueueSenderIF.h" +#include "fsfw/serialize/SerializeIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/internalerror/InternalErrorReporterIF.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" /** * This class generates a ECSS PUS Telemetry packet within a given diff --git a/inc/fsfw/tmtcservices/CommandingServiceBase.h b/inc/fsfw/tmtcservices/CommandingServiceBase.h index 4ee4a21a5..b6709693e 100644 --- a/inc/fsfw/tmtcservices/CommandingServiceBase.h +++ b/inc/fsfw/tmtcservices/CommandingServiceBase.h @@ -3,17 +3,16 @@ #include "AcceptsTelecommandsIF.h" #include "VerificationReporter.h" +#include "fsfw/FSFW.h" -#include "../objectmanager/SystemObject.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../ipc/MessageQueueIF.h" -#include "../ipc/CommandMessage.h" -#include "../container/FixedMap.h" -#include "../container/FIFO.h" -#include "../serialize/SerializeIF.h" - -#include +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/container/FixedMap.h" +#include "fsfw/container/FIFO.h" +#include "fsfw/serialize/SerializeIF.h" class TcPacketStored; class TcPacketStoredBase; diff --git a/inc/fsfw/tmtcservices/PusServiceBase.h b/inc/fsfw/tmtcservices/PusServiceBase.h index 6cde6fb49..ea4147fe8 100644 --- a/inc/fsfw/tmtcservices/PusServiceBase.h +++ b/inc/fsfw/tmtcservices/PusServiceBase.h @@ -5,12 +5,12 @@ #include "VerificationCodes.h" #include "VerificationReporter.h" -#include "../objectmanager/ObjectManagerIF.h" -#include "../objectmanager/SystemObject.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../tmtcpacket/pus/tc.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/tmtcpacket/pus/tc.h" +#include "fsfw/ipc/MessageQueueIF.h" namespace Factory{ void setStaticFrameworkObjectIds(); diff --git a/inc/fsfw/tmtcservices/PusVerificationReport.h b/inc/fsfw/tmtcservices/PusVerificationReport.h index 0e1732efc..c22ba535e 100644 --- a/inc/fsfw/tmtcservices/PusVerificationReport.h +++ b/inc/fsfw/tmtcservices/PusVerificationReport.h @@ -3,9 +3,9 @@ #include "VerificationCodes.h" -#include "../ipc/MessageQueueMessage.h" -#include "../tmtcpacket/pus/tc/TcPacketBase.h" -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketBase.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" class PusVerificationMessage: public MessageQueueMessage { private: diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 6240d8f2b..4a2f7a2c4 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -9,7 +9,7 @@ add_subdirectory(fdir) add_subdirectory(globalfunctions) add_subdirectory(health) add_subdirectory(housekeeping) -add_subdirectory(internalError) +add_subdirectory(internalerror) add_subdirectory(ipc) add_subdirectory(memory) add_subdirectory(modes) @@ -24,6 +24,5 @@ add_subdirectory(tasks) add_subdirectory(tcdistribution) add_subdirectory(thermal) add_subdirectory(timemanager) -add_subdirectory(tmstorage) add_subdirectory(tmtcpacket) add_subdirectory(tmtcservices) diff --git a/src/core/action/ActionHelper.cpp b/src/core/action/ActionHelper.cpp index 73007ea36..3dfe8b50f 100644 --- a/src/core/action/ActionHelper.cpp +++ b/src/core/action/ActionHelper.cpp @@ -1,9 +1,8 @@ -#include "ActionHelper.h" -#include "HasActionsIF.h" +#include "fsfw/action.h" -#include "../ipc/MessageQueueSenderIF.h" -#include "../objectmanager/ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" ActionHelper::ActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue) : diff --git a/src/core/action/ActionMessage.cpp b/src/core/action/ActionMessage.cpp index f25858af9..7d66c57fc 100644 --- a/src/core/action/ActionMessage.cpp +++ b/src/core/action/ActionMessage.cpp @@ -1,8 +1,7 @@ -#include "ActionMessage.h" -#include "HasActionsIF.h" +#include "fsfw/action.h" -#include "../objectmanager/ObjectManager.h" -#include "../storagemanager/StorageManagerIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/storagemanager/StorageManagerIF.h" ActionMessage::ActionMessage() { } diff --git a/src/core/action/CommandActionHelper.cpp b/src/core/action/CommandActionHelper.cpp index 31650cae9..b46dccebd 100644 --- a/src/core/action/CommandActionHelper.cpp +++ b/src/core/action/CommandActionHelper.cpp @@ -1,9 +1,6 @@ -#include "ActionMessage.h" -#include "CommandActionHelper.h" -#include "CommandsActionsIF.h" -#include "HasActionsIF.h" +#include "fsfw/action.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/ObjectManager.h" CommandActionHelper::CommandActionHelper(CommandsActionsIF *setOwner) : owner(setOwner), queueToUse(NULL), ipcStore( diff --git a/src/core/action/SimpleActionHelper.cpp b/src/core/action/SimpleActionHelper.cpp index 8d34f40f2..7135ea624 100644 --- a/src/core/action/SimpleActionHelper.cpp +++ b/src/core/action/SimpleActionHelper.cpp @@ -1,5 +1,4 @@ -#include "HasActionsIF.h" -#include "SimpleActionHelper.h" +#include "fsfw/action.h" SimpleActionHelper::SimpleActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue) : diff --git a/src/core/container/SharedRingBuffer.cpp b/src/core/container/SharedRingBuffer.cpp index fe36341dd..f7c978028 100644 --- a/src/core/container/SharedRingBuffer.cpp +++ b/src/core/container/SharedRingBuffer.cpp @@ -1,6 +1,6 @@ -#include "SharedRingBuffer.h" -#include "../ipc/MutexFactory.h" -#include "../ipc/MutexGuard.h" +#include "fsfw/container/SharedRingBuffer.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/ipc/MutexGuard.h" SharedRingBuffer::SharedRingBuffer(object_id_t objectId, const size_t size, bool overwriteOld, size_t maxExcessBytes): diff --git a/src/core/container/SimpleRingBuffer.cpp b/src/core/container/SimpleRingBuffer.cpp index 8544acbf3..8de9cf08f 100644 --- a/src/core/container/SimpleRingBuffer.cpp +++ b/src/core/container/SimpleRingBuffer.cpp @@ -1,4 +1,5 @@ -#include "SimpleRingBuffer.h" +#include "fsfw/container/SimpleRingBuffer.h" + #include SimpleRingBuffer::SimpleRingBuffer(const size_t size, bool overwriteOld, diff --git a/src/core/controller/ControllerBase.cpp b/src/core/controller/ControllerBase.cpp index 5a94c0829..86838068e 100644 --- a/src/core/controller/ControllerBase.cpp +++ b/src/core/controller/ControllerBase.cpp @@ -1,9 +1,9 @@ -#include "ControllerBase.h" +#include "fsfw/controller/ControllerBase.h" -#include "../subsystem/SubsystemBase.h" -#include "../ipc/QueueFactory.h" -#include "../action/HasActionsIF.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/subsystem/SubsystemBase.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/action/HasActionsIF.h" +#include "fsfw/objectmanager/ObjectManager.h" ControllerBase::ControllerBase(object_id_t setObjectId, object_id_t parentId, size_t commandQueueDepth) : diff --git a/src/core/controller/ExtendedControllerBase.cpp b/src/core/controller/ExtendedControllerBase.cpp index b5b8c6601..f59c50a91 100644 --- a/src/core/controller/ExtendedControllerBase.cpp +++ b/src/core/controller/ExtendedControllerBase.cpp @@ -1,5 +1,4 @@ -#include "ExtendedControllerBase.h" - +#include "fsfw/controller/ExtendedControllerBase.h" ExtendedControllerBase::ExtendedControllerBase(object_id_t objectId, object_id_t parentId, size_t commandQueueDepth): diff --git a/src/core/datapool/HkSwitchHelper.cpp b/src/core/datapool/HkSwitchHelper.cpp index 21e37f59d..bcf237ba1 100644 --- a/src/core/datapool/HkSwitchHelper.cpp +++ b/src/core/datapool/HkSwitchHelper.cpp @@ -1,5 +1,5 @@ -#include "../datapool/HkSwitchHelper.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/datapool/HkSwitchHelper.h" +#include "fsfw/ipc/QueueFactory.h" HkSwitchHelper::HkSwitchHelper(EventReportingProxyIF* eventProxy) : commandActionHelper(this), eventProxy(eventProxy) { diff --git a/src/core/datapool/PoolDataSetBase.cpp b/src/core/datapool/PoolDataSetBase.cpp index 1bd586986..7856dc9a5 100644 --- a/src/core/datapool/PoolDataSetBase.cpp +++ b/src/core/datapool/PoolDataSetBase.cpp @@ -1,7 +1,7 @@ -#include "PoolDataSetBase.h" -#include "ReadCommitIFAttorney.h" +#include "fsfw/datapool/PoolDataSetBase.h" +#include "fsfw/datapool/ReadCommitIFAttorney.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/core/datapool/PoolEntry.cpp b/src/core/datapool/PoolEntry.cpp index 6504e20c5..0443aa117 100644 --- a/src/core/datapool/PoolEntry.cpp +++ b/src/core/datapool/PoolEntry.cpp @@ -1,7 +1,8 @@ -#include "PoolEntry.h" +#include "fsfw/datapool/PoolEntry.h" + +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/globalfunctions/arrayprinter.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../globalfunctions/arrayprinter.h" #include #include diff --git a/src/core/datapoollocal/LocalDataPoolManager.cpp b/src/core/datapoollocal/LocalDataPoolManager.cpp index 71997b9b9..4a7066570 100644 --- a/src/core/datapoollocal/LocalDataPoolManager.cpp +++ b/src/core/datapoollocal/LocalDataPoolManager.cpp @@ -1,18 +1,16 @@ -#include "HasLocalDataPoolIF.h" -#include "LocalDataPoolManager.h" -#include "LocalPoolObjectBase.h" -#include "LocalPoolDataSetBase.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" +#include "fsfw/datapoollocal.h" #include "internal/LocalPoolDataSetAttorney.h" #include "internal/HasLocalDpIFManagerAttorney.h" -#include "../housekeeping/HousekeepingSetPacket.h" -#include "../objectmanager/ObjectManager.h" -#include "../housekeeping/HousekeepingSnapshot.h" -#include "../housekeeping/AcceptsHkPacketsIF.h" -#include "../timemanager/CCSDSTime.h" -#include "../ipc/MutexFactory.h" -#include "../ipc/MutexGuard.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/housekeeping/HousekeepingSetPacket.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/housekeeping/HousekeepingSnapshot.h" +#include "fsfw/housekeeping/AcceptsHkPacketsIF.h" +#include "fsfw/timemanager/CCSDSTime.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/ipc/MutexGuard.h" +#include "fsfw/ipc/QueueFactory.h" #include #include diff --git a/src/core/datapoollocal/LocalDataSet.cpp b/src/core/datapoollocal/LocalDataSet.cpp index aeb5c6b32..260f85001 100644 --- a/src/core/datapoollocal/LocalDataSet.cpp +++ b/src/core/datapoollocal/LocalDataSet.cpp @@ -1,6 +1,7 @@ -#include "LocalDataSet.h" -#include "../datapoollocal/LocalDataPoolManager.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/datapoollocal/LocalDataSet.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" + +#include "fsfw/serialize/SerializeAdapter.h" #include #include diff --git a/src/core/datapoollocal/LocalPoolDataSetBase.cpp b/src/core/datapoollocal/LocalPoolDataSetBase.cpp index a7a7e6c85..5422c68ae 100644 --- a/src/core/datapoollocal/LocalPoolDataSetBase.cpp +++ b/src/core/datapoollocal/LocalPoolDataSetBase.cpp @@ -1,13 +1,12 @@ -#include "LocalPoolDataSetBase.h" -#include "HasLocalDataPoolIF.h" +#include "fsfw/datapoollocal.h" #include "internal/HasLocalDpIFUserAttorney.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/ObjectManager.h" -#include "../globalfunctions/bitutility.h" -#include "../datapoollocal/LocalDataPoolManager.h" -#include "../housekeeping/PeriodicHousekeepingHelper.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/globalfunctions/bitutility.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" +#include "fsfw/housekeeping/PeriodicHousekeepingHelper.h" +#include "fsfw/serialize/SerializeAdapter.h" #include #include diff --git a/src/core/datapoollocal/LocalPoolObjectBase.cpp b/src/core/datapoollocal/LocalPoolObjectBase.cpp index 6920749b7..96b849c6a 100644 --- a/src/core/datapoollocal/LocalPoolObjectBase.cpp +++ b/src/core/datapoollocal/LocalPoolObjectBase.cpp @@ -1,10 +1,10 @@ -#include "LocalPoolObjectBase.h" -#include "LocalDataPoolManager.h" -#include "AccessLocalPoolF.h" -#include "HasLocalDataPoolIF.h" +#include "fsfw/datapoollocal/LocalPoolObjectBase.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" +#include "fsfw/datapoollocal/AccessLocalPoolF.h" +#include "fsfw/datapoollocal/HasLocalDataPoolIF.h" #include "internal/HasLocalDpIFUserAttorney.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/ObjectManager.h" LocalPoolObjectBase::LocalPoolObjectBase(lp_id_t poolId, HasLocalDataPoolIF* hkOwner, diff --git a/src/core/datapoollocal/SharedLocalDataSet.cpp b/src/core/datapoollocal/SharedLocalDataSet.cpp index 84c2d1c37..2ee00aca9 100644 --- a/src/core/datapoollocal/SharedLocalDataSet.cpp +++ b/src/core/datapoollocal/SharedLocalDataSet.cpp @@ -1,4 +1,4 @@ -#include "SharedLocalDataSet.h" +#include "fsfw/datapoollocal/SharedLocalDataSet.h" SharedLocalDataSet::SharedLocalDataSet(object_id_t objectId, sid_t sid, diff --git a/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp b/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp index 65feda75e..a275626b0 100644 --- a/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp +++ b/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp @@ -1,7 +1,7 @@ #include "HasLocalDpIFManagerAttorney.h" -#include "../LocalPoolObjectBase.h" -#include "../LocalPoolDataSetBase.h" -#include "../HasLocalDataPoolIF.h" +#include "fsfw/datapoollocal/LocalPoolObjectBase.h" +#include "fsfw/datapoollocal/LocalPoolDataSetBase.h" +#include "fsfw/datapoollocal/HasLocalDataPoolIF.h" LocalPoolDataSetBase* HasLocalDpIFManagerAttorney::getDataSetHandle(HasLocalDataPoolIF* clientIF, sid_t sid) { diff --git a/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h b/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h index dfe333a64..a82ee4893 100644 --- a/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h +++ b/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h @@ -1,7 +1,7 @@ #ifndef FSFW_DATAPOOLLOCAL_HASLOCALDPIFMANAGERATTORNEY_H_ #define FSFW_DATAPOOLLOCAL_HASLOCALDPIFMANAGERATTORNEY_H_ -#include "../localPoolDefinitions.h" +#include "fsfw/datapoollocal/localPoolDefinitions.h" class HasLocalDataPoolIF; class LocalPoolDataSetBase; diff --git a/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp b/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp index 838204a76..8c52fbfb5 100644 --- a/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp +++ b/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp @@ -1,6 +1,6 @@ #include "HasLocalDpIFUserAttorney.h" -#include "../AccessLocalPoolF.h" -#include "../HasLocalDataPoolIF.h" +#include "fsfw/datapoollocal/AccessLocalPoolF.h" +#include "fsfw/datapoollocal/HasLocalDataPoolIF.h" AccessPoolManagerIF* HasLocalDpIFUserAttorney::getAccessorHandle(HasLocalDataPoolIF *clientIF) { return clientIF->getAccessorHandle(); diff --git a/src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h b/src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h index f81428cd1..9e46cffd5 100644 --- a/src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h +++ b/src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h @@ -1,7 +1,7 @@ #ifndef FSFW_DATAPOOLLOCAL_LOCALPOOLDATASETATTORNEY_H_ #define FSFW_DATAPOOLLOCAL_LOCALPOOLDATASETATTORNEY_H_ -#include "../LocalPoolDataSetBase.h" +#include "fsfw/datapoollocal/LocalPoolDataSetBase.h" class LocalPoolDataSetAttorney { private: diff --git a/src/core/devicehandlers/AssemblyBase.cpp b/src/core/devicehandlers/AssemblyBase.cpp index 46b2211ae..146adfcba 100644 --- a/src/core/devicehandlers/AssemblyBase.cpp +++ b/src/core/devicehandlers/AssemblyBase.cpp @@ -1,4 +1,4 @@ -#include "AssemblyBase.h" +#include "fsfw/devicehandlers/AssemblyBase.h" AssemblyBase::AssemblyBase(object_id_t objectId, object_id_t parentId, uint16_t commandQueueDepth) : diff --git a/src/core/devicehandlers/CMakeLists.txt b/src/core/devicehandlers/CMakeLists.txt new file mode 100644 index 000000000..a3fb6d651 --- /dev/null +++ b/src/core/devicehandlers/CMakeLists.txt @@ -0,0 +1,10 @@ +target_sources(${LIB_FSFW_NAME} PRIVATE + AssemblyBase.cpp + ChildHandlerBase.cpp + ChildHandlerFDIR.cpp + DeviceHandlerBase.cpp + DeviceHandlerFailureIsolation.cpp + DeviceHandlerMessage.cpp + DeviceTmReportingWrapper.cpp + HealthDevice.cpp +) diff --git a/src/core/devicehandlers/ChildHandlerBase.cpp b/src/core/devicehandlers/ChildHandlerBase.cpp index 628ea3e0f..e65087279 100644 --- a/src/core/devicehandlers/ChildHandlerBase.cpp +++ b/src/core/devicehandlers/ChildHandlerBase.cpp @@ -1,5 +1,5 @@ -#include "ChildHandlerBase.h" -#include "../subsystem/SubsystemBase.h" +#include "fsfw/devicehandlers/ChildHandlerBase.h" +#include "fsfw/subsystem/SubsystemBase.h" ChildHandlerBase::ChildHandlerBase(object_id_t setObjectId, object_id_t deviceCommunication, CookieIF * cookie, diff --git a/src/core/devicehandlers/ChildHandlerFDIR.cpp b/src/core/devicehandlers/ChildHandlerFDIR.cpp index cb4c75eaf..e1d1321d4 100644 --- a/src/core/devicehandlers/ChildHandlerFDIR.cpp +++ b/src/core/devicehandlers/ChildHandlerFDIR.cpp @@ -1,4 +1,4 @@ -#include "ChildHandlerFDIR.h" +#include "fsfw/devicehandlers/ChildHandlerFDIR.h" ChildHandlerFDIR::ChildHandlerFDIR(object_id_t owner, object_id_t faultTreeParent, uint32_t recoveryCount) : diff --git a/src/core/devicehandlers/DeviceHandlerBase.cpp b/src/core/devicehandlers/DeviceHandlerBase.cpp index 5665b101b..96fe031ad 100644 --- a/src/core/devicehandlers/DeviceHandlerBase.cpp +++ b/src/core/devicehandlers/DeviceHandlerBase.cpp @@ -1,17 +1,17 @@ -#include "DeviceHandlerBase.h" -#include "AcceptsDeviceResponsesIF.h" -#include "DeviceTmReportingWrapper.h" +#include "fsfw/devicehandlers/DeviceHandlerBase.h" +#include "fsfw/devicehandlers/AcceptsDeviceResponsesIF.h" +#include "fsfw/devicehandlers/DeviceTmReportingWrapper.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/ObjectManager.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../thermal/ThermalComponentIF.h" -#include "../globalfunctions/CRC.h" -#include "../housekeeping/HousekeepingMessage.h" -#include "../ipc/MessageQueueMessage.h" -#include "../ipc/QueueFactory.h" -#include "../subsystem/SubsystemBase.h" -#include "../datapoollocal/LocalPoolVariable.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/thermal/ThermalComponentIF.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/housekeeping/HousekeepingMessage.h" +#include "fsfw/ipc/MessageQueueMessage.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/subsystem/SubsystemBase.h" +#include "fsfw/datapoollocal/LocalPoolVariable.h" object_id_t DeviceHandlerBase::powerSwitcherId = objects::NO_OBJECT; object_id_t DeviceHandlerBase::rawDataReceiverId = objects::NO_OBJECT; diff --git a/src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp b/src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp index b0708a594..8b1c14894 100644 --- a/src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp +++ b/src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp @@ -1,12 +1,12 @@ -#include "DeviceHandlerFailureIsolation.h" +#include "fsfw/devicehandlers/DeviceHandlerFailureIsolation.h" -#include "../devicehandlers/DeviceHandlerIF.h" -#include "../objectmanager/ObjectManager.h" -#include "../modes/HasModesIF.h" -#include "../health/HealthTableIF.h" -#include "../power/Fuse.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../thermal/ThermalComponentIF.h" +#include "fsfw/devicehandlers/DeviceHandlerIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/modes/HasModesIF.h" +#include "fsfw/health/HealthTableIF.h" +#include "fsfw/power/Fuse.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/thermal/ThermalComponentIF.h" object_id_t DeviceHandlerFailureIsolation::powerConfirmationId = objects::NO_OBJECT; diff --git a/src/core/devicehandlers/DeviceHandlerMessage.cpp b/src/core/devicehandlers/DeviceHandlerMessage.cpp index 69c9deb9f..48277c9ae 100644 --- a/src/core/devicehandlers/DeviceHandlerMessage.cpp +++ b/src/core/devicehandlers/DeviceHandlerMessage.cpp @@ -1,5 +1,5 @@ -#include "DeviceHandlerMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/devicehandlers/DeviceHandlerMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" store_address_t DeviceHandlerMessage::getStoreAddress( const CommandMessage* message) { diff --git a/src/core/devicehandlers/DeviceTmReportingWrapper.cpp b/src/core/devicehandlers/DeviceTmReportingWrapper.cpp index c70f57d6d..0300a24a3 100644 --- a/src/core/devicehandlers/DeviceTmReportingWrapper.cpp +++ b/src/core/devicehandlers/DeviceTmReportingWrapper.cpp @@ -1,5 +1,5 @@ -#include "DeviceTmReportingWrapper.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/devicehandlers/DeviceTmReportingWrapper.h" +#include "fsfw/serialize/SerializeAdapter.h" DeviceTmReportingWrapper::DeviceTmReportingWrapper(object_id_t objectId, ActionId_t actionId, SerializeIF* data) : diff --git a/src/core/devicehandlers/HealthDevice.cpp b/src/core/devicehandlers/HealthDevice.cpp index e23dd5b69..2f6e1dfbb 100644 --- a/src/core/devicehandlers/HealthDevice.cpp +++ b/src/core/devicehandlers/HealthDevice.cpp @@ -1,5 +1,5 @@ -#include "HealthDevice.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/devicehandlers/HealthDevice.h" +#include "fsfw/ipc/QueueFactory.h" HealthDevice::HealthDevice(object_id_t setObjectId, MessageQueueId_t parentQueue) : diff --git a/src/core/events/CMakeLists.txt b/src/core/events/CMakeLists.txt index 4e935167a..28eec7723 100644 --- a/src/core/events/CMakeLists.txt +++ b/src/core/events/CMakeLists.txt @@ -1,7 +1,6 @@ -target_sources(${LIB_FSFW_NAME} - PRIVATE - EventManager.cpp - EventMessage.cpp +target_sources(${LIB_FSFW_NAME} PRIVATE + EventManager.cpp + EventMessage.cpp ) -add_subdirectory(eventmatching) \ No newline at end of file +add_subdirectory(eventmatching) diff --git a/src/core/events/EventManager.cpp b/src/core/events/EventManager.cpp index 8e2a2a829..5aa82434d 100644 --- a/src/core/events/EventManager.cpp +++ b/src/core/events/EventManager.cpp @@ -1,8 +1,8 @@ -#include "EventManager.h" -#include "EventMessage.h" +#include "fsfw/events/EventManager.h" +#include "fsfw/events/EventMessage.h" -#include "../ipc/QueueFactory.h" -#include "../ipc/MutexFactory.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/ipc/MutexFactory.h" MessageQueueId_t EventManagerIF::eventmanagerQueue = MessageQueueIF::NO_QUEUE; diff --git a/src/core/events/EventMessage.cpp b/src/core/events/EventMessage.cpp index 548b4f0f3..74f42b06b 100644 --- a/src/core/events/EventMessage.cpp +++ b/src/core/events/EventMessage.cpp @@ -1,4 +1,4 @@ -#include "EventMessage.h" +#include "fsfw/events/EventMessage.h" #include EventMessage::EventMessage() { diff --git a/inc/fsfw/events/eventmatching/CMakeLists.txt b/src/core/events/eventmatching/CMakeLists.txt similarity index 100% rename from inc/fsfw/events/eventmatching/CMakeLists.txt rename to src/core/events/eventmatching/CMakeLists.txt diff --git a/inc/fsfw/events/eventmatching/EventIdRangeMatcher.cpp b/src/core/events/eventmatching/EventIdRangeMatcher.cpp similarity index 84% rename from inc/fsfw/events/eventmatching/EventIdRangeMatcher.cpp rename to src/core/events/eventmatching/EventIdRangeMatcher.cpp index 974567d4f..92089f7cf 100644 --- a/inc/fsfw/events/eventmatching/EventIdRangeMatcher.cpp +++ b/src/core/events/eventmatching/EventIdRangeMatcher.cpp @@ -1,4 +1,4 @@ -#include "EventIdRangeMatcher.h" +#include "fsfw/events/eventmatching/EventIdRangeMatcher.h" EventIdRangeMatcher::EventIdRangeMatcher(EventId_t lower, EventId_t upper, bool inverted) : EventRangeMatcherBase(lower, upper, inverted) { diff --git a/inc/fsfw/events/eventmatching/EventMatchTree.cpp b/src/core/events/eventmatching/EventMatchTree.cpp similarity index 94% rename from inc/fsfw/events/eventmatching/EventMatchTree.cpp rename to src/core/events/eventmatching/EventMatchTree.cpp index 55e4083f4..66e9e91a8 100644 --- a/inc/fsfw/events/eventmatching/EventMatchTree.cpp +++ b/src/core/events/eventmatching/EventMatchTree.cpp @@ -1,7 +1,7 @@ -#include "EventIdRangeMatcher.h" -#include "EventMatchTree.h" -#include "ReporterRangeMatcher.h" -#include "SeverityRangeMatcher.h" +#include "fsfw/events/eventmatching/EventIdRangeMatcher.h" +#include "fsfw/events/eventmatching/EventMatchTree.h" +#include "fsfw/events/eventmatching/ReporterRangeMatcher.h" +#include "fsfw/events/eventmatching/SeverityRangeMatcher.h" EventMatchTree::EventMatchTree(StorageManagerIF* storageBackend, bool invertedMatch) : diff --git a/inc/fsfw/events/eventmatching/ReporterRangeMatcher.cpp b/src/core/events/eventmatching/ReporterRangeMatcher.cpp similarity index 84% rename from inc/fsfw/events/eventmatching/ReporterRangeMatcher.cpp rename to src/core/events/eventmatching/ReporterRangeMatcher.cpp index 611797260..fc3a2f9fd 100644 --- a/inc/fsfw/events/eventmatching/ReporterRangeMatcher.cpp +++ b/src/core/events/eventmatching/ReporterRangeMatcher.cpp @@ -1,4 +1,4 @@ -#include "ReporterRangeMatcher.h" +#include "fsfw/events/eventmatching/ReporterRangeMatcher.h" ReporterRangeMatcher::ReporterRangeMatcher(object_id_t lower, object_id_t upper, bool inverted) : EventRangeMatcherBase(lower, upper, inverted) { diff --git a/inc/fsfw/events/eventmatching/SeverityRangeMatcher.cpp b/src/core/events/eventmatching/SeverityRangeMatcher.cpp similarity index 70% rename from inc/fsfw/events/eventmatching/SeverityRangeMatcher.cpp rename to src/core/events/eventmatching/SeverityRangeMatcher.cpp index 6fd382714..230e4e776 100644 --- a/inc/fsfw/events/eventmatching/SeverityRangeMatcher.cpp +++ b/src/core/events/eventmatching/SeverityRangeMatcher.cpp @@ -1,6 +1,6 @@ -#include "SeverityRangeMatcher.h" -#include "../../events/EventMessage.h" -#include "../../serialize/SerializeAdapter.h" +#include "fsfw/events/eventmatching/SeverityRangeMatcher.h" +#include "fsfw/events/EventMessage.h" +#include "fsfw/serialize/SerializeAdapter.h" SeverityRangeMatcher::SeverityRangeMatcher(EventSeverity_t from, EventSeverity_t till, bool inverted) : EventRangeMatcherBase(from, till, inverted) { diff --git a/src/core/fdir/EventCorrelation.cpp b/src/core/fdir/EventCorrelation.cpp index d60fc6ca3..5b0233349 100644 --- a/src/core/fdir/EventCorrelation.cpp +++ b/src/core/fdir/EventCorrelation.cpp @@ -1,4 +1,4 @@ -#include "EventCorrelation.h" +#include "fsfw/fdir/EventCorrelation.h" EventCorrelation::EventCorrelation(uint32_t timeout) : eventPending(false) { diff --git a/src/core/fdir/FailureIsolationBase.cpp b/src/core/fdir/FailureIsolationBase.cpp index 764fc9184..717e5072b 100644 --- a/src/core/fdir/FailureIsolationBase.cpp +++ b/src/core/fdir/FailureIsolationBase.cpp @@ -1,9 +1,9 @@ -#include "../events/EventManagerIF.h" -#include "FailureIsolationBase.h" -#include "../health/HasHealthIF.h" -#include "../health/HealthMessage.h" -#include "../ipc/QueueFactory.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/events/EventManagerIF.h" +#include "fsfw/fdir/FailureIsolationBase.h" +#include "fsfw/health/HasHealthIF.h" +#include "fsfw/health/HealthMessage.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/objectmanager/ObjectManager.h" FailureIsolationBase::FailureIsolationBase(object_id_t owner, object_id_t parent, uint8_t messageDepth, uint8_t parameterDomainBase) : diff --git a/src/core/fdir/FaultCounter.cpp b/src/core/fdir/FaultCounter.cpp index 53c1dd7de..0b30a67d4 100644 --- a/src/core/fdir/FaultCounter.cpp +++ b/src/core/fdir/FaultCounter.cpp @@ -1,4 +1,4 @@ -#include "FaultCounter.h" +#include "fsfw/fdir/FaultCounter.h" FaultCounter::FaultCounter(uint32_t failureThreshold, uint32_t decrementAfterMs, uint8_t setParameterDomain) : diff --git a/src/core/globalfunctions/AsciiConverter.cpp b/src/core/globalfunctions/AsciiConverter.cpp index 9eb3698fb..099088158 100644 --- a/src/core/globalfunctions/AsciiConverter.cpp +++ b/src/core/globalfunctions/AsciiConverter.cpp @@ -1,4 +1,5 @@ -#include "AsciiConverter.h" +#include "fsfw/globalfunctions/AsciiConverter.h" + #include #include diff --git a/src/core/globalfunctions/CRC.cpp b/src/core/globalfunctions/CRC.cpp index 7bb568066..3df6018cf 100644 --- a/src/core/globalfunctions/CRC.cpp +++ b/src/core/globalfunctions/CRC.cpp @@ -1,4 +1,4 @@ -#include "CRC.h" +#include "fsfw/globalfunctions/CRC.h" #include const uint16_t CRC::crc16ccitt_table[256] = { diff --git a/src/core/globalfunctions/DleEncoder.cpp b/src/core/globalfunctions/DleEncoder.cpp index 8520389d2..11df8ad71 100644 --- a/src/core/globalfunctions/DleEncoder.cpp +++ b/src/core/globalfunctions/DleEncoder.cpp @@ -1,4 +1,4 @@ -#include "../globalfunctions/DleEncoder.h" +#include "fsfw/globalfunctions/DleEncoder.h" DleEncoder::DleEncoder() {} diff --git a/src/core/globalfunctions/PeriodicOperationDivider.cpp b/src/core/globalfunctions/PeriodicOperationDivider.cpp index 28e98feba..62cc6f4c6 100644 --- a/src/core/globalfunctions/PeriodicOperationDivider.cpp +++ b/src/core/globalfunctions/PeriodicOperationDivider.cpp @@ -1,4 +1,4 @@ -#include "PeriodicOperationDivider.h" +#include "fsfw/globalfunctions/PeriodicOperationDivider.h" PeriodicOperationDivider::PeriodicOperationDivider(uint32_t divider, diff --git a/src/core/globalfunctions/Type.cpp b/src/core/globalfunctions/Type.cpp index fa6d2f281..5f1e05d15 100644 --- a/src/core/globalfunctions/Type.cpp +++ b/src/core/globalfunctions/Type.cpp @@ -1,5 +1,5 @@ -#include "Type.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/globalfunctions/Type.h" +#include "fsfw/serialize/SerializeAdapter.h" Type::Type() : actualType(UNKNOWN_TYPE) { diff --git a/src/core/globalfunctions/arrayprinter.cpp b/src/core/globalfunctions/arrayprinter.cpp index 3c729c6bb..45a1cb38c 100644 --- a/src/core/globalfunctions/arrayprinter.cpp +++ b/src/core/globalfunctions/arrayprinter.cpp @@ -1,5 +1,6 @@ -#include "arrayprinter.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/globalfunctions/arrayprinter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + #include diff --git a/src/core/globalfunctions/bitutility.cpp b/src/core/globalfunctions/bitutility.cpp index 5cc92dac5..628e30c2b 100644 --- a/src/core/globalfunctions/bitutility.cpp +++ b/src/core/globalfunctions/bitutility.cpp @@ -1,4 +1,4 @@ -#include "bitutility.h" +#include "fsfw/globalfunctions/bitutility.h" void bitutil::bitSet(uint8_t *byte, uint8_t position) { if(position > 7) { diff --git a/src/core/globalfunctions/math/QuaternionOperations.cpp b/src/core/globalfunctions/math/QuaternionOperations.cpp index c09426daa..31ba20445 100644 --- a/src/core/globalfunctions/math/QuaternionOperations.cpp +++ b/src/core/globalfunctions/math/QuaternionOperations.cpp @@ -1,5 +1,5 @@ -#include "QuaternionOperations.h" -#include "VectorOperations.h" +#include "fsfw/globalfunctions/math/QuaternionOperations.h" +#include "fsfw/globalfunctions/math/VectorOperations.h" #include #include diff --git a/src/core/globalfunctions/timevalOperations.cpp b/src/core/globalfunctions/timevalOperations.cpp index 1228da047..e91e7f57b 100644 --- a/src/core/globalfunctions/timevalOperations.cpp +++ b/src/core/globalfunctions/timevalOperations.cpp @@ -1,4 +1,4 @@ -#include "timevalOperations.h" +#include "fsfw/globalfunctions/timevalOperations.h" timeval& operator+=(timeval& lhs, const timeval& rhs) { int64_t sum = lhs.tv_sec * 1000000. + lhs.tv_usec; diff --git a/src/core/health/HealthHelper.cpp b/src/core/health/HealthHelper.cpp index 28419108f..6bbbe25bf 100644 --- a/src/core/health/HealthHelper.cpp +++ b/src/core/health/HealthHelper.cpp @@ -1,5 +1,6 @@ -#include "HealthHelper.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/health/HealthHelper.h" + +#include "fsfw/serviceinterface/ServiceInterface.h" HealthHelper::HealthHelper(HasHealthIF* owner, object_id_t objectId) : objectId(objectId), owner(owner) { diff --git a/src/core/health/HealthMessage.cpp b/src/core/health/HealthMessage.cpp index 52479c263..31b6273b6 100644 --- a/src/core/health/HealthMessage.cpp +++ b/src/core/health/HealthMessage.cpp @@ -1,4 +1,4 @@ -#include "HealthMessage.h" +#include "fsfw/health/HealthMessage.h" void HealthMessage::setHealthMessage(CommandMessage* message, Command_t command, HasHealthIF::HealthState health, HasHealthIF::HealthState oldHealth) { diff --git a/src/core/health/HealthTable.cpp b/src/core/health/HealthTable.cpp index 3fed1deb1..a3300462c 100644 --- a/src/core/health/HealthTable.cpp +++ b/src/core/health/HealthTable.cpp @@ -1,7 +1,8 @@ -#include "HealthTable.h" -#include "../ipc/MutexGuard.h" -#include "../ipc/MutexFactory.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/health/HealthTable.h" + +#include "fsfw/ipc/MutexGuard.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/serialize/SerializeAdapter.h" HealthTable::HealthTable(object_id_t objectid) : SystemObject(objectid) { diff --git a/src/core/housekeeping/CMakeLists.txt b/src/core/housekeeping/CMakeLists.txt new file mode 100644 index 000000000..0a3e7bd12 --- /dev/null +++ b/src/core/housekeeping/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(${LIB_FSFW_NAME} PRIVATE + HousekeepingMessage.cpp + PeriodicHousekeepingHelper.cpp +) \ No newline at end of file diff --git a/src/core/housekeeping/HousekeepingMessage.cpp b/src/core/housekeeping/HousekeepingMessage.cpp index 71f7ff172..432a86203 100644 --- a/src/core/housekeeping/HousekeepingMessage.cpp +++ b/src/core/housekeeping/HousekeepingMessage.cpp @@ -1,6 +1,7 @@ -#include "HousekeepingMessage.h" +#include "fsfw/housekeeping/HousekeepingMessage.h" + +#include "fsfw/objectmanager/ObjectManager.h" -#include "../objectmanager/ObjectManager.h" #include HousekeepingMessage::~HousekeepingMessage() {} diff --git a/src/core/housekeeping/PeriodicHousekeepingHelper.cpp b/src/core/housekeeping/PeriodicHousekeepingHelper.cpp index 892eb354a..68740d339 100644 --- a/src/core/housekeeping/PeriodicHousekeepingHelper.cpp +++ b/src/core/housekeeping/PeriodicHousekeepingHelper.cpp @@ -1,6 +1,6 @@ -#include "PeriodicHousekeepingHelper.h" +#include "fsfw/housekeeping/PeriodicHousekeepingHelper.h" -#include "../datapoollocal/LocalPoolDataSetBase.h" +#include "fsfw/datapoollocal/LocalPoolDataSetBase.h" #include PeriodicHousekeepingHelper::PeriodicHousekeepingHelper( diff --git a/src/core/internalError/CMakeLists.txt b/src/core/internalerror/CMakeLists.txt similarity index 100% rename from src/core/internalError/CMakeLists.txt rename to src/core/internalerror/CMakeLists.txt diff --git a/src/core/internalError/InternalErrorReporter.cpp b/src/core/internalerror/InternalErrorReporter.cpp similarity index 96% rename from src/core/internalError/InternalErrorReporter.cpp rename to src/core/internalerror/InternalErrorReporter.cpp index 786184484..8689ab3e3 100644 --- a/src/core/internalError/InternalErrorReporter.cpp +++ b/src/core/internalerror/InternalErrorReporter.cpp @@ -1,9 +1,9 @@ -#include "InternalErrorReporter.h" +#include "fsfw/internalerror/InternalErrorReporter.h" -#include "../ipc/QueueFactory.h" -#include "../ipc/MutexFactory.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../datapool/PoolReadGuard.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/datapool/PoolReadGuard.h" InternalErrorReporter::InternalErrorReporter(object_id_t setObjectId, uint32_t messageQueueDepth): SystemObject(setObjectId), diff --git a/src/core/ipc/CommandMessage.cpp b/src/core/ipc/CommandMessage.cpp index 513debd3d..9448d1528 100644 --- a/src/core/ipc/CommandMessage.cpp +++ b/src/core/ipc/CommandMessage.cpp @@ -1,5 +1,6 @@ -#include "CommandMessage.h" -#include "CommandMessageCleaner.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/ipc/CommandMessageCleaner.h" + #include CommandMessage::CommandMessage() { diff --git a/src/core/ipc/CommandMessageCleaner.cpp b/src/core/ipc/CommandMessageCleaner.cpp index 29998124e..ca835509c 100644 --- a/src/core/ipc/CommandMessageCleaner.cpp +++ b/src/core/ipc/CommandMessageCleaner.cpp @@ -1,15 +1,15 @@ -#include "CommandMessageCleaner.h" +#include "fsfw/ipc/CommandMessageCleaner.h" -#include "../memory/GenericFileSystemMessage.h" -#include "../devicehandlers/DeviceHandlerMessage.h" -#include "../health/HealthMessage.h" -#include "../memory/MemoryMessage.h" -#include "../modes/ModeMessage.h" -#include "../monitoring/MonitoringMessage.h" -#include "../subsystem/modes/ModeSequenceMessage.h" -#include "../tmstorage/TmStoreMessage.h" -#include "../housekeeping/HousekeepingMessage.h" -#include "../parameters/ParameterMessage.h" +#include "fsfw/memory/GenericFileSystemMessage.h" +#include "fsfw/devicehandlers/DeviceHandlerMessage.h" +#include "fsfw/health/HealthMessage.h" +#include "fsfw/memory/MemoryMessage.h" +#include "fsfw/modes/ModeMessage.h" +#include "fsfw/monitoring/MonitoringMessage.h" +#include "fsfw/subsystem/modes/ModeSequenceMessage.h" +#include "fsfw/tmstorage/TmStoreMessage.h" +#include "fsfw/housekeeping/HousekeepingMessage.h" +#include "fsfw/parameters/ParameterMessage.h" void CommandMessageCleaner::clearCommandMessage(CommandMessage* message) { switch(message->getMessageType()){ diff --git a/src/core/ipc/MessageQueueMessage.cpp b/src/core/ipc/MessageQueueMessage.cpp index 1958af54a..62b826e92 100644 --- a/src/core/ipc/MessageQueueMessage.cpp +++ b/src/core/ipc/MessageQueueMessage.cpp @@ -1,6 +1,7 @@ -#include "MessageQueueMessage.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../globalfunctions/arrayprinter.h" +#include "fsfw/ipc/MessageQueueMessage.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/globalfunctions/arrayprinter.h" + #include MessageQueueMessage::MessageQueueMessage() : diff --git a/src/core/memory/GenericFileSystemMessage.cpp b/src/core/memory/GenericFileSystemMessage.cpp index b0e1a9ec8..abf04c4ed 100644 --- a/src/core/memory/GenericFileSystemMessage.cpp +++ b/src/core/memory/GenericFileSystemMessage.cpp @@ -1,7 +1,7 @@ -#include "GenericFileSystemMessage.h" +#include "fsfw/memory/GenericFileSystemMessage.h" -#include "../objectmanager/ObjectManager.h" -#include "../storagemanager/StorageManagerIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/storagemanager/StorageManagerIF.h" void GenericFileSystemMessage::setCreateFileCommand(CommandMessage* message, store_address_t storeId) { diff --git a/src/core/memory/MemoryHelper.cpp b/src/core/memory/MemoryHelper.cpp index d83a9fabf..2039a488f 100644 --- a/src/core/memory/MemoryHelper.cpp +++ b/src/core/memory/MemoryHelper.cpp @@ -1,10 +1,10 @@ -#include "MemoryHelper.h" -#include "MemoryMessage.h" +#include "fsfw/memory/MemoryHelper.h" +#include "fsfw/memory/MemoryMessage.h" -#include "../globalfunctions/CRC.h" -#include "../objectmanager/ObjectManager.h" -#include "../serialize/EndianConverter.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serialize/EndianConverter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" MemoryHelper::MemoryHelper(HasMemoryIF* workOnThis, MessageQueueIF* useThisQueue): diff --git a/src/core/memory/MemoryMessage.cpp b/src/core/memory/MemoryMessage.cpp index 1f050ef8b..9df526096 100644 --- a/src/core/memory/MemoryMessage.cpp +++ b/src/core/memory/MemoryMessage.cpp @@ -1,6 +1,6 @@ -#include "MemoryMessage.h" +#include "fsfw/memory/MemoryMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/ObjectManager.h" uint32_t MemoryMessage::getAddress(const CommandMessage* message) { return message->getParameter(); diff --git a/src/core/modes/ModeHelper.cpp b/src/core/modes/ModeHelper.cpp index 6be4f776d..d2c5067d0 100644 --- a/src/core/modes/ModeHelper.cpp +++ b/src/core/modes/ModeHelper.cpp @@ -1,8 +1,8 @@ -#include "HasModesIF.h" -#include "ModeHelper.h" +#include "fsfw/modes/HasModesIF.h" +#include "fsfw/modes/ModeHelper.h" -#include "../ipc/MessageQueueSenderIF.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" ModeHelper::ModeHelper(HasModesIF *owner) : commandedMode(HasModesIF::MODE_OFF), diff --git a/src/core/modes/ModeMessage.cpp b/src/core/modes/ModeMessage.cpp index b33bba60b..a228304d6 100644 --- a/src/core/modes/ModeMessage.cpp +++ b/src/core/modes/ModeMessage.cpp @@ -1,4 +1,4 @@ -#include "ModeMessage.h" +#include "fsfw/modes/ModeMessage.h" Mode_t ModeMessage::getMode(const CommandMessage* message) { return message->getParameter(); diff --git a/src/core/objectmanager/ObjectManager.cpp b/src/core/objectmanager/ObjectManager.cpp index 3e6820a76..639688ab8 100644 --- a/src/core/objectmanager/ObjectManager.cpp +++ b/src/core/objectmanager/ObjectManager.cpp @@ -1,5 +1,5 @@ -#include "ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #if FSFW_CPP_OSTREAM_ENABLED == 1 #include diff --git a/src/core/objectmanager/SystemObject.cpp b/src/core/objectmanager/SystemObject.cpp index 123bbe655..bad389752 100644 --- a/src/core/objectmanager/SystemObject.cpp +++ b/src/core/objectmanager/SystemObject.cpp @@ -1,6 +1,6 @@ -#include "ObjectManager.h" -#include "SystemObject.h" -#include "../events/EventManagerIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/events/EventManagerIF.h" SystemObject::SystemObject(object_id_t setObjectId, bool doRegister) : objectId(setObjectId), registered(doRegister) { diff --git a/src/core/parameters/ParameterHelper.cpp b/src/core/parameters/ParameterHelper.cpp index 694ec5a44..9250a1d4b 100644 --- a/src/core/parameters/ParameterHelper.cpp +++ b/src/core/parameters/ParameterHelper.cpp @@ -1,7 +1,7 @@ -#include "ParameterHelper.h" -#include "ParameterMessage.h" +#include "fsfw/parameters/ParameterHelper.h" +#include "fsfw/parameters/ParameterMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/ObjectManager.h" ParameterHelper::ParameterHelper(ReceivesParameterMessagesIF* owner): owner(owner) {} diff --git a/src/core/parameters/ParameterMessage.cpp b/src/core/parameters/ParameterMessage.cpp index 8a5835ff5..ee58339ca 100644 --- a/src/core/parameters/ParameterMessage.cpp +++ b/src/core/parameters/ParameterMessage.cpp @@ -1,6 +1,6 @@ -#include "ParameterMessage.h" +#include "fsfw/parameters/ParameterMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/ObjectManager.h" ParameterId_t ParameterMessage::getParameterId(const CommandMessage* message) { return message->getParameter(); diff --git a/src/core/parameters/ParameterWrapper.cpp b/src/core/parameters/ParameterWrapper.cpp index 660d7db71..8c09a8221 100644 --- a/src/core/parameters/ParameterWrapper.cpp +++ b/src/core/parameters/ParameterWrapper.cpp @@ -1,6 +1,6 @@ -#include "ParameterWrapper.h" -#include -#include +#include "fsfw/FSFW.h" +#include "fsfw/parameters/ParameterWrapper.h" +#include "fsfw/serviceinterface/ServiceInterface.h" ParameterWrapper::ParameterWrapper() : pointsToStream(false), type(Type::UNKNOWN_TYPE) { diff --git a/src/core/power/Fuse.cpp b/src/core/power/Fuse.cpp index 0cb1385b5..821bdbc51 100644 --- a/src/core/power/Fuse.cpp +++ b/src/core/power/Fuse.cpp @@ -1,10 +1,10 @@ -#include "Fuse.h" +#include "fsfw/power/Fuse.h" -#include "../monitoring/LimitViolationReporter.h" -#include "../monitoring/MonitoringMessageContent.h" -#include "../objectmanager/ObjectManager.h" -#include "../serialize/SerialFixedArrayListAdapter.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/monitoring/LimitViolationReporter.h" +#include "fsfw/monitoring/MonitoringMessageContent.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serialize/SerialFixedArrayListAdapter.h" +#include "fsfw/ipc/QueueFactory.h" object_id_t Fuse::powerSwitchId = 0; diff --git a/src/core/power/PowerComponent.cpp b/src/core/power/PowerComponent.cpp index 9ea84dadb..fb66748ae 100644 --- a/src/core/power/PowerComponent.cpp +++ b/src/core/power/PowerComponent.cpp @@ -1,5 +1,5 @@ -#include "PowerComponent.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/power/PowerComponent.h" +#include "fsfw/serialize/SerializeAdapter.h" PowerComponent::PowerComponent(): switchId1(0xFF), switchId2(0xFF), diff --git a/src/core/power/PowerSensor.cpp b/src/core/power/PowerSensor.cpp index 40d7afc61..e1e313533 100644 --- a/src/core/power/PowerSensor.cpp +++ b/src/core/power/PowerSensor.cpp @@ -1,6 +1,6 @@ -#include "PowerSensor.h" +#include "fsfw/power/PowerSensor.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/ipc/QueueFactory.h" PowerSensor::PowerSensor(object_id_t objectId, sid_t setId, VariableIds ids, DefaultLimits limits, SensorEvents events, uint16_t confirmationCount) : diff --git a/src/core/power/PowerSwitcher.cpp b/src/core/power/PowerSwitcher.cpp index 642a26971..f849a7fb2 100644 --- a/src/core/power/PowerSwitcher.cpp +++ b/src/core/power/PowerSwitcher.cpp @@ -1,7 +1,7 @@ -#include "PowerSwitcher.h" +#include "fsfw/power/PowerSwitcher.h" -#include "../objectmanager/ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" PowerSwitcher::PowerSwitcher(uint8_t setSwitch1, uint8_t setSwitch2, PowerSwitcher::State_t setStartState): diff --git a/src/core/serialize/SerialBufferAdapter.cpp b/src/core/serialize/SerialBufferAdapter.cpp index 53b8c3d53..4f03658a9 100644 --- a/src/core/serialize/SerialBufferAdapter.cpp +++ b/src/core/serialize/SerialBufferAdapter.cpp @@ -1,5 +1,5 @@ -#include "../serialize/SerialBufferAdapter.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/serialize/SerialBufferAdapter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include template diff --git a/src/core/serviceinterface/ServiceInterfaceBuffer.cpp b/src/core/serviceinterface/ServiceInterfaceBuffer.cpp index b85a43a44..7cba21459 100644 --- a/src/core/serviceinterface/ServiceInterfaceBuffer.cpp +++ b/src/core/serviceinterface/ServiceInterfaceBuffer.cpp @@ -1,10 +1,10 @@ -#include "ServiceInterfaceBuffer.h" +#include "fsfw/serviceinterface/ServiceInterfaceBuffer.h" #if FSFW_CPP_OSTREAM_ENABLED == 1 -#include "../timemanager/Clock.h" +#include "fsfw/timemanager/Clock.h" -#include "serviceInterfaceDefintions.h" +#include "fsfw/serviceinterface/serviceInterfaceDefintions.h" #include #include diff --git a/src/core/serviceinterface/ServiceInterfacePrinter.cpp b/src/core/serviceinterface/ServiceInterfacePrinter.cpp index ce797f1c1..9b62e91da 100644 --- a/src/core/serviceinterface/ServiceInterfacePrinter.cpp +++ b/src/core/serviceinterface/ServiceInterfacePrinter.cpp @@ -1,7 +1,7 @@ -#include -#include "ServiceInterfacePrinter.h" -#include "serviceInterfaceDefintions.h" -#include "../timemanager/Clock.h" +#include "fsfw/FSFW.h" +#include "fsfw/serviceinterface/ServiceInterfacePrinter.h" +#include "fsfw/serviceinterface/serviceInterfaceDefintions.h" +#include "fsfw/timemanager/Clock.h" #include #include diff --git a/src/core/serviceinterface/ServiceInterfaceStream.cpp b/src/core/serviceinterface/ServiceInterfaceStream.cpp index 80942b880..fe45442df 100644 --- a/src/core/serviceinterface/ServiceInterfaceStream.cpp +++ b/src/core/serviceinterface/ServiceInterfaceStream.cpp @@ -1,4 +1,4 @@ -#include "ServiceInterfaceStream.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" #if FSFW_CPP_OSTREAM_ENABLED == 1 diff --git a/src/core/storagemanager/ConstStorageAccessor.cpp b/src/core/storagemanager/ConstStorageAccessor.cpp index aab848628..67736d519 100644 --- a/src/core/storagemanager/ConstStorageAccessor.cpp +++ b/src/core/storagemanager/ConstStorageAccessor.cpp @@ -1,8 +1,8 @@ -#include "ConstStorageAccessor.h" -#include "StorageManagerIF.h" +#include "fsfw/storagemanager/ConstStorageAccessor.h" +#include "fsfw/storagemanager/StorageManagerIF.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../globalfunctions/arrayprinter.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/globalfunctions/arrayprinter.h" #include diff --git a/src/core/storagemanager/LocalPool.cpp b/src/core/storagemanager/LocalPool.cpp index 41c9250a6..c5e74e089 100644 --- a/src/core/storagemanager/LocalPool.cpp +++ b/src/core/storagemanager/LocalPool.cpp @@ -1,7 +1,7 @@ -#include "LocalPool.h" -#include "FSFWConfig.h" +#include "fsfw/FSFW.h" +#include "fsfw/storagemanager/LocalPool.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/ObjectManager.h" #include diff --git a/src/core/storagemanager/PoolManager.cpp b/src/core/storagemanager/PoolManager.cpp index eec849078..073371ad1 100644 --- a/src/core/storagemanager/PoolManager.cpp +++ b/src/core/storagemanager/PoolManager.cpp @@ -1,5 +1,6 @@ -#include "PoolManager.h" -#include +#include "fsfw/FSFW.h" +#include "fsfw/storagemanager/PoolManager.h" + PoolManager::PoolManager(object_id_t setObjectId, const LocalPoolConfig& localPoolConfig): diff --git a/src/core/storagemanager/StorageAccessor.cpp b/src/core/storagemanager/StorageAccessor.cpp index a7b4fae4f..95f61a750 100644 --- a/src/core/storagemanager/StorageAccessor.cpp +++ b/src/core/storagemanager/StorageAccessor.cpp @@ -1,6 +1,7 @@ -#include "StorageAccessor.h" -#include "StorageManagerIF.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/storagemanager/StorageAccessor.h" +#include "fsfw/storagemanager/StorageManagerIF.h" + +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/core/subsystem/Subsystem.cpp b/src/core/subsystem/Subsystem.cpp index dffad0346..0c8e3f352 100644 --- a/src/core/subsystem/Subsystem.cpp +++ b/src/core/subsystem/Subsystem.cpp @@ -1,11 +1,11 @@ -#include "Subsystem.h" +#include "fsfw/subsystem/Subsystem.h" -#include "../health/HealthMessage.h" -#include "../objectmanager/ObjectManager.h" -#include "../serialize/SerialArrayListAdapter.h" -#include "../serialize/SerialFixedArrayListAdapter.h" -#include "../serialize/SerializeElement.h" -#include "../serialize/SerialLinkedListAdapter.h" +#include "fsfw/health/HealthMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serialize/SerialArrayListAdapter.h" +#include "fsfw/serialize/SerialFixedArrayListAdapter.h" +#include "fsfw/serialize/SerializeElement.h" +#include "fsfw/serialize/SerialLinkedListAdapter.h" #include diff --git a/src/core/subsystem/SubsystemBase.cpp b/src/core/subsystem/SubsystemBase.cpp index 0d4593242..afcd43ade 100644 --- a/src/core/subsystem/SubsystemBase.cpp +++ b/src/core/subsystem/SubsystemBase.cpp @@ -1,8 +1,8 @@ -#include "SubsystemBase.h" +#include "fsfw/subsystem/SubsystemBase.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/ObjectManager.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/ipc/QueueFactory.h" SubsystemBase::SubsystemBase(object_id_t setObjectId, object_id_t parent, Mode_t initialMode, uint16_t commandQueueDepth) : diff --git a/src/core/subsystem/modes/ModeSequenceMessage.cpp b/src/core/subsystem/modes/ModeSequenceMessage.cpp index 749a90bf4..d75702760 100644 --- a/src/core/subsystem/modes/ModeSequenceMessage.cpp +++ b/src/core/subsystem/modes/ModeSequenceMessage.cpp @@ -1,7 +1,7 @@ -#include "ModeSequenceMessage.h" +#include "fsfw/subsystem/modes/ModeSequenceMessage.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../storagemanager/StorageManagerIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/storagemanager/StorageManagerIF.h" void ModeSequenceMessage::setModeSequenceMessage(CommandMessage* message, Command_t command, Mode_t sequence, store_address_t storeAddress) { diff --git a/src/core/subsystem/modes/ModeStore.cpp b/src/core/subsystem/modes/ModeStore.cpp index e216a167a..e28bbc4fe 100644 --- a/src/core/subsystem/modes/ModeStore.cpp +++ b/src/core/subsystem/modes/ModeStore.cpp @@ -1,4 +1,4 @@ -#include "ModeStore.h" +#include "fsfw/subsystem/modes/ModeStore.h" // todo: I think some parts are deprecated. If this is used, the define // USE_MODESTORE could be part of the new FSFWConfig.h file. diff --git a/src/core/tasks/FixedSequenceSlot.cpp b/src/core/tasks/FixedSequenceSlot.cpp index f5d82178d..9f617b589 100644 --- a/src/core/tasks/FixedSequenceSlot.cpp +++ b/src/core/tasks/FixedSequenceSlot.cpp @@ -1,5 +1,6 @@ -#include "FixedSequenceSlot.h" -#include "PeriodicTaskIF.h" +#include "fsfw/tasks/FixedSequenceSlot.h" +#include "fsfw/tasks/PeriodicTaskIF.h" + #include FixedSequenceSlot::FixedSequenceSlot(object_id_t handlerId, uint32_t setTime, diff --git a/src/core/tasks/FixedSlotSequence.cpp b/src/core/tasks/FixedSlotSequence.cpp index 54b6ae6d3..2e5384b71 100644 --- a/src/core/tasks/FixedSlotSequence.cpp +++ b/src/core/tasks/FixedSlotSequence.cpp @@ -1,5 +1,5 @@ -#include "FixedSlotSequence.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/tasks/FixedSlotSequence.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include FixedSlotSequence::FixedSlotSequence(uint32_t setLengthMs) : diff --git a/src/core/tcdistribution/CCSDSDistributor.cpp b/src/core/tcdistribution/CCSDSDistributor.cpp index 7380866aa..ffceaecc7 100644 --- a/src/core/tcdistribution/CCSDSDistributor.cpp +++ b/src/core/tcdistribution/CCSDSDistributor.cpp @@ -1,8 +1,8 @@ -#include "CCSDSDistributor.h" +#include "fsfw/tcdistribution/CCSDSDistributor.h" -#include "../objectmanager/ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../tmtcpacket/SpacePacketBase.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" #define CCSDS_DISTRIBUTOR_DEBUGGING 0 diff --git a/src/core/tcdistribution/PUSDistributor.cpp b/src/core/tcdistribution/PUSDistributor.cpp index 955a80932..eec02429d 100644 --- a/src/core/tcdistribution/PUSDistributor.cpp +++ b/src/core/tcdistribution/PUSDistributor.cpp @@ -1,9 +1,9 @@ -#include "CCSDSDistributorIF.h" -#include "PUSDistributor.h" +#include "fsfw/tcdistribution/CCSDSDistributorIF.h" +#include "fsfw/tcdistribution/PUSDistributor.h" -#include "../objectmanager/ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../tmtcservices/PusVerificationReport.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" #define PUS_DISTRIBUTOR_DEBUGGING 0 diff --git a/src/core/tcdistribution/TcDistributor.cpp b/src/core/tcdistribution/TcDistributor.cpp index df0695564..8384e6eee 100644 --- a/src/core/tcdistribution/TcDistributor.cpp +++ b/src/core/tcdistribution/TcDistributor.cpp @@ -1,8 +1,8 @@ -#include "TcDistributor.h" +#include "fsfw/tcdistribution/TcDistributor.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../tmtcservices/TmTcMessage.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/TmTcMessage.h" +#include "fsfw/ipc/QueueFactory.h" TcDistributor::TcDistributor(object_id_t objectId) : SystemObject(objectId) { diff --git a/src/core/tcdistribution/TcPacketCheck.cpp b/src/core/tcdistribution/TcPacketCheck.cpp index b3a025a49..44501c58c 100644 --- a/src/core/tcdistribution/TcPacketCheck.cpp +++ b/src/core/tcdistribution/TcPacketCheck.cpp @@ -1,11 +1,11 @@ -#include "TcPacketCheck.h" +#include "fsfw/tcdistribution/TcPacketCheck.h" -#include "../globalfunctions/CRC.h" -#include "../tmtcpacket/pus/tc/TcPacketBase.h" -#include "../tmtcpacket/pus/tc/TcPacketStoredBase.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../tmtcservices/VerificationCodes.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketBase.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/tmtcservices/VerificationCodes.h" TcPacketCheck::TcPacketCheck(uint16_t setApid): apid(setApid) { } diff --git a/src/core/thermal/AbstractTemperatureSensor.cpp b/src/core/thermal/AbstractTemperatureSensor.cpp index 40b305af9..68e8d1c08 100644 --- a/src/core/thermal/AbstractTemperatureSensor.cpp +++ b/src/core/thermal/AbstractTemperatureSensor.cpp @@ -1,5 +1,5 @@ -#include "AbstractTemperatureSensor.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/thermal/AbstractTemperatureSensor.h" +#include "fsfw/ipc/QueueFactory.h" AbstractTemperatureSensor::AbstractTemperatureSensor(object_id_t setObjectid, ThermalModuleIF *thermalModule) : diff --git a/src/core/thermal/Heater.cpp b/src/core/thermal/Heater.cpp index f97cb543f..e6acba136 100644 --- a/src/core/thermal/Heater.cpp +++ b/src/core/thermal/Heater.cpp @@ -1,9 +1,9 @@ -#include "Heater.h" +#include "fsfw/thermal/Heater.h" -#include "../objectmanager/ObjectManager.h" -#include "../devicehandlers/DeviceHandlerFailureIsolation.h" -#include "../power/Fuse.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/devicehandlers/DeviceHandlerFailureIsolation.h" +#include "fsfw/power/Fuse.h" +#include "fsfw/ipc/QueueFactory.h" Heater::Heater(uint32_t objectId, uint8_t switch0, uint8_t switch1) : HealthDevice(objectId, 0), internalState(STATE_OFF), switch0(switch0), switch1(switch1), diff --git a/src/core/thermal/RedundantHeater.cpp b/src/core/thermal/RedundantHeater.cpp index 6463fcc8e..e7b774cba 100644 --- a/src/core/thermal/RedundantHeater.cpp +++ b/src/core/thermal/RedundantHeater.cpp @@ -1,4 +1,4 @@ -#include "RedundantHeater.h" +#include "fsfw/thermal/RedundantHeater.h" RedundantHeater::~RedundantHeater() { } diff --git a/src/core/thermal/ThermalComponent.cpp b/src/core/thermal/ThermalComponent.cpp index d42c34b33..8d4b7bbdb 100644 --- a/src/core/thermal/ThermalComponent.cpp +++ b/src/core/thermal/ThermalComponent.cpp @@ -1,4 +1,4 @@ -#include "ThermalComponent.h" +#include "fsfw/thermal/ThermalComponent.h" ThermalComponent::ThermalComponent(object_id_t reportingObjectId, uint8_t domainId, gp_id_t temperaturePoolId, diff --git a/src/core/thermal/ThermalModule.cpp b/src/core/thermal/ThermalModule.cpp index de3475429..d8108ab3d 100644 --- a/src/core/thermal/ThermalModule.cpp +++ b/src/core/thermal/ThermalModule.cpp @@ -1,8 +1,8 @@ -#include "ThermalModule.h" -#include "AbstractTemperatureSensor.h" +#include "fsfw/thermal/ThermalModule.h" +#include "fsfw/thermal/AbstractTemperatureSensor.h" -#include "../monitoring/LimitViolationReporter.h" -#include "../monitoring/MonitoringMessageContent.h" +#include "fsfw/monitoring/LimitViolationReporter.h" +#include "fsfw/monitoring/MonitoringMessageContent.h" ThermalModule::ThermalModule(gp_id_t moduleTemperaturePoolId, diff --git a/src/core/timemanager/CCSDSTime.cpp b/src/core/timemanager/CCSDSTime.cpp index 192c1f57a..2475a5ebd 100644 --- a/src/core/timemanager/CCSDSTime.cpp +++ b/src/core/timemanager/CCSDSTime.cpp @@ -1,5 +1,6 @@ -#include "CCSDSTime.h" -#include +#include "fsfw/FSFW.h" +#include "fsfw/timemanager/CCSDSTime.h" + #include #include #include diff --git a/src/core/timemanager/ClockCommon.cpp b/src/core/timemanager/ClockCommon.cpp index e56d4953a..82c65b965 100644 --- a/src/core/timemanager/ClockCommon.cpp +++ b/src/core/timemanager/ClockCommon.cpp @@ -1,5 +1,5 @@ -#include "Clock.h" -#include "../ipc/MutexGuard.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/ipc/MutexGuard.h" ReturnValue_t Clock::convertUTCToTT(timeval utc, timeval *tt) { uint16_t leapSeconds; diff --git a/src/core/timemanager/Countdown.cpp b/src/core/timemanager/Countdown.cpp index 20b56189f..c3499685f 100644 --- a/src/core/timemanager/Countdown.cpp +++ b/src/core/timemanager/Countdown.cpp @@ -1,4 +1,4 @@ -#include "Countdown.h" +#include "fsfw/timemanager/Countdown.h" Countdown::Countdown(uint32_t initialTimeout): timeout(initialTimeout) { } diff --git a/src/core/timemanager/Stopwatch.cpp b/src/core/timemanager/Stopwatch.cpp index 04ccab726..a8f870297 100644 --- a/src/core/timemanager/Stopwatch.cpp +++ b/src/core/timemanager/Stopwatch.cpp @@ -1,5 +1,5 @@ -#include "Stopwatch.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/Stopwatch.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #if FSFW_CPP_OSTREAM_ENABLED == 1 #include diff --git a/src/core/tmtcpacket/SpacePacket.cpp b/src/core/tmtcpacket/SpacePacket.cpp index b8ba27e9a..cbf82e0db 100644 --- a/src/core/tmtcpacket/SpacePacket.cpp +++ b/src/core/tmtcpacket/SpacePacket.cpp @@ -1,10 +1,10 @@ -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "ccsds_header.h" -#include "SpacePacket.h" -#include +#include "fsfw/tmtcpacket/ccsds_header.h" +#include "fsfw/tmtcpacket/SpacePacket.h" +#include -SpacePacket::SpacePacket( uint16_t packetDataLength, bool isTelecommand, uint16_t apid, uint16_t sequenceCount ): -SpacePacketBase( (uint8_t*)&this->localData ) { +SpacePacket::SpacePacket(uint16_t packetDataLength, bool isTelecommand, uint16_t apid, + uint16_t sequenceCount): + SpacePacketBase( (uint8_t*)&this->localData ) { initSpacePacketHeader(isTelecommand, false, apid, sequenceCount); this->setPacketSequenceCount(sequenceCount); if ( packetDataLength <= sizeof(this->localData.fields.buffer) ) { diff --git a/src/core/tmtcpacket/SpacePacketBase.cpp b/src/core/tmtcpacket/SpacePacketBase.cpp index 14198027d..e9a0b8362 100644 --- a/src/core/tmtcpacket/SpacePacketBase.cpp +++ b/src/core/tmtcpacket/SpacePacketBase.cpp @@ -1,5 +1,6 @@ -#include "SpacePacketBase.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + #include SpacePacketBase::SpacePacketBase( const uint8_t* set_address ) { diff --git a/src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp b/src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp index 05e176ef2..7f8aae9a5 100644 --- a/src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp +++ b/src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp @@ -1,7 +1,7 @@ -#include "ApidMatcher.h" -#include "PacketMatchTree.h" -#include "ServiceMatcher.h" -#include "SubserviceMatcher.h" +#include "fsfw/tmtcpacket/packetmatcher/ApidMatcher.h" +#include "fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h" +#include "fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h" +#include "fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h" // This should be configurable.. const LocalPool::LocalPoolConfig PacketMatchTree::poolConfig = { diff --git a/src/core/tmtcpacket/pus/tc/TcPacketBase.cpp b/src/core/tmtcpacket/pus/tc/TcPacketBase.cpp index dd576fec8..0c7a41830 100644 --- a/src/core/tmtcpacket/pus/tc/TcPacketBase.cpp +++ b/src/core/tmtcpacket/pus/tc/TcPacketBase.cpp @@ -1,8 +1,8 @@ -#include "TcPacketBase.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketBase.h" -#include "../../../globalfunctions/CRC.h" -#include "../../../globalfunctions/arrayprinter.h" -#include "../../../serviceinterface/ServiceInterface.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/globalfunctions/arrayprinter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/core/tmtcservices/CommandingServiceBase.cpp b/src/core/tmtcservices/CommandingServiceBase.cpp index 307a2a982..10805b473 100644 --- a/src/core/tmtcservices/CommandingServiceBase.cpp +++ b/src/core/tmtcservices/CommandingServiceBase.cpp @@ -1,14 +1,13 @@ -#include "AcceptsTelemetryIF.h" -#include "CommandingServiceBase.h" -#include "TmTcMessage.h" -#include +#include "fsfw/tmtcservices/CommandingServiceBase.h" +#include "fsfw/tmtcservices/AcceptsTelemetryIF.h" +#include "fsfw/tmtcservices/TmTcMessage.h" -#include "../tcdistribution/PUSDistributorIF.h" -#include "../objectmanager/ObjectManager.h" -#include "../ipc/QueueFactory.h" -#include "../tmtcpacket/pus/tc.h" -#include "../tmtcpacket/pus/tm.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/tcdistribution/PUSDistributorIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/tmtcpacket/pus/tc.h" +#include "fsfw/tmtcpacket/pus/tm.h" +#include "fsfw/serviceinterface/ServiceInterface.h" object_id_t CommandingServiceBase::defaultPacketSource = objects::NO_OBJECT; object_id_t CommandingServiceBase::defaultPacketDestination = objects::NO_OBJECT; diff --git a/src/core/tmtcservices/PusServiceBase.cpp b/src/core/tmtcservices/PusServiceBase.cpp index 811c9bcb6..866e0844a 100644 --- a/src/core/tmtcservices/PusServiceBase.cpp +++ b/src/core/tmtcservices/PusServiceBase.cpp @@ -1,12 +1,12 @@ -#include "PusServiceBase.h" -#include "AcceptsTelemetryIF.h" -#include "PusVerificationReport.h" -#include "TmTcMessage.h" +#include "fsfw/tmtcservices/PusServiceBase.h" +#include "fsfw/tmtcservices/AcceptsTelemetryIF.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" +#include "fsfw/tmtcservices/TmTcMessage.h" -#include "../objectmanager/ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../tcdistribution/PUSDistributorIF.h" -#include "../ipc/QueueFactory.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tcdistribution/PUSDistributorIF.h" +#include "fsfw/ipc/QueueFactory.h" object_id_t PusServiceBase::packetSource = 0; object_id_t PusServiceBase::packetDestination = 0; diff --git a/src/core/tmtcservices/PusVerificationReport.cpp b/src/core/tmtcservices/PusVerificationReport.cpp index c64e5feb3..827486cea 100644 --- a/src/core/tmtcservices/PusVerificationReport.cpp +++ b/src/core/tmtcservices/PusVerificationReport.cpp @@ -1,5 +1,5 @@ -#include "../serialize/SerializeAdapter.h" -#include "../tmtcservices/PusVerificationReport.h" +#include "fsfw/serialize/SerializeAdapter.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" PusVerificationMessage::PusVerificationMessage() { } diff --git a/src/opt/coordinates/CoordinateTransformations.cpp b/src/opt/coordinates/CoordinateTransformations.cpp index 4e2debbe8..fe879dd1a 100644 --- a/src/opt/coordinates/CoordinateTransformations.cpp +++ b/src/opt/coordinates/CoordinateTransformations.cpp @@ -1,8 +1,9 @@ -#include "CoordinateTransformations.h" -#include "../globalfunctions/constants.h" -#include "../globalfunctions/math/MatrixOperations.h" -#include "../globalfunctions/math/VectorOperations.h" -#include +#include "fsfw/coordinates/CoordinateTransformations.h" +#include "fsfw/globalfunctions/constants.h" +#include "fsfw/globalfunctions/math/MatrixOperations.h" +#include "fsfw/globalfunctions/math/VectorOperations.h" + +#include #include @@ -17,11 +18,13 @@ void CoordinateTransformations::velocityEcfToEci(const double* ecfVelocity, ecfToEci(ecfVelocity, eciVelocity, ecfPosition, timeUTC); } -void CoordinateTransformations::positionEciToEcf(const double* eciCoordinates, double* ecfCoordinates,timeval *timeUTC){ +void CoordinateTransformations::positionEciToEcf(const double* eciCoordinates, + double* ecfCoordinates,timeval *timeUTC){ eciToEcf(eciCoordinates,ecfCoordinates,NULL,timeUTC); }; -void CoordinateTransformations::velocityEciToEcf(const double* eciVelocity,const double* eciPosition, double* ecfVelocity,timeval* timeUTC){ +void CoordinateTransformations::velocityEciToEcf(const double* eciVelocity, + const double* eciPosition, double* ecfVelocity,timeval* timeUTC){ eciToEcf(eciVelocity,ecfVelocity,eciPosition,timeUTC); } diff --git a/src/opt/coordinates/Sgp4Propagator.cpp b/src/opt/coordinates/Sgp4Propagator.cpp index 5cb1497cf..a0e66ebd1 100644 --- a/src/opt/coordinates/Sgp4Propagator.cpp +++ b/src/opt/coordinates/Sgp4Propagator.cpp @@ -1,10 +1,13 @@ -#include "CoordinateTransformations.h" -#include "Sgp4Propagator.h" -#include "../globalfunctions/constants.h" -#include "../globalfunctions/math/MatrixOperations.h" -#include "../globalfunctions/math/VectorOperations.h" -#include "../globalfunctions/timevalOperations.h" +#include "fsfw/coordinates/CoordinateTransformations.h" +#include "fsfw/coordinates/Sgp4Propagator.h" + +#include "fsfw/globalfunctions/constants.h" +#include "fsfw/globalfunctions/math/MatrixOperations.h" +#include "fsfw/globalfunctions/math/VectorOperations.h" +#include "fsfw/globalfunctions/timevalOperations.h" + #include + Sgp4Propagator::Sgp4Propagator() : initialized(false), epoch({0, 0}), whichconst(wgs84) { diff --git a/src/opt/datalinklayer/Clcw.cpp b/src/opt/datalinklayer/Clcw.cpp index 13971929c..9f2fe7d30 100644 --- a/src/opt/datalinklayer/Clcw.cpp +++ b/src/opt/datalinklayer/Clcw.cpp @@ -1,14 +1,5 @@ -/** - * @file Clcw.cpp - * @brief This file defines the Clcw class. - * @date 17.04.2013 - * @author baetz - */ - - - -#include "Clcw.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/datalinklayer/Clcw.h" +#include "fsfw/serviceinterface/ServiceInterface.h" Clcw::Clcw() { content.raw = 0; diff --git a/src/opt/datalinklayer/DataLinkLayer.cpp b/src/opt/datalinklayer/DataLinkLayer.cpp index 1bdaa4f5f..94199bc41 100644 --- a/src/opt/datalinklayer/DataLinkLayer.cpp +++ b/src/opt/datalinklayer/DataLinkLayer.cpp @@ -1,6 +1,6 @@ -#include "DataLinkLayer.h" -#include "../globalfunctions/CRC.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/datalinklayer/DataLinkLayer.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/serviceinterface/ServiceInterface.h" DataLinkLayer::DataLinkLayer(uint8_t* set_frame_buffer, ClcwIF* setClcw, uint8_t set_start_sequence_length, uint16_t set_scid) : diff --git a/src/opt/datalinklayer/Farm1StateLockout.cpp b/src/opt/datalinklayer/Farm1StateLockout.cpp index 1b339a85f..b74d0a5f6 100644 --- a/src/opt/datalinklayer/Farm1StateLockout.cpp +++ b/src/opt/datalinklayer/Farm1StateLockout.cpp @@ -1,16 +1,8 @@ -/** - * @file Farm1StateLockout.cpp - * @brief This file defines the Farm1StateLockout class. - * @date 24.04.2013 - * @author baetz - */ +#include "fsfw/datalinklayer/ClcwIF.h" +#include "fsfw/datalinklayer/Farm1StateLockout.h" +#include "fsfw/datalinklayer/TcTransferFrame.h" +#include "fsfw/datalinklayer/VirtualChannelReception.h" - - -#include "ClcwIF.h" -#include "Farm1StateLockout.h" -#include "TcTransferFrame.h" -#include "VirtualChannelReception.h" Farm1StateLockout::Farm1StateLockout(VirtualChannelReception* setMyVC) : myVC(setMyVC) { } diff --git a/src/opt/datalinklayer/Farm1StateOpen.cpp b/src/opt/datalinklayer/Farm1StateOpen.cpp index 61c0997f9..6f91df47e 100644 --- a/src/opt/datalinklayer/Farm1StateOpen.cpp +++ b/src/opt/datalinklayer/Farm1StateOpen.cpp @@ -1,17 +1,7 @@ -/** - * @file Farm1StateOpen.cpp - * @brief This file defines the Farm1StateOpen class. - * @date 24.04.2013 - * @author baetz - */ - - - - -#include "ClcwIF.h" -#include "Farm1StateOpen.h" -#include "TcTransferFrame.h" -#include "VirtualChannelReception.h" +#include "fsfw/datalinklayer/ClcwIF.h" +#include "fsfw/datalinklayer/Farm1StateOpen.h" +#include "fsfw/datalinklayer/TcTransferFrame.h" +#include "fsfw/datalinklayer/VirtualChannelReception.h" Farm1StateOpen::Farm1StateOpen(VirtualChannelReception* setMyVC) : myVC(setMyVC) { } From a6de52e21278458a69f2d1859bbea7c180a5cfa1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 20:58:45 +0200 Subject: [PATCH 019/136] more include replacements --- inc/fsfw/datalinklayer/MapPacketExtraction.h | 6 +-- inc/fsfw/datalinklayer/TcTransferFrame.h | 4 +- inc/fsfw/osal/InternalErrorCodes.h | 52 +++++++++---------- inc/fsfw/osal/linux/MessageQueue.h | 6 +-- inc/fsfw/pus/CService200ModeCommanding.h | 2 +- inc/fsfw/pus/Service17Test.h | 4 +- .../pus/Service1TelecommandVerification.h | 12 ++--- inc/fsfw/pus/Service20ParameterManagement.h | 2 +- inc/fsfw/pus/Service2DeviceAccess.h | 6 +-- inc/fsfw/pus/Service3Housekeeping.h | 6 +-- inc/fsfw/pus/Service5EventReporting.h | 4 +- inc/fsfw/pus/Service8FunctionManagement.h | 4 +- inc/fsfw/pus/Service9TimeManagement.h | 2 +- inc/fsfw/rmap/RMAP.h | 4 +- inc/fsfw/rmap/RMAPCookie.h | 2 +- inc/fsfw/rmap/RmapDeviceCommunicationIF.h | 2 +- inc/fsfw/thermal/ThermalComponentCore.h | 2 +- .../pus/PacketTimestampInterpreterIF.h | 12 +++-- inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h | 12 +++-- inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h | 8 +-- inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h | 8 +-- inc/fsfw/tmtcservices/TmTcBridge.h | 12 ++--- inc/fsfw/tmtcservices/TmTcMessage.h | 4 +- inc/fsfw/tmtcservices/VerificationReporter.h | 2 +- src/core/thermal/ThermalComponentCore.cpp | 4 +- src/core/thermal/ThermalMonitorReporter.cpp | 6 +-- src/core/timemanager/TimeMessage.cpp | 2 +- src/core/timemanager/TimeStamper.cpp | 5 +- src/core/tmtcpacket/pus/tc/TcPacketPus.cpp | 4 +- .../tmtcpacket/pus/tc/TcPacketStoredBase.cpp | 8 +-- src/core/tmtcpacket/pus/tm/TmPacketBase.cpp | 12 ++--- .../tmtcpacket/pus/tm/TmPacketMinimal.cpp | 4 +- src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp | 14 ++--- src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp | 14 ++--- .../tmtcpacket/pus/tm/TmPacketStoredBase.cpp | 8 +-- .../tmtcpacket/pus/tm/TmPacketStoredPusA.cpp | 6 +-- src/core/tmtcservices/TmTcBridge.cpp | 10 ++-- src/core/tmtcservices/TmTcMessage.cpp | 2 +- .../tmtcservices/VerificationReporter.cpp | 14 ++--- src/opt/datalinklayer/Farm1StateWait.cpp | 16 ++---- src/opt/datalinklayer/MapPacketExtraction.cpp | 16 +++--- src/opt/datalinklayer/TcTransferFrame.cpp | 15 ++---- .../datalinklayer/TcTransferFrameLocal.cpp | 16 ++---- .../datalinklayer/VirtualChannelReception.cpp | 6 +-- src/opt/monitoring/LimitViolationReporter.cpp | 10 ++-- src/opt/monitoring/MonitoringMessage.cpp | 4 +- src/opt/pus/CService200ModeCommanding.cpp | 14 ++--- src/opt/pus/CService201HealthCommanding.cpp | 12 ++--- src/opt/pus/Service17Test.cpp | 10 ++-- .../pus/Service1TelecommandVerification.cpp | 16 +++--- src/opt/pus/Service20ParameterManagement.cpp | 14 ++--- src/opt/pus/Service2DeviceAccess.cpp | 22 ++++---- src/opt/pus/Service3Housekeeping.cpp | 8 +-- src/opt/pus/Service5EventReporting.cpp | 14 ++--- src/opt/pus/Service8FunctionManagement.cpp | 16 +++--- src/opt/pus/Service9TimeManagement.cpp | 10 ++-- src/opt/rmap/RMAP.cpp | 8 +-- src/opt/rmap/RMAPCookie.cpp | 5 +- src/opt/rmap/RmapDeviceCommunicationIF.cpp | 4 +- src/opt/tmstorage/TmStoreMessage.cpp | 4 +- src/osal/common/tcpipCommon.cpp | 7 +-- src/osal/freertos/MessageQueue.cpp | 4 +- src/osal/linux/BinarySemaphore.cpp | 10 ++-- src/osal/linux/Clock.cpp | 4 +- src/osal/linux/CountingSemaphore.cpp | 6 +-- src/osal/linux/FixedTimeslotTask.cpp | 6 +-- src/osal/linux/InternalErrorCodes.cpp | 2 +- src/osal/linux/MessageQueue.cpp | 8 +-- src/osal/linux/Mutex.cpp | 8 +-- src/osal/linux/MutexFactory.cpp | 4 +- src/osal/linux/QueueFactory.cpp | 10 ++-- src/osal/linux/SemaphoreFactory.cpp | 7 ++- src/osal/linux/TaskFactory.cpp | 10 ++-- src/osal/linux/Timer.cpp | 4 +- src/osal/linux/tcpipHelpers.cpp | 6 +-- 75 files changed, 304 insertions(+), 323 deletions(-) diff --git a/inc/fsfw/datalinklayer/MapPacketExtraction.h b/inc/fsfw/datalinklayer/MapPacketExtraction.h index ddb867fb2..c74ab8039 100644 --- a/inc/fsfw/datalinklayer/MapPacketExtraction.h +++ b/inc/fsfw/datalinklayer/MapPacketExtraction.h @@ -2,9 +2,9 @@ #define FSFW_DATALINKLAYER_MAPPACKETEXTRACTION_H_ #include "MapPacketExtractionIF.h" -#include "../objectmanager/ObjectManagerIF.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../ipc/MessageQueueSenderIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" class StorageManagerIF; diff --git a/inc/fsfw/datalinklayer/TcTransferFrame.h b/inc/fsfw/datalinklayer/TcTransferFrame.h index b58441fcc..ca96536f3 100644 --- a/inc/fsfw/datalinklayer/TcTransferFrame.h +++ b/inc/fsfw/datalinklayer/TcTransferFrame.h @@ -1,8 +1,8 @@ #ifndef TCTRANSFERFRAME_H_ #define TCTRANSFERFRAME_H_ -#include -#include +#include +#include /** * The TcTransferFrame class simplifies handling of such Frames. diff --git a/inc/fsfw/osal/InternalErrorCodes.h b/inc/fsfw/osal/InternalErrorCodes.h index 1da116fa3..e75228757 100644 --- a/inc/fsfw/osal/InternalErrorCodes.h +++ b/inc/fsfw/osal/InternalErrorCodes.h @@ -1,39 +1,39 @@ #ifndef INTERNALERRORCODES_H_ #define INTERNALERRORCODES_H_ -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" class InternalErrorCodes { public: - static const uint8_t INTERFACE_ID = CLASS_ID::INTERNAL_ERROR_CODES; + static const uint8_t INTERFACE_ID = CLASS_ID::INTERNAL_ERROR_CODES; -static const ReturnValue_t NO_CONFIGURATION_TABLE = MAKE_RETURN_CODE(0x01 ); -static const ReturnValue_t NO_CPU_TABLE = MAKE_RETURN_CODE(0x02 ); -static const ReturnValue_t INVALID_WORKSPACE_ADDRESS = MAKE_RETURN_CODE(0x03 ); -static const ReturnValue_t TOO_LITTLE_WORKSPACE = MAKE_RETURN_CODE(0x04 ); -static const ReturnValue_t WORKSPACE_ALLOCATION = MAKE_RETURN_CODE(0x05 ); -static const ReturnValue_t INTERRUPT_STACK_TOO_SMALL = MAKE_RETURN_CODE(0x06 ); -static const ReturnValue_t THREAD_EXITTED = MAKE_RETURN_CODE(0x07 ); -static const ReturnValue_t INCONSISTENT_MP_INFORMATION = MAKE_RETURN_CODE(0x08 ); -static const ReturnValue_t INVALID_NODE = MAKE_RETURN_CODE(0x09 ); -static const ReturnValue_t NO_MPCI = MAKE_RETURN_CODE(0x0a ); -static const ReturnValue_t BAD_PACKET = MAKE_RETURN_CODE(0x0b ); -static const ReturnValue_t OUT_OF_PACKETS = MAKE_RETURN_CODE(0x0c ); -static const ReturnValue_t OUT_OF_GLOBAL_OBJECTS = MAKE_RETURN_CODE(0x0d ); -static const ReturnValue_t OUT_OF_PROXIES = MAKE_RETURN_CODE(0x0e ); -static const ReturnValue_t INVALID_GLOBAL_ID = MAKE_RETURN_CODE(0x0f ); -static const ReturnValue_t BAD_STACK_HOOK = MAKE_RETURN_CODE(0x10 ); -static const ReturnValue_t BAD_ATTRIBUTES = MAKE_RETURN_CODE(0x11 ); -static const ReturnValue_t IMPLEMENTATION_KEY_CREATE_INCONSISTENCY = MAKE_RETURN_CODE(0x12 ); -static const ReturnValue_t IMPLEMENTATION_BLOCKING_OPERATION_CANCEL = MAKE_RETURN_CODE(0x13 ); -static const ReturnValue_t MUTEX_OBTAIN_FROM_BAD_STATE = MAKE_RETURN_CODE(0x14 ); -static const ReturnValue_t UNLIMITED_AND_MAXIMUM_IS_0 = MAKE_RETURN_CODE(0x15 ); + static const ReturnValue_t NO_CONFIGURATION_TABLE = MAKE_RETURN_CODE(0x01 ); + static const ReturnValue_t NO_CPU_TABLE = MAKE_RETURN_CODE(0x02 ); + static const ReturnValue_t INVALID_WORKSPACE_ADDRESS = MAKE_RETURN_CODE(0x03 ); + static const ReturnValue_t TOO_LITTLE_WORKSPACE = MAKE_RETURN_CODE(0x04 ); + static const ReturnValue_t WORKSPACE_ALLOCATION = MAKE_RETURN_CODE(0x05 ); + static const ReturnValue_t INTERRUPT_STACK_TOO_SMALL = MAKE_RETURN_CODE(0x06 ); + static const ReturnValue_t THREAD_EXITTED = MAKE_RETURN_CODE(0x07 ); + static const ReturnValue_t INCONSISTENT_MP_INFORMATION = MAKE_RETURN_CODE(0x08 ); + static const ReturnValue_t INVALID_NODE = MAKE_RETURN_CODE(0x09 ); + static const ReturnValue_t NO_MPCI = MAKE_RETURN_CODE(0x0a ); + static const ReturnValue_t BAD_PACKET = MAKE_RETURN_CODE(0x0b ); + static const ReturnValue_t OUT_OF_PACKETS = MAKE_RETURN_CODE(0x0c ); + static const ReturnValue_t OUT_OF_GLOBAL_OBJECTS = MAKE_RETURN_CODE(0x0d ); + static const ReturnValue_t OUT_OF_PROXIES = MAKE_RETURN_CODE(0x0e ); + static const ReturnValue_t INVALID_GLOBAL_ID = MAKE_RETURN_CODE(0x0f ); + static const ReturnValue_t BAD_STACK_HOOK = MAKE_RETURN_CODE(0x10 ); + static const ReturnValue_t BAD_ATTRIBUTES = MAKE_RETURN_CODE(0x11 ); + static const ReturnValue_t IMPLEMENTATION_KEY_CREATE_INCONSISTENCY = MAKE_RETURN_CODE(0x12 ); + static const ReturnValue_t IMPLEMENTATION_BLOCKING_OPERATION_CANCEL = MAKE_RETURN_CODE(0x13 ); + static const ReturnValue_t MUTEX_OBTAIN_FROM_BAD_STATE = MAKE_RETURN_CODE(0x14 ); + static const ReturnValue_t UNLIMITED_AND_MAXIMUM_IS_0 = MAKE_RETURN_CODE(0x15 ); - virtual ~InternalErrorCodes(); + virtual ~InternalErrorCodes(); - static ReturnValue_t translate(uint8_t code); + static ReturnValue_t translate(uint8_t code); private: - InternalErrorCodes(); + InternalErrorCodes(); }; #endif /* INTERNALERRORCODES_H_ */ diff --git a/inc/fsfw/osal/linux/MessageQueue.h b/inc/fsfw/osal/linux/MessageQueue.h index 935ee948d..cf0ac10c4 100644 --- a/inc/fsfw/osal/linux/MessageQueue.h +++ b/inc/fsfw/osal/linux/MessageQueue.h @@ -1,9 +1,9 @@ #ifndef FSFW_OSAL_LINUX_MESSAGEQUEUE_H_ #define FSFW_OSAL_LINUX_MESSAGEQUEUE_H_ -#include "../../internalError/InternalErrorReporterIF.h" -#include "../../ipc/MessageQueueIF.h" -#include "../../ipc/MessageQueueMessage.h" +#include "fsfw/internalerror/InternalErrorReporterIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" #include /** diff --git a/inc/fsfw/pus/CService200ModeCommanding.h b/inc/fsfw/pus/CService200ModeCommanding.h index 840402120..d523d6c3a 100644 --- a/inc/fsfw/pus/CService200ModeCommanding.h +++ b/inc/fsfw/pus/CService200ModeCommanding.h @@ -1,7 +1,7 @@ #ifndef FSFW_PUS_CSERVICE200MODECOMMANDING_H_ #define FSFW_PUS_CSERVICE200MODECOMMANDING_H_ -#include "../tmtcservices/CommandingServiceBase.h" +#include "fsfw/tmtcservices/CommandingServiceBase.h" /** * @brief Custom PUS service to set mode of all objects implementing HasModesIF diff --git a/inc/fsfw/pus/Service17Test.h b/inc/fsfw/pus/Service17Test.h index 83d436ea3..d1e1ecceb 100644 --- a/inc/fsfw/pus/Service17Test.h +++ b/inc/fsfw/pus/Service17Test.h @@ -1,8 +1,8 @@ #ifndef FSFW_PUS_SERVICE17TEST_H_ #define FSFW_PUS_SERVICE17TEST_H_ -#include "../tmtcservices/PusServiceBase.h" -#include "../objectmanager/SystemObject.h" +#include "fsfw/tmtcservices/PusServiceBase.h" +#include "fsfw/objectmanager/SystemObject.h" /** * @brief Test Service diff --git a/inc/fsfw/pus/Service1TelecommandVerification.h b/inc/fsfw/pus/Service1TelecommandVerification.h index 3d68a4e06..262844935 100644 --- a/inc/fsfw/pus/Service1TelecommandVerification.h +++ b/inc/fsfw/pus/Service1TelecommandVerification.h @@ -1,12 +1,12 @@ #ifndef FSFW_PUS_SERVICE1TELECOMMANDVERIFICATION_H_ #define FSFW_PUS_SERVICE1TELECOMMANDVERIFICATION_H_ -#include "../objectmanager/SystemObject.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../tmtcservices/AcceptsVerifyMessageIF.h" -#include "../tmtcservices/PusVerificationReport.h" -#include "../ipc/MessageQueueIF.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/tmtcservices/AcceptsVerifyMessageIF.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" +#include "fsfw/ipc/MessageQueueIF.h" /** * @brief Verify TC acceptance, start, progress and execution. diff --git a/inc/fsfw/pus/Service20ParameterManagement.h b/inc/fsfw/pus/Service20ParameterManagement.h index 5370bfcb3..63ec199cb 100644 --- a/inc/fsfw/pus/Service20ParameterManagement.h +++ b/inc/fsfw/pus/Service20ParameterManagement.h @@ -1,7 +1,7 @@ #ifndef FSFW_PUS_SERVICE20PARAMETERMANAGEMENT_H_ #define FSFW_PUS_SERVICE20PARAMETERMANAGEMENT_H_ -#include "../tmtcservices/CommandingServiceBase.h" +#include "fsfw/tmtcservices/CommandingServiceBase.h" /** * @brief PUS Service 20 Parameter Service implementation diff --git a/inc/fsfw/pus/Service2DeviceAccess.h b/inc/fsfw/pus/Service2DeviceAccess.h index b62e6854a..e518863c5 100644 --- a/inc/fsfw/pus/Service2DeviceAccess.h +++ b/inc/fsfw/pus/Service2DeviceAccess.h @@ -1,9 +1,9 @@ #ifndef FSFW_PUS_SERVICE2DEVICEACCESS_H_ #define FSFW_PUS_SERVICE2DEVICEACCESS_H_ -#include "../objectmanager/SystemObjectIF.h" -#include "../devicehandlers/AcceptsDeviceResponsesIF.h" -#include "../tmtcservices/CommandingServiceBase.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/devicehandlers/AcceptsDeviceResponsesIF.h" +#include "fsfw/tmtcservices/CommandingServiceBase.h" /** * @brief Raw Commanding and Wiretapping of devices. diff --git a/inc/fsfw/pus/Service3Housekeeping.h b/inc/fsfw/pus/Service3Housekeeping.h index 269710ef3..d2dc6066d 100644 --- a/inc/fsfw/pus/Service3Housekeeping.h +++ b/inc/fsfw/pus/Service3Housekeeping.h @@ -1,9 +1,9 @@ #ifndef FSFW_PUS_SERVICE3HOUSEKEEPINGSERVICE_H_ #define FSFW_PUS_SERVICE3HOUSEKEEPINGSERVICE_H_ -#include "../housekeeping/AcceptsHkPacketsIF.h" -#include "../housekeeping/HousekeepingMessage.h" -#include "../tmtcservices/CommandingServiceBase.h" +#include "fsfw/housekeeping/AcceptsHkPacketsIF.h" +#include "fsfw/housekeeping/HousekeepingMessage.h" +#include "fsfw/tmtcservices/CommandingServiceBase.h" /** * @brief Manges spacecraft housekeeping reports and diff --git a/inc/fsfw/pus/Service5EventReporting.h b/inc/fsfw/pus/Service5EventReporting.h index 69242801f..35ff34b63 100644 --- a/inc/fsfw/pus/Service5EventReporting.h +++ b/inc/fsfw/pus/Service5EventReporting.h @@ -1,8 +1,8 @@ #ifndef FSFW_PUS_SERVICE5EVENTREPORTING_H_ #define FSFW_PUS_SERVICE5EVENTREPORTING_H_ -#include "../tmtcservices/PusServiceBase.h" -#include "../events/EventMessage.h" +#include "fsfw/tmtcservices/PusServiceBase.h" +#include "fsfw/events/EventMessage.h" /** * @brief Report on-board events like information or errors diff --git a/inc/fsfw/pus/Service8FunctionManagement.h b/inc/fsfw/pus/Service8FunctionManagement.h index 00153cfb0..debdf6364 100644 --- a/inc/fsfw/pus/Service8FunctionManagement.h +++ b/inc/fsfw/pus/Service8FunctionManagement.h @@ -1,8 +1,8 @@ #ifndef FSFW_PUS_SERVICE8FUNCTIONMANAGEMENT_H_ #define FSFW_PUS_SERVICE8FUNCTIONMANAGEMENT_H_ -#include "../action/ActionMessage.h" -#include "../tmtcservices/CommandingServiceBase.h" +#include "fsfw/action/ActionMessage.h" +#include "fsfw/tmtcservices/CommandingServiceBase.h" /** * @brief Functional commanding. diff --git a/inc/fsfw/pus/Service9TimeManagement.h b/inc/fsfw/pus/Service9TimeManagement.h index 70b86966d..d8e183a42 100644 --- a/inc/fsfw/pus/Service9TimeManagement.h +++ b/inc/fsfw/pus/Service9TimeManagement.h @@ -1,7 +1,7 @@ #ifndef FSFW_PUS_SERVICE9TIMEMANAGEMENT_H_ #define FSFW_PUS_SERVICE9TIMEMANAGEMENT_H_ -#include "../tmtcservices/PusServiceBase.h" +#include "fsfw/tmtcservices/PusServiceBase.h" class Service9TimeManagement: public PusServiceBase { public: diff --git a/inc/fsfw/rmap/RMAP.h b/inc/fsfw/rmap/RMAP.h index 83e29fede..7fa0021d8 100644 --- a/inc/fsfw/rmap/RMAP.h +++ b/inc/fsfw/rmap/RMAP.h @@ -1,8 +1,8 @@ #ifndef FSFW_RMAP_RMAP_H_ #define FSFW_RMAP_RMAP_H_ -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../rmap/RMAPCookie.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/rmap/RMAPCookie.h" //SHOULDTODO: clean up includes for RMAP, should be enough to include RMAP.h but right now it's quite chaotic... diff --git a/inc/fsfw/rmap/RMAPCookie.h b/inc/fsfw/rmap/RMAPCookie.h index 385426468..97aaa6d05 100644 --- a/inc/fsfw/rmap/RMAPCookie.h +++ b/inc/fsfw/rmap/RMAPCookie.h @@ -2,7 +2,7 @@ #define FSFW_RMAP_RMAPCOOKIE_H_ #include "rmapStructs.h" -#include "../devicehandlers/CookieIF.h" +#include "fsfw/devicehandlers/CookieIF.h" #include class RMAPChannelIF; diff --git a/inc/fsfw/rmap/RmapDeviceCommunicationIF.h b/inc/fsfw/rmap/RmapDeviceCommunicationIF.h index 1333966a7..3714b7e75 100644 --- a/inc/fsfw/rmap/RmapDeviceCommunicationIF.h +++ b/inc/fsfw/rmap/RmapDeviceCommunicationIF.h @@ -1,7 +1,7 @@ #ifndef FSFW_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_ #define FSFW_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_ -#include "../devicehandlers/DeviceCommunicationIF.h" +#include "fsfw/devicehandlers/DeviceCommunicationIF.h" /** * @brief This class is a implementation of a DeviceCommunicationIF for RMAP calls. diff --git a/inc/fsfw/thermal/ThermalComponentCore.h b/inc/fsfw/thermal/ThermalComponentCore.h index a1fa594a5..194300159 100644 --- a/inc/fsfw/thermal/ThermalComponentCore.h +++ b/inc/fsfw/thermal/ThermalComponentCore.h @@ -6,7 +6,7 @@ #include "AbstractTemperatureSensor.h" #include "ThermalModule.h" -#include "../datapoollocal/LocalPoolVariable.h" +#include "fsfw/datapoollocal/LocalPoolVariable.h" /** * @brief diff --git a/inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h b/inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h index 40e7a2eaa..b839223ae 100644 --- a/inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h +++ b/inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h @@ -1,7 +1,8 @@ -#ifndef FRAMEWORK_TMTCPACKET_PUS_PACKETTIMESTAMPINTERPRETERIF_H_ -#define FRAMEWORK_TMTCPACKET_PUS_PACKETTIMESTAMPINTERPRETERIF_H_ +#ifndef FSFW_TMTCPACKET_PUS_PACKETTIMESTAMPINTERPRETERIF_H_ +#define FSFW_TMTCPACKET_PUS_PACKETTIMESTAMPINTERPRETERIF_H_ + +#include "fsfw/returnvalues/HasReturnvaluesIF.h" -#include "../../returnvalues/HasReturnvaluesIF.h" class TmPacketMinimal; class PacketTimestampInterpreterIF { @@ -9,9 +10,10 @@ public: virtual ~PacketTimestampInterpreterIF() {} virtual ReturnValue_t getPacketTime(TmPacketMinimal* packet, timeval* timestamp) const = 0; - virtual ReturnValue_t getPacketTimeRaw(TmPacketMinimal* packet, const uint8_t** timePtr, uint32_t* size) const = 0; + virtual ReturnValue_t getPacketTimeRaw(TmPacketMinimal* packet, const uint8_t** timePtr, + uint32_t* size) const = 0; }; -#endif /* FRAMEWORK_TMTCPACKET_PUS_PACKETTIMESTAMPINTERPRETERIF_H_ */ +#endif /* FSFW_TMTCPACKET_PUS_PACKETTIMESTAMPINTERPRETERIF_H_ */ diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h index 9f534f294..0379b977e 100644 --- a/inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h +++ b/inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h @@ -1,13 +1,15 @@ #ifndef TMTCPACKET_PUS_TMPACKETBASE_H_ #define TMTCPACKET_PUS_TMPACKETBASE_H_ -#include "../../SpacePacketBase.h" -#include "../../../timemanager/TimeStamperIF.h" -#include "../../../timemanager/Clock.h" -#include "../../../objectmanager/SystemObjectIF.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" +#include "fsfw/timemanager/TimeStamperIF.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/objectmanager/SystemObjectIF.h" + +namespace Factory { -namespace Factory{ void setStaticFrameworkObjectIds(); + } diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h index 49f26b348..3856c7798 100644 --- a/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h +++ b/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h @@ -2,10 +2,10 @@ #define FSFW_TMTCPACKET_PUS_TMPACKETPUSA_H_ #include "TmPacketBase.h" -#include "../../SpacePacketBase.h" -#include "../../../timemanager/TimeStamperIF.h" -#include "../../../timemanager/Clock.h" -#include "../../../objectmanager/SystemObjectIF.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" +#include "fsfw/timemanager/TimeStamperIF.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/objectmanager/SystemObjectIF.h" namespace Factory{ void setStaticFrameworkObjectIds(); diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h b/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h index 2a6d3bf61..fe373c6fe 100644 --- a/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h +++ b/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h @@ -2,10 +2,10 @@ #define FSFW_TMTCPACKET_PUS_TMPACKETPUSC_H_ #include "TmPacketBase.h" -#include "../../SpacePacketBase.h" -#include "../../../timemanager/TimeStamperIF.h" -#include "../../../timemanager/Clock.h" -#include "../../../objectmanager/SystemObjectIF.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" +#include "fsfw/timemanager/TimeStamperIF.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/objectmanager/SystemObjectIF.h" namespace Factory{ void setStaticFrameworkObjectIds(); diff --git a/inc/fsfw/tmtcservices/TmTcBridge.h b/inc/fsfw/tmtcservices/TmTcBridge.h index d3e1c5471..d3689d19f 100644 --- a/inc/fsfw/tmtcservices/TmTcBridge.h +++ b/inc/fsfw/tmtcservices/TmTcBridge.h @@ -4,12 +4,12 @@ #include "AcceptsTelemetryIF.h" #include "AcceptsTelecommandsIF.h" -#include "../objectmanager/SystemObject.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../ipc/MessageQueueIF.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../container/DynamicFIFO.h" -#include "../tmtcservices/TmTcMessage.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/container/DynamicFIFO.h" +#include "fsfw/tmtcservices/TmTcMessage.h" class TmTcBridge : public AcceptsTelemetryIF, public AcceptsTelecommandsIF, diff --git a/inc/fsfw/tmtcservices/TmTcMessage.h b/inc/fsfw/tmtcservices/TmTcMessage.h index 7d2a7bdb6..5e6647fe8 100644 --- a/inc/fsfw/tmtcservices/TmTcMessage.h +++ b/inc/fsfw/tmtcservices/TmTcMessage.h @@ -1,8 +1,8 @@ #ifndef FSFW_TMTCSERVICES_TMTCMESSAGE_H_ #define FSFW_TMTCSERVICES_TMTCMESSAGE_H_ -#include "../ipc/MessageQueueMessage.h" -#include "../storagemanager/StorageManagerIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" +#include "fsfw/storagemanager/StorageManagerIF.h" /** * @brief This message class is used to pass Telecommand and Telemetry * packets between tasks. diff --git a/inc/fsfw/tmtcservices/VerificationReporter.h b/inc/fsfw/tmtcservices/VerificationReporter.h index f26fa54f5..4a64d3df1 100644 --- a/inc/fsfw/tmtcservices/VerificationReporter.h +++ b/inc/fsfw/tmtcservices/VerificationReporter.h @@ -2,7 +2,7 @@ #define FSFW_TMTCSERVICES_VERIFICATIONREPORTER_H_ #include "PusVerificationReport.h" -#include "../objectmanager/ObjectManagerIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" namespace Factory{ void setStaticFrameworkObjectIds(); diff --git a/src/core/thermal/ThermalComponentCore.cpp b/src/core/thermal/ThermalComponentCore.cpp index 7df04b047..7718ac369 100644 --- a/src/core/thermal/ThermalComponentCore.cpp +++ b/src/core/thermal/ThermalComponentCore.cpp @@ -1,5 +1,5 @@ -#include "ThermalComponentCore.h" -#include "tcsDefinitions.h" +#include "fsfw/thermal/ThermalComponentCore.h" +#include "fsfw/thermal/tcsDefinitions.h" ThermalComponentCore::ThermalComponentCore(object_id_t reportingObjectId, uint8_t domainId, gp_id_t temperaturePoolId, diff --git a/src/core/thermal/ThermalMonitorReporter.cpp b/src/core/thermal/ThermalMonitorReporter.cpp index cefc61107..31503203e 100644 --- a/src/core/thermal/ThermalMonitorReporter.cpp +++ b/src/core/thermal/ThermalMonitorReporter.cpp @@ -1,7 +1,7 @@ -#include "ThermalMonitorReporter.h" -#include "ThermalComponentIF.h" +#include "fsfw/thermal/ThermalMonitorReporter.h" +#include "fsfw/thermal/ThermalComponentIF.h" -#include "../monitoring/MonitoringIF.h" +#include "fsfw/monitoring/MonitoringIF.h" ThermalMonitorReporter::~ThermalMonitorReporter() { } diff --git a/src/core/timemanager/TimeMessage.cpp b/src/core/timemanager/TimeMessage.cpp index 66aea0f4d..320f30002 100644 --- a/src/core/timemanager/TimeMessage.cpp +++ b/src/core/timemanager/TimeMessage.cpp @@ -1,4 +1,4 @@ -#include "TimeMessage.h" +#include "fsfw/timemanager/TimeMessage.h" TimeMessage::TimeMessage() { this->messageSize += sizeof(timeval) + sizeof(uint32_t); diff --git a/src/core/timemanager/TimeStamper.cpp b/src/core/timemanager/TimeStamper.cpp index d9f0f2f3e..4926c2d59 100644 --- a/src/core/timemanager/TimeStamper.cpp +++ b/src/core/timemanager/TimeStamper.cpp @@ -1,5 +1,6 @@ -#include "TimeStamper.h" -#include "Clock.h" +#include "fsfw/timemanager/TimeStamper.h" +#include "fsfw/timemanager/Clock.h" + #include TimeStamper::TimeStamper(object_id_t objectId): SystemObject(objectId) {} diff --git a/src/core/tmtcpacket/pus/tc/TcPacketPus.cpp b/src/core/tmtcpacket/pus/tc/TcPacketPus.cpp index d2b19206f..28533754d 100644 --- a/src/core/tmtcpacket/pus/tc/TcPacketPus.cpp +++ b/src/core/tmtcpacket/pus/tc/TcPacketPus.cpp @@ -1,5 +1,5 @@ -#include "TcPacketPus.h" -#include "../../../globalfunctions/CRC.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketPus.h" +#include "fsfw/globalfunctions/CRC.h" #include diff --git a/src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp b/src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp index cf980e682..98ce1725b 100644 --- a/src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp +++ b/src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp @@ -1,8 +1,8 @@ -#include "TcPacketStoredBase.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h" -#include "../../../objectmanager/ObjectManager.h" -#include "../../../serviceinterface/ServiceInterface.h" -#include "../../../objectmanager/frameworkObjects.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/frameworkObjects.h" #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketBase.cpp b/src/core/tmtcpacket/pus/tm/TmPacketBase.cpp index 3dd1749fe..d448fe5eb 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketBase.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketBase.cpp @@ -1,10 +1,10 @@ -#include "TmPacketBase.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketBase.h" -#include "../../../globalfunctions/CRC.h" -#include "../../../globalfunctions/arrayprinter.h" -#include "../../../objectmanager/ObjectManager.h" -#include "../../../serviceinterface/ServiceInterface.h" -#include "../../../timemanager/CCSDSTime.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/globalfunctions/arrayprinter.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/CCSDSTime.h" #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp b/src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp index 3f785cde8..25e159da7 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp @@ -1,5 +1,5 @@ -#include "TmPacketMinimal.h" -#include "../PacketTimestampInterpreterIF.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h" +#include "fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h" #include #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp b/src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp index bdc0a815e..c6540af58 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp @@ -1,11 +1,11 @@ -#include "TmPacketPusA.h" -#include "TmPacketBase.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketPusA.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketBase.h" -#include "../../../globalfunctions/CRC.h" -#include "../../../globalfunctions/arrayprinter.h" -#include "../../../objectmanager/ObjectManagerIF.h" -#include "../../../serviceinterface/ServiceInterfaceStream.h" -#include "../../../timemanager/CCSDSTime.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/globalfunctions/arrayprinter.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/CCSDSTime.h" #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp b/src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp index 5090aaebe..ea25f5d26 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp @@ -1,11 +1,11 @@ -#include "TmPacketPusC.h" -#include "TmPacketBase.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketPusC.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketBase.h" -#include "../../../globalfunctions/CRC.h" -#include "../../../globalfunctions/arrayprinter.h" -#include "../../../objectmanager/ObjectManagerIF.h" -#include "../../../serviceinterface/ServiceInterfaceStream.h" -#include "../../../timemanager/CCSDSTime.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/globalfunctions/arrayprinter.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/CCSDSTime.h" #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp b/src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp index ba8b15d1a..466e4cd20 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp @@ -1,8 +1,8 @@ -#include "TmPacketStoredBase.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h" -#include "../../../objectmanager/ObjectManager.h" -#include "../../../serviceinterface/ServiceInterface.h" -#include "../../../tmtcservices/TmTcMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/TmTcMessage.h" #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp b/src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp index 02fb77ef5..538dc95e8 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp @@ -1,7 +1,7 @@ -#include "TmPacketStoredPusA.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h" -#include "../../../serviceinterface/ServiceInterface.h" -#include "../../../tmtcservices/TmTcMessage.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/TmTcMessage.h" #include diff --git a/src/core/tmtcservices/TmTcBridge.cpp b/src/core/tmtcservices/TmTcBridge.cpp index 7198bc765..7346cfe2a 100644 --- a/src/core/tmtcservices/TmTcBridge.cpp +++ b/src/core/tmtcservices/TmTcBridge.cpp @@ -1,9 +1,9 @@ -#include "TmTcBridge.h" +#include "fsfw/tmtcservices/TmTcBridge.h" -#include "../objectmanager/ObjectManager.h" -#include "../ipc/QueueFactory.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../globalfunctions/arrayprinter.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/globalfunctions/arrayprinter.h" #define TMTCBRIDGE_WIRETAPPING 0 diff --git a/src/core/tmtcservices/TmTcMessage.cpp b/src/core/tmtcservices/TmTcMessage.cpp index c0f32aaac..9dbd8fd83 100644 --- a/src/core/tmtcservices/TmTcMessage.cpp +++ b/src/core/tmtcservices/TmTcMessage.cpp @@ -1,4 +1,4 @@ -#include "TmTcMessage.h" +#include "fsfw/tmtcservices/TmTcMessage.h" #include diff --git a/src/core/tmtcservices/VerificationReporter.cpp b/src/core/tmtcservices/VerificationReporter.cpp index 74e0719c8..2b371d1e7 100644 --- a/src/core/tmtcservices/VerificationReporter.cpp +++ b/src/core/tmtcservices/VerificationReporter.cpp @@ -1,11 +1,11 @@ -#include "VerificationReporter.h" -#include "AcceptsVerifyMessageIF.h" -#include "PusVerificationReport.h" +#include "fsfw/tmtcservices/VerificationReporter.h" +#include "fsfw/tmtcservices/AcceptsVerifyMessageIF.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" -#include "../objectmanager/ObjectManager.h" -#include "../ipc/MessageQueueIF.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/frameworkObjects.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/frameworkObjects.h" object_id_t VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION; diff --git a/src/opt/datalinklayer/Farm1StateWait.cpp b/src/opt/datalinklayer/Farm1StateWait.cpp index 9001e1f5f..8d3f97fc8 100644 --- a/src/opt/datalinklayer/Farm1StateWait.cpp +++ b/src/opt/datalinklayer/Farm1StateWait.cpp @@ -1,15 +1,7 @@ -/** - * @file Farm1StateWait.cpp - * @brief This file defines the Farm1StateWait class. - * @date 24.04.2013 - * @author baetz - */ - - -#include "ClcwIF.h" -#include "Farm1StateWait.h" -#include "TcTransferFrame.h" -#include "VirtualChannelReception.h" +#include "fsfw/datalinklayer/ClcwIF.h" +#include "fsfw/datalinklayer/Farm1StateWait.h" +#include "fsfw/datalinklayer/TcTransferFrame.h" +#include "fsfw/datalinklayer/VirtualChannelReception.h" Farm1StateWait::Farm1StateWait(VirtualChannelReception* setMyVC) : myVC(setMyVC) { } diff --git a/src/opt/datalinklayer/MapPacketExtraction.cpp b/src/opt/datalinklayer/MapPacketExtraction.cpp index d377ca34d..7d06695ae 100644 --- a/src/opt/datalinklayer/MapPacketExtraction.cpp +++ b/src/opt/datalinklayer/MapPacketExtraction.cpp @@ -1,12 +1,12 @@ -#include "MapPacketExtraction.h" +#include "fsfw/datalinklayer/MapPacketExtraction.h" -#include "../ipc/QueueFactory.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../tmtcpacket/SpacePacketBase.h" -#include "../tmtcservices/AcceptsTelecommandsIF.h" -#include "../tmtcservices/TmTcMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/tmtcpacket/SpacePacketBase.h" +#include "fsfw/tmtcservices/AcceptsTelecommandsIF.h" +#include "fsfw/tmtcservices/TmTcMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" #include diff --git a/src/opt/datalinklayer/TcTransferFrame.cpp b/src/opt/datalinklayer/TcTransferFrame.cpp index ee094dc32..42ccf7cac 100644 --- a/src/opt/datalinklayer/TcTransferFrame.cpp +++ b/src/opt/datalinklayer/TcTransferFrame.cpp @@ -1,17 +1,8 @@ -/** - * @file TcTransferFrame.cpp - * @brief This file defines the TcTransferFrame class. - * @date 27.04.2013 - * @author baetz - */ - - - -#include "TcTransferFrame.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/datalinklayer/TcTransferFrame.h" +#include "fsfw/serviceinterface/ServiceInterface.h" TcTransferFrame::TcTransferFrame() { - frame = NULL; + frame = nullptr; } TcTransferFrame::TcTransferFrame(uint8_t* setData) { diff --git a/src/opt/datalinklayer/TcTransferFrameLocal.cpp b/src/opt/datalinklayer/TcTransferFrameLocal.cpp index de8f568f4..f88f79e23 100644 --- a/src/opt/datalinklayer/TcTransferFrameLocal.cpp +++ b/src/opt/datalinklayer/TcTransferFrameLocal.cpp @@ -1,14 +1,8 @@ -/** - * @file TcTransferFrameLocal.cpp - * @brief This file defines the TcTransferFrameLocal class. - * @date 27.04.2013 - * @author baetz - */ +#include "fsfw/datalinklayer/TcTransferFrameLocal.h" +#include "fsfw/globalfunctions/CRC.h" +#include "fsfw/serviceinterface/ServiceInterface.h" -#include "TcTransferFrameLocal.h" -#include "../globalfunctions/CRC.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include +#include TcTransferFrameLocal::TcTransferFrameLocal(bool bypass, bool controlCommand, uint16_t scid, uint8_t vcId, uint8_t sequenceNumber, uint8_t setSegmentHeader, uint8_t* data, uint16_t dataSize, uint16_t forceCrc) { @@ -38,7 +32,7 @@ TcTransferFrameLocal::TcTransferFrameLocal(bool bypass, bool controlCommand, uin this->getFullFrame()[getFullSize()-1] = (crc & 0x00FF); } else { #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::debug << "TcTransferFrameLocal: dataSize too large: " << dataSize << std::endl; + sif::warning << "TcTransferFrameLocal: dataSize too large: " << dataSize << std::endl; #endif } } else { diff --git a/src/opt/datalinklayer/VirtualChannelReception.cpp b/src/opt/datalinklayer/VirtualChannelReception.cpp index 3a56fe1e2..e0a88e8e8 100644 --- a/src/opt/datalinklayer/VirtualChannelReception.cpp +++ b/src/opt/datalinklayer/VirtualChannelReception.cpp @@ -5,9 +5,9 @@ * @author baetz */ -#include "BCFrame.h" -#include "VirtualChannelReception.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/datalinklayer/BCFrame.h" +#include "fsfw/datalinklayer/VirtualChannelReception.h" +#include "fsfw/serviceinterface/ServiceInterface.h" VirtualChannelReception::VirtualChannelReception(uint8_t setChannelId, uint8_t setSlidingWindowWidth) : diff --git a/src/opt/monitoring/LimitViolationReporter.cpp b/src/opt/monitoring/LimitViolationReporter.cpp index 2de1e008a..a0b8a4cb7 100644 --- a/src/opt/monitoring/LimitViolationReporter.cpp +++ b/src/opt/monitoring/LimitViolationReporter.cpp @@ -1,9 +1,9 @@ -#include "LimitViolationReporter.h" -#include "MonitoringIF.h" -#include "ReceivesMonitoringReportsIF.h" +#include "fsfw/monitoring/LimitViolationReporter.h" +#include "fsfw/monitoring/MonitoringIF.h" +#include "fsfw/monitoring/ReceivesMonitoringReportsIF.h" -#include "../objectmanager/ObjectManager.h" -#include "../serialize/SerializeAdapter.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serialize/SerializeAdapter.h" ReturnValue_t LimitViolationReporter::sendLimitViolationReport(const SerializeIF* data) { ReturnValue_t result = checkClassLoaded(); diff --git a/src/opt/monitoring/MonitoringMessage.cpp b/src/opt/monitoring/MonitoringMessage.cpp index 6e5f49ccb..8bbb77650 100644 --- a/src/opt/monitoring/MonitoringMessage.cpp +++ b/src/opt/monitoring/MonitoringMessage.cpp @@ -1,5 +1,5 @@ -#include "MonitoringMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/monitoring/MonitoringMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" MonitoringMessage::~MonitoringMessage() { } diff --git a/src/opt/pus/CService200ModeCommanding.cpp b/src/opt/pus/CService200ModeCommanding.cpp index d178b3a98..66c61dbe2 100644 --- a/src/opt/pus/CService200ModeCommanding.cpp +++ b/src/opt/pus/CService200ModeCommanding.cpp @@ -1,11 +1,11 @@ -#include "CService200ModeCommanding.h" -#include "servicepackets/Service200Packets.h" +#include "fsfw/pus/CService200ModeCommanding.h" +#include "fsfw/pus/servicepackets/Service200Packets.h" -#include "../modes/HasModesIF.h" -#include "../objectmanager/ObjectManager.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../serialize/SerialLinkedListAdapter.h" -#include "../modes/ModeMessage.h" +#include "fsfw/modes/HasModesIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/serialize/SerialLinkedListAdapter.h" +#include "fsfw/modes/ModeMessage.h" CService200ModeCommanding::CService200ModeCommanding(object_id_t objectId, uint16_t apid, uint8_t serviceId, uint8_t numParallelCommands, diff --git a/src/opt/pus/CService201HealthCommanding.cpp b/src/opt/pus/CService201HealthCommanding.cpp index 52a8a603c..1e414c824 100644 --- a/src/opt/pus/CService201HealthCommanding.cpp +++ b/src/opt/pus/CService201HealthCommanding.cpp @@ -1,10 +1,10 @@ -#include "CService201HealthCommanding.h" -#include "servicepackets/Service201Packets.h" +#include "fsfw/pus/CService201HealthCommanding.h" +#include "fsfw/pus/servicepackets/Service201Packets.h" -#include "../health/HasHealthIF.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/ObjectManager.h" -#include "../health/HealthMessage.h" +#include "fsfw/health/HasHealthIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/health/HealthMessage.h" CService201HealthCommanding::CService201HealthCommanding(object_id_t objectId, diff --git a/src/opt/pus/Service17Test.cpp b/src/opt/pus/Service17Test.cpp index 37258cc16..20227172c 100644 --- a/src/opt/pus/Service17Test.cpp +++ b/src/opt/pus/Service17Test.cpp @@ -1,9 +1,9 @@ -#include "Service17Test.h" -#include +#include "fsfw/FSFW.h" +#include "fsfw/pus/Service17Test.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/SystemObject.h" -#include "../tmtcpacket/pus/tm/TmPacketStored.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketStored.h" Service17Test::Service17Test(object_id_t objectId, diff --git a/src/opt/pus/Service1TelecommandVerification.cpp b/src/opt/pus/Service1TelecommandVerification.cpp index 8aec6902c..c6b024f9e 100644 --- a/src/opt/pus/Service1TelecommandVerification.cpp +++ b/src/opt/pus/Service1TelecommandVerification.cpp @@ -1,12 +1,12 @@ -#include "Service1TelecommandVerification.h" -#include "servicepackets/Service1Packets.h" +#include "fsfw/pus/Service1TelecommandVerification.h" +#include "fsfw/pus/servicepackets/Service1Packets.h" -#include "../ipc/QueueFactory.h" -#include "../objectmanager/ObjectManager.h" -#include "../tmtcservices/PusVerificationReport.h" -#include "../tmtcpacket/pus/tm/TmPacketStored.h" -#include "../serviceinterface/ServiceInterfaceStream.h" -#include "../tmtcservices/AcceptsTelemetryIF.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketStored.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/AcceptsTelemetryIF.h" Service1TelecommandVerification::Service1TelecommandVerification( object_id_t objectId, uint16_t apid, uint8_t serviceId, diff --git a/src/opt/pus/Service20ParameterManagement.cpp b/src/opt/pus/Service20ParameterManagement.cpp index c4e4b5eb1..e28e78046 100644 --- a/src/opt/pus/Service20ParameterManagement.cpp +++ b/src/opt/pus/Service20ParameterManagement.cpp @@ -1,11 +1,11 @@ -#include "Service20ParameterManagement.h" -#include "servicepackets/Service20Packets.h" +#include "fsfw/pus/Service20ParameterManagement.h" +#include "fsfw/pus/servicepackets/Service20Packets.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../parameters/HasParametersIF.h" -#include "../parameters/ParameterMessage.h" -#include "../objectmanager/ObjectManager.h" -#include "../parameters/ReceivesParameterMessagesIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/parameters/HasParametersIF.h" +#include "fsfw/parameters/ParameterMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/parameters/ReceivesParameterMessagesIF.h" Service20ParameterManagement::Service20ParameterManagement(object_id_t objectId, uint16_t apid, diff --git a/src/opt/pus/Service2DeviceAccess.cpp b/src/opt/pus/Service2DeviceAccess.cpp index 4cf75d32e..0e5edfd34 100644 --- a/src/opt/pus/Service2DeviceAccess.cpp +++ b/src/opt/pus/Service2DeviceAccess.cpp @@ -1,15 +1,15 @@ -#include "Service2DeviceAccess.h" -#include "servicepackets/Service2Packets.h" +#include "fsfw/pus/Service2DeviceAccess.h" +#include "fsfw/pus/servicepackets/Service2Packets.h" -#include "../objectmanager/ObjectManager.h" -#include "../devicehandlers/DeviceHandlerIF.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../devicehandlers/DeviceHandlerMessage.h" -#include "../serialize/EndianConverter.h" -#include "../action/ActionMessage.h" -#include "../serialize/SerializeAdapter.h" -#include "../serialize/SerialLinkedListAdapter.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/devicehandlers/DeviceHandlerIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/devicehandlers/DeviceHandlerMessage.h" +#include "fsfw/serialize/EndianConverter.h" +#include "fsfw/action/ActionMessage.h" +#include "fsfw/serialize/SerializeAdapter.h" +#include "fsfw/serialize/SerialLinkedListAdapter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" Service2DeviceAccess::Service2DeviceAccess(object_id_t objectId, uint16_t apid, uint8_t serviceId, uint8_t numberOfParallelCommands, diff --git a/src/opt/pus/Service3Housekeeping.cpp b/src/opt/pus/Service3Housekeeping.cpp index 6b1275b32..2b91f366d 100644 --- a/src/opt/pus/Service3Housekeeping.cpp +++ b/src/opt/pus/Service3Housekeeping.cpp @@ -1,8 +1,8 @@ -#include "Service3Housekeeping.h" -#include "servicepackets/Service3Packets.h" +#include "fsfw/pus/Service3Housekeeping.h" +#include "fsfw/pus/servicepackets/Service3Packets.h" -#include "../objectmanager/ObjectManager.h" -#include "../datapoollocal/HasLocalDataPoolIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/datapoollocal/HasLocalDataPoolIF.h" Service3Housekeeping::Service3Housekeeping(object_id_t objectId, uint16_t apid, uint8_t serviceId): diff --git a/src/opt/pus/Service5EventReporting.cpp b/src/opt/pus/Service5EventReporting.cpp index 0c139f3aa..36aa7e704 100644 --- a/src/opt/pus/Service5EventReporting.cpp +++ b/src/opt/pus/Service5EventReporting.cpp @@ -1,11 +1,11 @@ -#include "Service5EventReporting.h" -#include "servicepackets/Service5Packets.h" +#include "fsfw/pus/Service5EventReporting.h" +#include "fsfw/pus/servicepackets/Service5Packets.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../objectmanager/ObjectManager.h" -#include "../events/EventManagerIF.h" -#include "../ipc/QueueFactory.h" -#include "../tmtcpacket/pus/tm/TmPacketStored.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/events/EventManagerIF.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketStored.h" Service5EventReporting::Service5EventReporting(object_id_t objectId, diff --git a/src/opt/pus/Service8FunctionManagement.cpp b/src/opt/pus/Service8FunctionManagement.cpp index 77b7dc80c..39e872a0f 100644 --- a/src/opt/pus/Service8FunctionManagement.cpp +++ b/src/opt/pus/Service8FunctionManagement.cpp @@ -1,12 +1,12 @@ -#include "Service8FunctionManagement.h" -#include "servicepackets/Service8Packets.h" +#include "fsfw/pus/Service8FunctionManagement.h" +#include "fsfw/pus/servicepackets/Service8Packets.h" -#include "../objectmanager/ObjectManager.h" -#include "../objectmanager/SystemObjectIF.h" -#include "../action/HasActionsIF.h" -#include "../devicehandlers/DeviceHandlerIF.h" -#include "../serialize/SerializeAdapter.h" -#include "../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/action/HasActionsIF.h" +#include "fsfw/devicehandlers/DeviceHandlerIF.h" +#include "fsfw/serialize/SerializeAdapter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" Service8FunctionManagement::Service8FunctionManagement(object_id_t objectId, uint16_t apid, uint8_t serviceId, uint8_t numParallelCommands, diff --git a/src/opt/pus/Service9TimeManagement.cpp b/src/opt/pus/Service9TimeManagement.cpp index 5625bdd8f..619b24056 100644 --- a/src/opt/pus/Service9TimeManagement.cpp +++ b/src/opt/pus/Service9TimeManagement.cpp @@ -1,9 +1,9 @@ -#include "Service9TimeManagement.h" -#include "servicepackets/Service9Packets.h" +#include "fsfw/pus/Service9TimeManagement.h" +#include "fsfw/pus/servicepackets/Service9Packets.h" -#include "../timemanager/CCSDSTime.h" -#include "../events/EventManagerIF.h" -#include "../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/timemanager/CCSDSTime.h" +#include "fsfw/events/EventManagerIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" Service9TimeManagement::Service9TimeManagement(object_id_t objectId, diff --git a/src/opt/rmap/RMAP.cpp b/src/opt/rmap/RMAP.cpp index 7ea6e5329..6ac4904d2 100644 --- a/src/opt/rmap/RMAP.cpp +++ b/src/opt/rmap/RMAP.cpp @@ -1,8 +1,8 @@ -#include "RMAP.h" -#include "rmapStructs.h" -#include "RMAPChannelIF.h" +#include "fsfw/rmap/RMAP.h" +#include "fsfw/rmap/rmapStructs.h" +#include "fsfw/rmap/RMAPChannelIF.h" -#include "../devicehandlers/DeviceCommunicationIF.h" +#include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include diff --git a/src/opt/rmap/RMAPCookie.cpp b/src/opt/rmap/RMAPCookie.cpp index f8fe2d3eb..393a5ce0a 100644 --- a/src/opt/rmap/RMAPCookie.cpp +++ b/src/opt/rmap/RMAPCookie.cpp @@ -1,5 +1,6 @@ -#include "RMAPChannelIF.h" -#include "RMAPCookie.h" +#include "fsfw/rmap/RMAPChannelIF.h" +#include "fsfw/rmap/RMAPCookie.h" + #include diff --git a/src/opt/rmap/RmapDeviceCommunicationIF.cpp b/src/opt/rmap/RmapDeviceCommunicationIF.cpp index d81baabd5..2fab613e4 100644 --- a/src/opt/rmap/RmapDeviceCommunicationIF.cpp +++ b/src/opt/rmap/RmapDeviceCommunicationIF.cpp @@ -1,5 +1,5 @@ -#include "RmapDeviceCommunicationIF.h" -#include "RMAP.h" +#include "fsfw/rmap/RmapDeviceCommunicationIF.h" +#include "fsfw/rmap/RMAP.h" //TODO Cast here are all potential bugs RmapDeviceCommunicationIF::~RmapDeviceCommunicationIF() { diff --git a/src/opt/tmstorage/TmStoreMessage.cpp b/src/opt/tmstorage/TmStoreMessage.cpp index 11af6121e..f63a4757e 100644 --- a/src/opt/tmstorage/TmStoreMessage.cpp +++ b/src/opt/tmstorage/TmStoreMessage.cpp @@ -1,5 +1,5 @@ -#include "TmStoreMessage.h" -#include "../objectmanager/ObjectManager.h" +#include "fsfw/tmstorage/TmStoreMessage.h" +#include "fsfw/objectmanager/ObjectManager.h" TmStoreMessage::~TmStoreMessage() { diff --git a/src/osal/common/tcpipCommon.cpp b/src/osal/common/tcpipCommon.cpp index ca4dbf180..0fdbf867a 100644 --- a/src/osal/common/tcpipCommon.cpp +++ b/src/osal/common/tcpipCommon.cpp @@ -1,7 +1,8 @@ -#include "tcpipCommon.h" -#include +#include "fsfw/platform.h" +#include "fsfw/osal/common/tcpipCommon.h" +#include "fsfw/serviceinterface/ServiceInterface.h" -#ifdef _WIN32 +#ifdef PLATFORM_WIN #include #endif diff --git a/src/osal/freertos/MessageQueue.cpp b/src/osal/freertos/MessageQueue.cpp index cc8bd6a70..017bac391 100644 --- a/src/osal/freertos/MessageQueue.cpp +++ b/src/osal/freertos/MessageQueue.cpp @@ -1,7 +1,7 @@ #include "MessageQueue.h" #include "QueueMapManager.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" MessageQueue::MessageQueue(size_t messageDepth, size_t maxMessageSize): maxMessageSize(maxMessageSize) { diff --git a/src/osal/linux/BinarySemaphore.cpp b/src/osal/linux/BinarySemaphore.cpp index 110b0a909..3ef04cf09 100644 --- a/src/osal/linux/BinarySemaphore.cpp +++ b/src/osal/linux/BinarySemaphore.cpp @@ -1,11 +1,11 @@ -#include "BinarySemaphore.h" -#include "unixUtility.h" -#include "../../serviceinterface/ServiceInterfacePrinter.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/osal/linux/BinarySemaphore.h" +#include "fsfw/osal/linux/unixUtility.h" +#include "fsfw/serviceinterface/ServiceInterfacePrinter.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" #include #include -#include +#include BinarySemaphore::BinarySemaphore() { diff --git a/src/osal/linux/Clock.cpp b/src/osal/linux/Clock.cpp index 960d9c0d7..d79c72be7 100644 --- a/src/osal/linux/Clock.cpp +++ b/src/osal/linux/Clock.cpp @@ -1,5 +1,5 @@ -#include "../../serviceinterface/ServiceInterfaceStream.h" -#include "../../timemanager/Clock.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/Clock.h" #include #include diff --git a/src/osal/linux/CountingSemaphore.cpp b/src/osal/linux/CountingSemaphore.cpp index 752e150b1..cc2117f34 100644 --- a/src/osal/linux/CountingSemaphore.cpp +++ b/src/osal/linux/CountingSemaphore.cpp @@ -1,7 +1,7 @@ -#include "CountingSemaphore.h" -#include "unixUtility.h" +#include "fsfw/osal/linux/CountingSemaphore.h" +#include "fsfw/osal/linux/unixUtility.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/osal/linux/FixedTimeslotTask.cpp b/src/osal/linux/FixedTimeslotTask.cpp index c60c287a7..f66482990 100644 --- a/src/osal/linux/FixedTimeslotTask.cpp +++ b/src/osal/linux/FixedTimeslotTask.cpp @@ -1,7 +1,7 @@ -#include "FixedTimeslotTask.h" +#include "fsfw/osal/linux/FixedTimeslotTask.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/osal/linux/InternalErrorCodes.cpp b/src/osal/linux/InternalErrorCodes.cpp index a01cc72ac..14274535f 100644 --- a/src/osal/linux/InternalErrorCodes.cpp +++ b/src/osal/linux/InternalErrorCodes.cpp @@ -1,4 +1,4 @@ -#include "../../osal/InternalErrorCodes.h" +#include "fsfw/osal/InternalErrorCodes.h" ReturnValue_t InternalErrorCodes::translate(uint8_t code) { //TODO This class can be removed diff --git a/src/osal/linux/MessageQueue.cpp b/src/osal/linux/MessageQueue.cpp index 3c1511439..b068c04fe 100644 --- a/src/osal/linux/MessageQueue.cpp +++ b/src/osal/linux/MessageQueue.cpp @@ -1,8 +1,8 @@ -#include "MessageQueue.h" -#include "unixUtility.h" +#include "fsfw/osal/linux/MessageQueue.h" +#include "fsfw/osal/linux/unixUtility.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" #include diff --git a/src/osal/linux/Mutex.cpp b/src/osal/linux/Mutex.cpp index 33e84aacc..7391c6b5b 100644 --- a/src/osal/linux/Mutex.cpp +++ b/src/osal/linux/Mutex.cpp @@ -1,8 +1,8 @@ -#include "Mutex.h" -#include "unixUtility.h" +#include "fsfw/osal/linux/Mutex.h" +#include "fsfw/osal/linux/unixUtility.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../timemanager/Clock.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/Clock.h" #include #include diff --git a/src/osal/linux/MutexFactory.cpp b/src/osal/linux/MutexFactory.cpp index 80211f8bc..373ff7da2 100644 --- a/src/osal/linux/MutexFactory.cpp +++ b/src/osal/linux/MutexFactory.cpp @@ -1,6 +1,6 @@ -#include "Mutex.h" +#include "fsfw/osal/linux/Mutex.h" -#include "../../ipc/MutexFactory.h" +#include "fsfw/ipc/MutexFactory.h" //TODO: Different variant than the lazy loading in QueueFactory. What's better and why? MutexFactory* MutexFactory::factoryInstance = new MutexFactory(); diff --git a/src/osal/linux/QueueFactory.cpp b/src/osal/linux/QueueFactory.cpp index 44def48a5..1df26ca9f 100644 --- a/src/osal/linux/QueueFactory.cpp +++ b/src/osal/linux/QueueFactory.cpp @@ -1,14 +1,12 @@ -#include "../../ipc/QueueFactory.h" -#include "MessageQueue.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/osal/linux/MessageQueue.h" -#include "../../ipc/messageQueueDefinitions.h" -#include "../../ipc/MessageQueueSenderIF.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/ipc/messageQueueDefinitions.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" #include #include - #include QueueFactory* QueueFactory::factoryInstance = nullptr; diff --git a/src/osal/linux/SemaphoreFactory.cpp b/src/osal/linux/SemaphoreFactory.cpp index cfb5f12dd..0a0974be0 100644 --- a/src/osal/linux/SemaphoreFactory.cpp +++ b/src/osal/linux/SemaphoreFactory.cpp @@ -1,8 +1,7 @@ -#include "BinarySemaphore.h" -#include "CountingSemaphore.h" +#include "fsfw/osal/linux/BinarySemaphore.h" +#include "fsfw/osal/linux/CountingSemaphore.h" -#include "../../tasks/SemaphoreFactory.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/tasks/SemaphoreFactory.h" SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr; diff --git a/src/osal/linux/TaskFactory.cpp b/src/osal/linux/TaskFactory.cpp index 80bf47b7c..53aea0ac0 100644 --- a/src/osal/linux/TaskFactory.cpp +++ b/src/osal/linux/TaskFactory.cpp @@ -1,9 +1,9 @@ -#include "FixedTimeslotTask.h" -#include "PeriodicPosixTask.h" +#include "fsfw/osal/linux/FixedTimeslotTask.h" +#include "fsfw/osal/linux/PeriodicPosixTask.h" -#include "../../tasks/TaskFactory.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/TaskFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" //TODO: Different variant than the lazy loading in QueueFactory. What's better and why? TaskFactory* TaskFactory::factoryInstance = new TaskFactory(); diff --git a/src/osal/linux/Timer.cpp b/src/osal/linux/Timer.cpp index fe0fbebba..dca3112dc 100644 --- a/src/osal/linux/Timer.cpp +++ b/src/osal/linux/Timer.cpp @@ -1,5 +1,5 @@ -#include "Timer.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/osal/linux/Timer.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" #include diff --git a/src/osal/linux/tcpipHelpers.cpp b/src/osal/linux/tcpipHelpers.cpp index d7c644ecb..800c6fb76 100644 --- a/src/osal/linux/tcpipHelpers.cpp +++ b/src/osal/linux/tcpipHelpers.cpp @@ -1,7 +1,7 @@ -#include "../common/tcpipHelpers.h" +#include "fsfw/osal/common/tcpipHelpers.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../tasks/TaskFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/TaskFactory.h" #include #include From 66a79cb86c061a7113a43a21035f1fdb1e082729 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Jul 2021 21:02:53 +0200 Subject: [PATCH 020/136] done --- .../tmtcpacket/pus/tc/TcPacketStoredPus.cpp | 4 ++-- .../tmtcpacket/pus/tm/TmPacketStoredPusC.cpp | 6 +++--- src/osal/common/TcpIpBase.cpp | 4 ++-- src/osal/common/TcpTmTcBridge.cpp | 15 +++++++------- src/osal/common/TcpTmTcServer.cpp | 20 +++++++++---------- src/osal/common/UdpTcPollingTask.cpp | 13 ++++++------ src/osal/common/UdpTmTcBridge.cpp | 10 +++++----- src/osal/linux/PeriodicPosixTask.cpp | 8 ++++---- src/osal/linux/PosixThread.cpp | 6 +++--- src/osal/linux/unixUtility.cpp | 6 +++--- 10 files changed, 47 insertions(+), 45 deletions(-) diff --git a/src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp b/src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp index 426aafdb3..5ea9f5b13 100644 --- a/src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp +++ b/src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp @@ -1,6 +1,6 @@ -#include "TcPacketStoredPus.h" +#include "fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h" -#include "../../../serviceinterface/ServiceInterface.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp b/src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp index 6f8f7fa26..add4f4b9f 100644 --- a/src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp +++ b/src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp @@ -1,7 +1,7 @@ -#include "TmPacketStoredPusC.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h" -#include "../../../serviceinterface/ServiceInterface.h" -#include "../../../tmtcservices/TmTcMessage.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/TmTcMessage.h" #include diff --git a/src/osal/common/TcpIpBase.cpp b/src/osal/common/TcpIpBase.cpp index 0b37e38ca..b6b64e138 100644 --- a/src/osal/common/TcpIpBase.cpp +++ b/src/osal/common/TcpIpBase.cpp @@ -1,5 +1,5 @@ -#include "TcpIpBase.h" -#include "../../platform.h" +#include "fsfw/osal/common/TcpIpBase.h" +#include "fsfw/platform.h" #ifdef PLATFORM_UNIX #include diff --git a/src/osal/common/TcpTmTcBridge.cpp b/src/osal/common/TcpTmTcBridge.cpp index 24fab9a90..24f1a2813 100644 --- a/src/osal/common/TcpTmTcBridge.cpp +++ b/src/osal/common/TcpTmTcBridge.cpp @@ -1,15 +1,16 @@ -#include "TcpTmTcBridge.h" -#include "tcpipHelpers.h" +#include "fsfw/platform.h" +#include "fsfw/osal/common/TcpTmTcBridge.h" +#include "fsfw/osal/common/tcpipHelpers.h" -#include -#include -#include +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/ipc/MutexGuard.h" +#include "fsfw/osal/common/TcpTmTcBridge.h" -#ifdef _WIN32 +#ifdef PLATFORM_WIN #include -#elif defined(__unix__) +#elif defined PLATFORM_UNIX #include #include diff --git a/src/osal/common/TcpTmTcServer.cpp b/src/osal/common/TcpTmTcServer.cpp index 38f72647f..f94449bb8 100644 --- a/src/osal/common/TcpTmTcServer.cpp +++ b/src/osal/common/TcpTmTcServer.cpp @@ -1,15 +1,15 @@ -#include "TcpTmTcServer.h" -#include "TcpTmTcBridge.h" -#include "tcpipHelpers.h" +#include "fsfw/osal/common/TcpTmTcServer.h" +#include "fsfw/osal/common/TcpTmTcBridge.h" +#include "fsfw/osal/common/tcpipHelpers.h" -#include "../../platform.h" -#include "../../container/SharedRingBuffer.h" -#include "../../ipc/MessageQueueSenderIF.h" -#include "../../ipc/MutexGuard.h" -#include "../../objectmanager/ObjectManager.h" +#include "fsfw/platform.h" +#include "fsfw/container/SharedRingBuffer.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" +#include "fsfw/ipc/MutexGuard.h" +#include "fsfw/objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../tmtcservices/TmTcMessage.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tmtcservices/TmTcMessage.h" #ifdef PLATFORM_WIN #include diff --git a/src/osal/common/UdpTcPollingTask.cpp b/src/osal/common/UdpTcPollingTask.cpp index 4453e1bc2..35e086ee0 100644 --- a/src/osal/common/UdpTcPollingTask.cpp +++ b/src/osal/common/UdpTcPollingTask.cpp @@ -1,9 +1,10 @@ -#include "UdpTcPollingTask.h" -#include "tcpipHelpers.h" -#include "../../platform.h" -#include "../../globalfunctions/arrayprinter.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../objectmanager/ObjectManager.h" +#include "fsfw/osal/common/UdpTcPollingTask.h" +#include "fsfw/osal/common/tcpipHelpers.h" + +#include "fsfw/platform.h" +#include "fsfw/globalfunctions/arrayprinter.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" #ifdef PLATFORM_WIN #include diff --git a/src/osal/common/UdpTmTcBridge.cpp b/src/osal/common/UdpTmTcBridge.cpp index 4c83385ba..7015cf4a5 100644 --- a/src/osal/common/UdpTmTcBridge.cpp +++ b/src/osal/common/UdpTmTcBridge.cpp @@ -1,9 +1,9 @@ -#include "UdpTmTcBridge.h" -#include "tcpipHelpers.h" +#include "fsfw/osal/common/UdpTmTcBridge.h" +#include "fsfw/osal/common/tcpipHelpers.h" -#include "../../platform.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../ipc/MutexGuard.h" +#include "fsfw/platform.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/ipc/MutexGuard.h" #ifdef PLATFORM_WIN #include diff --git a/src/osal/linux/PeriodicPosixTask.cpp b/src/osal/linux/PeriodicPosixTask.cpp index c0152bec2..0603cf6ab 100644 --- a/src/osal/linux/PeriodicPosixTask.cpp +++ b/src/osal/linux/PeriodicPosixTask.cpp @@ -1,8 +1,8 @@ -#include "PeriodicPosixTask.h" +#include "fsfw/osal/linux/PeriodicPosixTask.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../tasks/ExecutableObjectIF.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/osal/linux/PosixThread.cpp b/src/osal/linux/PosixThread.cpp index 36501282a..5ca41d73f 100644 --- a/src/osal/linux/PosixThread.cpp +++ b/src/osal/linux/PosixThread.cpp @@ -1,7 +1,7 @@ -#include "PosixThread.h" -#include "unixUtility.h" +#include "fsfw/osal/linux/PosixThread.h" +#include "fsfw/osal/linux/unixUtility.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include #include diff --git a/src/osal/linux/unixUtility.cpp b/src/osal/linux/unixUtility.cpp index d7aab4ba7..40d8c2129 100644 --- a/src/osal/linux/unixUtility.cpp +++ b/src/osal/linux/unixUtility.cpp @@ -1,6 +1,6 @@ -#include "FSFWConfig.h" -#include "unixUtility.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/FSFW.h" +#include "fsfw/osal/linux/unixUtility.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include #include From d5dfffda2dfca299038f3b9b096efcd315289fb7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 00:54:39 +0200 Subject: [PATCH 021/136] corrections for freertos osal --- inc/fsfw/osal/freertos/BinSemaphUsingTask.h | 4 ++-- inc/fsfw/osal/freertos/BinarySemaphore.h | 4 ++-- inc/fsfw/osal/freertos/CountingSemaphUsingTask.h | 2 +- inc/fsfw/osal/freertos/FixedTimeslotTask.h | 6 +++--- inc/fsfw/osal/freertos/MessageQueue.h | 8 ++++---- inc/fsfw/osal/freertos/Mutex.h | 2 +- inc/fsfw/osal/freertos/PeriodicTask.h | 6 +++--- inc/fsfw/osal/freertos/QueueMapManager.h | 6 +++--- inc/fsfw/tasks/SemaphoreFactory.h | 2 +- src/osal/CMakeLists.txt | 2 +- src/osal/freertos/BinSemaphUsingTask.cpp | 6 +++--- src/osal/freertos/BinarySemaphore.cpp | 6 +++--- src/osal/freertos/Clock.cpp | 10 +++++----- src/osal/freertos/CountingSemaphUsingTask.cpp | 6 +++--- src/osal/freertos/CountingSemaphore.cpp | 6 +++--- src/osal/freertos/FixedTimeslotTask.cpp | 6 +++--- src/osal/freertos/MessageQueue.cpp | 5 +++-- src/osal/freertos/Mutex.cpp | 4 ++-- src/osal/freertos/MutexFactory.cpp | 4 ++-- src/osal/freertos/PeriodicTask.cpp | 8 ++++---- src/osal/freertos/QueueFactory.cpp | 6 +++--- src/osal/freertos/QueueMapManager.cpp | 6 +++--- src/osal/freertos/SemaphoreFactory.cpp | 12 ++++++------ src/osal/freertos/TaskFactory.cpp | 9 ++++----- src/osal/freertos/TaskManagement.cpp | 2 +- src/osal/freertos/Timekeeper.cpp | 2 +- 26 files changed, 70 insertions(+), 70 deletions(-) diff --git a/inc/fsfw/osal/freertos/BinSemaphUsingTask.h b/inc/fsfw/osal/freertos/BinSemaphUsingTask.h index 895ccefbd..0645b1fad 100644 --- a/inc/fsfw/osal/freertos/BinSemaphUsingTask.h +++ b/inc/fsfw/osal/freertos/BinSemaphUsingTask.h @@ -1,8 +1,8 @@ #ifndef FSFW_OSAL_FREERTOS_BINSEMAPHUSINGTASK_H_ #define FSFW_OSAL_FREERTOS_BINSEMAPHUSINGTASK_H_ -#include "../../returnvalues/HasReturnvaluesIF.h" -#include "../../tasks/SemaphoreIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/SemaphoreIF.h" #include "FreeRTOS.h" #include "task.h" diff --git a/inc/fsfw/osal/freertos/BinarySemaphore.h b/inc/fsfw/osal/freertos/BinarySemaphore.h index 2335292bd..1ae56ff66 100644 --- a/inc/fsfw/osal/freertos/BinarySemaphore.h +++ b/inc/fsfw/osal/freertos/BinarySemaphore.h @@ -1,8 +1,8 @@ #ifndef FSFW_OSAL_FREERTOS_BINARYSEMPAHORE_H_ #define FSFW_OSAL_FREERTOS_BINARYSEMPAHORE_H_ -#include "../../returnvalues/HasReturnvaluesIF.h" -#include "../../tasks/SemaphoreIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/SemaphoreIF.h" #include "FreeRTOS.h" #include "semphr.h" diff --git a/inc/fsfw/osal/freertos/CountingSemaphUsingTask.h b/inc/fsfw/osal/freertos/CountingSemaphUsingTask.h index 9ac99c315..eb2fc67bd 100644 --- a/inc/fsfw/osal/freertos/CountingSemaphUsingTask.h +++ b/inc/fsfw/osal/freertos/CountingSemaphUsingTask.h @@ -2,7 +2,7 @@ #define FSFW_OSAL_FREERTOS_COUNTINGSEMAPHUSINGTASK_H_ #include "CountingSemaphUsingTask.h" -#include "../../tasks/SemaphoreIF.h" +#include "fsfw/tasks/SemaphoreIF.h" #include "FreeRTOS.h" #include "task.h" diff --git a/inc/fsfw/osal/freertos/FixedTimeslotTask.h b/inc/fsfw/osal/freertos/FixedTimeslotTask.h index 7494581cf..ebd902cca 100644 --- a/inc/fsfw/osal/freertos/FixedTimeslotTask.h +++ b/inc/fsfw/osal/freertos/FixedTimeslotTask.h @@ -2,9 +2,9 @@ #define FSFW_OSAL_FREERTOS_FIXEDTIMESLOTTASK_H_ #include "FreeRTOSTaskIF.h" -#include "../../tasks/FixedSlotSequence.h" -#include "../../tasks/FixedTimeslotTaskIF.h" -#include "../../tasks/Typedef.h" +#include "fsfw/tasks/FixedSlotSequence.h" +#include "fsfw/tasks/FixedTimeslotTaskIF.h" +#include "fsfw/tasks/Typedef.h" #include "FreeRTOS.h" #include "task.h" diff --git a/inc/fsfw/osal/freertos/MessageQueue.h b/inc/fsfw/osal/freertos/MessageQueue.h index 58324cc61..ba8352118 100644 --- a/inc/fsfw/osal/freertos/MessageQueue.h +++ b/inc/fsfw/osal/freertos/MessageQueue.h @@ -3,10 +3,10 @@ #include "TaskManagement.h" -#include "../../internalError/InternalErrorReporterIF.h" -#include "../../ipc/MessageQueueIF.h" -#include "../../ipc/MessageQueueMessageIF.h" -#include "../../ipc/MessageQueueMessage.h" +#include "fsfw/internalerror/InternalErrorReporterIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/MessageQueueMessageIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" #include "FreeRTOS.h" #include "queue.h" diff --git a/inc/fsfw/osal/freertos/Mutex.h b/inc/fsfw/osal/freertos/Mutex.h index 877359d84..082679c72 100644 --- a/inc/fsfw/osal/freertos/Mutex.h +++ b/inc/fsfw/osal/freertos/Mutex.h @@ -1,7 +1,7 @@ #ifndef FRAMEWORK_FREERTOS_MUTEX_H_ #define FRAMEWORK_FREERTOS_MUTEX_H_ -#include "../../ipc/MutexIF.h" +#include "fsfw/ipc/MutexIF.h" #include "FreeRTOS.h" #include "semphr.h" diff --git a/inc/fsfw/osal/freertos/PeriodicTask.h b/inc/fsfw/osal/freertos/PeriodicTask.h index 04d40fcf3..e910a0c63 100644 --- a/inc/fsfw/osal/freertos/PeriodicTask.h +++ b/inc/fsfw/osal/freertos/PeriodicTask.h @@ -2,9 +2,9 @@ #define FSFW_OSAL_FREERTOS_PERIODICTASK_H_ #include "FreeRTOSTaskIF.h" -#include "../../objectmanager/ObjectManagerIF.h" -#include "../../tasks/PeriodicTaskIF.h" -#include "../../tasks/Typedef.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/tasks/PeriodicTaskIF.h" +#include "fsfw/tasks/Typedef.h" #include "FreeRTOS.h" #include "task.h" diff --git a/inc/fsfw/osal/freertos/QueueMapManager.h b/inc/fsfw/osal/freertos/QueueMapManager.h index 07ca8b9e8..3aa82594c 100644 --- a/inc/fsfw/osal/freertos/QueueMapManager.h +++ b/inc/fsfw/osal/freertos/QueueMapManager.h @@ -1,9 +1,9 @@ #ifndef FSFW_OSAL_FREERTOS_QUEUEMAPMANAGER_H_ #define FSFW_OSAL_FREERTOS_QUEUEMAPMANAGER_H_ -#include "../../ipc/MutexIF.h" -#include "../../ipc/messageQueueDefinitions.h" -#include "../../ipc/MessageQueueIF.h" +#include "fsfw/ipc/MutexIF.h" +#include "fsfw/ipc/messageQueueDefinitions.h" +#include "fsfw/ipc/MessageQueueIF.h" #include "FreeRTOS.h" #include "queue.h" diff --git a/inc/fsfw/tasks/SemaphoreFactory.h b/inc/fsfw/tasks/SemaphoreFactory.h index 01c09d1b5..2df7d53f5 100644 --- a/inc/fsfw/tasks/SemaphoreFactory.h +++ b/inc/fsfw/tasks/SemaphoreFactory.h @@ -1,7 +1,7 @@ #ifndef FSFW_TASKS_SEMAPHOREFACTORY_H_ #define FSFW_TASKS_SEMAPHOREFACTORY_H_ -#include "../tasks/SemaphoreIF.h" +#include "fsfw/tasks/SemaphoreIF.h" /** * Creates Semaphore. diff --git a/src/osal/CMakeLists.txt b/src/osal/CMakeLists.txt index 0e28bd3c1..f3c5cfadc 100644 --- a/src/osal/CMakeLists.txt +++ b/src/osal/CMakeLists.txt @@ -1,6 +1,6 @@ # Check the OS_FSFW variable if(FSFW_OSAL MATCHES "freertos") - add_subdirectory(FreeRTOS) + add_subdirectory(freertos) elseif(FSFW_OSAL MATCHES "rtems") add_subdirectory(rtems) elseif(FSFW_OSAL MATCHES "linux") diff --git a/src/osal/freertos/BinSemaphUsingTask.cpp b/src/osal/freertos/BinSemaphUsingTask.cpp index 7d609aeed..637c1925f 100644 --- a/src/osal/freertos/BinSemaphUsingTask.cpp +++ b/src/osal/freertos/BinSemaphUsingTask.cpp @@ -1,6 +1,6 @@ -#include "BinSemaphUsingTask.h" -#include "TaskManagement.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/osal/freertos/BinSemaphUsingTask.h" +#include "fsfw/osal/freertos/TaskManagement.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ tskKERNEL_VERSION_MAJOR > 8 diff --git a/src/osal/freertos/BinarySemaphore.cpp b/src/osal/freertos/BinarySemaphore.cpp index c0349b7c9..4ec5d30f8 100644 --- a/src/osal/freertos/BinarySemaphore.cpp +++ b/src/osal/freertos/BinarySemaphore.cpp @@ -1,6 +1,6 @@ -#include "BinarySemaphore.h" -#include "TaskManagement.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/osal/freertos/BinarySemaphore.h" +#include "fsfw/osal/freertos/TaskManagement.h" +#include "fsfw/serviceinterface/ServiceInterface.h" BinarySemaphore::BinarySemaphore() { handle = xSemaphoreCreateBinary(); diff --git a/src/osal/freertos/Clock.cpp b/src/osal/freertos/Clock.cpp index a81f6985b..eddf2fec4 100644 --- a/src/osal/freertos/Clock.cpp +++ b/src/osal/freertos/Clock.cpp @@ -1,13 +1,13 @@ -#include "Timekeeper.h" +#include "fsfw/osal/freertos/Timekeeper.h" -#include "../../timemanager/Clock.h" -#include "../../globalfunctions/timevalOperations.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/globalfunctions/timevalOperations.h" #include "FreeRTOS.h" #include "task.h" -#include -#include +#include +#include //TODO sanitize input? //TODO much of this code can be reused for tick-only systems diff --git a/src/osal/freertos/CountingSemaphUsingTask.cpp b/src/osal/freertos/CountingSemaphUsingTask.cpp index 750ea9d65..a34a6508b 100644 --- a/src/osal/freertos/CountingSemaphUsingTask.cpp +++ b/src/osal/freertos/CountingSemaphUsingTask.cpp @@ -1,7 +1,7 @@ -#include "CountingSemaphUsingTask.h" -#include "TaskManagement.h" +#include "fsfw/osal/freertos/CountingSemaphUsingTask.h" +#include "fsfw/osal/freertos/TaskManagement.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ tskKERNEL_VERSION_MAJOR > 8 diff --git a/src/osal/freertos/CountingSemaphore.cpp b/src/osal/freertos/CountingSemaphore.cpp index 148803a6b..90dc771f4 100644 --- a/src/osal/freertos/CountingSemaphore.cpp +++ b/src/osal/freertos/CountingSemaphore.cpp @@ -1,7 +1,7 @@ -#include "CountingSemaphore.h" -#include "TaskManagement.h" +#include "fsfw/osal/freertos/CountingSemaphore.h" +#include "fsfw/osal/freertos/TaskManagement.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include "FreeRTOS.h" #include "semphr.h" diff --git a/src/osal/freertos/FixedTimeslotTask.cpp b/src/osal/freertos/FixedTimeslotTask.cpp index a722c9585..9690991d7 100644 --- a/src/osal/freertos/FixedTimeslotTask.cpp +++ b/src/osal/freertos/FixedTimeslotTask.cpp @@ -1,7 +1,7 @@ -#include "FixedTimeslotTask.h" +#include "fsfw/osal/freertos/FixedTimeslotTask.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" uint32_t FixedTimeslotTask::deadlineMissedCount = 0; const size_t PeriodicTaskIF::MINIMUM_STACK_SIZE = configMINIMAL_STACK_SIZE; diff --git a/src/osal/freertos/MessageQueue.cpp b/src/osal/freertos/MessageQueue.cpp index 017bac391..487fa8648 100644 --- a/src/osal/freertos/MessageQueue.cpp +++ b/src/osal/freertos/MessageQueue.cpp @@ -1,5 +1,6 @@ -#include "MessageQueue.h" -#include "QueueMapManager.h" +#include "fsfw/osal/freertos/MessageQueue.h" +#include "fsfw/osal/freertos/QueueMapManager.h" + #include "fsfw/objectmanager/ObjectManager.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/src/osal/freertos/Mutex.cpp b/src/osal/freertos/Mutex.cpp index 0b85ca135..8d1313e6a 100644 --- a/src/osal/freertos/Mutex.cpp +++ b/src/osal/freertos/Mutex.cpp @@ -1,6 +1,6 @@ -#include "Mutex.h" +#include "fsfw/osal/freertos/Mutex.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/serviceinterface/ServiceInterface.h" Mutex::Mutex() { handle = xSemaphoreCreateMutex(); diff --git a/src/osal/freertos/MutexFactory.cpp b/src/osal/freertos/MutexFactory.cpp index d9569e35d..f8b48c7d0 100644 --- a/src/osal/freertos/MutexFactory.cpp +++ b/src/osal/freertos/MutexFactory.cpp @@ -1,6 +1,6 @@ -#include "Mutex.h" +#include "fsfw/osal/freertos/Mutex.h" -#include "../../ipc/MutexFactory.h" +#include "fsfw/ipc/MutexFactory.h" //TODO: Different variant than the lazy loading in QueueFactory. diff --git a/src/osal/freertos/PeriodicTask.cpp b/src/osal/freertos/PeriodicTask.cpp index 42d6681d3..7ef1c837c 100644 --- a/src/osal/freertos/PeriodicTask.cpp +++ b/src/osal/freertos/PeriodicTask.cpp @@ -1,8 +1,8 @@ -#include "PeriodicTask.h" +#include "fsfw/osal/freertos/PeriodicTask.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../tasks/ExecutableObjectIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/ExecutableObjectIF.h" PeriodicTask::PeriodicTask(const char *name, TaskPriority setPriority, TaskStackSize setStack, TaskPeriod setPeriod, diff --git a/src/osal/freertos/QueueFactory.cpp b/src/osal/freertos/QueueFactory.cpp index ed29e10cf..536c16c0e 100644 --- a/src/osal/freertos/QueueFactory.cpp +++ b/src/osal/freertos/QueueFactory.cpp @@ -1,7 +1,7 @@ -#include "MessageQueue.h" +#include "fsfw/osal/freertos/MessageQueue.h" -#include "../../ipc/MessageQueueSenderIF.h" -#include "../../ipc/QueueFactory.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" +#include "fsfw/ipc/QueueFactory.h" QueueFactory* QueueFactory::factoryInstance = nullptr; diff --git a/src/osal/freertos/QueueMapManager.cpp b/src/osal/freertos/QueueMapManager.cpp index 51cfe11db..d2783f01f 100644 --- a/src/osal/freertos/QueueMapManager.cpp +++ b/src/osal/freertos/QueueMapManager.cpp @@ -1,6 +1,6 @@ -#include "QueueMapManager.h" -#include "../../ipc/MutexFactory.h" -#include "../../ipc/MutexGuard.h" +#include "fsfw/osal/freertos/QueueMapManager.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/ipc/MutexGuard.h" QueueMapManager* QueueMapManager::mqManagerInstance = nullptr; diff --git a/src/osal/freertos/SemaphoreFactory.cpp b/src/osal/freertos/SemaphoreFactory.cpp index 614af75dd..b6e8f86e1 100644 --- a/src/osal/freertos/SemaphoreFactory.cpp +++ b/src/osal/freertos/SemaphoreFactory.cpp @@ -1,10 +1,10 @@ -#include "BinarySemaphore.h" -#include "BinSemaphUsingTask.h" -#include "CountingSemaphore.h" -#include "CountingSemaphUsingTask.h" +#include "fsfw/osal/freertos/BinarySemaphore.h" +#include "fsfw/osal/freertos/BinSemaphUsingTask.h" +#include "fsfw/osal/freertos/CountingSemaphore.h" +#include "fsfw/osal/freertos/CountingSemaphUsingTask.h" -#include "../../tasks/SemaphoreFactory.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/SemaphoreFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr; diff --git a/src/osal/freertos/TaskFactory.cpp b/src/osal/freertos/TaskFactory.cpp index 5b64811ae..21ca80cb0 100644 --- a/src/osal/freertos/TaskFactory.cpp +++ b/src/osal/freertos/TaskFactory.cpp @@ -1,9 +1,8 @@ -#include "../../tasks/TaskFactory.h" -#include "../../returnvalues/HasReturnvaluesIF.h" - -#include "PeriodicTask.h" -#include "FixedTimeslotTask.h" +#include "fsfw/tasks/TaskFactory.h" +#include "fsfw/osal/freertos/PeriodicTask.h" +#include "fsfw/osal/freertos/FixedTimeslotTask.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" TaskFactory* TaskFactory::factoryInstance = new TaskFactory(); diff --git a/src/osal/freertos/TaskManagement.cpp b/src/osal/freertos/TaskManagement.cpp index c0d0067e9..f19aa4fdc 100644 --- a/src/osal/freertos/TaskManagement.cpp +++ b/src/osal/freertos/TaskManagement.cpp @@ -1,4 +1,4 @@ -#include "TaskManagement.h" +#include "fsfw/osal/freertos/TaskManagement.h" void TaskManagement::vRequestContextSwitchFromTask() { vTaskDelay(0); diff --git a/src/osal/freertos/Timekeeper.cpp b/src/osal/freertos/Timekeeper.cpp index 1031f0c4d..1b7dc7414 100644 --- a/src/osal/freertos/Timekeeper.cpp +++ b/src/osal/freertos/Timekeeper.cpp @@ -1,4 +1,4 @@ -#include "Timekeeper.h" +#include "fsfw/osal/freertos/Timekeeper.h" #include "FreeRTOSConfig.h" From 4803fb2cbdc0c68230ddd8ad2f4244035bb8d5a0 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 01:27:15 +0200 Subject: [PATCH 022/136] important bugfix for queue map manager --- src/osal/freertos/QueueMapManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osal/freertos/QueueMapManager.cpp b/src/osal/freertos/QueueMapManager.cpp index d2783f01f..dcb88a1e3 100644 --- a/src/osal/freertos/QueueMapManager.cpp +++ b/src/osal/freertos/QueueMapManager.cpp @@ -17,7 +17,7 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueueId_t* id) { MutexGuard lock(mapLock); - uint32_t currentId = queueCounter++; + uint32_t currentId = ++queueCounter; auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { #if FSFW_CPP_OSTREAM_ENABLED == 1 From 82299c7e3e2df65f9dc6a8f8f1310bcfcda727b2 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:22:58 +0200 Subject: [PATCH 023/136] new test folder --- CMakeLists.txt | 10 +++--- src/CMakeLists.txt | 1 - src/tests/CMakeLists.txt | 5 --- src/tests/internal/internal.mk | 4 --- src/tests/internal/serialize/CMakeLists.txt | 3 -- .../tests/globalfunctions/CMakeLists.txt | 3 -- src/tests/tests/tests.mk | 8 ----- src/tests/user/unlockRealtime.sh | 34 ------------------- tests/CMakeLists.txt | 2 ++ tests/inc/CMakeLists.txt | 3 ++ .../fsfw}/tests/internal/InternalUnitTester.h | 6 ++-- .../fsfw}/tests/internal/UnittDefinitions.h | 5 +-- .../globalfunctions/TestArrayPrinter.h | 0 .../inc/fsfw}/tests/internal/osal/IntTestMq.h | 0 .../fsfw}/tests/internal/osal/IntTestMutex.h | 0 .../tests/internal/osal/IntTestSemaphore.h | 0 .../internal/serialize/IntTestSerialization.h | 2 +- tests/src/CMakeLists.txt | 7 ++++ .../src}/internal/CMakeLists.txt | 2 +- .../src}/internal/InternalUnitTester.cpp | 17 +++++----- .../src}/internal/UnittDefinitions.cpp | 2 +- .../internal/globalfunctions/CMakeLists.txt | 3 ++ .../globalfunctions/TestArrayPrinter.cpp | 2 +- .../src}/internal/osal/CMakeLists.txt | 2 +- .../src}/internal/osal/IntTestMq.cpp | 5 ++- .../src}/internal/osal/IntTestMutex.cpp | 4 +-- .../src}/internal/osal/IntTestSemaphore.cpp | 6 ++-- tests/src/internal/serialize/CMakeLists.txt | 3 ++ .../serialize/IntTestSerialization.cpp | 4 +-- {src/tests => tests/src}/tests/CMakeLists.txt | 1 - .../src}/tests/action/CMakeLists.txt | 0 .../src}/tests/action/TestActionHelper.cpp | 0 .../src}/tests/action/TestActionHelper.h | 0 .../src}/tests/container/CMakeLists.txt | 0 .../src}/tests/container/RingBufferTest.cpp | 0 .../src}/tests/container/TestArrayList.cpp | 0 .../src}/tests/container/TestDynamicFifo.cpp | 0 .../src}/tests/container/TestFifo.cpp | 0 .../tests/container/TestFixedArrayList.cpp | 0 .../src}/tests/container/TestFixedMap.cpp | 0 .../container/TestFixedOrderedMultimap.cpp | 0 .../tests/container/TestPlacementFactory.cpp | 0 .../src}/tests/datapoollocal/CMakeLists.txt | 0 .../src}/tests/datapoollocal/DataSetTest.cpp | 0 .../datapoollocal/LocalPoolManagerTest.cpp | 0 .../datapoollocal/LocalPoolOwnerBase.cpp | 0 .../tests/datapoollocal/LocalPoolOwnerBase.h | 0 .../datapoollocal/LocalPoolVariableTest.cpp | 0 .../datapoollocal/LocalPoolVectorTest.cpp | 0 .../src/tests}/globalfunctions/CMakeLists.txt | 0 .../src}/tests/mocks/HkReceiverMock.h | 0 .../src}/tests/mocks/MessageQueueMockBase.h | 0 .../src}/tests/osal/CMakeLists.txt | 0 .../src}/tests/osal/TestMessageQueue.cpp | 0 .../src}/tests/osal/TestSemaphore.cpp | 0 .../src}/tests/serialize/CMakeLists.txt | 0 .../serialize/TestSerialBufferAdapter.cpp | 0 .../serialize/TestSerialLinkedPacket.cpp | 0 .../tests/serialize/TestSerialLinkedPacket.h | 0 .../tests/serialize/TestSerialization.cpp | 0 .../src}/tests/storagemanager/CMakeLists.txt | 0 .../tests/storagemanager/TestNewAccessor.cpp | 0 .../src}/tests/storagemanager/TestPool.cpp | 0 .../src}/tests/tmtcpacket/CMakeLists.txt | 0 .../src}/tests/tmtcpacket/PusTmTest.cpp | 0 {src/tests => tests}/user/CMakeLists.txt | 0 {src/tests => tests/user}/README.md | 0 {src/tests => tests/user}/lcov.sh | 0 .../user/testcfg/CMakeLists.txt | 0 .../tests => tests}/user/testcfg/FSFWConfig.h | 0 .../user/testcfg/Makefile-FSFW-Tests | 0 .../user/testcfg/TestsConfig.h | 0 .../user/testcfg/cdatapool/dataPoolInit.cpp | 0 .../user/testcfg/cdatapool/dataPoolInit.h | 0 .../user/testcfg/devices/logicalAddresses.cpp | 0 .../user/testcfg/devices/logicalAddresses.h | 0 .../testcfg/devices/powerSwitcherList.cpp | 0 .../user/testcfg/devices/powerSwitcherList.h | 0 .../user/testcfg/events/subsystemIdRanges.h | 0 .../user/testcfg/ipc/MissionMessageTypes.cpp | 0 .../user/testcfg/ipc/MissionMessageTypes.h | 0 .../user/testcfg/objects/systemObjectList.h | 0 .../PollingSequenceFactory.cpp | 0 .../pollingsequence/PollingSequenceFactory.h | 0 .../user/testcfg/returnvalues/classIds.h | 0 {src/tests => tests}/user/testcfg/testcfg.mk | 0 {src/tests => tests}/user/testcfg/tmtc/apid.h | 0 .../user/testcfg/tmtc/pusIds.h | 0 .../user/testtemplate/TestTemplate.cpp | 0 .../user/unittest/CMakeLists.txt | 0 .../user/unittest/core/CMakeLists.txt | 0 .../user/unittest/core/CatchDefinitions.cpp | 0 .../user/unittest/core/CatchDefinitions.h | 0 .../user/unittest/core/CatchFactory.cpp | 0 .../user/unittest/core/CatchFactory.h | 0 .../user/unittest/core/CatchRunner.cpp | 0 .../user/unittest/core/CatchSetup.cpp | 0 .../user/unittest/core/core.mk | 0 .../user/unittest/core/printChar.cpp | 0 .../user/unittest/core/printChar.h | 0 100 files changed, 53 insertions(+), 91 deletions(-) delete mode 100644 src/tests/CMakeLists.txt delete mode 100644 src/tests/internal/internal.mk delete mode 100644 src/tests/internal/serialize/CMakeLists.txt delete mode 100644 src/tests/tests/globalfunctions/CMakeLists.txt delete mode 100644 src/tests/tests/tests.mk delete mode 100644 src/tests/user/unlockRealtime.sh create mode 100644 tests/CMakeLists.txt create mode 100644 tests/inc/CMakeLists.txt rename {src => tests/inc/fsfw}/tests/internal/InternalUnitTester.h (80%) rename {src => tests/inc/fsfw}/tests/internal/UnittDefinitions.h (88%) rename {src => tests/inc/fsfw}/tests/internal/globalfunctions/TestArrayPrinter.h (100%) rename {src => tests/inc/fsfw}/tests/internal/osal/IntTestMq.h (100%) rename {src => tests/inc/fsfw}/tests/internal/osal/IntTestMutex.h (100%) rename {src => tests/inc/fsfw}/tests/internal/osal/IntTestSemaphore.h (100%) rename {src => tests/inc/fsfw}/tests/internal/serialize/IntTestSerialization.h (88%) create mode 100644 tests/src/CMakeLists.txt rename {src/tests => tests/src}/internal/CMakeLists.txt (57%) rename {src/tests => tests/src}/internal/InternalUnitTester.cpp (57%) rename {src/tests => tests/src}/internal/UnittDefinitions.cpp (87%) create mode 100644 tests/src/internal/globalfunctions/CMakeLists.txt rename {src/tests => tests/src}/internal/globalfunctions/TestArrayPrinter.cpp (94%) rename {src/tests => tests/src}/internal/osal/CMakeLists.txt (58%) rename {src/tests => tests/src}/internal/osal/IntTestMq.cpp (93%) rename {src/tests => tests/src}/internal/osal/IntTestMutex.cpp (92%) rename {src/tests => tests/src}/internal/osal/IntTestSemaphore.cpp (96%) create mode 100644 tests/src/internal/serialize/CMakeLists.txt rename {src/tests => tests/src}/internal/serialize/IntTestSerialization.cpp (98%) rename {src/tests => tests/src}/tests/CMakeLists.txt (99%) rename {src/tests => tests/src}/tests/action/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/action/TestActionHelper.cpp (100%) rename {src/tests => tests/src}/tests/action/TestActionHelper.h (100%) rename {src/tests => tests/src}/tests/container/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/container/RingBufferTest.cpp (100%) rename {src/tests => tests/src}/tests/container/TestArrayList.cpp (100%) rename {src/tests => tests/src}/tests/container/TestDynamicFifo.cpp (100%) rename {src/tests => tests/src}/tests/container/TestFifo.cpp (100%) rename {src/tests => tests/src}/tests/container/TestFixedArrayList.cpp (100%) rename {src/tests => tests/src}/tests/container/TestFixedMap.cpp (100%) rename {src/tests => tests/src}/tests/container/TestFixedOrderedMultimap.cpp (100%) rename {src/tests => tests/src}/tests/container/TestPlacementFactory.cpp (100%) rename {src/tests => tests/src}/tests/datapoollocal/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/datapoollocal/DataSetTest.cpp (100%) rename {src/tests => tests/src}/tests/datapoollocal/LocalPoolManagerTest.cpp (100%) rename {src/tests => tests/src}/tests/datapoollocal/LocalPoolOwnerBase.cpp (100%) rename {src/tests => tests/src}/tests/datapoollocal/LocalPoolOwnerBase.h (100%) rename {src/tests => tests/src}/tests/datapoollocal/LocalPoolVariableTest.cpp (100%) rename {src/tests => tests/src}/tests/datapoollocal/LocalPoolVectorTest.cpp (100%) rename {src/tests/internal => tests/src/tests}/globalfunctions/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/mocks/HkReceiverMock.h (100%) rename {src/tests => tests/src}/tests/mocks/MessageQueueMockBase.h (100%) rename {src/tests => tests/src}/tests/osal/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/osal/TestMessageQueue.cpp (100%) rename {src/tests => tests/src}/tests/osal/TestSemaphore.cpp (100%) rename {src/tests => tests/src}/tests/serialize/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/serialize/TestSerialBufferAdapter.cpp (100%) rename {src/tests => tests/src}/tests/serialize/TestSerialLinkedPacket.cpp (100%) rename {src/tests => tests/src}/tests/serialize/TestSerialLinkedPacket.h (100%) rename {src/tests => tests/src}/tests/serialize/TestSerialization.cpp (100%) rename {src/tests => tests/src}/tests/storagemanager/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/storagemanager/TestNewAccessor.cpp (100%) rename {src/tests => tests/src}/tests/storagemanager/TestPool.cpp (100%) rename {src/tests => tests/src}/tests/tmtcpacket/CMakeLists.txt (100%) rename {src/tests => tests/src}/tests/tmtcpacket/PusTmTest.cpp (100%) rename {src/tests => tests}/user/CMakeLists.txt (100%) rename {src/tests => tests/user}/README.md (100%) rename {src/tests => tests/user}/lcov.sh (100%) rename {src/tests => tests}/user/testcfg/CMakeLists.txt (100%) rename {src/tests => tests}/user/testcfg/FSFWConfig.h (100%) rename {src/tests => tests}/user/testcfg/Makefile-FSFW-Tests (100%) rename {src/tests => tests}/user/testcfg/TestsConfig.h (100%) rename {src/tests => tests}/user/testcfg/cdatapool/dataPoolInit.cpp (100%) rename {src/tests => tests}/user/testcfg/cdatapool/dataPoolInit.h (100%) rename {src/tests => tests}/user/testcfg/devices/logicalAddresses.cpp (100%) rename {src/tests => tests}/user/testcfg/devices/logicalAddresses.h (100%) rename {src/tests => tests}/user/testcfg/devices/powerSwitcherList.cpp (100%) rename {src/tests => tests}/user/testcfg/devices/powerSwitcherList.h (100%) rename {src/tests => tests}/user/testcfg/events/subsystemIdRanges.h (100%) rename {src/tests => tests}/user/testcfg/ipc/MissionMessageTypes.cpp (100%) rename {src/tests => tests}/user/testcfg/ipc/MissionMessageTypes.h (100%) rename {src/tests => tests}/user/testcfg/objects/systemObjectList.h (100%) rename {src/tests => tests}/user/testcfg/pollingsequence/PollingSequenceFactory.cpp (100%) rename {src/tests => tests}/user/testcfg/pollingsequence/PollingSequenceFactory.h (100%) rename {src/tests => tests}/user/testcfg/returnvalues/classIds.h (100%) rename {src/tests => tests}/user/testcfg/testcfg.mk (100%) rename {src/tests => tests}/user/testcfg/tmtc/apid.h (100%) rename {src/tests => tests}/user/testcfg/tmtc/pusIds.h (100%) rename {src/tests => tests}/user/testtemplate/TestTemplate.cpp (100%) rename {src/tests => tests}/user/unittest/CMakeLists.txt (100%) rename {src/tests => tests}/user/unittest/core/CMakeLists.txt (100%) rename {src/tests => tests}/user/unittest/core/CatchDefinitions.cpp (100%) rename {src/tests => tests}/user/unittest/core/CatchDefinitions.h (100%) rename {src/tests => tests}/user/unittest/core/CatchFactory.cpp (100%) rename {src/tests => tests}/user/unittest/core/CatchFactory.h (100%) rename {src/tests => tests}/user/unittest/core/CatchRunner.cpp (100%) rename {src/tests => tests}/user/unittest/core/CatchSetup.cpp (100%) rename {src/tests => tests}/user/unittest/core/core.mk (100%) rename {src/tests => tests}/user/unittest/core/printChar.cpp (100%) rename {src/tests => tests}/user/unittest/core/printChar.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 021c3d0a0..ecb595066 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ endif() option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) # Options to exclude parts of the FSFW from compilation. +option(FSFW_ADD_INTERNAL_TESTS "Add internal unit tests" ON) option(FSFW_USE_RMAP "Compile with RMAP" ON) option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) @@ -48,22 +49,22 @@ if(NOT FSFW_OSAL) endif() -set(FSFW_OSAL_DEFINITION FSFW_HOST) +set(FSFW_OSAL_DEFINITION FSFW_OSAL_HOST) if(FSFW_OSAL MATCHES host) set(OS_FSFW_NAME "Host") elseif(FSFW_OSAL MATCHES linux) set(OS_FSFW_NAME "Linux") - set(FSFW_OSAL_DEFINITION FSFW_LINUX) + set(FSFW_OSAL_DEFINITION FSFW_OSAL_LINUX) elseif(FSFW_OSAL MATCHES freertos) set(OS_FSFW_NAME "FreeRTOS") - set(FSFW_OSAL_DEFINITION FSFW_FREERTOS) + set(FSFW_OSAL_DEFINITION FSFW_OSAL_FREERTOS) target_link_libraries(${LIB_FSFW_NAME} PRIVATE ${LIB_OS_NAME} ) elseif(FSFW_OSAL STREQUAL rtems) set(OS_FSFW_NAME "RTEMS") - set(FSFW_OSAL_DEFINITION FSFW_RTEMS) + set(FSFW_OSAL_DEFINITION FSFW_OSAL_RTEMS) else() message(WARNING "Invalid operating system for FSFW specified! Setting to host.." @@ -83,6 +84,7 @@ target_compile_definitions(${LIB_FSFW_NAME} INTERFACE message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") add_subdirectory(src) +add_subdirectory(tests) # The project CMakeLists file has to set the FSFW_CONFIG_PATH and add it. # If this is not given, we include the default configuration and emit a warning. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d5bfc5a3..70e6d76e6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,3 @@ add_subdirectory(core) add_subdirectory(opt) add_subdirectory(osal) -# add_subdirectory(tests) diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt deleted file mode 100644 index 24f8ef6ff..000000000 --- a/src/tests/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -add_subdirectory(internal) - -if(LINK_CATCH2) - add_subdirectory(tests) -endif() \ No newline at end of file diff --git a/src/tests/internal/internal.mk b/src/tests/internal/internal.mk deleted file mode 100644 index 1d4c9c997..000000000 --- a/src/tests/internal/internal.mk +++ /dev/null @@ -1,4 +0,0 @@ -CXXSRC += $(wildcard $(CURRENTPATH)/osal/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/serialize/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/globalfunctions/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/*.cpp) \ No newline at end of file diff --git a/src/tests/internal/serialize/CMakeLists.txt b/src/tests/internal/serialize/CMakeLists.txt deleted file mode 100644 index e8dc5717f..000000000 --- a/src/tests/internal/serialize/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -target_sources(${TARGET_NAME} PRIVATE - IntTestSerialization.cpp -) diff --git a/src/tests/tests/globalfunctions/CMakeLists.txt b/src/tests/tests/globalfunctions/CMakeLists.txt deleted file mode 100644 index 4ea49bf74..000000000 --- a/src/tests/tests/globalfunctions/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -target_sources(${TARGET_NAME} PRIVATE - TestArrayPrinter.cpp -) diff --git a/src/tests/tests/tests.mk b/src/tests/tests/tests.mk deleted file mode 100644 index 47e634a26..000000000 --- a/src/tests/tests/tests.mk +++ /dev/null @@ -1,8 +0,0 @@ -CXXSRC += $(wildcard $(CURRENTPATH)/container/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/action/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/serialize/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/storagemanager/*.cpp) - -# OSAL not included for now. - -INCLUDES += $(CURRENTPATH) \ No newline at end of file diff --git a/src/tests/user/unlockRealtime.sh b/src/tests/user/unlockRealtime.sh deleted file mode 100644 index b28d54904..000000000 --- a/src/tests/user/unlockRealtime.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Run this script to unlock all permissions to run the linux binaries -# and create threads - -binaries=$(find $directory -type f -name "*.elf") - -echo Unlocking real time permissions for binaries and bash console... - -# Set up the soft realtime limit to maximum (99) -# Please note that the hard limit needs to be set to 99 too -# for this to work (check with ulimit -Hr). -# If that has not been done yet, add -# hard rtprio 99 -# to /etc/security/limits.conf -# It is also necessary and recommended to add -# soft rtprio 99 -# as well. This can also be done in the command line -# but would need to be done for each session. -ulimit -Sr 99 - -for binary in ${binaries}; do - sudo setcap 'cap_sys_nice=eip' ${binary} - result=$? - if [ ${result} = 0 ];then - echo ${binary} was unlocked - fi -done - -# sudo setcap 'cap_sys_nice=eip' /bin/bash -# result=$? -# if [ ${result} = 0 ];then -# echo /bin/bash was unlocked -# fi - diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 000000000..26ce12e85 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(src) +add_subdirectory(inc) \ No newline at end of file diff --git a/tests/inc/CMakeLists.txt b/tests/inc/CMakeLists.txt new file mode 100644 index 000000000..7ca25bd0b --- /dev/null +++ b/tests/inc/CMakeLists.txt @@ -0,0 +1,3 @@ +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) diff --git a/src/tests/internal/InternalUnitTester.h b/tests/inc/fsfw/tests/internal/InternalUnitTester.h similarity index 80% rename from src/tests/internal/InternalUnitTester.h rename to tests/inc/fsfw/tests/internal/InternalUnitTester.h index ae954c6ac..50c89d775 100644 --- a/src/tests/internal/InternalUnitTester.h +++ b/tests/inc/fsfw/tests/internal/InternalUnitTester.h @@ -2,7 +2,7 @@ #define FRAMEWORK_TEST_UNITTESTCLASS_H_ #include "UnittDefinitions.h" -#include "../../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" /** @@ -17,7 +17,7 @@ class InternalUnitTester: public HasReturnvaluesIF { public: struct TestConfig { - bool testArrayPrinter; + bool testArrayPrinter = false; }; InternalUnitTester(); @@ -27,7 +27,7 @@ public: * Some function which calls all other tests * @return */ - virtual ReturnValue_t performTests(struct InternalUnitTester::TestConfig& testConfig); + virtual ReturnValue_t performTests(const struct InternalUnitTester::TestConfig& testConfig); }; diff --git a/src/tests/internal/UnittDefinitions.h b/tests/inc/fsfw/tests/internal/UnittDefinitions.h similarity index 88% rename from src/tests/internal/UnittDefinitions.h rename to tests/inc/fsfw/tests/internal/UnittDefinitions.h index 3e14fec57..7e7e06a6f 100644 --- a/src/tests/internal/UnittDefinitions.h +++ b/tests/inc/fsfw/tests/internal/UnittDefinitions.h @@ -1,8 +1,9 @@ #ifndef UNITTEST_INTERNAL_UNITTDEFINITIONS_H_ #define UNITTEST_INTERNAL_UNITTDEFINITIONS_H_ -#include "../../returnvalues/HasReturnvaluesIF.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + #include #include #include diff --git a/src/tests/internal/globalfunctions/TestArrayPrinter.h b/tests/inc/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h similarity index 100% rename from src/tests/internal/globalfunctions/TestArrayPrinter.h rename to tests/inc/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h diff --git a/src/tests/internal/osal/IntTestMq.h b/tests/inc/fsfw/tests/internal/osal/IntTestMq.h similarity index 100% rename from src/tests/internal/osal/IntTestMq.h rename to tests/inc/fsfw/tests/internal/osal/IntTestMq.h diff --git a/src/tests/internal/osal/IntTestMutex.h b/tests/inc/fsfw/tests/internal/osal/IntTestMutex.h similarity index 100% rename from src/tests/internal/osal/IntTestMutex.h rename to tests/inc/fsfw/tests/internal/osal/IntTestMutex.h diff --git a/src/tests/internal/osal/IntTestSemaphore.h b/tests/inc/fsfw/tests/internal/osal/IntTestSemaphore.h similarity index 100% rename from src/tests/internal/osal/IntTestSemaphore.h rename to tests/inc/fsfw/tests/internal/osal/IntTestSemaphore.h diff --git a/src/tests/internal/serialize/IntTestSerialization.h b/tests/inc/fsfw/tests/internal/serialize/IntTestSerialization.h similarity index 88% rename from src/tests/internal/serialize/IntTestSerialization.h rename to tests/inc/fsfw/tests/internal/serialize/IntTestSerialization.h index 8706e0572..0767fb446 100644 --- a/src/tests/internal/serialize/IntTestSerialization.h +++ b/tests/inc/fsfw/tests/internal/serialize/IntTestSerialization.h @@ -1,7 +1,7 @@ #ifndef FSFW_UNITTEST_INTERNAL_INTTESTSERIALIZATION_H_ #define FSFW_UNITTEST_INTERNAL_INTTESTSERIALIZATION_H_ -#include "../../../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" #include namespace testserialize { diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt new file mode 100644 index 000000000..3f5d21b55 --- /dev/null +++ b/tests/src/CMakeLists.txt @@ -0,0 +1,7 @@ +if(FSFW_ADD_INTERNAL_TESTS) + add_subdirectory(internal) +endif() + +if(FSFW_ADD_UNITTESTS) + add_subdirectory(tests) +endif() diff --git a/src/tests/internal/CMakeLists.txt b/tests/src/internal/CMakeLists.txt similarity index 57% rename from src/tests/internal/CMakeLists.txt rename to tests/src/internal/CMakeLists.txt index 11fd2b2ff..2a144a9be 100644 --- a/src/tests/internal/CMakeLists.txt +++ b/tests/src/internal/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${TARGET_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE InternalUnitTester.cpp UnittDefinitions.cpp ) diff --git a/src/tests/internal/InternalUnitTester.cpp b/tests/src/internal/InternalUnitTester.cpp similarity index 57% rename from src/tests/internal/InternalUnitTester.cpp rename to tests/src/internal/InternalUnitTester.cpp index a9394ad3f..8631ce0d4 100644 --- a/src/tests/internal/InternalUnitTester.cpp +++ b/tests/src/internal/InternalUnitTester.cpp @@ -1,11 +1,11 @@ -#include "InternalUnitTester.h" -#include "UnittDefinitions.h" +#include "fsfw/tests/internal/InternalUnitTester.h" +#include "fsfw/tests/internal/UnittDefinitions.h" -#include "osal/IntTestMq.h" -#include "osal/IntTestSemaphore.h" -#include "osal/IntTestMutex.h" -#include "serialize/IntTestSerialization.h" -#include "globalfunctions/TestArrayPrinter.h" +#include "fsfw/tests/internal/osal/IntTestMq.h" +#include "fsfw/tests/internal/osal/IntTestSemaphore.h" +#include "fsfw/tests/internal/osal/IntTestMutex.h" +#include "fsfw/tests/internal/serialize/IntTestSerialization.h" +#include "fsfw/tests/internal/globalfunctions/TestArrayPrinter.h" #include @@ -13,7 +13,8 @@ InternalUnitTester::InternalUnitTester() {} InternalUnitTester::~InternalUnitTester() {} -ReturnValue_t InternalUnitTester::performTests(struct InternalUnitTester::TestConfig& testConfig) { +ReturnValue_t InternalUnitTester::performTests( + const struct InternalUnitTester::TestConfig& testConfig) { #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::info << "Running internal unit tests.." << std::endl; #else diff --git a/src/tests/internal/UnittDefinitions.cpp b/tests/src/internal/UnittDefinitions.cpp similarity index 87% rename from src/tests/internal/UnittDefinitions.cpp rename to tests/src/internal/UnittDefinitions.cpp index ed4b59c1c..74fd53be8 100644 --- a/src/tests/internal/UnittDefinitions.cpp +++ b/tests/src/internal/UnittDefinitions.cpp @@ -1,4 +1,4 @@ -#include "UnittDefinitions.h" +#include "fsfw/tests/internal/UnittDefinitions.h" ReturnValue_t unitt::put_error(std::string errorId) { #if FSFW_CPP_OSTREAM_ENABLED == 1 diff --git a/tests/src/internal/globalfunctions/CMakeLists.txt b/tests/src/internal/globalfunctions/CMakeLists.txt new file mode 100644 index 000000000..cde97734f --- /dev/null +++ b/tests/src/internal/globalfunctions/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_NAME} PRIVATE + TestArrayPrinter.cpp +) diff --git a/src/tests/internal/globalfunctions/TestArrayPrinter.cpp b/tests/src/internal/globalfunctions/TestArrayPrinter.cpp similarity index 94% rename from src/tests/internal/globalfunctions/TestArrayPrinter.cpp rename to tests/src/internal/globalfunctions/TestArrayPrinter.cpp index de016d198..905780955 100644 --- a/src/tests/internal/globalfunctions/TestArrayPrinter.cpp +++ b/tests/src/internal/globalfunctions/TestArrayPrinter.cpp @@ -1,4 +1,4 @@ -#include "TestArrayPrinter.h" +#include "fsfw/tests/internal/globalfunctions/TestArrayPrinter.h" void arrayprinter::testArrayPrinter() { { diff --git a/src/tests/internal/osal/CMakeLists.txt b/tests/src/internal/osal/CMakeLists.txt similarity index 58% rename from src/tests/internal/osal/CMakeLists.txt rename to tests/src/internal/osal/CMakeLists.txt index c6f1eb95c..843160891 100644 --- a/src/tests/internal/osal/CMakeLists.txt +++ b/tests/src/internal/osal/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${TARGET_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE IntTestMq.cpp IntTestMutex.cpp IntTestSemaphore.cpp diff --git a/src/tests/internal/osal/IntTestMq.cpp b/tests/src/internal/osal/IntTestMq.cpp similarity index 93% rename from src/tests/internal/osal/IntTestMq.cpp rename to tests/src/internal/osal/IntTestMq.cpp index fc8e963ef..91bc2c6d6 100644 --- a/src/tests/internal/osal/IntTestMq.cpp +++ b/tests/src/internal/osal/IntTestMq.cpp @@ -1,5 +1,5 @@ -#include "IntTestMq.h" -#include +#include "fsfw/tests/internal/osal/IntTestMq.h" +#include "fsfw/tests/internal/UnittDefinitions.h" #include #include @@ -49,5 +49,4 @@ void testmq::testMq() { if(senderId != testSenderMqId) { unitt::put_error(id); } - } diff --git a/src/tests/internal/osal/IntTestMutex.cpp b/tests/src/internal/osal/IntTestMutex.cpp similarity index 92% rename from src/tests/internal/osal/IntTestMutex.cpp rename to tests/src/internal/osal/IntTestMutex.cpp index 13d87a8b0..9e7c1481f 100644 --- a/src/tests/internal/osal/IntTestMutex.cpp +++ b/tests/src/internal/osal/IntTestMutex.cpp @@ -1,7 +1,7 @@ -#include "IntTestMutex.h" +#include "fsfw/tests/internal/osal/IntTestMutex.h" +#include "fsfw/tests/internal/UnittDefinitions.h" #include -#include #if defined(WIN32) || defined(UNIX) #include diff --git a/src/tests/internal/osal/IntTestSemaphore.cpp b/tests/src/internal/osal/IntTestSemaphore.cpp similarity index 96% rename from src/tests/internal/osal/IntTestSemaphore.cpp rename to tests/src/internal/osal/IntTestSemaphore.cpp index 43990c2cd..e278e3c1c 100644 --- a/src/tests/internal/osal/IntTestSemaphore.cpp +++ b/tests/src/internal/osal/IntTestSemaphore.cpp @@ -1,8 +1,8 @@ -#include "IntTestSemaphore.h" -#include +#include "fsfw/tests/internal/osal/IntTestSemaphore.h" +#include "fsfw/tests/internal/UnittDefinitions.h" #include -#include +#include #include #include diff --git a/tests/src/internal/serialize/CMakeLists.txt b/tests/src/internal/serialize/CMakeLists.txt new file mode 100644 index 000000000..47e8b538e --- /dev/null +++ b/tests/src/internal/serialize/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${LIB_FSFW_NAME} PRIVATE + IntTestSerialization.cpp +) diff --git a/src/tests/internal/serialize/IntTestSerialization.cpp b/tests/src/internal/serialize/IntTestSerialization.cpp similarity index 98% rename from src/tests/internal/serialize/IntTestSerialization.cpp rename to tests/src/internal/serialize/IntTestSerialization.cpp index 69d82942e..3489c759f 100644 --- a/src/tests/internal/serialize/IntTestSerialization.cpp +++ b/tests/src/internal/serialize/IntTestSerialization.cpp @@ -1,5 +1,5 @@ -#include "IntTestSerialization.h" -#include +#include "fsfw/tests/internal/serialize/IntTestSerialization.h" +#include "fsfw/tests/internal/UnittDefinitions.h" #include #include diff --git a/src/tests/tests/CMakeLists.txt b/tests/src/tests/CMakeLists.txt similarity index 99% rename from src/tests/tests/CMakeLists.txt rename to tests/src/tests/CMakeLists.txt index 180e1a51d..2f3d9f70f 100644 --- a/src/tests/tests/CMakeLists.txt +++ b/tests/src/tests/CMakeLists.txt @@ -4,4 +4,3 @@ add_subdirectory(osal) add_subdirectory(serialize) add_subdirectory(datapoollocal) add_subdirectory(storagemanager) - diff --git a/src/tests/tests/action/CMakeLists.txt b/tests/src/tests/action/CMakeLists.txt similarity index 100% rename from src/tests/tests/action/CMakeLists.txt rename to tests/src/tests/action/CMakeLists.txt diff --git a/src/tests/tests/action/TestActionHelper.cpp b/tests/src/tests/action/TestActionHelper.cpp similarity index 100% rename from src/tests/tests/action/TestActionHelper.cpp rename to tests/src/tests/action/TestActionHelper.cpp diff --git a/src/tests/tests/action/TestActionHelper.h b/tests/src/tests/action/TestActionHelper.h similarity index 100% rename from src/tests/tests/action/TestActionHelper.h rename to tests/src/tests/action/TestActionHelper.h diff --git a/src/tests/tests/container/CMakeLists.txt b/tests/src/tests/container/CMakeLists.txt similarity index 100% rename from src/tests/tests/container/CMakeLists.txt rename to tests/src/tests/container/CMakeLists.txt diff --git a/src/tests/tests/container/RingBufferTest.cpp b/tests/src/tests/container/RingBufferTest.cpp similarity index 100% rename from src/tests/tests/container/RingBufferTest.cpp rename to tests/src/tests/container/RingBufferTest.cpp diff --git a/src/tests/tests/container/TestArrayList.cpp b/tests/src/tests/container/TestArrayList.cpp similarity index 100% rename from src/tests/tests/container/TestArrayList.cpp rename to tests/src/tests/container/TestArrayList.cpp diff --git a/src/tests/tests/container/TestDynamicFifo.cpp b/tests/src/tests/container/TestDynamicFifo.cpp similarity index 100% rename from src/tests/tests/container/TestDynamicFifo.cpp rename to tests/src/tests/container/TestDynamicFifo.cpp diff --git a/src/tests/tests/container/TestFifo.cpp b/tests/src/tests/container/TestFifo.cpp similarity index 100% rename from src/tests/tests/container/TestFifo.cpp rename to tests/src/tests/container/TestFifo.cpp diff --git a/src/tests/tests/container/TestFixedArrayList.cpp b/tests/src/tests/container/TestFixedArrayList.cpp similarity index 100% rename from src/tests/tests/container/TestFixedArrayList.cpp rename to tests/src/tests/container/TestFixedArrayList.cpp diff --git a/src/tests/tests/container/TestFixedMap.cpp b/tests/src/tests/container/TestFixedMap.cpp similarity index 100% rename from src/tests/tests/container/TestFixedMap.cpp rename to tests/src/tests/container/TestFixedMap.cpp diff --git a/src/tests/tests/container/TestFixedOrderedMultimap.cpp b/tests/src/tests/container/TestFixedOrderedMultimap.cpp similarity index 100% rename from src/tests/tests/container/TestFixedOrderedMultimap.cpp rename to tests/src/tests/container/TestFixedOrderedMultimap.cpp diff --git a/src/tests/tests/container/TestPlacementFactory.cpp b/tests/src/tests/container/TestPlacementFactory.cpp similarity index 100% rename from src/tests/tests/container/TestPlacementFactory.cpp rename to tests/src/tests/container/TestPlacementFactory.cpp diff --git a/src/tests/tests/datapoollocal/CMakeLists.txt b/tests/src/tests/datapoollocal/CMakeLists.txt similarity index 100% rename from src/tests/tests/datapoollocal/CMakeLists.txt rename to tests/src/tests/datapoollocal/CMakeLists.txt diff --git a/src/tests/tests/datapoollocal/DataSetTest.cpp b/tests/src/tests/datapoollocal/DataSetTest.cpp similarity index 100% rename from src/tests/tests/datapoollocal/DataSetTest.cpp rename to tests/src/tests/datapoollocal/DataSetTest.cpp diff --git a/src/tests/tests/datapoollocal/LocalPoolManagerTest.cpp b/tests/src/tests/datapoollocal/LocalPoolManagerTest.cpp similarity index 100% rename from src/tests/tests/datapoollocal/LocalPoolManagerTest.cpp rename to tests/src/tests/datapoollocal/LocalPoolManagerTest.cpp diff --git a/src/tests/tests/datapoollocal/LocalPoolOwnerBase.cpp b/tests/src/tests/datapoollocal/LocalPoolOwnerBase.cpp similarity index 100% rename from src/tests/tests/datapoollocal/LocalPoolOwnerBase.cpp rename to tests/src/tests/datapoollocal/LocalPoolOwnerBase.cpp diff --git a/src/tests/tests/datapoollocal/LocalPoolOwnerBase.h b/tests/src/tests/datapoollocal/LocalPoolOwnerBase.h similarity index 100% rename from src/tests/tests/datapoollocal/LocalPoolOwnerBase.h rename to tests/src/tests/datapoollocal/LocalPoolOwnerBase.h diff --git a/src/tests/tests/datapoollocal/LocalPoolVariableTest.cpp b/tests/src/tests/datapoollocal/LocalPoolVariableTest.cpp similarity index 100% rename from src/tests/tests/datapoollocal/LocalPoolVariableTest.cpp rename to tests/src/tests/datapoollocal/LocalPoolVariableTest.cpp diff --git a/src/tests/tests/datapoollocal/LocalPoolVectorTest.cpp b/tests/src/tests/datapoollocal/LocalPoolVectorTest.cpp similarity index 100% rename from src/tests/tests/datapoollocal/LocalPoolVectorTest.cpp rename to tests/src/tests/datapoollocal/LocalPoolVectorTest.cpp diff --git a/src/tests/internal/globalfunctions/CMakeLists.txt b/tests/src/tests/globalfunctions/CMakeLists.txt similarity index 100% rename from src/tests/internal/globalfunctions/CMakeLists.txt rename to tests/src/tests/globalfunctions/CMakeLists.txt diff --git a/src/tests/tests/mocks/HkReceiverMock.h b/tests/src/tests/mocks/HkReceiverMock.h similarity index 100% rename from src/tests/tests/mocks/HkReceiverMock.h rename to tests/src/tests/mocks/HkReceiverMock.h diff --git a/src/tests/tests/mocks/MessageQueueMockBase.h b/tests/src/tests/mocks/MessageQueueMockBase.h similarity index 100% rename from src/tests/tests/mocks/MessageQueueMockBase.h rename to tests/src/tests/mocks/MessageQueueMockBase.h diff --git a/src/tests/tests/osal/CMakeLists.txt b/tests/src/tests/osal/CMakeLists.txt similarity index 100% rename from src/tests/tests/osal/CMakeLists.txt rename to tests/src/tests/osal/CMakeLists.txt diff --git a/src/tests/tests/osal/TestMessageQueue.cpp b/tests/src/tests/osal/TestMessageQueue.cpp similarity index 100% rename from src/tests/tests/osal/TestMessageQueue.cpp rename to tests/src/tests/osal/TestMessageQueue.cpp diff --git a/src/tests/tests/osal/TestSemaphore.cpp b/tests/src/tests/osal/TestSemaphore.cpp similarity index 100% rename from src/tests/tests/osal/TestSemaphore.cpp rename to tests/src/tests/osal/TestSemaphore.cpp diff --git a/src/tests/tests/serialize/CMakeLists.txt b/tests/src/tests/serialize/CMakeLists.txt similarity index 100% rename from src/tests/tests/serialize/CMakeLists.txt rename to tests/src/tests/serialize/CMakeLists.txt diff --git a/src/tests/tests/serialize/TestSerialBufferAdapter.cpp b/tests/src/tests/serialize/TestSerialBufferAdapter.cpp similarity index 100% rename from src/tests/tests/serialize/TestSerialBufferAdapter.cpp rename to tests/src/tests/serialize/TestSerialBufferAdapter.cpp diff --git a/src/tests/tests/serialize/TestSerialLinkedPacket.cpp b/tests/src/tests/serialize/TestSerialLinkedPacket.cpp similarity index 100% rename from src/tests/tests/serialize/TestSerialLinkedPacket.cpp rename to tests/src/tests/serialize/TestSerialLinkedPacket.cpp diff --git a/src/tests/tests/serialize/TestSerialLinkedPacket.h b/tests/src/tests/serialize/TestSerialLinkedPacket.h similarity index 100% rename from src/tests/tests/serialize/TestSerialLinkedPacket.h rename to tests/src/tests/serialize/TestSerialLinkedPacket.h diff --git a/src/tests/tests/serialize/TestSerialization.cpp b/tests/src/tests/serialize/TestSerialization.cpp similarity index 100% rename from src/tests/tests/serialize/TestSerialization.cpp rename to tests/src/tests/serialize/TestSerialization.cpp diff --git a/src/tests/tests/storagemanager/CMakeLists.txt b/tests/src/tests/storagemanager/CMakeLists.txt similarity index 100% rename from src/tests/tests/storagemanager/CMakeLists.txt rename to tests/src/tests/storagemanager/CMakeLists.txt diff --git a/src/tests/tests/storagemanager/TestNewAccessor.cpp b/tests/src/tests/storagemanager/TestNewAccessor.cpp similarity index 100% rename from src/tests/tests/storagemanager/TestNewAccessor.cpp rename to tests/src/tests/storagemanager/TestNewAccessor.cpp diff --git a/src/tests/tests/storagemanager/TestPool.cpp b/tests/src/tests/storagemanager/TestPool.cpp similarity index 100% rename from src/tests/tests/storagemanager/TestPool.cpp rename to tests/src/tests/storagemanager/TestPool.cpp diff --git a/src/tests/tests/tmtcpacket/CMakeLists.txt b/tests/src/tests/tmtcpacket/CMakeLists.txt similarity index 100% rename from src/tests/tests/tmtcpacket/CMakeLists.txt rename to tests/src/tests/tmtcpacket/CMakeLists.txt diff --git a/src/tests/tests/tmtcpacket/PusTmTest.cpp b/tests/src/tests/tmtcpacket/PusTmTest.cpp similarity index 100% rename from src/tests/tests/tmtcpacket/PusTmTest.cpp rename to tests/src/tests/tmtcpacket/PusTmTest.cpp diff --git a/src/tests/user/CMakeLists.txt b/tests/user/CMakeLists.txt similarity index 100% rename from src/tests/user/CMakeLists.txt rename to tests/user/CMakeLists.txt diff --git a/src/tests/README.md b/tests/user/README.md similarity index 100% rename from src/tests/README.md rename to tests/user/README.md diff --git a/src/tests/lcov.sh b/tests/user/lcov.sh similarity index 100% rename from src/tests/lcov.sh rename to tests/user/lcov.sh diff --git a/src/tests/user/testcfg/CMakeLists.txt b/tests/user/testcfg/CMakeLists.txt similarity index 100% rename from src/tests/user/testcfg/CMakeLists.txt rename to tests/user/testcfg/CMakeLists.txt diff --git a/src/tests/user/testcfg/FSFWConfig.h b/tests/user/testcfg/FSFWConfig.h similarity index 100% rename from src/tests/user/testcfg/FSFWConfig.h rename to tests/user/testcfg/FSFWConfig.h diff --git a/src/tests/user/testcfg/Makefile-FSFW-Tests b/tests/user/testcfg/Makefile-FSFW-Tests similarity index 100% rename from src/tests/user/testcfg/Makefile-FSFW-Tests rename to tests/user/testcfg/Makefile-FSFW-Tests diff --git a/src/tests/user/testcfg/TestsConfig.h b/tests/user/testcfg/TestsConfig.h similarity index 100% rename from src/tests/user/testcfg/TestsConfig.h rename to tests/user/testcfg/TestsConfig.h diff --git a/src/tests/user/testcfg/cdatapool/dataPoolInit.cpp b/tests/user/testcfg/cdatapool/dataPoolInit.cpp similarity index 100% rename from src/tests/user/testcfg/cdatapool/dataPoolInit.cpp rename to tests/user/testcfg/cdatapool/dataPoolInit.cpp diff --git a/src/tests/user/testcfg/cdatapool/dataPoolInit.h b/tests/user/testcfg/cdatapool/dataPoolInit.h similarity index 100% rename from src/tests/user/testcfg/cdatapool/dataPoolInit.h rename to tests/user/testcfg/cdatapool/dataPoolInit.h diff --git a/src/tests/user/testcfg/devices/logicalAddresses.cpp b/tests/user/testcfg/devices/logicalAddresses.cpp similarity index 100% rename from src/tests/user/testcfg/devices/logicalAddresses.cpp rename to tests/user/testcfg/devices/logicalAddresses.cpp diff --git a/src/tests/user/testcfg/devices/logicalAddresses.h b/tests/user/testcfg/devices/logicalAddresses.h similarity index 100% rename from src/tests/user/testcfg/devices/logicalAddresses.h rename to tests/user/testcfg/devices/logicalAddresses.h diff --git a/src/tests/user/testcfg/devices/powerSwitcherList.cpp b/tests/user/testcfg/devices/powerSwitcherList.cpp similarity index 100% rename from src/tests/user/testcfg/devices/powerSwitcherList.cpp rename to tests/user/testcfg/devices/powerSwitcherList.cpp diff --git a/src/tests/user/testcfg/devices/powerSwitcherList.h b/tests/user/testcfg/devices/powerSwitcherList.h similarity index 100% rename from src/tests/user/testcfg/devices/powerSwitcherList.h rename to tests/user/testcfg/devices/powerSwitcherList.h diff --git a/src/tests/user/testcfg/events/subsystemIdRanges.h b/tests/user/testcfg/events/subsystemIdRanges.h similarity index 100% rename from src/tests/user/testcfg/events/subsystemIdRanges.h rename to tests/user/testcfg/events/subsystemIdRanges.h diff --git a/src/tests/user/testcfg/ipc/MissionMessageTypes.cpp b/tests/user/testcfg/ipc/MissionMessageTypes.cpp similarity index 100% rename from src/tests/user/testcfg/ipc/MissionMessageTypes.cpp rename to tests/user/testcfg/ipc/MissionMessageTypes.cpp diff --git a/src/tests/user/testcfg/ipc/MissionMessageTypes.h b/tests/user/testcfg/ipc/MissionMessageTypes.h similarity index 100% rename from src/tests/user/testcfg/ipc/MissionMessageTypes.h rename to tests/user/testcfg/ipc/MissionMessageTypes.h diff --git a/src/tests/user/testcfg/objects/systemObjectList.h b/tests/user/testcfg/objects/systemObjectList.h similarity index 100% rename from src/tests/user/testcfg/objects/systemObjectList.h rename to tests/user/testcfg/objects/systemObjectList.h diff --git a/src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp b/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp similarity index 100% rename from src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp rename to tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp diff --git a/src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.h b/tests/user/testcfg/pollingsequence/PollingSequenceFactory.h similarity index 100% rename from src/tests/user/testcfg/pollingsequence/PollingSequenceFactory.h rename to tests/user/testcfg/pollingsequence/PollingSequenceFactory.h diff --git a/src/tests/user/testcfg/returnvalues/classIds.h b/tests/user/testcfg/returnvalues/classIds.h similarity index 100% rename from src/tests/user/testcfg/returnvalues/classIds.h rename to tests/user/testcfg/returnvalues/classIds.h diff --git a/src/tests/user/testcfg/testcfg.mk b/tests/user/testcfg/testcfg.mk similarity index 100% rename from src/tests/user/testcfg/testcfg.mk rename to tests/user/testcfg/testcfg.mk diff --git a/src/tests/user/testcfg/tmtc/apid.h b/tests/user/testcfg/tmtc/apid.h similarity index 100% rename from src/tests/user/testcfg/tmtc/apid.h rename to tests/user/testcfg/tmtc/apid.h diff --git a/src/tests/user/testcfg/tmtc/pusIds.h b/tests/user/testcfg/tmtc/pusIds.h similarity index 100% rename from src/tests/user/testcfg/tmtc/pusIds.h rename to tests/user/testcfg/tmtc/pusIds.h diff --git a/src/tests/user/testtemplate/TestTemplate.cpp b/tests/user/testtemplate/TestTemplate.cpp similarity index 100% rename from src/tests/user/testtemplate/TestTemplate.cpp rename to tests/user/testtemplate/TestTemplate.cpp diff --git a/src/tests/user/unittest/CMakeLists.txt b/tests/user/unittest/CMakeLists.txt similarity index 100% rename from src/tests/user/unittest/CMakeLists.txt rename to tests/user/unittest/CMakeLists.txt diff --git a/src/tests/user/unittest/core/CMakeLists.txt b/tests/user/unittest/core/CMakeLists.txt similarity index 100% rename from src/tests/user/unittest/core/CMakeLists.txt rename to tests/user/unittest/core/CMakeLists.txt diff --git a/src/tests/user/unittest/core/CatchDefinitions.cpp b/tests/user/unittest/core/CatchDefinitions.cpp similarity index 100% rename from src/tests/user/unittest/core/CatchDefinitions.cpp rename to tests/user/unittest/core/CatchDefinitions.cpp diff --git a/src/tests/user/unittest/core/CatchDefinitions.h b/tests/user/unittest/core/CatchDefinitions.h similarity index 100% rename from src/tests/user/unittest/core/CatchDefinitions.h rename to tests/user/unittest/core/CatchDefinitions.h diff --git a/src/tests/user/unittest/core/CatchFactory.cpp b/tests/user/unittest/core/CatchFactory.cpp similarity index 100% rename from src/tests/user/unittest/core/CatchFactory.cpp rename to tests/user/unittest/core/CatchFactory.cpp diff --git a/src/tests/user/unittest/core/CatchFactory.h b/tests/user/unittest/core/CatchFactory.h similarity index 100% rename from src/tests/user/unittest/core/CatchFactory.h rename to tests/user/unittest/core/CatchFactory.h diff --git a/src/tests/user/unittest/core/CatchRunner.cpp b/tests/user/unittest/core/CatchRunner.cpp similarity index 100% rename from src/tests/user/unittest/core/CatchRunner.cpp rename to tests/user/unittest/core/CatchRunner.cpp diff --git a/src/tests/user/unittest/core/CatchSetup.cpp b/tests/user/unittest/core/CatchSetup.cpp similarity index 100% rename from src/tests/user/unittest/core/CatchSetup.cpp rename to tests/user/unittest/core/CatchSetup.cpp diff --git a/src/tests/user/unittest/core/core.mk b/tests/user/unittest/core/core.mk similarity index 100% rename from src/tests/user/unittest/core/core.mk rename to tests/user/unittest/core/core.mk diff --git a/src/tests/user/unittest/core/printChar.cpp b/tests/user/unittest/core/printChar.cpp similarity index 100% rename from src/tests/user/unittest/core/printChar.cpp rename to tests/user/unittest/core/printChar.cpp diff --git a/src/tests/user/unittest/core/printChar.h b/tests/user/unittest/core/printChar.h similarity index 100% rename from src/tests/user/unittest/core/printChar.h rename to tests/user/unittest/core/printChar.h From 376617f9f91fabc8e021c1990afb5fce8e27de62 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:24:38 +0200 Subject: [PATCH 024/136] missing interface includes --- tests/inc/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/inc/CMakeLists.txt b/tests/inc/CMakeLists.txt index 7ca25bd0b..abf6a3d27 100644 --- a/tests/inc/CMakeLists.txt +++ b/tests/inc/CMakeLists.txt @@ -1,3 +1,7 @@ target_include_directories(${LIB_FSFW_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) + +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} +) From 8f1a54aa19aa4ce7a7774004316020acce428b74 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:27:33 +0200 Subject: [PATCH 025/136] clarification --- osal/FreeRTOS/QueueMapManager.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osal/FreeRTOS/QueueMapManager.h b/osal/FreeRTOS/QueueMapManager.h index 07ca8b9e8..e86fe17b6 100644 --- a/osal/FreeRTOS/QueueMapManager.h +++ b/osal/FreeRTOS/QueueMapManager.h @@ -39,7 +39,8 @@ private: QueueMapManager(); ~QueueMapManager(); - uint32_t queueCounter = 0; + // Start at 1 because 0 might be the NO_QUEUE value + uint32_t queueCounter = 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; From f6d1b8981cb6a09b3c8ef6d59641060d03eee23e Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:33:55 +0200 Subject: [PATCH 026/136] additional safety by check against NO_QUEUE --- osal/FreeRTOS/QueueMapManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/osal/FreeRTOS/QueueMapManager.cpp b/osal/FreeRTOS/QueueMapManager.cpp index 51cfe11db..7d0873b99 100644 --- a/osal/FreeRTOS/QueueMapManager.cpp +++ b/osal/FreeRTOS/QueueMapManager.cpp @@ -18,6 +18,10 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueueId_t* id) { MutexGuard lock(mapLock); uint32_t currentId = queueCounter++; + if(currentId == MessageQueueIF::NO_QUEUE) { + // Skip the NO_QUEUE value + queueCounter++; + } auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { #if FSFW_CPP_OSTREAM_ENABLED == 1 From 5f0a3f3baaa1a05f48e641db564d87c5d224a4b3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:34:38 +0200 Subject: [PATCH 027/136] using current ID --- osal/FreeRTOS/QueueMapManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osal/FreeRTOS/QueueMapManager.cpp b/osal/FreeRTOS/QueueMapManager.cpp index 7d0873b99..e60b56894 100644 --- a/osal/FreeRTOS/QueueMapManager.cpp +++ b/osal/FreeRTOS/QueueMapManager.cpp @@ -20,7 +20,7 @@ ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueue uint32_t currentId = queueCounter++; if(currentId == MessageQueueIF::NO_QUEUE) { // Skip the NO_QUEUE value - queueCounter++; + currentId++; } auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { From df1d5e50054d53d65effd5413f54f8cfb78d3ebe Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:35:37 +0200 Subject: [PATCH 028/136] this is the correct implementation --- osal/FreeRTOS/QueueMapManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osal/FreeRTOS/QueueMapManager.cpp b/osal/FreeRTOS/QueueMapManager.cpp index e60b56894..8e8b0c3ef 100644 --- a/osal/FreeRTOS/QueueMapManager.cpp +++ b/osal/FreeRTOS/QueueMapManager.cpp @@ -20,7 +20,7 @@ ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueue uint32_t currentId = queueCounter++; if(currentId == MessageQueueIF::NO_QUEUE) { // Skip the NO_QUEUE value - currentId++; + currentId = queueCounter++; } auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { From 3c4289335e21a87a42525c094bf68f54dbb36222 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:39:02 +0200 Subject: [PATCH 029/136] integrated queue map manager bugfixes --- inc/fsfw/osal/freertos/QueueMapManager.h | 3 ++- src/osal/freertos/QueueMapManager.cpp | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/inc/fsfw/osal/freertos/QueueMapManager.h b/inc/fsfw/osal/freertos/QueueMapManager.h index 3aa82594c..7e999b0d1 100644 --- a/inc/fsfw/osal/freertos/QueueMapManager.h +++ b/inc/fsfw/osal/freertos/QueueMapManager.h @@ -39,7 +39,8 @@ private: QueueMapManager(); ~QueueMapManager(); - uint32_t queueCounter = 0; + // Start at 1 because 0 might be the NO_QUEUE value + uint32_t queueCounter = 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; diff --git a/src/osal/freertos/QueueMapManager.cpp b/src/osal/freertos/QueueMapManager.cpp index dcb88a1e3..e32cbe1d4 100644 --- a/src/osal/freertos/QueueMapManager.cpp +++ b/src/osal/freertos/QueueMapManager.cpp @@ -17,7 +17,11 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueueId_t* id) { MutexGuard lock(mapLock); - uint32_t currentId = ++queueCounter; + uint32_t currentId = queueCounter++; + if(currentId == MessageQueueIF::NO_QUEUE) { + // Skip the NO_QUEUE value + currentId = queueCounter++; + } auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { #if FSFW_CPP_OSTREAM_ENABLED == 1 From 704193eeaf31f4bfd07f1ef29fd87e4dd313e961 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 10:50:44 +0200 Subject: [PATCH 030/136] include replacements host/windows/rtems --- inc/fsfw/osal/common/tcpipHelpers.h | 2 +- inc/fsfw/osal/host/Mutex.h | 2 +- inc/fsfw/osal/rtems/CpuUsage.h | 4 +- inc/fsfw/osal/rtems/RtemsBasic.h | 2 +- src/osal/host/Clock.cpp | 6 +-- src/osal/host/FixedTimeslotTask.cpp | 20 ++++---- src/osal/host/MessageQueue.cpp | 12 ++--- src/osal/host/MutexFactory.cpp | 4 +- src/osal/host/PeriodicTask.cpp | 18 +++---- src/osal/host/QueueFactory.cpp | 11 ++-- src/osal/host/QueueMapManager.cpp | 8 +-- src/osal/host/SemaphoreFactory.cpp | 4 +- src/osal/host/TaskFactory.cpp | 15 +++--- src/osal/host/taskHelpers.cpp | 2 +- src/osal/rtems/Clock.cpp | 6 +-- src/osal/rtems/CpuUsage.cpp | 6 +-- src/osal/rtems/FixedTimeslotTask.cpp | 14 +++--- src/osal/rtems/InitTask.cpp | 4 +- src/osal/rtems/InternalErrorCodes.cpp | 2 +- src/osal/rtems/MessageQueue.cpp | 8 +-- src/osal/rtems/Mutex.cpp | 4 +- src/osal/rtems/MutexFactory.cpp | 4 +- src/osal/rtems/PeriodicTask.cpp | 8 +-- src/osal/rtems/QueueFactory.cpp | 9 ++-- src/osal/rtems/RTEMSTaskBase.cpp | 4 +- src/osal/rtems/RtemsBasic.cpp | 72 +-------------------------- src/osal/rtems/TaskFactory.cpp | 12 ++--- src/osal/windows/tcpipHelpers.cpp | 8 +-- src/osal/windows/winTaskHelpers.cpp | 3 +- 29 files changed, 103 insertions(+), 171 deletions(-) diff --git a/inc/fsfw/osal/common/tcpipHelpers.h b/inc/fsfw/osal/common/tcpipHelpers.h index 9764a93fe..bf9a7b5ae 100644 --- a/inc/fsfw/osal/common/tcpipHelpers.h +++ b/inc/fsfw/osal/common/tcpipHelpers.h @@ -1,7 +1,7 @@ #ifndef FSFW_OSAL_WINDOWS_TCPIPHELPERS_H_ #define FSFW_OSAL_WINDOWS_TCPIPHELPERS_H_ -#include "../../timemanager/clockDefinitions.h" +#include "fsfw/timemanager/clockDefinitions.h" #include "tcpipCommon.h" namespace tcpip { diff --git a/inc/fsfw/osal/host/Mutex.h b/inc/fsfw/osal/host/Mutex.h index 0bd93c8ac..e90ce9321 100644 --- a/inc/fsfw/osal/host/Mutex.h +++ b/inc/fsfw/osal/host/Mutex.h @@ -1,7 +1,7 @@ #ifndef FSFW_OSAL_HOSTED_MUTEX_H_ #define FSFW_OSAL_HOSTED_MUTEX_H_ -#include "../../ipc/MutexIF.h" +#include "fsfw/ipc/MutexIF.h" #include diff --git a/inc/fsfw/osal/rtems/CpuUsage.h b/inc/fsfw/osal/rtems/CpuUsage.h index f487e1911..6b6b9910f 100644 --- a/inc/fsfw/osal/rtems/CpuUsage.h +++ b/inc/fsfw/osal/rtems/CpuUsage.h @@ -1,8 +1,8 @@ #ifndef CPUUSAGE_H_ #define CPUUSAGE_H_ -#include "../../container/FixedArrayList.h" -#include "../../serialize/SerializeIF.h" +#include "fsfw/container/FixedArrayList.h" +#include "fsfw/serialize/SerializeIF.h" #include class CpuUsage : public SerializeIF { diff --git a/inc/fsfw/osal/rtems/RtemsBasic.h b/inc/fsfw/osal/rtems/RtemsBasic.h index 73f23186e..382697a33 100644 --- a/inc/fsfw/osal/rtems/RtemsBasic.h +++ b/inc/fsfw/osal/rtems/RtemsBasic.h @@ -1,7 +1,7 @@ #ifndef FSFW_OSAL_RTEMS_RTEMSBASIC_H_ #define FSFW_OSAL_RTEMS_RTEMSBASIC_H_ -#include "../../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" #include #include diff --git a/src/osal/host/Clock.cpp b/src/osal/host/Clock.cpp index 1018de574..0bdcd8f54 100644 --- a/src/osal/host/Clock.cpp +++ b/src/osal/host/Clock.cpp @@ -1,6 +1,6 @@ -#include "../../serviceinterface/ServiceInterface.h" -#include "../../timemanager/Clock.h" -#include "../../platform.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/platform.h" #include diff --git a/src/osal/host/FixedTimeslotTask.cpp b/src/osal/host/FixedTimeslotTask.cpp index 3ad191e52..f9a0588cb 100644 --- a/src/osal/host/FixedTimeslotTask.cpp +++ b/src/osal/host/FixedTimeslotTask.cpp @@ -1,20 +1,20 @@ -#include "taskHelpers.h" +#include "fsfw/osal/host/taskHelpers.h" +#include "fsfw/osal/host/FixedTimeslotTask.h" +#include "fsfw/osal/host/FixedTimeslotTask.h" -#include "../../platform.h" -#include "../../osal/host/FixedTimeslotTask.h" -#include "../../ipc/MutexFactory.h" -#include "../../osal/host/Mutex.h" -#include "../../osal/host/FixedTimeslotTask.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../tasks/ExecutableObjectIF.h" +#include "fsfw/platform.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/osal/host/Mutex.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/ExecutableObjectIF.h" #include #include #if defined(PLATFORM_WIN) #include -#include "../windows/winTaskHelpers.h" +#include "fsfw/osal/windows/winTaskHelpers.h" #elif defined(PLATFORM_UNIX) #include #endif diff --git a/src/osal/host/MessageQueue.cpp b/src/osal/host/MessageQueue.cpp index a2137e271..c7bcb042a 100644 --- a/src/osal/host/MessageQueue.cpp +++ b/src/osal/host/MessageQueue.cpp @@ -1,10 +1,10 @@ -#include "MessageQueue.h" -#include "QueueMapManager.h" +#include "fsfw/osal/host/MessageQueue.h" +#include "fsfw/osal/host/QueueMapManager.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../ipc/MutexFactory.h" -#include "../../ipc/MutexGuard.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/ipc/MutexGuard.h" #include diff --git a/src/osal/host/MutexFactory.cpp b/src/osal/host/MutexFactory.cpp index f3b98fd1d..872879065 100644 --- a/src/osal/host/MutexFactory.cpp +++ b/src/osal/host/MutexFactory.cpp @@ -1,5 +1,5 @@ -#include "../../ipc/MutexFactory.h" -#include "../../osal/host/Mutex.h" +#include "fsfw/osal/host/Mutex.h" +#include "fsfw/ipc/MutexFactory.h" //TODO: Different variant than the lazy loading in QueueFactory. //What's better and why? -> one is on heap the other on bss/data diff --git a/src/osal/host/PeriodicTask.cpp b/src/osal/host/PeriodicTask.cpp index 180272d0c..def3a6cb8 100644 --- a/src/osal/host/PeriodicTask.cpp +++ b/src/osal/host/PeriodicTask.cpp @@ -1,19 +1,19 @@ -#include "Mutex.h" -#include "PeriodicTask.h" -#include "taskHelpers.h" +#include "fsfw/osal/host/Mutex.h" +#include "fsfw/osal/host/PeriodicTask.h" +#include "fsfw/osal/host/taskHelpers.h" -#include "../../platform.h" -#include "../../ipc/MutexFactory.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../tasks/ExecutableObjectIF.h" +#include "fsfw/platform.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/ExecutableObjectIF.h" #include #include #if defined(PLATFORM_WIN) #include -#include +#include "fsfw/osal/windows/winTaskHelpers.h" #elif defined(PLATFORM_UNIX) #include #endif diff --git a/src/osal/host/QueueFactory.cpp b/src/osal/host/QueueFactory.cpp index 1a679c96c..466bb33b4 100644 --- a/src/osal/host/QueueFactory.cpp +++ b/src/osal/host/QueueFactory.cpp @@ -1,10 +1,9 @@ +#include "fsfw/osal/host/MessageQueue.h" -#include "MessageQueue.h" - -#include "../../ipc/MessageQueueSenderIF.h" -#include "../../ipc/MessageQueueMessageIF.h" -#include "../../ipc/QueueFactory.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" +#include "fsfw/ipc/MessageQueueMessageIF.h" +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/osal/host/QueueMapManager.cpp b/src/osal/host/QueueMapManager.cpp index 879bc36d2..ad39972f8 100644 --- a/src/osal/host/QueueMapManager.cpp +++ b/src/osal/host/QueueMapManager.cpp @@ -1,8 +1,8 @@ -#include "QueueMapManager.h" +#include "fsfw/osal/host/QueueMapManager.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../ipc/MutexFactory.h" -#include "../../ipc/MutexGuard.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/ipc/MutexFactory.h" +#include "fsfw/ipc/MutexGuard.h" QueueMapManager* QueueMapManager::mqManagerInstance = nullptr; diff --git a/src/osal/host/SemaphoreFactory.cpp b/src/osal/host/SemaphoreFactory.cpp index 530b3e450..3ea12877b 100644 --- a/src/osal/host/SemaphoreFactory.cpp +++ b/src/osal/host/SemaphoreFactory.cpp @@ -1,5 +1,5 @@ -#include "../../tasks/SemaphoreFactory.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/SemaphoreFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr; diff --git a/src/osal/host/TaskFactory.cpp b/src/osal/host/TaskFactory.cpp index 71d0bf8b9..ad59bd1a1 100644 --- a/src/osal/host/TaskFactory.cpp +++ b/src/osal/host/TaskFactory.cpp @@ -1,10 +1,11 @@ -#include "taskHelpers.h" -#include "../../tasks/TaskFactory.h" -#include "../../osal/host/FixedTimeslotTask.h" -#include "../../osal/host/PeriodicTask.h" -#include "../../returnvalues/HasReturnvaluesIF.h" -#include "../../tasks/PeriodicTaskIF.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/osal/host/FixedTimeslotTask.h" +#include "fsfw/osal/host/PeriodicTask.h" +#include "fsfw/osal/host/taskHelpers.h" + +#include "fsfw/tasks/TaskFactory.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/PeriodicTaskIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/osal/host/taskHelpers.cpp b/src/osal/host/taskHelpers.cpp index be4c29adc..a7de76d95 100644 --- a/src/osal/host/taskHelpers.cpp +++ b/src/osal/host/taskHelpers.cpp @@ -1,4 +1,4 @@ -#include "taskHelpers.h" +#include "fsfw/osal/host/taskHelpers.h" #include #include diff --git a/src/osal/rtems/Clock.cpp b/src/osal/rtems/Clock.cpp index ae720c361..42f30dcce 100644 --- a/src/osal/rtems/Clock.cpp +++ b/src/osal/rtems/Clock.cpp @@ -1,7 +1,7 @@ -#include "RtemsBasic.h" +#include "fsfw/osal/rtems/RtemsBasic.h" -#include "../../timemanager/Clock.h" -#include "../../ipc/MutexGuard.h" +#include "fsfw/timemanager/Clock.h" +#include "fsfw/ipc/MutexGuard.h" #include #include diff --git a/src/osal/rtems/CpuUsage.cpp b/src/osal/rtems/CpuUsage.cpp index 89c01336a..771b52dc7 100644 --- a/src/osal/rtems/CpuUsage.cpp +++ b/src/osal/rtems/CpuUsage.cpp @@ -1,6 +1,6 @@ -#include "CpuUsage.h" -#include "../../serialize/SerialArrayListAdapter.h" -#include "../../serialize/SerializeAdapter.h" +#include "fsfw/osal/rtems/CpuUsage.h" +#include "fsfw/serialize/SerialArrayListAdapter.h" +#include "fsfw/serialize/SerializeAdapter.h" #include extern "C" { diff --git a/src/osal/rtems/FixedTimeslotTask.cpp b/src/osal/rtems/FixedTimeslotTask.cpp index 19960a4c0..8b313df64 100644 --- a/src/osal/rtems/FixedTimeslotTask.cpp +++ b/src/osal/rtems/FixedTimeslotTask.cpp @@ -1,11 +1,11 @@ -#include "FixedTimeslotTask.h" -#include "RtemsBasic.h" +#include "fsfw/osal/rtems/FixedTimeslotTask.h" +#include "fsfw/osal/rtems/RtemsBasic.h" -#include "../../tasks/FixedSequenceSlot.h" -#include "../../objectmanager/SystemObjectIF.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../returnvalues/HasReturnvaluesIF.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/FixedSequenceSlot.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include #include diff --git a/src/osal/rtems/InitTask.cpp b/src/osal/rtems/InitTask.cpp index 80afed3d9..8a9bb9f63 100644 --- a/src/osal/rtems/InitTask.cpp +++ b/src/osal/rtems/InitTask.cpp @@ -1,5 +1,5 @@ -#include "InitTask.h" -#include "RtemsBasic.h" +#include "fsfw/osal/rtems/InitTask.h" +#include "fsfw/osal/rtems/RtemsBasic.h" diff --git a/src/osal/rtems/InternalErrorCodes.cpp b/src/osal/rtems/InternalErrorCodes.cpp index f40798147..049286d78 100644 --- a/src/osal/rtems/InternalErrorCodes.cpp +++ b/src/osal/rtems/InternalErrorCodes.cpp @@ -1,4 +1,4 @@ -#include "../../osal/InternalErrorCodes.h" +#include "fsfw/osal/InternalErrorCodes.h" #include ReturnValue_t InternalErrorCodes::translate(uint8_t code) { diff --git a/src/osal/rtems/MessageQueue.cpp b/src/osal/rtems/MessageQueue.cpp index e8128e90c..65fe0946c 100644 --- a/src/osal/rtems/MessageQueue.cpp +++ b/src/osal/rtems/MessageQueue.cpp @@ -1,8 +1,8 @@ -#include "MessageQueue.h" -#include "RtemsBasic.h" +#include "fsfw/osal/rtems/MessageQueue.h" +#include "fsfw/osal/rtems/RtemsBasic.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../objectmanager/ObjectManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" #include diff --git a/src/osal/rtems/Mutex.cpp b/src/osal/rtems/Mutex.cpp index f65c1f55b..2dfa39fa4 100644 --- a/src/osal/rtems/Mutex.cpp +++ b/src/osal/rtems/Mutex.cpp @@ -1,5 +1,5 @@ -#include "Mutex.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/osal/rtems/Mutex.h" +#include "fsfw/serviceinterface/ServiceInterface.h" uint8_t Mutex::count = 0; diff --git a/src/osal/rtems/MutexFactory.cpp b/src/osal/rtems/MutexFactory.cpp index adc599e94..bf7ce666c 100644 --- a/src/osal/rtems/MutexFactory.cpp +++ b/src/osal/rtems/MutexFactory.cpp @@ -1,6 +1,6 @@ -#include "Mutex.h" +#include "fsfw/osal/rtems/Mutex.h" -#include "../../ipc/MutexFactory.h" +#include "fsfw/ipc/MutexFactory.h" MutexFactory* MutexFactory::factoryInstance = new MutexFactory(); diff --git a/src/osal/rtems/PeriodicTask.cpp b/src/osal/rtems/PeriodicTask.cpp index 587173442..db98153cb 100644 --- a/src/osal/rtems/PeriodicTask.cpp +++ b/src/osal/rtems/PeriodicTask.cpp @@ -1,8 +1,8 @@ -#include "PeriodicTask.h" +#include "fsfw/osal/rtems/PeriodicTask.h" -#include "../../serviceinterface/ServiceInterface.h" -#include "../../objectmanager/ObjectManager.h" -#include "../../tasks/ExecutableObjectIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/tasks/ExecutableObjectIF.h" PeriodicTask::PeriodicTask(const char *name, rtems_task_priority setPriority, size_t setStack, rtems_interval setPeriod, void (*setDeadlineMissedFunc)()) : diff --git a/src/osal/rtems/QueueFactory.cpp b/src/osal/rtems/QueueFactory.cpp index ff5613041..ddcc39598 100644 --- a/src/osal/rtems/QueueFactory.cpp +++ b/src/osal/rtems/QueueFactory.cpp @@ -1,7 +1,8 @@ -#include "../../ipc/QueueFactory.h" -#include "../../ipc/MessageQueueSenderIF.h" -#include "MessageQueue.h" -#include "RtemsBasic.h" +#include "fsfw/osal/rtems/MessageQueue.h" +#include "fsfw/osal/rtems/RtemsBasic.h" + +#include "fsfw/ipc/QueueFactory.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" QueueFactory* QueueFactory::factoryInstance = nullptr; diff --git a/src/osal/rtems/RTEMSTaskBase.cpp b/src/osal/rtems/RTEMSTaskBase.cpp index d0cdc8765..fc8bbed58 100644 --- a/src/osal/rtems/RTEMSTaskBase.cpp +++ b/src/osal/rtems/RTEMSTaskBase.cpp @@ -1,5 +1,5 @@ -#include "RTEMSTaskBase.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/osal/rtems/RTEMSTaskBase.h" +#include "fsfw/serviceinterface/ServiceInterface.h" const size_t PeriodicTaskIF::MINIMUM_STACK_SIZE = RTEMS_MINIMUM_STACK_SIZE; diff --git a/src/osal/rtems/RtemsBasic.cpp b/src/osal/rtems/RtemsBasic.cpp index 8ab0ddcd6..463824ad7 100644 --- a/src/osal/rtems/RtemsBasic.cpp +++ b/src/osal/rtems/RtemsBasic.cpp @@ -1,71 +1 @@ -#include "RtemsBasic.h" - -// TODO: Can this be removed? - -//ReturnValue_t RtemsBasic::convertReturnCode(rtems_status_code inValue) { -// if (inValue == RTEMS_SUCCESSFUL) { -// return HasReturnvaluesIF::RETURN_OK; -// } else { -// switch(inValue){ -// case RTEMS_SUCCESSFUL: -// return OperatingSystemIF::SUCCESSFUL; -// case RTEMS_TASK_EXITTED: -// return OperatingSystemIF::TASK_EXITTED; -// case RTEMS_MP_NOT_CONFIGURED: -// return OperatingSystemIF::MP_NOT_CONFIGURED; -// case RTEMS_INVALID_NAME: -// return OperatingSystemIF::INVALID_NAME; -// case RTEMS_INVALID_ID: -// return OperatingSystemIF::INVALID_ID; -// case RTEMS_TOO_MANY: -// return OperatingSystemIF::TOO_MANY; -// case RTEMS_TIMEOUT: -// return OperatingSystemIF::TIMEOUT; -// case RTEMS_OBJECT_WAS_DELETED: -// return OperatingSystemIF::OBJECT_WAS_DELETED; -// case RTEMS_INVALID_SIZE: -// return OperatingSystemIF::INVALID_SIZE; -// case RTEMS_INVALID_ADDRESS: -// return OperatingSystemIF::INVALID_ADDRESS; -// case RTEMS_INVALID_NUMBER: -// return OperatingSystemIF::INVALID_NUMBER; -// case RTEMS_NOT_DEFINED: -// return OperatingSystemIF::NOT_DEFINED; -// case RTEMS_RESOURCE_IN_USE: -// return OperatingSystemIF::RESOURCE_IN_USE; -// //TODO RTEMS_UNSATISFIED is double mapped for FLP so it will only return Queue_empty and not unsatisfied -// case RTEMS_UNSATISFIED: -// return OperatingSystemIF::QUEUE_EMPTY; -// case RTEMS_INCORRECT_STATE: -// return OperatingSystemIF::INCORRECT_STATE; -// case RTEMS_ALREADY_SUSPENDED: -// return OperatingSystemIF::ALREADY_SUSPENDED; -// case RTEMS_ILLEGAL_ON_SELF: -// return OperatingSystemIF::ILLEGAL_ON_SELF; -// case RTEMS_ILLEGAL_ON_REMOTE_OBJECT: -// return OperatingSystemIF::ILLEGAL_ON_REMOTE_OBJECT; -// case RTEMS_CALLED_FROM_ISR: -// return OperatingSystemIF::CALLED_FROM_ISR; -// case RTEMS_INVALID_PRIORITY: -// return OperatingSystemIF::INVALID_PRIORITY; -// case RTEMS_INVALID_CLOCK: -// return OperatingSystemIF::INVALID_CLOCK; -// case RTEMS_INVALID_NODE: -// return OperatingSystemIF::INVALID_NODE; -// case RTEMS_NOT_CONFIGURED: -// return OperatingSystemIF::NOT_CONFIGURED; -// case RTEMS_NOT_OWNER_OF_RESOURCE: -// return OperatingSystemIF::NOT_OWNER_OF_RESOURCE; -// case RTEMS_NOT_IMPLEMENTED: -// return OperatingSystemIF::NOT_IMPLEMENTED; -// case RTEMS_INTERNAL_ERROR: -// return OperatingSystemIF::INTERNAL_ERROR; -// case RTEMS_NO_MEMORY: -// return OperatingSystemIF::NO_MEMORY; -// case RTEMS_IO_ERROR: -// return OperatingSystemIF::IO_ERROR; -// default: -// return HasReturnvaluesIF::RETURN_FAILED; -// } -// } -//} +#include "fsfw/osal/rtems/RtemsBasic.h" diff --git a/src/osal/rtems/TaskFactory.cpp b/src/osal/rtems/TaskFactory.cpp index 095e9a262..dd3e92fc2 100644 --- a/src/osal/rtems/TaskFactory.cpp +++ b/src/osal/rtems/TaskFactory.cpp @@ -1,10 +1,10 @@ -#include "FixedTimeslotTask.h" -#include "PeriodicTask.h" -#include "InitTask.h" -#include "RtemsBasic.h" +#include "fsfw/osal/rtems/FixedTimeslotTask.h" +#include "fsfw/osal/rtems/PeriodicTask.h" +#include "fsfw/osal/rtems/InitTask.h" +#include "fsfw/osal/rtems/RtemsBasic.h" -#include "../../tasks/TaskFactory.h" -#include "../../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tasks/TaskFactory.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" //TODO: Different variant than the lazy loading in QueueFactory. What's better and why? TaskFactory* TaskFactory::factoryInstance = new TaskFactory(); diff --git a/src/osal/windows/tcpipHelpers.cpp b/src/osal/windows/tcpipHelpers.cpp index 3dab9406c..37d6fb2f4 100644 --- a/src/osal/windows/tcpipHelpers.cpp +++ b/src/osal/windows/tcpipHelpers.cpp @@ -1,8 +1,8 @@ -#include "../common/tcpipHelpers.h" -#include +#include "fsfw/FSFW.h" +#include "fsfw/osal/common/tcpipHelpers.h" -#include "../../tasks/TaskFactory.h" -#include "../../serviceinterface/ServiceInterface.h" +#include "fsfw/tasks/TaskFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" #include diff --git a/src/osal/windows/winTaskHelpers.cpp b/src/osal/windows/winTaskHelpers.cpp index 6765b952c..20d4d98d3 100644 --- a/src/osal/windows/winTaskHelpers.cpp +++ b/src/osal/windows/winTaskHelpers.cpp @@ -1,4 +1,5 @@ -#include +#include "fsfw/osal/windows/winTaskHelpers.h" + #include TaskPriority tasks::makeWinPriority(PriorityClass prioClass, PriorityNumber prioNumber) { From e5807c396ceda3afaba779fb2f2f03c30e524c68 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 11:03:42 +0200 Subject: [PATCH 031/136] adding spg4 code option --- CMakeLists.txt | 2 ++ contrib/CMakeLists.txt | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 contrib/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index ecb595066..4f48047cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) option(FSFW_ADD_INTERNAL_TESTS "Add internal unit tests" ON) option(FSFW_USE_RMAP "Compile with RMAP" ON) option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) +option(FSFW_ADD_SPG4_PROPAGATOR "Add SPG4 propagator code" ON) set(LIB_FSFW_NAME fsfw) add_library(${LIB_FSFW_NAME}) @@ -85,6 +86,7 @@ message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") add_subdirectory(src) add_subdirectory(tests) +add_subdirectory(contrib) # The project CMakeLists file has to set the FSFW_CONFIG_PATH and add it. # If this is not given, we include the default configuration and emit a warning. diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt new file mode 100644 index 000000000..48cb21d27 --- /dev/null +++ b/contrib/CMakeLists.txt @@ -0,0 +1,11 @@ +if(FSFW_ADD_SPG4_PROPAGATOR) + target_sources(${LIB_FSFW_NAME} PRIVATE + spg4unit.cpp + ) + target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/spg4 + ) + target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR}/spg4 + ) +endif() From 22693eee50aa85fccc9a1bd45aca4bca6b5dd62b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 11:05:14 +0200 Subject: [PATCH 032/136] minor fixes for contrib --- contrib/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 48cb21d27..3a987228a 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -1,11 +1,11 @@ if(FSFW_ADD_SPG4_PROPAGATOR) target_sources(${LIB_FSFW_NAME} PRIVATE - spg4unit.cpp + sgp4/sgp4unit.cpp ) target_include_directories(${LIB_FSFW_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/spg4 + ${CMAKE_CURRENT_SOURCE_DIR}/sgp4 ) target_include_directories(${LIB_FSFW_NAME} INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR}/spg4 + ${CMAKE_CURRENT_SOURCE_DIR}/sgp4 ) endif() From fbdff5d0b464da15524e52e9b2a0074ec0ec31a1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 11:14:25 +0200 Subject: [PATCH 033/136] updated change log --- CHANGELOG | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 09b8db6a1..75e7ced5e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,17 +1,80 @@ -## Changes from ASTP 1.0.0 to 1.1.0 +# Changed from ASTP 1.1.0 to 1.2.0 + +## API Changes + +### FSFW Architecture + +- Internal API changed completely to have separation of sources and headers +- External API mostly stayed the same +- Folder names are now all smaller case: internalError was renamed to internalerror and + FreeRTOS was renamed to freertos + +### HAL + +- HAL added back into FSFW. It is tightly bound to the FSFW, and compiling it as a static library + made using it more complicated than necessary + +## Bugfixes + +### FreeRTOS QueueMapManager + +- Fixed a bug which causes the first generated Queue ID to be invalid + +## Enhancements + +### FSFW Architecture + +- See API changes chapter. This change will keep the internal API consistent in the future + +# Changes from ASTP 1.0.0 to 1.1.0 + +## API Changes ### PUS - Added PUS C support +- SUBSYSTEM_IDs added for PUS Services +- Added new Parameter which must be defined in config: fsfwconfig::FSFW_MAX_TM_PACKET_SIZE + +### ObjectManager + + - ObjectManager is now a singelton + ### Configuration - Additional configuration option fsfwconfig::FSFW_MAX_TM_PACKET_SIZE which need to be specified in FSFWConfig.h +### CMake + +- Changed Cmake FSFW_ADDITIONAL_INC_PATH to FSFW_ADDITIONAL_INC_PATHS + +## Bugfixes + +- timemanager/TimeStamperIF.h: Timestamp config was not used correctly, leading to different timestamp sizes than configured in fsfwconfig::FSFW_MISSION_TIMESTAMP_SIZE +- TCP server fixes + +## Enhancements + +### FreeRTOS Queue Handles + +- Fixed an internal issue how FreeRTOS MessageQueues were handled + +### Linux OSAL + +- Better printf error messages + +### CMake + +- Check for C++11 as mininimum required Version + +### Debug Output + +- Changed Warning color to magenta, which is well readable on both dark and light mode IDEs -## Changes from ASTP 0.0.1 to 1.0.0 +# Changes from ASTP 0.0.1 to 1.0.0 ### Host OSAL From a3e6b1018b88f6e1e848f49e8f566026e88b98e8 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 14 Jul 2021 18:05:53 +0200 Subject: [PATCH 034/136] deleted .mk file --- misc/defaultcfg/fsfwconfig/fsfwconfig.mk | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 misc/defaultcfg/fsfwconfig/fsfwconfig.mk diff --git a/misc/defaultcfg/fsfwconfig/fsfwconfig.mk b/misc/defaultcfg/fsfwconfig/fsfwconfig.mk deleted file mode 100644 index 51543eba8..000000000 --- a/misc/defaultcfg/fsfwconfig/fsfwconfig.mk +++ /dev/null @@ -1,15 +0,0 @@ -CXXSRC += $(wildcard $(CURRENTPATH)/ipc/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/objects/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/pollingsequence/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/events/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/tmtc/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/devices/*.cpp) - -INCLUDES += $(CURRENTPATH) -INCLUDES += $(CURRENTPATH)/objects -INCLUDES += $(CURRENTPATH)/returnvalues -INCLUDES += $(CURRENTPATH)/tmtc -INCLUDES += $(CURRENTPATH)/events -INCLUDES += $(CURRENTPATH)/devices -INCLUDES += $(CURRENTPATH)/pollingsequence -INCLUDES += $(CURRENTPATH)/ipc From 243cf42dc4c2650f37cdbbb34acf6f6affc793d2 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 15 Jul 2021 18:43:16 +0200 Subject: [PATCH 035/136] added hal subfolder --- CMakeLists.txt | 1 + hal/CMakeLists.txt | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f48047cf..5ea8c9b1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,6 +86,7 @@ message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") add_subdirectory(src) add_subdirectory(tests) +add_subdirectory(hal) add_subdirectory(contrib) # The project CMakeLists file has to set the FSFW_CONFIG_PATH and add it. diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 24d7dac35..070b9fbc0 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -5,9 +5,7 @@ find_library(LIB_FSFW_NAME fsfw REQUIRED) option(FSFW_HAL_ADD_LINUX "Add the Linux HAL to the sources. Required gpiod library" OFF) option(FSFW_HAL_ADD_RASPBERRY_PI "Add Raspberry Pi specific code to the sources" OFF) - option(FSFW_HAL_ADD_STM32H7 "Add the STM32H7 HAL to the sources" OFF) - option(FSFW_HAL_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) set(LIB_FSFW_HAL_NAME fsfw_hal) From e2da68795b0163d05c20891bbf0a18803e385b56 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 15 Jul 2021 18:53:59 +0200 Subject: [PATCH 036/136] hal integration done --- hal/CMakeLists.txt | 49 ++----------------- hal/inc/CMakeLists.txt | 7 +++ .../fsfw/{ => hal}/common/gpio/GpioCookie.h | 0 hal/inc/fsfw/{ => hal}/common/gpio/GpioIF.h | 0 .../{ => hal}/common/gpio/gpioDefinitions.h | 0 hal/inc/fsfw/{ => hal}/common/spi/spiCommon.h | 0 .../devicehandlers/GyroL3GD20Handler.h | 0 .../devicedefinitions/GyroL3GD20Definitions.h | 0 hal/inc/fsfw/{ => hal}/linux/UnixFileGuard.h | 0 .../{ => hal}/linux/gpio/LinuxLibgpioIF.h | 0 hal/inc/fsfw/{ => hal}/linux/i2c/I2cComIF.h | 0 hal/inc/fsfw/{ => hal}/linux/i2c/I2cCookie.h | 0 hal/inc/fsfw/{ => hal}/linux/rpi/GpioRPi.h | 0 hal/inc/fsfw/{ => hal}/linux/spi/SpiComIF.h | 0 hal/inc/fsfw/{ => hal}/linux/spi/SpiCookie.h | 0 .../fsfw/{ => hal}/linux/spi/spiDefinitions.h | 0 hal/inc/fsfw/{ => hal}/linux/uart/UartComIF.h | 0 .../fsfw/{ => hal}/linux/uart/UartCookie.h | 0 hal/inc/fsfw/{ => hal}/linux/utility.h | 0 .../stm32h7/devicetest/GyroL3GD20H.h | 0 hal/inc/fsfw/{ => hal}/stm32h7/dma.h | 0 hal/inc/fsfw/{ => hal}/stm32h7/gpio/gpio.h | 0 hal/inc/fsfw/{ => hal}/stm32h7/interrupts.h | 0 hal/inc/fsfw/{ => hal}/stm32h7/spi/SpiComIF.h | 0 .../fsfw/{ => hal}/stm32h7/spi/SpiCookie.h | 0 hal/inc/fsfw/{ => hal}/stm32h7/spi/mspInit.h | 0 hal/inc/fsfw/{ => hal}/stm32h7/spi/spiCore.h | 0 .../{ => hal}/stm32h7/spi/spiDefinitions.h | 0 .../{ => hal}/stm32h7/spi/spiInterrupts.h | 0 .../{ => hal}/stm32h7/spi/stm32h743ziSpi.h | 0 hal/src/CMakeLists.txt | 10 ++++ hal/src/common/CMakeLists.txt | 1 + hal/src/common/gpio/CMakeLists.txt | 2 +- hal/src/common/gpio/GpioCookie.cpp | 2 +- hal/src/devicehandlers/CMakeLists.txt | 2 +- hal/src/devicehandlers/GyroL3GD20Handler.cpp | 4 +- hal/src/linux/CMakeLists.txt | 2 +- hal/src/linux/UnixFileGuard.cpp | 2 +- hal/src/linux/gpio/CMakeLists.txt | 4 +- hal/src/linux/gpio/LinuxLibgpioIF.cpp | 6 +-- hal/src/linux/i2c/CMakeLists.txt | 2 +- hal/src/linux/i2c/I2cComIF.cpp | 8 +-- hal/src/linux/i2c/I2cCookie.cpp | 2 +- hal/src/linux/rpi/CMakeLists.txt | 2 +- hal/src/linux/rpi/GpioRPi.cpp | 7 +-- hal/src/linux/spi/CMakeLists.txt | 2 +- hal/src/linux/spi/SpiComIF.cpp | 10 ++-- hal/src/linux/spi/SpiCookie.cpp | 2 +- hal/src/linux/uart/UartComIF.cpp | 2 +- hal/src/linux/uart/UartCookie.cpp | 2 +- hal/src/stm32h7/CMakeLists.txt | 2 +- hal/src/stm32h7/devicetest/CMakeLists.txt | 2 +- hal/src/stm32h7/gpio/CMakeLists.txt | 2 +- hal/src/stm32h7/i2c/CMakeLists.txt | 2 +- hal/src/stm32h7/spi/CMakeLists.txt | 2 +- hal/src/stm32h7/uart/CMakeLists.txt | 2 +- 56 files changed, 61 insertions(+), 81 deletions(-) create mode 100644 hal/inc/CMakeLists.txt rename hal/inc/fsfw/{ => hal}/common/gpio/GpioCookie.h (100%) rename hal/inc/fsfw/{ => hal}/common/gpio/GpioIF.h (100%) rename hal/inc/fsfw/{ => hal}/common/gpio/gpioDefinitions.h (100%) rename hal/inc/fsfw/{ => hal}/common/spi/spiCommon.h (100%) rename hal/inc/fsfw/{ => hal}/devicehandlers/GyroL3GD20Handler.h (100%) rename hal/inc/fsfw/{ => hal}/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h (100%) rename hal/inc/fsfw/{ => hal}/linux/UnixFileGuard.h (100%) rename hal/inc/fsfw/{ => hal}/linux/gpio/LinuxLibgpioIF.h (100%) rename hal/inc/fsfw/{ => hal}/linux/i2c/I2cComIF.h (100%) rename hal/inc/fsfw/{ => hal}/linux/i2c/I2cCookie.h (100%) rename hal/inc/fsfw/{ => hal}/linux/rpi/GpioRPi.h (100%) rename hal/inc/fsfw/{ => hal}/linux/spi/SpiComIF.h (100%) rename hal/inc/fsfw/{ => hal}/linux/spi/SpiCookie.h (100%) rename hal/inc/fsfw/{ => hal}/linux/spi/spiDefinitions.h (100%) rename hal/inc/fsfw/{ => hal}/linux/uart/UartComIF.h (100%) rename hal/inc/fsfw/{ => hal}/linux/uart/UartCookie.h (100%) rename hal/inc/fsfw/{ => hal}/linux/utility.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/devicetest/GyroL3GD20H.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/dma.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/gpio/gpio.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/interrupts.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/SpiComIF.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/SpiCookie.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/mspInit.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/spiCore.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/spiDefinitions.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/spiInterrupts.h (100%) rename hal/inc/fsfw/{ => hal}/stm32h7/spi/stm32h743ziSpi.h (100%) create mode 100644 hal/src/CMakeLists.txt create mode 100644 hal/src/common/CMakeLists.txt diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 070b9fbc0..018018d0e 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -12,26 +12,12 @@ set(LIB_FSFW_HAL_NAME fsfw_hal) set(LINUX_HAL_PATH_NAME linux) set(STM32H7_PATH_NAME stm32h7) -add_library(${LIB_FSFW_HAL_NAME}) - if(NOT LIB_FSFW_NAME) message(ERROR "LIB_FSFW_NAME needs to be set as a linkable target") endif() -add_subdirectory(devicehandlers) -add_subdirectory(common) - -if(FSFW_HAL_ADD_LINUX) - add_subdirectory(${LINUX_HAL_PATH_NAME}) -endif() - -if(FSFW_HAL_ADD_STM32H7) - add_subdirectory(${STM32H7_PATH_NAME}) -endif() - -target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE - ${LIB_FSFW_NAME} -) +add_subdirectory(src) +add_subdirectory(inc) foreach(INCLUDE_PATH ${FSFW_HAL_ADDITIONAL_INC_PATHS}) if(IS_ABSOLUTE ${INCLUDE_PATH}) @@ -48,40 +34,15 @@ foreach(INCLUDE_PATH ${FSFW_HAL_ADDITIONAL_INC_PATHS}) list(APPEND FSFW_HAL_ADD_INC_PATHS_ABS ${CURR_ABS_INC_PATH}) endforeach() -target_include_directories(${LIB_FSFW_HAL_NAME} PRIVATE +target_include_directories(${LIB_FSFW_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${FSFW_HAL_ADD_INC_PATHS_ABS} ) -target_compile_definitions(${LIB_FSFW_HAL_NAME} PRIVATE +target_compile_definitions(${LIB_FSFW_NAME} PRIVATE ${FSFW_HAL_DEFINES} ) -target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE +target_link_libraries(${LIB_FSFW_NAME} PRIVATE ${FSFW_HAL_LINK_LIBS} ) - -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - if(NOT DEFINED FSFW_WARNING_FLAGS) - set(FSFW_WARNING_FLAGS - -Wall - -Wextra - -Wimplicit-fallthrough=1 - -Wno-unused-parameter - ) - endif() - - target_compile_options(${LIB_FSFW_NAME} PRIVATE - "-ffunction-sections" - "-fdata-sections" - ) - - target_link_options(${LIB_FSFW_NAME} PRIVATE - "Wl,--gc-sections" - ) - - if(FSFW_HAL_WARNING_SHADOW_LOCAL_GCC) - list(APPEND WARNING_FLAGS "-Wshadow=local") - endif() - -endif() diff --git a/hal/inc/CMakeLists.txt b/hal/inc/CMakeLists.txt new file mode 100644 index 000000000..abf6a3d27 --- /dev/null +++ b/hal/inc/CMakeLists.txt @@ -0,0 +1,7 @@ +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) + +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} +) diff --git a/hal/inc/fsfw/common/gpio/GpioCookie.h b/hal/inc/fsfw/hal/common/gpio/GpioCookie.h similarity index 100% rename from hal/inc/fsfw/common/gpio/GpioCookie.h rename to hal/inc/fsfw/hal/common/gpio/GpioCookie.h diff --git a/hal/inc/fsfw/common/gpio/GpioIF.h b/hal/inc/fsfw/hal/common/gpio/GpioIF.h similarity index 100% rename from hal/inc/fsfw/common/gpio/GpioIF.h rename to hal/inc/fsfw/hal/common/gpio/GpioIF.h diff --git a/hal/inc/fsfw/common/gpio/gpioDefinitions.h b/hal/inc/fsfw/hal/common/gpio/gpioDefinitions.h similarity index 100% rename from hal/inc/fsfw/common/gpio/gpioDefinitions.h rename to hal/inc/fsfw/hal/common/gpio/gpioDefinitions.h diff --git a/hal/inc/fsfw/common/spi/spiCommon.h b/hal/inc/fsfw/hal/common/spi/spiCommon.h similarity index 100% rename from hal/inc/fsfw/common/spi/spiCommon.h rename to hal/inc/fsfw/hal/common/spi/spiCommon.h diff --git a/hal/inc/fsfw/devicehandlers/GyroL3GD20Handler.h b/hal/inc/fsfw/hal/devicehandlers/GyroL3GD20Handler.h similarity index 100% rename from hal/inc/fsfw/devicehandlers/GyroL3GD20Handler.h rename to hal/inc/fsfw/hal/devicehandlers/GyroL3GD20Handler.h diff --git a/hal/inc/fsfw/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h b/hal/inc/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h similarity index 100% rename from hal/inc/fsfw/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h rename to hal/inc/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h diff --git a/hal/inc/fsfw/linux/UnixFileGuard.h b/hal/inc/fsfw/hal/linux/UnixFileGuard.h similarity index 100% rename from hal/inc/fsfw/linux/UnixFileGuard.h rename to hal/inc/fsfw/hal/linux/UnixFileGuard.h diff --git a/hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h b/hal/inc/fsfw/hal/linux/gpio/LinuxLibgpioIF.h similarity index 100% rename from hal/inc/fsfw/linux/gpio/LinuxLibgpioIF.h rename to hal/inc/fsfw/hal/linux/gpio/LinuxLibgpioIF.h diff --git a/hal/inc/fsfw/linux/i2c/I2cComIF.h b/hal/inc/fsfw/hal/linux/i2c/I2cComIF.h similarity index 100% rename from hal/inc/fsfw/linux/i2c/I2cComIF.h rename to hal/inc/fsfw/hal/linux/i2c/I2cComIF.h diff --git a/hal/inc/fsfw/linux/i2c/I2cCookie.h b/hal/inc/fsfw/hal/linux/i2c/I2cCookie.h similarity index 100% rename from hal/inc/fsfw/linux/i2c/I2cCookie.h rename to hal/inc/fsfw/hal/linux/i2c/I2cCookie.h diff --git a/hal/inc/fsfw/linux/rpi/GpioRPi.h b/hal/inc/fsfw/hal/linux/rpi/GpioRPi.h similarity index 100% rename from hal/inc/fsfw/linux/rpi/GpioRPi.h rename to hal/inc/fsfw/hal/linux/rpi/GpioRPi.h diff --git a/hal/inc/fsfw/linux/spi/SpiComIF.h b/hal/inc/fsfw/hal/linux/spi/SpiComIF.h similarity index 100% rename from hal/inc/fsfw/linux/spi/SpiComIF.h rename to hal/inc/fsfw/hal/linux/spi/SpiComIF.h diff --git a/hal/inc/fsfw/linux/spi/SpiCookie.h b/hal/inc/fsfw/hal/linux/spi/SpiCookie.h similarity index 100% rename from hal/inc/fsfw/linux/spi/SpiCookie.h rename to hal/inc/fsfw/hal/linux/spi/SpiCookie.h diff --git a/hal/inc/fsfw/linux/spi/spiDefinitions.h b/hal/inc/fsfw/hal/linux/spi/spiDefinitions.h similarity index 100% rename from hal/inc/fsfw/linux/spi/spiDefinitions.h rename to hal/inc/fsfw/hal/linux/spi/spiDefinitions.h diff --git a/hal/inc/fsfw/linux/uart/UartComIF.h b/hal/inc/fsfw/hal/linux/uart/UartComIF.h similarity index 100% rename from hal/inc/fsfw/linux/uart/UartComIF.h rename to hal/inc/fsfw/hal/linux/uart/UartComIF.h diff --git a/hal/inc/fsfw/linux/uart/UartCookie.h b/hal/inc/fsfw/hal/linux/uart/UartCookie.h similarity index 100% rename from hal/inc/fsfw/linux/uart/UartCookie.h rename to hal/inc/fsfw/hal/linux/uart/UartCookie.h diff --git a/hal/inc/fsfw/linux/utility.h b/hal/inc/fsfw/hal/linux/utility.h similarity index 100% rename from hal/inc/fsfw/linux/utility.h rename to hal/inc/fsfw/hal/linux/utility.h diff --git a/hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h b/hal/inc/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h similarity index 100% rename from hal/inc/fsfw/stm32h7/devicetest/GyroL3GD20H.h rename to hal/inc/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h diff --git a/hal/inc/fsfw/stm32h7/dma.h b/hal/inc/fsfw/hal/stm32h7/dma.h similarity index 100% rename from hal/inc/fsfw/stm32h7/dma.h rename to hal/inc/fsfw/hal/stm32h7/dma.h diff --git a/hal/inc/fsfw/stm32h7/gpio/gpio.h b/hal/inc/fsfw/hal/stm32h7/gpio/gpio.h similarity index 100% rename from hal/inc/fsfw/stm32h7/gpio/gpio.h rename to hal/inc/fsfw/hal/stm32h7/gpio/gpio.h diff --git a/hal/inc/fsfw/stm32h7/interrupts.h b/hal/inc/fsfw/hal/stm32h7/interrupts.h similarity index 100% rename from hal/inc/fsfw/stm32h7/interrupts.h rename to hal/inc/fsfw/hal/stm32h7/interrupts.h diff --git a/hal/inc/fsfw/stm32h7/spi/SpiComIF.h b/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/SpiComIF.h rename to hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h diff --git a/hal/inc/fsfw/stm32h7/spi/SpiCookie.h b/hal/inc/fsfw/hal/stm32h7/spi/SpiCookie.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/SpiCookie.h rename to hal/inc/fsfw/hal/stm32h7/spi/SpiCookie.h diff --git a/hal/inc/fsfw/stm32h7/spi/mspInit.h b/hal/inc/fsfw/hal/stm32h7/spi/mspInit.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/mspInit.h rename to hal/inc/fsfw/hal/stm32h7/spi/mspInit.h diff --git a/hal/inc/fsfw/stm32h7/spi/spiCore.h b/hal/inc/fsfw/hal/stm32h7/spi/spiCore.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/spiCore.h rename to hal/inc/fsfw/hal/stm32h7/spi/spiCore.h diff --git a/hal/inc/fsfw/stm32h7/spi/spiDefinitions.h b/hal/inc/fsfw/hal/stm32h7/spi/spiDefinitions.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/spiDefinitions.h rename to hal/inc/fsfw/hal/stm32h7/spi/spiDefinitions.h diff --git a/hal/inc/fsfw/stm32h7/spi/spiInterrupts.h b/hal/inc/fsfw/hal/stm32h7/spi/spiInterrupts.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/spiInterrupts.h rename to hal/inc/fsfw/hal/stm32h7/spi/spiInterrupts.h diff --git a/hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h b/hal/inc/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h similarity index 100% rename from hal/inc/fsfw/stm32h7/spi/stm32h743ziSpi.h rename to hal/inc/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h diff --git a/hal/src/CMakeLists.txt b/hal/src/CMakeLists.txt new file mode 100644 index 000000000..fcd813898 --- /dev/null +++ b/hal/src/CMakeLists.txt @@ -0,0 +1,10 @@ +add_subdirectory(devicehandlers) +add_subdirectory(common) + +if(FSFW_HAL_ADD_LINUX) + add_subdirectory(${LINUX_HAL_PATH_NAME}) +endif() + +if(FSFW_HAL_ADD_STM32H7) + add_subdirectory(${STM32H7_PATH_NAME}) +endif() diff --git a/hal/src/common/CMakeLists.txt b/hal/src/common/CMakeLists.txt new file mode 100644 index 000000000..f1cfec526 --- /dev/null +++ b/hal/src/common/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(gpio) diff --git a/hal/src/common/gpio/CMakeLists.txt b/hal/src/common/gpio/CMakeLists.txt index 9dbcdf9d2..098c05fa1 100644 --- a/hal/src/common/gpio/CMakeLists.txt +++ b/hal/src/common/gpio/CMakeLists.txt @@ -1,3 +1,3 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE GpioCookie.cpp ) \ No newline at end of file diff --git a/hal/src/common/gpio/GpioCookie.cpp b/hal/src/common/gpio/GpioCookie.cpp index da765ceac..31832070a 100644 --- a/hal/src/common/gpio/GpioCookie.cpp +++ b/hal/src/common/gpio/GpioCookie.cpp @@ -1,4 +1,4 @@ -#include "GpioCookie.h" +#include "fsfw/hal/common/gpio/GpioCookie.h" #include "fsfw/serviceinterface/ServiceInterface.h" GpioCookie::GpioCookie() { diff --git a/hal/src/devicehandlers/CMakeLists.txt b/hal/src/devicehandlers/CMakeLists.txt index 1cde7e498..cf542d8d9 100644 --- a/hal/src/devicehandlers/CMakeLists.txt +++ b/hal/src/devicehandlers/CMakeLists.txt @@ -1,3 +1,3 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE GyroL3GD20Handler.cpp ) diff --git a/hal/src/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/devicehandlers/GyroL3GD20Handler.cpp index 79cbe4354..11f7e92d0 100644 --- a/hal/src/devicehandlers/GyroL3GD20Handler.cpp +++ b/hal/src/devicehandlers/GyroL3GD20Handler.cpp @@ -1,6 +1,6 @@ -#include "GyroL3GD20Handler.h" +#include "fsfw/hal/devicehandlers/GyroL3GD20Handler.h" -#include +#include "fsfw/datapool/PoolReadGuard.h" GyroHandlerL3GD20H::GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, CookieIF *comCookie): diff --git a/hal/src/linux/CMakeLists.txt b/hal/src/linux/CMakeLists.txt index 6c2ec77eb..5944b0e5d 100644 --- a/hal/src/linux/CMakeLists.txt +++ b/hal/src/linux/CMakeLists.txt @@ -2,7 +2,7 @@ if(FSFW_HAL_ADD_RASPBERRY_PI) add_subdirectory(rpi) endif() -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE UnixFileGuard.cpp utility.cpp ) diff --git a/hal/src/linux/UnixFileGuard.cpp b/hal/src/linux/UnixFileGuard.cpp index 3aec58d8d..c47e35b19 100644 --- a/hal/src/linux/UnixFileGuard.cpp +++ b/hal/src/linux/UnixFileGuard.cpp @@ -1,4 +1,4 @@ -#include "UnixFileGuard.h" +#include "fsfw/hal/linux/UnixFileGuard.h" UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, std::string diagnosticPrefix): diff --git a/hal/src/linux/gpio/CMakeLists.txt b/hal/src/linux/gpio/CMakeLists.txt index b2041b401..7083f70df 100644 --- a/hal/src/linux/gpio/CMakeLists.txt +++ b/hal/src/linux/gpio/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE LinuxLibgpioIF.cpp ) @@ -7,6 +7,6 @@ target_sources(${LIB_FSFW_HAL_NAME} PRIVATE # to install the package before syncing the sysroot to your host computer. find_library(LIB_GPIO gpiod REQUIRED) -target_link_libraries(${LIB_FSFW_HAL_NAME} PRIVATE +target_link_libraries(${LIB_FSFW_NAME} PRIVATE ${LIB_GPIO} ) \ No newline at end of file diff --git a/hal/src/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/linux/gpio/LinuxLibgpioIF.cpp index cfdac2bf5..98e027964 100644 --- a/hal/src/linux/gpio/LinuxLibgpioIF.cpp +++ b/hal/src/linux/gpio/LinuxLibgpioIF.cpp @@ -1,6 +1,6 @@ -#include "LinuxLibgpioIF.h" -#include -#include +#include "fsfw/hal/linux/gpio/LinuxLibgpioIF.h" +#include "fsfw/hal/common/gpio/gpioDefinitions.h" +#include "fsfw/hal/common/gpio/GpioCookie.h" #include diff --git a/hal/src/linux/i2c/CMakeLists.txt b/hal/src/linux/i2c/CMakeLists.txt index 0e50313c7..3eb0882cc 100644 --- a/hal/src/linux/i2c/CMakeLists.txt +++ b/hal/src/linux/i2c/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${LIB_FSFW_HAL_NAME} PUBLIC +target_sources(${LIB_FSFW_NAME} PUBLIC I2cComIF.cpp I2cCookie.cpp ) diff --git a/hal/src/linux/i2c/I2cComIF.cpp b/hal/src/linux/i2c/I2cComIF.cpp index aa336c7b5..d756e75ea 100644 --- a/hal/src/linux/i2c/I2cComIF.cpp +++ b/hal/src/linux/i2c/I2cComIF.cpp @@ -1,8 +1,8 @@ -#include "I2cComIF.h" -#include "../utility.h" -#include "../UnixFileGuard.h" +#include "fsfw/hal/linux/i2c/I2cComIF.h" +#include "fsfw/hal/linux/utility.h" +#include "fsfw/hal/linux/UnixFileGuard.h" -#include +#include "fsfw/serviceinterface/ServiceInterface.h" #include #include diff --git a/hal/src/linux/i2c/I2cCookie.cpp b/hal/src/linux/i2c/I2cCookie.cpp index fe0f3f925..fd0f654d7 100644 --- a/hal/src/linux/i2c/I2cCookie.cpp +++ b/hal/src/linux/i2c/I2cCookie.cpp @@ -1,4 +1,4 @@ -#include "I2cCookie.h" +#include "fsfw/hal/linux/i2c/I2cCookie.h" I2cCookie::I2cCookie(address_t i2cAddress_, size_t maxReplyLen_, std::string deviceFile_) : diff --git a/hal/src/linux/rpi/CMakeLists.txt b/hal/src/linux/rpi/CMakeLists.txt index 053583aa0..47be218c0 100644 --- a/hal/src/linux/rpi/CMakeLists.txt +++ b/hal/src/linux/rpi/CMakeLists.txt @@ -1,3 +1,3 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE GpioRPi.cpp ) \ No newline at end of file diff --git a/hal/src/linux/rpi/GpioRPi.cpp b/hal/src/linux/rpi/GpioRPi.cpp index 64b6fcaa4..277a9fb2b 100644 --- a/hal/src/linux/rpi/GpioRPi.cpp +++ b/hal/src/linux/rpi/GpioRPi.cpp @@ -1,6 +1,7 @@ -#include "GpioRPi.h" -#include "../../common/gpio/GpioCookie.h" -#include +#include "fsfw/FSFW.h" + +#include "fsfw/hal/linux/rpi/GpioRPi.h" +#include "fsfw/hal/common/gpio/GpioCookie.h" #include diff --git a/hal/src/linux/spi/CMakeLists.txt b/hal/src/linux/spi/CMakeLists.txt index 5794547c4..404e1f477 100644 --- a/hal/src/linux/spi/CMakeLists.txt +++ b/hal/src/linux/spi/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${LIB_FSFW_HAL_NAME} PUBLIC +target_sources(${LIB_FSFW_NAME} PUBLIC SpiComIF.cpp SpiCookie.cpp ) diff --git a/hal/src/linux/spi/SpiComIF.cpp b/hal/src/linux/spi/SpiComIF.cpp index 9dc44295e..f3d8ab09c 100644 --- a/hal/src/linux/spi/SpiComIF.cpp +++ b/hal/src/linux/spi/SpiComIF.cpp @@ -1,8 +1,8 @@ -#include "SpiComIF.h" -#include "SpiCookie.h" -#include "../utility.h" -#include "../UnixFileGuard.h" -#include "FSFWConfig.h" +#include "fsfw/FSFW.h" +#include "fsfw/hal/linux/spi/SpiComIF.h" +#include "fsfw/hal/linux/spi/SpiCookie.h" +#include "fsfw/hal/linux/utility.h" +#include "fsfw/hal/linux/UnixFileGuard.h" #include #include diff --git a/hal/src/linux/spi/SpiCookie.cpp b/hal/src/linux/spi/SpiCookie.cpp index e34ea36a7..a74bc419e 100644 --- a/hal/src/linux/spi/SpiCookie.cpp +++ b/hal/src/linux/spi/SpiCookie.cpp @@ -1,4 +1,4 @@ -#include "SpiCookie.h" +#include "fsfw/hal/linux/spi/SpiCookie.h" SpiCookie::SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed): diff --git a/hal/src/linux/uart/UartComIF.cpp b/hal/src/linux/uart/UartComIF.cpp index c84affa9e..e5fc90c3f 100644 --- a/hal/src/linux/uart/UartComIF.cpp +++ b/hal/src/linux/uart/UartComIF.cpp @@ -1,4 +1,4 @@ -#include "UartComIF.h" +#include "fsfw/hal/linux/uart/UartComIF.h" #include "OBSWConfig.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/linux/uart/UartCookie.cpp b/hal/src/linux/uart/UartCookie.cpp index 2e9cede95..bfd091a8c 100644 --- a/hal/src/linux/uart/UartCookie.cpp +++ b/hal/src/linux/uart/UartCookie.cpp @@ -1,4 +1,4 @@ -#include "UartCookie.h" +#include "fsfw/hal/linux/uart/UartCookie.h" #include diff --git a/hal/src/stm32h7/CMakeLists.txt b/hal/src/stm32h7/CMakeLists.txt index 63c137349..bae3b1ac8 100644 --- a/hal/src/stm32h7/CMakeLists.txt +++ b/hal/src/stm32h7/CMakeLists.txt @@ -2,6 +2,6 @@ add_subdirectory(spi) add_subdirectory(gpio) add_subdirectory(devicetest) -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE dma.cpp ) diff --git a/hal/src/stm32h7/devicetest/CMakeLists.txt b/hal/src/stm32h7/devicetest/CMakeLists.txt index 1ee43134a..7bd4c3a96 100644 --- a/hal/src/stm32h7/devicetest/CMakeLists.txt +++ b/hal/src/stm32h7/devicetest/CMakeLists.txt @@ -1,3 +1,3 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE GyroL3GD20H.cpp ) \ No newline at end of file diff --git a/hal/src/stm32h7/gpio/CMakeLists.txt b/hal/src/stm32h7/gpio/CMakeLists.txt index 66027dd97..35245b253 100644 --- a/hal/src/stm32h7/gpio/CMakeLists.txt +++ b/hal/src/stm32h7/gpio/CMakeLists.txt @@ -1,3 +1,3 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE gpio.cpp ) diff --git a/hal/src/stm32h7/i2c/CMakeLists.txt b/hal/src/stm32h7/i2c/CMakeLists.txt index aa3194a93..5ecb09909 100644 --- a/hal/src/stm32h7/i2c/CMakeLists.txt +++ b/hal/src/stm32h7/i2c/CMakeLists.txt @@ -1,2 +1,2 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE ) diff --git a/hal/src/stm32h7/spi/CMakeLists.txt b/hal/src/stm32h7/spi/CMakeLists.txt index fb4f64746..e28c35aa2 100644 --- a/hal/src/stm32h7/spi/CMakeLists.txt +++ b/hal/src/stm32h7/spi/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE spiCore.cpp spiDefinitions.cpp spiInterrupts.cpp diff --git a/hal/src/stm32h7/uart/CMakeLists.txt b/hal/src/stm32h7/uart/CMakeLists.txt index aa3194a93..5ecb09909 100644 --- a/hal/src/stm32h7/uart/CMakeLists.txt +++ b/hal/src/stm32h7/uart/CMakeLists.txt @@ -1,2 +1,2 @@ -target_sources(${LIB_FSFW_HAL_NAME} PRIVATE +target_sources(${LIB_FSFW_NAME} PRIVATE ) From 3c364604ac4fecd3c1ea5c38e6dca564c232c7a6 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 15 Jul 2021 18:59:47 +0200 Subject: [PATCH 037/136] target name replaced --- hal/src/linux/uart/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hal/src/linux/uart/CMakeLists.txt b/hal/src/linux/uart/CMakeLists.txt index d8cea5a82..21ed0278f 100644 --- a/hal/src/linux/uart/CMakeLists.txt +++ b/hal/src/linux/uart/CMakeLists.txt @@ -1,4 +1,4 @@ -target_sources(${TARGET_NAME} PUBLIC +target_sources(${LIB_FSFW_NAME} PUBLIC UartComIF.cpp UartCookie.cpp ) From d11e54dc0a296bda86b5597a34e5e8ba59b9653e Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 15 Jul 2021 19:06:40 +0200 Subject: [PATCH 038/136] some more fixes --- hal/CMakeLists.txt | 6 ------ hal/src/linux/utility.cpp | 7 ++++++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 018018d0e..4cb183158 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -8,14 +8,9 @@ option(FSFW_HAL_ADD_RASPBERRY_PI "Add Raspberry Pi specific code to the sources" option(FSFW_HAL_ADD_STM32H7 "Add the STM32H7 HAL to the sources" OFF) option(FSFW_HAL_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) -set(LIB_FSFW_HAL_NAME fsfw_hal) set(LINUX_HAL_PATH_NAME linux) set(STM32H7_PATH_NAME stm32h7) -if(NOT LIB_FSFW_NAME) - message(ERROR "LIB_FSFW_NAME needs to be set as a linkable target") -endif() - add_subdirectory(src) add_subdirectory(inc) @@ -35,7 +30,6 @@ foreach(INCLUDE_PATH ${FSFW_HAL_ADDITIONAL_INC_PATHS}) endforeach() target_include_directories(${LIB_FSFW_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} ${FSFW_HAL_ADD_INC_PATHS_ABS} ) diff --git a/hal/src/linux/utility.cpp b/hal/src/linux/utility.cpp index c63b80148..04fded6c6 100644 --- a/hal/src/linux/utility.cpp +++ b/hal/src/linux/utility.cpp @@ -1,4 +1,9 @@ -#include +#include "fsfw/FSFW.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/hal/linux/utility.h" + +#include +#include void utility::handleIoctlError(const char* const customPrintout) { #if FSFW_VERBOSE_LEVEL >= 1 From 1db5c950b883a0e95644e06a49ef74577a289a4e Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 15 Jul 2021 19:23:12 +0200 Subject: [PATCH 039/136] stm32h7 include corrections --- hal/inc/fsfw/hal/stm32h7/gpio/gpio.h | 2 -- hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h | 4 ++-- hal/inc/fsfw/hal/stm32h7/spi/spiCore.h | 5 +++-- hal/src/stm32h7/devicetest/GyroL3GD20H.cpp | 12 ++++++------ hal/src/stm32h7/gpio/gpio.cpp | 2 +- hal/src/stm32h7/spi/SpiComIF.cpp | 14 +++++++------- hal/src/stm32h7/spi/SpiCookie.cpp | 2 +- hal/src/stm32h7/spi/mspInit.cpp | 11 ++++++----- hal/src/stm32h7/spi/spiCore.cpp | 5 +++-- hal/src/stm32h7/spi/spiDefinitions.cpp | 2 +- hal/src/stm32h7/spi/spiInterrupts.cpp | 4 ++-- hal/src/stm32h7/spi/stm32h743ziSpi.cpp | 7 ++++--- 12 files changed, 36 insertions(+), 34 deletions(-) diff --git a/hal/inc/fsfw/hal/stm32h7/gpio/gpio.h b/hal/inc/fsfw/hal/stm32h7/gpio/gpio.h index adb60de65..38fcd708d 100644 --- a/hal/inc/fsfw/hal/stm32h7/gpio/gpio.h +++ b/hal/inc/fsfw/hal/stm32h7/gpio/gpio.h @@ -9,6 +9,4 @@ void initializeGpioClock(GPIO_TypeDef* gpioPort); } - - #endif /* FSFW_HAL_STM32H7_GPIO_GPIO_H_ */ diff --git a/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h b/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h index 4b1ef801b..c2554544c 100644 --- a/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h +++ b/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h @@ -5,8 +5,8 @@ #include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include "fsfw/objectmanager/SystemObject.h" -#include "fsfw/osal/FreeRTOS/BinarySemaphore.h" -#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw/osal/freertos/BinarySemaphore.h" +#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" #include "stm32h7xx_hal_spi.h" #include "stm32h743xx.h" diff --git a/hal/inc/fsfw/hal/stm32h7/spi/spiCore.h b/hal/inc/fsfw/hal/stm32h7/spi/spiCore.h index 7a9a0e18e..bff90a5b0 100644 --- a/hal/inc/fsfw/hal/stm32h7/spi/spiCore.h +++ b/hal/inc/fsfw/hal/stm32h7/spi/spiCore.h @@ -1,11 +1,12 @@ #ifndef FSFW_HAL_STM32H7_SPI_SPICORE_H_ #define FSFW_HAL_STM32H7_SPI_SPICORE_H_ -#include +#include "fsfw/hal/stm32h7/dma.h" +#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" + #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_dma.h" - #ifdef __cplusplus extern "C" { #endif diff --git a/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp index 8176c3c25..6765f5400 100644 --- a/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp +++ b/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp @@ -1,10 +1,10 @@ -#include "GyroL3GD20H.h" +#include "fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h" -#include "../spi/mspInit.h" -#include "../spi/spiDefinitions.h" -#include "../spi/spiCore.h" -#include "../spi/spiInterrupts.h" -#include "../spi/stm32h743ziSpi.h" +#include "fsfw/hal/stm32h7/spi/mspInit.h" +#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw/hal/stm32h7/spi/spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw/hal/stm32h7/spi/stm32h743ziSpi.h" #include "fsfw/tasks/TaskFactory.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/stm32h7/gpio/gpio.cpp b/hal/src/stm32h7/gpio/gpio.cpp index 50873f753..927588a37 100644 --- a/hal/src/stm32h7/gpio/gpio.cpp +++ b/hal/src/stm32h7/gpio/gpio.cpp @@ -1,4 +1,4 @@ -#include "gpio.h" +#include "fsfw/hal/stm32h7/gpio/gpio.h" #include "stm32h7xx_hal_rcc.h" diff --git a/hal/src/stm32h7/spi/SpiComIF.cpp b/hal/src/stm32h7/spi/SpiComIF.cpp index 732fb5ea7..d1484de06 100644 --- a/hal/src/stm32h7/spi/SpiComIF.cpp +++ b/hal/src/stm32h7/spi/SpiComIF.cpp @@ -1,12 +1,12 @@ -#include "SpiComIF.h" -#include "SpiCookie.h" +#include "fsfw/hal/stm32h7/spi/SpiComIF.h" +#include "fsfw/hal/stm32h7/spi/SpiCookie.h" #include "fsfw/tasks/SemaphoreFactory.h" -#include "fsfw/osal/FreeRTOS/TaskManagement.h" -#include "fsfw_hal/stm32h7/spi/spiCore.h" -#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw_hal/stm32h7/spi/mspInit.h" -#include "fsfw_hal/stm32h7/gpio/gpio.h" +#include "fsfw/osal/freertos/TaskManagement.h" +#include "fsfw/hal/stm32h7/spi/spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw/hal/stm32h7/spi/mspInit.h" +#include "fsfw/hal/stm32h7/gpio/gpio.h" #include "stm32h7xx_hal_gpio.h" diff --git a/hal/src/stm32h7/spi/SpiCookie.cpp b/hal/src/stm32h7/spi/SpiCookie.cpp index 06c0ac5ff..82d705c21 100644 --- a/hal/src/stm32h7/spi/SpiCookie.cpp +++ b/hal/src/stm32h7/spi/SpiCookie.cpp @@ -1,4 +1,4 @@ -#include "SpiCookie.h" +#include "fsfw/hal/stm32h7/spi/SpiCookie.h" SpiCookie::SpiCookie(address_t deviceAddress, spi::SpiBus spiIdx, spi::TransferModes transferMode, diff --git a/hal/src/stm32h7/spi/mspInit.cpp b/hal/src/stm32h7/spi/mspInit.cpp index 80d2ffe04..424a8bfb9 100644 --- a/hal/src/stm32h7/spi/mspInit.cpp +++ b/hal/src/stm32h7/spi/mspInit.cpp @@ -1,13 +1,14 @@ -#include -#include "mspInit.h" -#include "spiCore.h" -#include "spiInterrupts.h" +#include "fsfw/hal/stm32h7/dma.h" +#include "fsfw/hal/stm32h7/spi/mspInit.h" +#include "fsfw/hal/stm32h7/spi/spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" + #include "stm32h743xx.h" #include "stm32h7xx_hal_spi.h" #include "stm32h7xx_hal_dma.h" #include "stm32h7xx_hal_def.h" -#include +#include spi::msp_func_t mspInitFunc = nullptr; spi::MspCfgBase* mspInitArgs = nullptr; diff --git a/hal/src/stm32h7/spi/spiCore.cpp b/hal/src/stm32h7/spi/spiCore.cpp index feec65f07..a72bf12b6 100644 --- a/hal/src/stm32h7/spi/spiCore.cpp +++ b/hal/src/stm32h7/spi/spiCore.cpp @@ -1,5 +1,6 @@ -#include "spiDefinitions.h" -#include "spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" + #include SPI_HandleTypeDef* spiHandle = nullptr; diff --git a/hal/src/stm32h7/spi/spiDefinitions.cpp b/hal/src/stm32h7/spi/spiDefinitions.cpp index fbceb9345..6a83ae42b 100644 --- a/hal/src/stm32h7/spi/spiDefinitions.cpp +++ b/hal/src/stm32h7/spi/spiDefinitions.cpp @@ -1,4 +1,4 @@ -#include "spiDefinitions.h" +#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" void spi::assignSpiMode(SpiModes spiMode, SPI_HandleTypeDef& spiHandle) { switch(spiMode) { diff --git a/hal/src/stm32h7/spi/spiInterrupts.cpp b/hal/src/stm32h7/spi/spiInterrupts.cpp index 83ba73229..90cfe7065 100644 --- a/hal/src/stm32h7/spi/spiInterrupts.cpp +++ b/hal/src/stm32h7/spi/spiInterrupts.cpp @@ -1,5 +1,5 @@ -#include "spiInterrupts.h" -#include "spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw/hal/stm32h7/spi/spiCore.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_dma.h" diff --git a/hal/src/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/stm32h7/spi/stm32h743ziSpi.cpp index 826ecb23a..f1f2815ef 100644 --- a/hal/src/stm32h7/spi/stm32h743ziSpi.cpp +++ b/hal/src/stm32h7/spi/stm32h743ziSpi.cpp @@ -1,6 +1,7 @@ -#include "stm32h743ziSpi.h" -#include "spiCore.h" -#include "spiInterrupts.h" +#include "fsfw/hal/stm32h7/spi/stm32h743ziSpi.h" +#include "fsfw/hal/stm32h7/spi/spiCore.h" +#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" + #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_rcc.h" From aafccd191e3a592e19c09b01b95dea89c8936e54 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 15 Jul 2021 19:27:13 +0200 Subject: [PATCH 040/136] correction in dma.cpp --- hal/src/stm32h7/dma.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hal/src/stm32h7/dma.cpp b/hal/src/stm32h7/dma.cpp index 91fb3382a..288e42944 100644 --- a/hal/src/stm32h7/dma.cpp +++ b/hal/src/stm32h7/dma.cpp @@ -1,6 +1,7 @@ -#include -#include -#include +#include + +#include +#include user_handler_t DMA_1_USER_HANDLERS[8]; user_args_t DMA_1_USER_ARGS[8]; From a65a1840838435f8ce3cfed8bc7a2adf74eac2ac Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 16 Jul 2021 12:22:14 +0200 Subject: [PATCH 041/136] not an ideal solution but works for now --- hal/inc/fsfw/hal/linux/spi/SpiComIF.h | 6 +++--- hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h | 2 +- hal/src/stm32h7/devicetest/GyroL3GD20H.cpp | 1 - hal/src/stm32h7/spi/SpiComIF.cpp | 17 ++++++++++++++- inc/fsfw/osal/freertos/BinarySemaphore.h | 2 +- inc/fsfw/osal/rtems/BinarySemaphore.h | 21 +++++++++++++++++++ inc/fsfw/osal/rtems/MessageQueue.h | 6 +++--- src/osal/rtems/BinarySemaphore.cpp | 24 ++++++++++++++++++++++ src/osal/rtems/CMakeLists.txt | 1 + 9 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 inc/fsfw/osal/rtems/BinarySemaphore.h create mode 100644 src/osal/rtems/BinarySemaphore.cpp diff --git a/hal/inc/fsfw/hal/linux/spi/SpiComIF.h b/hal/inc/fsfw/hal/linux/spi/SpiComIF.h index 676c7cba7..7f66b8e50 100644 --- a/hal/inc/fsfw/hal/linux/spi/SpiComIF.h +++ b/hal/inc/fsfw/hal/linux/spi/SpiComIF.h @@ -3,10 +3,10 @@ #include "spiDefinitions.h" #include "returnvalues/classIds.h" -#include "../../common/gpio/GpioIF.h" +#include "fsfw/hal/common/gpio/GpioIF.h" -#include -#include +#include "fsfw/devicehandlers/DeviceCommunicationIF.h" +#include "fsfw/objectmanager/SystemObject.h" #include #include diff --git a/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h b/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h index c2554544c..00625b34d 100644 --- a/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h +++ b/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h @@ -5,7 +5,6 @@ #include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include "fsfw/objectmanager/SystemObject.h" -#include "fsfw/osal/freertos/BinarySemaphore.h" #include "fsfw/hal/stm32h7/spi/spiDefinitions.h" #include "stm32h7xx_hal_spi.h" #include "stm32h743xx.h" @@ -14,6 +13,7 @@ #include class SpiCookie; +class BinarySemaphore; /** * @brief This communication interface allows using generic device handlers with using diff --git a/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp index 6765f5400..04b1de3bc 100644 --- a/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp +++ b/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp @@ -9,7 +9,6 @@ #include "fsfw/tasks/TaskFactory.h" #include "fsfw/serviceinterface/ServiceInterface.h" -#include "stm32h7xx_nucleo.h" #include "stm32h7xx_hal_spi.h" #include "stm32h7xx_hal_rcc.h" diff --git a/hal/src/stm32h7/spi/SpiComIF.cpp b/hal/src/stm32h7/spi/SpiComIF.cpp index d1484de06..da34c4c0c 100644 --- a/hal/src/stm32h7/spi/SpiComIF.cpp +++ b/hal/src/stm32h7/spi/SpiComIF.cpp @@ -2,12 +2,21 @@ #include "fsfw/hal/stm32h7/spi/SpiCookie.h" #include "fsfw/tasks/SemaphoreFactory.h" -#include "fsfw/osal/freertos/TaskManagement.h" #include "fsfw/hal/stm32h7/spi/spiCore.h" #include "fsfw/hal/stm32h7/spi/spiInterrupts.h" #include "fsfw/hal/stm32h7/spi/mspInit.h" #include "fsfw/hal/stm32h7/gpio/gpio.h" +// FreeRTOS required special Semaphore handling from an ISR. Therefore, we use the concrete +// instance here, because RTEMS and FreeRTOS are the only relevant OSALs currently +// and it is not trivial to add a releaseFromISR to the SemaphoreIF +#if defined FSFW_OSAL_RTEMS +#include "fsfw/osal/rtems/BinarySemaphore.h" +#elif defined FSFW_OSAL_FREERTOS +#include "fsfw/osal/freertos/TaskManagement.h" +#include "fsfw/osal/freertos/BinarySemaphore.h" +#endif + #include "stm32h7xx_hal_gpio.h" SpiComIF::SpiComIF(object_id_t objectId): SystemObject(objectId) { @@ -421,10 +430,14 @@ void SpiComIF::genericIrqHandler(void *irqArgsVoid, spi::TransferStates targetSt HAL_GPIO_WritePin(spiCookie->getChipSelectGpioPort(), spiCookie->getChipSelectGpioPin(), GPIO_PIN_SET); +#if defined FSFW_OSAL_FREERTOS // Release the task semaphore BaseType_t taskWoken = pdFALSE; ReturnValue_t result = BinarySemaphore::releaseFromISR(comIF->spiSemaphore->getSemaphore(), &taskWoken); +#elif defined FSFW_OSAL_RTEMS + ReturnValue_t result = comIF->spiSemaphore->release(); +#endif if(result != HasReturnvaluesIF::RETURN_OK) { // Configuration error printf("SpiComIF::genericIrqHandler: Failure releasing Semaphore!\n"); @@ -436,11 +449,13 @@ void SpiComIF::genericIrqHandler(void *irqArgsVoid, spi::TransferStates targetSt SCB_InvalidateDCache_by_Addr ((uint32_t *) comIF->currentRecvPtr, comIF->currentRecvBuffSize); } +#if defined FSFW_OSAL_FREERTOS /* Request a context switch if the SPI ComIF task was woken up and has a higher priority than the currently running task */ if(taskWoken == pdTRUE) { TaskManagement::requestContextSwitch(CallContext::ISR); } +#endif } void SpiComIF::printCfgError(const char *const type) { diff --git a/inc/fsfw/osal/freertos/BinarySemaphore.h b/inc/fsfw/osal/freertos/BinarySemaphore.h index 1ae56ff66..6e70bf70c 100644 --- a/inc/fsfw/osal/freertos/BinarySemaphore.h +++ b/inc/fsfw/osal/freertos/BinarySemaphore.h @@ -98,7 +98,7 @@ public: * already available. */ static ReturnValue_t releaseFromISR(SemaphoreHandle_t semaphore, - BaseType_t * higherPriorityTaskWoken); + BaseType_t * higherPriorityTaskWoken) override; protected: SemaphoreHandle_t handle; diff --git a/inc/fsfw/osal/rtems/BinarySemaphore.h b/inc/fsfw/osal/rtems/BinarySemaphore.h new file mode 100644 index 000000000..3b3a5aba3 --- /dev/null +++ b/inc/fsfw/osal/rtems/BinarySemaphore.h @@ -0,0 +1,21 @@ +#ifndef FSFW_INC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ +#define FSFW_INC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ + +#include "fsfw/tasks/SemaphoreIF.h" + +class BinarySemaphore: public SemaphoreIF { +public: + BinarySemaphore(); + virtual ~BinarySemaphore(); + + // Interface implementation + ReturnValue_t acquire(TimeoutType timeoutType = + TimeoutType::BLOCKING, uint32_t timeoutMs = 0) override; + ReturnValue_t release() override; + uint8_t getSemaphoreCounter() const override; +private: +}; + + + +#endif /* FSFW_INC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ */ diff --git a/inc/fsfw/osal/rtems/MessageQueue.h b/inc/fsfw/osal/rtems/MessageQueue.h index 342f1e30f..fa143ebe0 100644 --- a/inc/fsfw/osal/rtems/MessageQueue.h +++ b/inc/fsfw/osal/rtems/MessageQueue.h @@ -1,9 +1,9 @@ #ifndef FSFW_OSAL_RTEMS_MESSAGEQUEUE_H_ #define FSFW_OSAL_RTEMS_MESSAGEQUEUE_H_ -#include "../../internalError/InternalErrorReporterIF.h" -#include "../../ipc/MessageQueueIF.h" -#include "../../ipc/MessageQueueMessage.h" +#include "fsfw/internalerror/InternalErrorReporterIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" #include "RtemsBasic.h" /** diff --git a/src/osal/rtems/BinarySemaphore.cpp b/src/osal/rtems/BinarySemaphore.cpp new file mode 100644 index 000000000..f9db1009a --- /dev/null +++ b/src/osal/rtems/BinarySemaphore.cpp @@ -0,0 +1,24 @@ +#include "fsfw/osal/rtems/BinarySemaphore.h" + +#include + +BinarySemaphore::BinarySemaphore() { +} + +BinarySemaphore::~BinarySemaphore() { + +} + +// Interface implementation +ReturnValue_t BinarySemaphore::acquire(TimeoutType timeoutType, uint32_t timeoutMs) { + return HasReturnvaluesIF::RETURN_OK; +} + + +ReturnValue_t BinarySemaphore::release() { + return HasReturnvaluesIF::RETURN_OK; +} + +uint8_t BinarySemaphore::getSemaphoreCounter() const { + return 0; +} diff --git a/src/osal/rtems/CMakeLists.txt b/src/osal/rtems/CMakeLists.txt index cd266125f..ac728b2fd 100644 --- a/src/osal/rtems/CMakeLists.txt +++ b/src/osal/rtems/CMakeLists.txt @@ -13,6 +13,7 @@ target_sources(${LIB_FSFW_NAME} RtemsBasic.cpp RTEMSTaskBase.cpp TaskFactory.cpp + BinarySemaphore.cpp ) From 291a8d4ea30b1e18aaa1236fe7a65be14c869994 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 16 Jul 2021 12:33:19 +0200 Subject: [PATCH 042/136] added semaphore factory --- src/osal/rtems/CMakeLists.txt | 1 + src/osal/rtems/SemaphoreFactory.cpp | 34 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/osal/rtems/SemaphoreFactory.cpp diff --git a/src/osal/rtems/CMakeLists.txt b/src/osal/rtems/CMakeLists.txt index ac728b2fd..734566a37 100644 --- a/src/osal/rtems/CMakeLists.txt +++ b/src/osal/rtems/CMakeLists.txt @@ -14,6 +14,7 @@ target_sources(${LIB_FSFW_NAME} RTEMSTaskBase.cpp TaskFactory.cpp BinarySemaphore.cpp + SemaphoreFactory.cpp ) diff --git a/src/osal/rtems/SemaphoreFactory.cpp b/src/osal/rtems/SemaphoreFactory.cpp new file mode 100644 index 000000000..cec4b833a --- /dev/null +++ b/src/osal/rtems/SemaphoreFactory.cpp @@ -0,0 +1,34 @@ +#include "fsfw/osal/rtems/BinarySemaphore.h" +//#include "fsfw/osal/rtems/CountingSemaphore.h" + +#include "fsfw/tasks/SemaphoreFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + +SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr; + +SemaphoreFactory::SemaphoreFactory() { +} + +SemaphoreFactory::~SemaphoreFactory() { + delete factoryInstance; +} + +SemaphoreFactory* SemaphoreFactory::instance() { + if (factoryInstance == nullptr){ + factoryInstance = new SemaphoreFactory(); + } + return SemaphoreFactory::factoryInstance; +} + +SemaphoreIF* SemaphoreFactory::createBinarySemaphore(uint32_t argument) { + return new BinarySemaphore(); +} + +SemaphoreIF* SemaphoreFactory::createCountingSemaphore(uint8_t maxCount, + uint8_t initCount, uint32_t argument) { + return nullptr; +} + +void SemaphoreFactory::deleteSemaphore(SemaphoreIF* semaphore) { + delete semaphore; +} From 0b45e5c89a25e0f0222ae7c5a20d5839b80efff7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 14:40:32 +0200 Subject: [PATCH 043/136] fix --- osal/host/QueueMapManager.cpp | 4 ++++ osal/host/QueueMapManager.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/osal/host/QueueMapManager.cpp b/osal/host/QueueMapManager.cpp index 879bc36d2..cea79f7b7 100644 --- a/osal/host/QueueMapManager.cpp +++ b/osal/host/QueueMapManager.cpp @@ -25,6 +25,10 @@ ReturnValue_t QueueMapManager::addMessageQueue( MessageQueueIF* queueToInsert, MessageQueueId_t* id) { MutexGuard lock(mapLock); uint32_t currentId = queueCounter++; + if(currentId == MessageQueueIF::NO_QUEUE) { + // Skip the NO_QUEUE value + currentId = queueCounter++; + } auto returnPair = queueMap.emplace(currentId, queueToInsert); if(not returnPair.second) { /* This should never happen for the atomic variable. */ diff --git a/osal/host/QueueMapManager.h b/osal/host/QueueMapManager.h index e274bed24..c4e0fcdfd 100644 --- a/osal/host/QueueMapManager.h +++ b/osal/host/QueueMapManager.h @@ -41,7 +41,8 @@ private: QueueMapManager(); ~QueueMapManager(); - uint32_t queueCounter = 0; + // Start at 1 because 0 might be the NO_QUEUE value + uint32_t queueCounter = 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; From e93230d0efae8cc2045299346406ff6026f27fcd Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 14:47:33 +0200 Subject: [PATCH 044/136] update init value --- osal/FreeRTOS/QueueMapManager.h | 3 +-- osal/host/QueueMapManager.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/osal/FreeRTOS/QueueMapManager.h b/osal/FreeRTOS/QueueMapManager.h index e86fe17b6..032fb2ba0 100644 --- a/osal/FreeRTOS/QueueMapManager.h +++ b/osal/FreeRTOS/QueueMapManager.h @@ -39,8 +39,7 @@ private: QueueMapManager(); ~QueueMapManager(); - // Start at 1 because 0 might be the NO_QUEUE value - uint32_t queueCounter = 1; + uint32_t queueCounter = MessageQueueIF::NO_QUEUE + 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; diff --git a/osal/host/QueueMapManager.h b/osal/host/QueueMapManager.h index c4e0fcdfd..2dd2a01d4 100644 --- a/osal/host/QueueMapManager.h +++ b/osal/host/QueueMapManager.h @@ -41,8 +41,7 @@ private: QueueMapManager(); ~QueueMapManager(); - // Start at 1 because 0 might be the NO_QUEUE value - uint32_t queueCounter = 1; + uint32_t queueCounter = MessageQueueIF::NO_QUEUE + 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; From baf3d4da477a07ee42a0a537721e4fd35bbd11b8 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 14:57:10 +0200 Subject: [PATCH 045/136] better form --- osal/FreeRTOS/QueueMapManager.cpp | 6 ++++-- osal/host/QueueMapManager.cpp | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/osal/FreeRTOS/QueueMapManager.cpp b/osal/FreeRTOS/QueueMapManager.cpp index 8e8b0c3ef..b58fd4feb 100644 --- a/osal/FreeRTOS/QueueMapManager.cpp +++ b/osal/FreeRTOS/QueueMapManager.cpp @@ -17,10 +17,12 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueueId_t* id) { MutexGuard lock(mapLock); - uint32_t currentId = queueCounter++; + uint32_t currentId = queueCounter; + queueCounter++; if(currentId == MessageQueueIF::NO_QUEUE) { // Skip the NO_QUEUE value - currentId = queueCounter++; + currentId = queueCounter; + queueCounter++; } auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { diff --git a/osal/host/QueueMapManager.cpp b/osal/host/QueueMapManager.cpp index cea79f7b7..5117d5516 100644 --- a/osal/host/QueueMapManager.cpp +++ b/osal/host/QueueMapManager.cpp @@ -24,10 +24,12 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue( MessageQueueIF* queueToInsert, MessageQueueId_t* id) { MutexGuard lock(mapLock); - uint32_t currentId = queueCounter++; + uint32_t currentId = queueCounter; + queueCounter++; if(currentId == MessageQueueIF::NO_QUEUE) { // Skip the NO_QUEUE value - currentId = queueCounter++; + currentId = queueCounter; + queueCounter++; } auto returnPair = queueMap.emplace(currentId, queueToInsert); if(not returnPair.second) { From 16ed5e32706f431bf8e3d16c9a570006d376c017 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 15:01:43 +0200 Subject: [PATCH 046/136] update to bugfix --- src/osal/freertos/QueueMapManager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osal/freertos/QueueMapManager.cpp b/src/osal/freertos/QueueMapManager.cpp index e32cbe1d4..7d6b2f124 100644 --- a/src/osal/freertos/QueueMapManager.cpp +++ b/src/osal/freertos/QueueMapManager.cpp @@ -17,10 +17,12 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue(QueueHandle_t queue, MessageQueueId_t* id) { MutexGuard lock(mapLock); - uint32_t currentId = queueCounter++; + uint32_t currentId = queueCounter; + queueCounter++; if(currentId == MessageQueueIF::NO_QUEUE) { // Skip the NO_QUEUE value - currentId = queueCounter++; + currentId = queueCounter; + queueCounter++; } auto returnPair = queueMap.emplace(currentId, queue); if(not returnPair.second) { From 4c41cb1f715c7f1dd25cb9cd3f85add45889ae92 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 15:03:02 +0200 Subject: [PATCH 047/136] update to upstream --- src/osal/host/QueueMapManager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/osal/host/QueueMapManager.cpp b/src/osal/host/QueueMapManager.cpp index ad39972f8..58575cf67 100644 --- a/src/osal/host/QueueMapManager.cpp +++ b/src/osal/host/QueueMapManager.cpp @@ -24,7 +24,13 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue( MessageQueueIF* queueToInsert, MessageQueueId_t* id) { MutexGuard lock(mapLock); - uint32_t currentId = queueCounter++; + uint32_t currentId = queueCounter; + queueCounter++; + if(currentId == MessageQueueIF::NO_QUEUE) { + // Skip the NO_QUEUE value + currentId = queueCounter; + queueCounter++; + } auto returnPair = queueMap.emplace(currentId, queueToInsert); if(not returnPair.second) { /* This should never happen for the atomic variable. */ From cbdf92a775300885916add805fafd4f7f9de786a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 15:04:08 +0200 Subject: [PATCH 048/136] update to origin --- inc/fsfw/osal/freertos/QueueMapManager.h | 3 +-- inc/fsfw/osal/host/QueueMapManager.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/inc/fsfw/osal/freertos/QueueMapManager.h b/inc/fsfw/osal/freertos/QueueMapManager.h index 7e999b0d1..dbe0526bc 100644 --- a/inc/fsfw/osal/freertos/QueueMapManager.h +++ b/inc/fsfw/osal/freertos/QueueMapManager.h @@ -39,8 +39,7 @@ private: QueueMapManager(); ~QueueMapManager(); - // Start at 1 because 0 might be the NO_QUEUE value - uint32_t queueCounter = 1; + uint32_t queueCounter = MessageQueueIF::NO_QUEUE + 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; diff --git a/inc/fsfw/osal/host/QueueMapManager.h b/inc/fsfw/osal/host/QueueMapManager.h index e274bed24..2dd2a01d4 100644 --- a/inc/fsfw/osal/host/QueueMapManager.h +++ b/inc/fsfw/osal/host/QueueMapManager.h @@ -41,7 +41,7 @@ private: QueueMapManager(); ~QueueMapManager(); - uint32_t queueCounter = 0; + uint32_t queueCounter = MessageQueueIF::NO_QUEUE + 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance; From 7849b8e39130d4ccb7f0aada141dc0deaad852d9 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 15:07:56 +0200 Subject: [PATCH 049/136] mutex update --- src/osal/host/Mutex.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/osal/host/Mutex.cpp diff --git a/src/osal/host/Mutex.cpp b/src/osal/host/Mutex.cpp new file mode 100644 index 000000000..1c8b1dd81 --- /dev/null +++ b/src/osal/host/Mutex.cpp @@ -0,0 +1,32 @@ +#include "Mutex.h" +#include "fsfw/serviceinterface/ServiceInterface.h" + +Mutex::Mutex() {} + +ReturnValue_t Mutex::lockMutex(TimeoutType timeoutType, uint32_t timeoutMs) { + if(timeoutType == TimeoutType::BLOCKING) { + mutex.lock(); + return HasReturnvaluesIF::RETURN_OK; + } + else if(timeoutType == TimeoutType::POLLING) { + if(mutex.try_lock()) { + return HasReturnvaluesIF::RETURN_OK; + } + } + else if(timeoutType == TimeoutType::WAITING){ + auto chronoMs = std::chrono::milliseconds(timeoutMs); + if(mutex.try_lock_for(chronoMs)) { + return HasReturnvaluesIF::RETURN_OK; + } + } + return MutexIF::MUTEX_TIMEOUT; +} + +ReturnValue_t Mutex::unlockMutex() { + mutex.unlock(); + return HasReturnvaluesIF::RETURN_OK; +} + +std::timed_mutex* Mutex::getMutexHandle() { + return &mutex; +} From d47906e83321a6cea2176ad12d947ba6a45291a8 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 16:25:51 +0200 Subject: [PATCH 050/136] trying to fuse header / inc --- hal/CMakeLists.txt | 1 - hal/inc/CMakeLists.txt | 7 ---- hal/src/CMakeLists.txt | 15 ++++----- hal/src/fsfw/CMakeLists.txt | 1 + hal/src/fsfw/hal/CMakeLists.txt | 10 ++++++ hal/src/{ => fsfw/hal}/common/CMakeLists.txt | 0 .../{ => fsfw/hal}/common/gpio/CMakeLists.txt | 0 .../{ => fsfw/hal}/common/gpio/GpioCookie.cpp | 0 .../fsfw/hal/common/gpio/GpioCookie.h | 0 .../fsfw/hal/common/gpio/GpioIF.h | 0 .../fsfw/hal/common/gpio/gpioDefinitions.h | 0 .../fsfw/hal/common/spi/spiCommon.h | 0 .../hal}/devicehandlers/CMakeLists.txt | 0 .../hal}/devicehandlers/GyroL3GD20Handler.cpp | 0 .../hal/devicehandlers/GyroL3GD20Handler.h | 0 .../devicedefinitions/GyroL3GD20Definitions.h | 0 hal/src/{ => fsfw/hal}/host/CMakeLists.txt | 0 hal/src/{ => fsfw/hal}/linux/CMakeLists.txt | 0 .../{ => fsfw/hal}/linux/UnixFileGuard.cpp | 0 .../fsfw/hal/linux/UnixFileGuard.h | 0 .../{ => fsfw/hal}/linux/gpio/CMakeLists.txt | 0 .../hal}/linux/gpio/LinuxLibgpioIF.cpp | 0 .../fsfw/hal/linux/gpio/LinuxLibgpioIF.h | 0 .../{ => fsfw/hal}/linux/i2c/CMakeLists.txt | 0 hal/src/{ => fsfw/hal}/linux/i2c/I2cComIF.cpp | 0 .../fsfw/hal/linux/i2c/I2cComIF.h | 0 .../{ => fsfw/hal}/linux/i2c/I2cCookie.cpp | 0 .../fsfw/hal/linux/i2c/I2cCookie.h | 0 .../{ => fsfw/hal}/linux/rpi/CMakeLists.txt | 0 hal/src/{ => fsfw/hal}/linux/rpi/GpioRPi.cpp | 0 hal/{inc => src}/fsfw/hal/linux/rpi/GpioRPi.h | 0 .../{ => fsfw/hal}/linux/spi/CMakeLists.txt | 0 hal/src/{ => fsfw/hal}/linux/spi/SpiComIF.cpp | 0 .../fsfw/hal/linux/spi/SpiComIF.h | 0 .../{ => fsfw/hal}/linux/spi/SpiCookie.cpp | 0 .../fsfw/hal/linux/spi/SpiCookie.h | 0 .../fsfw/hal/linux/spi/spiDefinitions.h | 0 .../{ => fsfw/hal}/linux/uart/CMakeLists.txt | 0 .../{ => fsfw/hal}/linux/uart/UartComIF.cpp | 0 .../fsfw/hal/linux/uart/UartComIF.h | 0 .../{ => fsfw/hal}/linux/uart/UartCookie.cpp | 0 .../fsfw/hal/linux/uart/UartCookie.h | 0 hal/src/{ => fsfw/hal}/linux/utility.cpp | 0 hal/{inc => src}/fsfw/hal/linux/utility.h | 0 hal/src/{ => fsfw/hal}/stm32h7/CMakeLists.txt | 0 .../hal}/stm32h7/devicetest/CMakeLists.txt | 0 .../hal}/stm32h7/devicetest/GyroL3GD20H.cpp | 0 .../fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h | 0 hal/src/{ => fsfw/hal}/stm32h7/dma.cpp | 0 hal/{inc => src}/fsfw/hal/stm32h7/dma.h | 0 .../hal}/stm32h7/gpio/CMakeLists.txt | 0 hal/src/{ => fsfw/hal}/stm32h7/gpio/gpio.cpp | 0 hal/{inc => src}/fsfw/hal/stm32h7/gpio/gpio.h | 0 .../{ => fsfw/hal}/stm32h7/i2c/CMakeLists.txt | 0 .../fsfw/hal/stm32h7/interrupts.h | 0 .../{ => fsfw/hal}/stm32h7/spi/CMakeLists.txt | 0 .../{ => fsfw/hal}/stm32h7/spi/SpiComIF.cpp | 0 .../fsfw/hal/stm32h7/spi/SpiComIF.h | 0 .../{ => fsfw/hal}/stm32h7/spi/SpiCookie.cpp | 0 .../fsfw/hal/stm32h7/spi/SpiCookie.h | 0 .../{ => fsfw/hal}/stm32h7/spi/mspInit.cpp | 0 .../fsfw/hal/stm32h7/spi/mspInit.h | 0 .../{ => fsfw/hal}/stm32h7/spi/spiCore.cpp | 0 .../fsfw/hal/stm32h7/spi/spiCore.h | 0 .../hal}/stm32h7/spi/spiDefinitions.cpp | 0 .../fsfw/hal/stm32h7/spi/spiDefinitions.h | 0 .../hal}/stm32h7/spi/spiInterrupts.cpp | 0 .../fsfw/hal/stm32h7/spi/spiInterrupts.h | 0 .../hal}/stm32h7/spi/stm32h743ziSpi.cpp | 0 .../fsfw/hal/stm32h7/spi/stm32h743ziSpi.h | 0 .../hal}/stm32h7/uart/CMakeLists.txt | 0 inc/fsfw/action.h | 11 ------- inc/fsfw/datapoollocal.h | 12 ------- inc/fsfw/osal/host/Mutex.cpp | 32 ------------------- inc/fsfw/osal/rtems/BinarySemaphore.h | 21 ------------ src/CMakeLists.txt | 12 +++++-- src/core/devicehandlers/CMakeLists.txt | 10 ------ src/core/housekeeping/CMakeLists.txt | 4 --- src/{core => fsfw}/CMakeLists.txt | 15 +++++++++ {inc => src}/fsfw/FSFW.h | 0 {inc => src}/fsfw/FSFWVersion.h | 0 src/fsfw/action.h | 11 +++++++ src/{core => fsfw}/action/ActionHelper.cpp | 0 {inc => src}/fsfw/action/ActionHelper.h | 0 src/{core => fsfw}/action/ActionMessage.cpp | 0 {inc => src}/fsfw/action/ActionMessage.h | 0 src/{core => fsfw}/action/CMakeLists.txt | 0 .../action/CommandActionHelper.cpp | 0 .../fsfw/action/CommandActionHelper.h | 0 {inc => src}/fsfw/action/CommandsActionsIF.h | 0 {inc => src}/fsfw/action/HasActionsIF.h | 0 .../action/SimpleActionHelper.cpp | 0 {inc => src}/fsfw/action/SimpleActionHelper.h | 0 {inc => src}/fsfw/container/ArrayList.h | 0 {inc => src}/fsfw/container/BinaryTree.h | 0 src/{core => fsfw}/container/CMakeLists.txt | 0 {inc => src}/fsfw/container/DynamicFIFO.h | 0 {inc => src}/fsfw/container/FIFO.h | 0 {inc => src}/fsfw/container/FIFOBase.h | 0 {inc => src}/fsfw/container/FIFOBase.tpp | 0 {inc => src}/fsfw/container/FixedArrayList.h | 0 {inc => src}/fsfw/container/FixedMap.h | 0 .../fsfw/container/FixedOrderedMultimap.h | 0 .../fsfw/container/FixedOrderedMultimap.tpp | 0 {inc => src}/fsfw/container/HybridIterator.h | 0 .../fsfw/container/IndexedRingMemoryArray.h | 0 .../fsfw/container/PlacementFactory.h | 0 {inc => src}/fsfw/container/RingBufferBase.h | 0 .../container/SharedRingBuffer.cpp | 0 .../fsfw/container/SharedRingBuffer.h | 0 .../container/SimpleRingBuffer.cpp | 0 .../fsfw/container/SimpleRingBuffer.h | 0 .../fsfw/container/SinglyLinkedList.h | 0 {inc => src}/fsfw/container/group.h | 0 src/{core => fsfw}/controller/CMakeLists.txt | 0 .../controller/ControllerBase.cpp | 0 {inc => src}/fsfw/controller/ControllerBase.h | 0 .../controller/ExtendedControllerBase.cpp | 0 .../fsfw/controller/ExtendedControllerBase.h | 0 src/{opt => fsfw}/coordinates/CMakeLists.txt | 0 .../coordinates/CoordinateTransformations.cpp | 0 .../coordinates/CoordinateTransformations.h | 0 {inc => src}/fsfw/coordinates/Jgm3Model.h | 0 .../coordinates/Sgp4Propagator.cpp | 0 .../fsfw/coordinates/Sgp4Propagator.h | 0 {inc => src}/fsfw/datalinklayer/BCFrame.h | 0 .../fsfw/datalinklayer/CCSDSReturnValuesIF.h | 0 .../datalinklayer/CMakeLists.txt | 0 src/{opt => fsfw}/datalinklayer/Clcw.cpp | 0 {inc => src}/fsfw/datalinklayer/Clcw.h | 0 {inc => src}/fsfw/datalinklayer/ClcwIF.h | 0 .../datalinklayer/DataLinkLayer.cpp | 0 .../fsfw/datalinklayer/DataLinkLayer.h | 0 .../fsfw/datalinklayer/Farm1StateIF.h | 0 .../datalinklayer/Farm1StateLockout.cpp | 0 .../fsfw/datalinklayer/Farm1StateLockout.h | 0 .../datalinklayer/Farm1StateOpen.cpp | 0 .../fsfw/datalinklayer/Farm1StateOpen.h | 0 .../datalinklayer/Farm1StateWait.cpp | 0 .../fsfw/datalinklayer/Farm1StateWait.h | 0 .../datalinklayer/MapPacketExtraction.cpp | 0 .../fsfw/datalinklayer/MapPacketExtraction.h | 0 .../datalinklayer/MapPacketExtractionIF.h | 0 .../datalinklayer/TcTransferFrame.cpp | 0 .../fsfw/datalinklayer/TcTransferFrame.h | 0 .../datalinklayer/TcTransferFrameLocal.cpp | 0 .../fsfw/datalinklayer/TcTransferFrameLocal.h | 0 .../datalinklayer/VirtualChannelReception.cpp | 0 .../datalinklayer/VirtualChannelReception.h | 0 .../datalinklayer/VirtualChannelReceptionIF.h | 0 src/{core => fsfw}/datapool/CMakeLists.txt | 0 {inc => src}/fsfw/datapool/DataSetIF.h | 0 .../datapool/HkSwitchHelper.cpp | 0 {inc => src}/fsfw/datapool/HkSwitchHelper.h | 0 .../datapool/PoolDataSetBase.cpp | 0 {inc => src}/fsfw/datapool/PoolDataSetBase.h | 0 {inc => src}/fsfw/datapool/PoolDataSetIF.h | 0 src/{core => fsfw}/datapool/PoolEntry.cpp | 0 {inc => src}/fsfw/datapool/PoolEntry.h | 0 {inc => src}/fsfw/datapool/PoolEntryIF.h | 0 {inc => src}/fsfw/datapool/PoolReadGuard.h | 0 {inc => src}/fsfw/datapool/PoolVarList.h | 0 {inc => src}/fsfw/datapool/PoolVariableIF.h | 0 {inc => src}/fsfw/datapool/ReadCommitIF.h | 0 .../fsfw/datapool/ReadCommitIFAttorney.h | 0 {inc => src}/fsfw/datapool/SharedDataSetIF.h | 0 src/fsfw/datapoollocal.h | 11 +++++++ .../fsfw/datapoollocal/AccessLocalPoolF.h | 0 .../datapoollocal/CMakeLists.txt | 0 .../fsfw/datapoollocal/HasLocalDataPoolIF.h | 0 .../datapoollocal/LocalDataPoolManager.cpp | 0 .../fsfw/datapoollocal/LocalDataPoolManager.h | 0 .../datapoollocal/LocalDataSet.cpp | 0 .../fsfw/datapoollocal/LocalDataSet.h | 0 .../datapoollocal/LocalPoolDataSetBase.cpp | 0 .../fsfw/datapoollocal/LocalPoolDataSetBase.h | 0 .../datapoollocal/LocalPoolObjectBase.cpp | 0 .../fsfw/datapoollocal/LocalPoolObjectBase.h | 0 .../fsfw/datapoollocal/LocalPoolVariable.h | 0 .../fsfw/datapoollocal/LocalPoolVariable.tpp | 0 .../fsfw/datapoollocal/LocalPoolVector.h | 0 .../fsfw/datapoollocal/LocalPoolVector.tpp | 0 .../fsfw/datapoollocal/MarkChangedIF.h | 0 .../ProvidesDataPoolSubscriptionIF.h | 0 .../datapoollocal/SharedLocalDataSet.cpp | 0 .../fsfw/datapoollocal/SharedLocalDataSet.h | 0 .../fsfw/datapoollocal/StaticLocalDataSet.h | 0 .../datapoollocal/internal/CMakeLists.txt | 0 .../internal/HasLocalDpIFManagerAttorney.cpp | 0 .../internal/HasLocalDpIFManagerAttorney.h | 0 .../internal/HasLocalDpIFUserAttorney.cpp | 0 .../internal/HasLocalDpIFUserAttorney.h | 0 .../internal/LocalDpManagerAttorney.h | 0 .../internal/LocalPoolDataSetAttorney.h | 0 .../fsfw/datapoollocal/localPoolDefinitions.h | 0 .../devicehandlers/AcceptsDeviceResponsesIF.h | 0 .../devicehandlers/AssemblyBase.cpp | 0 .../fsfw/devicehandlers/AssemblyBase.h | 0 .../fsfw/devicehandlers/CMakeLists.txt | 0 .../devicehandlers/ChildHandlerBase.cpp | 0 .../fsfw/devicehandlers/ChildHandlerBase.h | 0 .../devicehandlers/ChildHandlerFDIR.cpp | 0 .../fsfw/devicehandlers/ChildHandlerFDIR.h | 0 {inc => src}/fsfw/devicehandlers/CookieIF.h | 0 .../devicehandlers/DeviceCommunicationIF.h | 0 .../devicehandlers/DeviceHandlerBase.cpp | 0 .../fsfw/devicehandlers/DeviceHandlerBase.h | 0 .../DeviceHandlerFailureIsolation.cpp | 0 .../DeviceHandlerFailureIsolation.h | 0 .../fsfw/devicehandlers/DeviceHandlerIF.h | 0 .../devicehandlers/DeviceHandlerMessage.cpp | 0 .../devicehandlers/DeviceHandlerMessage.h | 0 .../devicehandlers/DeviceHandlerThermalSet.h | 0 .../DeviceTmReportingWrapper.cpp | 0 .../devicehandlers/DeviceTmReportingWrapper.h | 0 .../devicehandlers/HealthDevice.cpp | 0 .../fsfw/devicehandlers/HealthDevice.h | 0 src/{core => fsfw}/events/CMakeLists.txt | 0 {inc => src}/fsfw/events/Event.h | 0 src/{core => fsfw}/events/EventManager.cpp | 0 {inc => src}/fsfw/events/EventManager.h | 0 {inc => src}/fsfw/events/EventManagerIF.h | 0 src/{core => fsfw}/events/EventMessage.cpp | 0 {inc => src}/fsfw/events/EventMessage.h | 0 .../fsfw/events/EventReportingProxyIF.h | 0 .../events/eventmatching/CMakeLists.txt | 0 .../eventmatching/EventIdRangeMatcher.cpp | 0 .../eventmatching/EventIdRangeMatcher.h | 0 .../events/eventmatching/EventMatchTree.cpp | 0 .../events/eventmatching/EventMatchTree.h | 0 .../eventmatching/EventRangeMatcherBase.h | 0 .../eventmatching/ReporterRangeMatcher.cpp | 0 .../eventmatching/ReporterRangeMatcher.h | 0 .../eventmatching/SeverityRangeMatcher.cpp | 0 .../eventmatching/SeverityRangeMatcher.h | 0 .../fsfw/events/eventmatching/eventmatching.h | 0 .../fsfw/events/fwSubsystemIdRanges.h | 0 src/{core => fsfw}/fdir/CMakeLists.txt | 0 {inc => src}/fsfw/fdir/ConfirmsFailuresIF.h | 0 src/{core => fsfw}/fdir/EventCorrelation.cpp | 0 {inc => src}/fsfw/fdir/EventCorrelation.h | 0 .../fdir/FailureIsolationBase.cpp | 0 {inc => src}/fsfw/fdir/FailureIsolationBase.h | 0 src/{core => fsfw}/fdir/FaultCounter.cpp | 0 {inc => src}/fsfw/fdir/FaultCounter.h | 0 .../globalfunctions/AsciiConverter.cpp | 0 .../fsfw/globalfunctions/AsciiConverter.h | 0 .../globalfunctions/CMakeLists.txt | 0 src/{core => fsfw}/globalfunctions/CRC.cpp | 0 {inc => src}/fsfw/globalfunctions/CRC.h | 0 .../globalfunctions/DleEncoder.cpp | 0 .../fsfw/globalfunctions/DleEncoder.h | 0 .../PeriodicOperationDivider.cpp | 0 .../PeriodicOperationDivider.h | 0 src/{core => fsfw}/globalfunctions/Type.cpp | 0 {inc => src}/fsfw/globalfunctions/Type.h | 0 .../globalfunctions/arrayprinter.cpp | 0 .../fsfw/globalfunctions/arrayprinter.h | 0 .../globalfunctions/bitutility.cpp | 0 .../fsfw/globalfunctions/bitutility.h | 0 {inc => src}/fsfw/globalfunctions/constants.h | 0 .../globalfunctions/matching/BinaryMatcher.h | 0 .../globalfunctions/matching/DecimalMatcher.h | 0 .../fsfw/globalfunctions/matching/MatchTree.h | 0 .../fsfw/globalfunctions/matching/MatcherIF.h | 0 .../globalfunctions/matching/RangeMatcher.h | 0 .../matching/SerializeableMatcherIF.h | 0 .../globalfunctions/math/CMakeLists.txt | 0 .../globalfunctions/math/MatrixOperations.h | 0 .../math/QuaternionOperations.cpp | 0 .../math/QuaternionOperations.h | 0 .../globalfunctions/math/VectorOperations.h | 0 {inc => src}/fsfw/globalfunctions/sign.h | 0 .../globalfunctions/timevalOperations.cpp | 0 .../fsfw/globalfunctions/timevalOperations.h | 0 src/fsfw/health.h | 9 ++++++ src/{core => fsfw}/health/CMakeLists.txt | 0 {inc => src}/fsfw/health/HasHealthIF.h | 0 src/{core => fsfw}/health/HealthHelper.cpp | 0 {inc => src}/fsfw/health/HealthHelper.h | 0 src/{core => fsfw}/health/HealthMessage.cpp | 0 {inc => src}/fsfw/health/HealthMessage.h | 0 src/{core => fsfw}/health/HealthTable.cpp | 0 {inc => src}/fsfw/health/HealthTable.h | 0 {inc => src}/fsfw/health/HealthTableIF.h | 0 {inc => src}/fsfw/health/ManagesHealthIF.h | 0 src/fsfw/housekeeping.h | 9 ++++++ .../fsfw/housekeeping/AcceptsHkPacketsIF.h | 0 {inc => src}/fsfw/housekeeping/CMakeLists.txt | 0 .../housekeeping/HousekeepingMessage.cpp | 0 .../fsfw/housekeeping/HousekeepingMessage.h | 0 .../housekeeping/HousekeepingPacketDownlink.h | 0 .../fsfw/housekeeping/HousekeepingSetPacket.h | 0 .../fsfw/housekeeping/HousekeepingSnapshot.h | 0 .../PeriodicHousekeepingHelper.cpp | 0 .../housekeeping/PeriodicHousekeepingHelper.h | 0 .../internalerror/CMakeLists.txt | 0 .../fsfw/internalerror/InternalErrorDataset.h | 0 .../internalerror/InternalErrorReporter.cpp | 0 .../internalerror/InternalErrorReporter.h | 0 .../internalerror/InternalErrorReporterIF.h | 0 src/{core => fsfw}/ipc/CMakeLists.txt | 0 src/{core => fsfw}/ipc/CommandMessage.cpp | 0 {inc => src}/fsfw/ipc/CommandMessage.h | 0 .../ipc/CommandMessageCleaner.cpp | 0 {inc => src}/fsfw/ipc/CommandMessageCleaner.h | 0 {inc => src}/fsfw/ipc/CommandMessageIF.h | 0 {inc => src}/fsfw/ipc/FwMessageTypes.h | 0 {inc => src}/fsfw/ipc/MessageQueueIF.h | 0 .../ipc/MessageQueueMessage.cpp | 0 {inc => src}/fsfw/ipc/MessageQueueMessage.h | 0 {inc => src}/fsfw/ipc/MessageQueueMessageIF.h | 0 {inc => src}/fsfw/ipc/MessageQueueSenderIF.h | 0 {inc => src}/fsfw/ipc/MutexFactory.h | 0 {inc => src}/fsfw/ipc/MutexGuard.h | 0 {inc => src}/fsfw/ipc/MutexIF.h | 0 {inc => src}/fsfw/ipc/QueueFactory.h | 0 .../fsfw/ipc/messageQueueDefinitions.h | 0 .../fsfw/memory/AcceptsMemoryMessagesIF.h | 0 src/{core => fsfw}/memory/CMakeLists.txt | 0 .../memory/GenericFileSystemMessage.cpp | 0 .../fsfw/memory/GenericFileSystemMessage.h | 0 {inc => src}/fsfw/memory/HasFileSystemIF.h | 0 {inc => src}/fsfw/memory/HasMemoryIF.h | 0 src/{core => fsfw}/memory/MemoryHelper.cpp | 0 {inc => src}/fsfw/memory/MemoryHelper.h | 0 src/{core => fsfw}/memory/MemoryMessage.cpp | 0 {inc => src}/fsfw/memory/MemoryMessage.h | 0 src/{core => fsfw}/modes/CMakeLists.txt | 0 {inc => src}/fsfw/modes/HasModesIF.h | 0 src/{core => fsfw}/modes/ModeHelper.cpp | 0 {inc => src}/fsfw/modes/ModeHelper.h | 0 src/{core => fsfw}/modes/ModeMessage.cpp | 0 {inc => src}/fsfw/modes/ModeMessage.h | 0 .../fsfw/monitoring/AbsLimitMonitor.h | 0 src/{opt => fsfw}/monitoring/CMakeLists.txt | 0 {inc => src}/fsfw/monitoring/HasMonitorsIF.h | 0 {inc => src}/fsfw/monitoring/LimitMonitor.h | 0 .../monitoring/LimitViolationReporter.cpp | 0 .../fsfw/monitoring/LimitViolationReporter.h | 0 {inc => src}/fsfw/monitoring/MonitorBase.h | 0 .../fsfw/monitoring/MonitorReporter.h | 0 {inc => src}/fsfw/monitoring/MonitoringIF.h | 0 .../monitoring/MonitoringMessage.cpp | 0 .../fsfw/monitoring/MonitoringMessage.h | 0 .../monitoring/MonitoringMessageContent.h | 0 .../monitoring/ReceivesMonitoringReportsIF.h | 0 {inc => src}/fsfw/monitoring/TriplexMonitor.h | 0 .../fsfw/monitoring/TwoValueLimitMonitor.h | 0 .../objectmanager/CMakeLists.txt | 0 .../objectmanager/ObjectManager.cpp | 0 .../fsfw/objectmanager/ObjectManager.h | 0 .../fsfw/objectmanager/ObjectManagerIF.h | 0 .../objectmanager/SystemObject.cpp | 0 .../fsfw/objectmanager/SystemObject.h | 0 .../fsfw/objectmanager/SystemObjectIF.h | 0 .../fsfw/objectmanager/frameworkObjects.h | 0 src/{ => fsfw}/osal/CMakeLists.txt | 0 {inc => src}/fsfw/osal/Endiness.h | 0 {inc => src}/fsfw/osal/InternalErrorCodes.h | 0 src/{ => fsfw}/osal/common/CMakeLists.txt | 0 src/{ => fsfw}/osal/common/TcpIpBase.cpp | 0 {inc => src}/fsfw/osal/common/TcpIpBase.h | 0 src/{ => fsfw}/osal/common/TcpTmTcBridge.cpp | 0 {inc => src}/fsfw/osal/common/TcpTmTcBridge.h | 0 src/{ => fsfw}/osal/common/TcpTmTcServer.cpp | 0 {inc => src}/fsfw/osal/common/TcpTmTcServer.h | 0 .../osal/common/UdpTcPollingTask.cpp | 0 .../fsfw/osal/common/UdpTcPollingTask.h | 0 src/{ => fsfw}/osal/common/UdpTmTcBridge.cpp | 0 {inc => src}/fsfw/osal/common/UdpTmTcBridge.h | 0 src/{ => fsfw}/osal/common/tcpipCommon.cpp | 0 {inc => src}/fsfw/osal/common/tcpipCommon.h | 0 {inc => src}/fsfw/osal/common/tcpipHelpers.h | 0 .../osal/freertos/BinSemaphUsingTask.cpp | 0 .../fsfw/osal/freertos/BinSemaphUsingTask.h | 0 .../osal/freertos/BinarySemaphore.cpp | 0 .../fsfw/osal/freertos/BinarySemaphore.h | 0 src/{ => fsfw}/osal/freertos/CMakeLists.txt | 0 src/{ => fsfw}/osal/freertos/Clock.cpp | 0 .../osal/freertos/CountingSemaphUsingTask.cpp | 0 .../osal/freertos/CountingSemaphUsingTask.h | 0 .../osal/freertos/CountingSemaphore.cpp | 0 .../fsfw/osal/freertos/CountingSemaphore.h | 0 .../osal/freertos/FixedTimeslotTask.cpp | 0 .../fsfw/osal/freertos/FixedTimeslotTask.h | 0 .../fsfw/osal/freertos/FreeRTOSTaskIF.h | 0 src/{ => fsfw}/osal/freertos/MessageQueue.cpp | 0 .../fsfw/osal/freertos/MessageQueue.h | 0 src/{ => fsfw}/osal/freertos/Mutex.cpp | 0 {inc => src}/fsfw/osal/freertos/Mutex.h | 0 src/{ => fsfw}/osal/freertos/MutexFactory.cpp | 0 src/{ => fsfw}/osal/freertos/PeriodicTask.cpp | 0 .../fsfw/osal/freertos/PeriodicTask.h | 0 src/{ => fsfw}/osal/freertos/QueueFactory.cpp | 0 .../osal/freertos/QueueMapManager.cpp | 0 .../fsfw/osal/freertos/QueueMapManager.h | 0 {inc => src}/fsfw/osal/freertos/README.md | 0 .../osal/freertos/SemaphoreFactory.cpp | 0 src/{ => fsfw}/osal/freertos/TaskFactory.cpp | 0 .../osal/freertos/TaskManagement.cpp | 0 .../fsfw/osal/freertos/TaskManagement.h | 0 src/{ => fsfw}/osal/freertos/Timekeeper.cpp | 0 {inc => src}/fsfw/osal/freertos/Timekeeper.h | 0 src/{ => fsfw}/osal/host/CMakeLists.txt | 0 src/{ => fsfw}/osal/host/Clock.cpp | 0 .../osal/host/FixedTimeslotTask.cpp | 0 .../fsfw/osal/host/FixedTimeslotTask.h | 0 src/{ => fsfw}/osal/host/MessageQueue.cpp | 0 {inc => src}/fsfw/osal/host/MessageQueue.h | 10 +++--- src/{ => fsfw}/osal/host/Mutex.cpp | 2 +- {inc => src}/fsfw/osal/host/Mutex.h | 0 src/{ => fsfw}/osal/host/MutexFactory.cpp | 0 src/{ => fsfw}/osal/host/PeriodicTask.cpp | 0 {inc => src}/fsfw/osal/host/PeriodicTask.h | 0 src/{ => fsfw}/osal/host/QueueFactory.cpp | 0 src/{ => fsfw}/osal/host/QueueMapManager.cpp | 0 {inc => src}/fsfw/osal/host/QueueMapManager.h | 0 src/{ => fsfw}/osal/host/SemaphoreFactory.cpp | 0 src/{ => fsfw}/osal/host/TaskFactory.cpp | 0 src/{ => fsfw}/osal/host/taskHelpers.cpp | 0 {inc => src}/fsfw/osal/host/taskHelpers.h | 0 src/{ => fsfw}/osal/linux/BinarySemaphore.cpp | 0 .../fsfw/osal/linux/BinarySemaphore.h | 0 src/{ => fsfw}/osal/linux/CMakeLists.txt | 0 src/{ => fsfw}/osal/linux/Clock.cpp | 0 .../osal/linux/CountingSemaphore.cpp | 0 .../fsfw/osal/linux/CountingSemaphore.h | 0 .../osal/linux/FixedTimeslotTask.cpp | 0 .../fsfw/osal/linux/FixedTimeslotTask.h | 0 .../osal/linux/InternalErrorCodes.cpp | 0 src/{ => fsfw}/osal/linux/MessageQueue.cpp | 0 {inc => src}/fsfw/osal/linux/MessageQueue.h | 0 src/{ => fsfw}/osal/linux/Mutex.cpp | 0 {inc => src}/fsfw/osal/linux/Mutex.h | 0 src/{ => fsfw}/osal/linux/MutexFactory.cpp | 0 .../osal/linux/PeriodicPosixTask.cpp | 0 .../fsfw/osal/linux/PeriodicPosixTask.h | 0 src/{ => fsfw}/osal/linux/PosixThread.cpp | 0 {inc => src}/fsfw/osal/linux/PosixThread.h | 0 src/{ => fsfw}/osal/linux/QueueFactory.cpp | 0 .../osal/linux/SemaphoreFactory.cpp | 0 src/{ => fsfw}/osal/linux/TaskFactory.cpp | 0 src/{ => fsfw}/osal/linux/Timer.cpp | 0 {inc => src}/fsfw/osal/linux/Timer.h | 0 src/{ => fsfw}/osal/linux/tcpipHelpers.cpp | 0 src/{ => fsfw}/osal/linux/unixUtility.cpp | 0 {inc => src}/fsfw/osal/linux/unixUtility.h | 0 src/{ => fsfw}/osal/rtems/BinarySemaphore.cpp | 0 src/{ => fsfw}/osal/rtems/CMakeLists.txt | 0 src/{ => fsfw}/osal/rtems/Clock.cpp | 0 src/{ => fsfw}/osal/rtems/CpuUsage.cpp | 0 {inc => src}/fsfw/osal/rtems/CpuUsage.h | 0 .../osal/rtems/FixedTimeslotTask.cpp | 0 .../fsfw/osal/rtems/FixedTimeslotTask.h | 0 src/{ => fsfw}/osal/rtems/InitTask.cpp | 0 {inc => src}/fsfw/osal/rtems/InitTask.h | 0 .../osal/rtems/InternalErrorCodes.cpp | 0 src/{ => fsfw}/osal/rtems/MessageQueue.cpp | 0 {inc => src}/fsfw/osal/rtems/MessageQueue.h | 0 src/{ => fsfw}/osal/rtems/Mutex.cpp | 0 {inc => src}/fsfw/osal/rtems/Mutex.h | 0 src/{ => fsfw}/osal/rtems/MutexFactory.cpp | 0 src/{ => fsfw}/osal/rtems/PeriodicTask.cpp | 0 {inc => src}/fsfw/osal/rtems/PeriodicTask.h | 0 src/{ => fsfw}/osal/rtems/QueueFactory.cpp | 0 src/{ => fsfw}/osal/rtems/RTEMSTaskBase.cpp | 0 {inc => src}/fsfw/osal/rtems/RTEMSTaskBase.h | 0 src/{ => fsfw}/osal/rtems/RtemsBasic.cpp | 0 {inc => src}/fsfw/osal/rtems/RtemsBasic.h | 0 .../osal/rtems/SemaphoreFactory.cpp | 0 src/{ => fsfw}/osal/rtems/TaskFactory.cpp | 0 src/{ => fsfw}/osal/windows/CMakeLists.txt | 0 src/{ => fsfw}/osal/windows/tcpipHelpers.cpp | 0 .../osal/windows/winTaskHelpers.cpp | 0 .../fsfw/osal/windows/winTaskHelpers.h | 0 src/{core => fsfw}/parameters/CMakeLists.txt | 0 .../fsfw/parameters/HasParametersIF.h | 0 .../parameters/ParameterHelper.cpp | 0 .../fsfw/parameters/ParameterHelper.h | 0 .../parameters/ParameterMessage.cpp | 0 .../fsfw/parameters/ParameterMessage.h | 0 .../parameters/ParameterWrapper.cpp | 0 .../fsfw/parameters/ParameterWrapper.h | 0 .../parameters/ReceivesParameterMessagesIF.h | 0 {inc => src}/fsfw/platform.h | 0 src/{core => fsfw}/power/CMakeLists.txt | 0 src/{core => fsfw}/power/Fuse.cpp | 0 {inc => src}/fsfw/power/Fuse.h | 0 src/{core => fsfw}/power/PowerComponent.cpp | 0 {inc => src}/fsfw/power/PowerComponent.h | 0 {inc => src}/fsfw/power/PowerComponentIF.h | 0 src/{core => fsfw}/power/PowerSensor.cpp | 0 {inc => src}/fsfw/power/PowerSensor.h | 0 {inc => src}/fsfw/power/PowerSwitchIF.h | 0 src/{core => fsfw}/power/PowerSwitcher.cpp | 0 {inc => src}/fsfw/power/PowerSwitcher.h | 0 src/{opt => fsfw}/pus/CMakeLists.txt | 0 .../pus/CService200ModeCommanding.cpp | 0 .../fsfw/pus/CService200ModeCommanding.h | 0 .../pus/CService201HealthCommanding.cpp | 0 .../fsfw/pus/CService201HealthCommanding.h | 0 src/{opt => fsfw}/pus/Service17Test.cpp | 0 {inc => src}/fsfw/pus/Service17Test.h | 0 .../pus/Service1TelecommandVerification.cpp | 0 .../pus/Service1TelecommandVerification.h | 0 .../pus/Service20ParameterManagement.cpp | 0 .../fsfw/pus/Service20ParameterManagement.h | 0 .../pus/Service2DeviceAccess.cpp | 0 {inc => src}/fsfw/pus/Service2DeviceAccess.h | 0 .../pus/Service3Housekeeping.cpp | 0 {inc => src}/fsfw/pus/Service3Housekeeping.h | 0 .../pus/Service5EventReporting.cpp | 0 .../fsfw/pus/Service5EventReporting.h | 0 .../pus/Service8FunctionManagement.cpp | 0 .../fsfw/pus/Service8FunctionManagement.h | 0 .../pus/Service9TimeManagement.cpp | 0 .../fsfw/pus/Service9TimeManagement.h | 0 .../fsfw/pus/servicepackets/Service1Packets.h | 0 .../pus/servicepackets/Service200Packets.h | 0 .../pus/servicepackets/Service201Packets.h | 0 .../pus/servicepackets/Service20Packets.h | 0 .../fsfw/pus/servicepackets/Service2Packets.h | 0 .../fsfw/pus/servicepackets/Service3Packets.h | 0 .../fsfw/pus/servicepackets/Service5Packets.h | 0 .../fsfw/pus/servicepackets/Service8Packets.h | 0 .../fsfw/pus/servicepackets/Service9Packets.h | 0 {inc => src}/fsfw/returnvalues/FwClassIds.h | 0 .../fsfw/returnvalues/HasReturnvaluesIF.h | 0 src/{opt => fsfw}/rmap/CMakeLists.txt | 0 src/{opt => fsfw}/rmap/RMAP.cpp | 0 {inc => src}/fsfw/rmap/RMAP.h | 0 {inc => src}/fsfw/rmap/RMAPChannelIF.h | 0 src/{opt => fsfw}/rmap/RMAPCookie.cpp | 0 {inc => src}/fsfw/rmap/RMAPCookie.h | 0 .../rmap/RmapDeviceCommunicationIF.cpp | 0 .../fsfw/rmap/RmapDeviceCommunicationIF.h | 0 {inc => src}/fsfw/rmap/rmapStructs.h | 0 src/fsfw/serialize.h | 10 ++++++ src/{core => fsfw}/serialize/CMakeLists.txt | 0 {inc => src}/fsfw/serialize/EndianConverter.h | 0 .../fsfw/serialize/SerialArrayListAdapter.h | 0 .../serialize/SerialBufferAdapter.cpp | 0 .../fsfw/serialize/SerialBufferAdapter.h | 0 .../serialize/SerialFixedArrayListAdapter.h | 0 .../fsfw/serialize/SerialLinkedListAdapter.h | 0 .../fsfw/serialize/SerializeAdapter.h | 0 .../fsfw/serialize/SerializeElement.h | 0 {inc => src}/fsfw/serialize/SerializeIF.h | 0 .../serviceinterface/CMakeLists.txt | 0 .../fsfw/serviceinterface/ServiceInterface.h | 0 .../ServiceInterfaceBuffer.cpp | 0 .../serviceinterface/ServiceInterfaceBuffer.h | 0 .../ServiceInterfacePrinter.cpp | 0 .../ServiceInterfacePrinter.h | 0 .../ServiceInterfaceStream.cpp | 0 .../serviceinterface/ServiceInterfaceStream.h | 0 .../serviceInterfaceDefintions.h | 0 .../storagemanager/CMakeLists.txt | 0 .../storagemanager/ConstStorageAccessor.cpp | 0 .../storagemanager/ConstStorageAccessor.h | 0 .../storagemanager/LocalPool.cpp | 0 {inc => src}/fsfw/storagemanager/LocalPool.h | 0 .../storagemanager/PoolManager.cpp | 0 .../fsfw/storagemanager/PoolManager.h | 0 .../storagemanager/StorageAccessor.cpp | 0 .../fsfw/storagemanager/StorageAccessor.h | 0 .../fsfw/storagemanager/StorageManagerIF.h | 0 .../fsfw/storagemanager/storeAddress.h | 0 src/{core => fsfw}/subsystem/CMakeLists.txt | 0 src/{core => fsfw}/subsystem/Subsystem.cpp | 0 {inc => src}/fsfw/subsystem/Subsystem.h | 0 .../subsystem/SubsystemBase.cpp | 0 {inc => src}/fsfw/subsystem/SubsystemBase.h | 0 .../subsystem/modes/CMakeLists.txt | 0 .../fsfw/subsystem/modes/HasModeSequenceIF.h | 0 .../fsfw/subsystem/modes/ModeDefinitions.h | 0 .../subsystem/modes/ModeSequenceMessage.cpp | 0 .../subsystem/modes/ModeSequenceMessage.h | 0 .../subsystem/modes/ModeStore.cpp | 0 {inc => src}/fsfw/subsystem/modes/ModeStore.h | 0 .../fsfw/subsystem/modes/ModeStoreIF.h | 0 src/{core => fsfw}/tasks/CMakeLists.txt | 0 {inc => src}/fsfw/tasks/ExecutableObjectIF.h | 0 .../tasks/FixedSequenceSlot.cpp | 0 {inc => src}/fsfw/tasks/FixedSequenceSlot.h | 0 .../tasks/FixedSlotSequence.cpp | 0 {inc => src}/fsfw/tasks/FixedSlotSequence.h | 0 {inc => src}/fsfw/tasks/FixedTimeslotTaskIF.h | 0 {inc => src}/fsfw/tasks/PeriodicTaskIF.h | 0 {inc => src}/fsfw/tasks/SemaphoreFactory.h | 0 {inc => src}/fsfw/tasks/SemaphoreIF.h | 0 {inc => src}/fsfw/tasks/TaskFactory.h | 0 {inc => src}/fsfw/tasks/Typedef.h | 0 .../tcdistribution/CCSDSDistributor.cpp | 0 .../fsfw/tcdistribution/CCSDSDistributor.h | 0 .../fsfw/tcdistribution/CCSDSDistributorIF.h | 0 .../tcdistribution/CMakeLists.txt | 0 .../tcdistribution/PUSDistributor.cpp | 0 .../fsfw/tcdistribution/PUSDistributor.h | 0 .../fsfw/tcdistribution/PUSDistributorIF.h | 0 .../tcdistribution/TcDistributor.cpp | 0 .../fsfw/tcdistribution/TcDistributor.h | 0 .../tcdistribution/TcPacketCheck.cpp | 0 .../fsfw/tcdistribution/TcPacketCheck.h | 0 .../thermal/AbstractTemperatureSensor.cpp | 0 .../fsfw/thermal/AbstractTemperatureSensor.h | 0 .../fsfw/thermal/AcceptsThermalMessagesIF.h | 0 src/{core => fsfw}/thermal/CMakeLists.txt | 0 src/{core => fsfw}/thermal/Heater.cpp | 0 {inc => src}/fsfw/thermal/Heater.h | 0 .../thermal/RedundantHeater.cpp | 0 {inc => src}/fsfw/thermal/RedundantHeater.h | 0 {inc => src}/fsfw/thermal/TemperatureSensor.h | 0 .../thermal/ThermalComponent.cpp | 0 {inc => src}/fsfw/thermal/ThermalComponent.h | 0 .../thermal/ThermalComponentCore.cpp | 0 .../fsfw/thermal/ThermalComponentCore.h | 0 .../fsfw/thermal/ThermalComponentIF.h | 0 src/{core => fsfw}/thermal/ThermalModule.cpp | 0 {inc => src}/fsfw/thermal/ThermalModule.h | 0 {inc => src}/fsfw/thermal/ThermalModuleIF.h | 0 .../thermal/ThermalMonitorReporter.cpp | 0 .../fsfw/thermal/ThermalMonitorReporter.h | 0 {inc => src}/fsfw/thermal/tcsDefinitions.h | 0 src/{core => fsfw}/timemanager/CCSDSTime.cpp | 0 {inc => src}/fsfw/timemanager/CCSDSTime.h | 0 src/{core => fsfw}/timemanager/CMakeLists.txt | 0 {inc => src}/fsfw/timemanager/Clock.h | 0 .../timemanager/ClockCommon.cpp | 0 src/{core => fsfw}/timemanager/Countdown.cpp | 0 {inc => src}/fsfw/timemanager/Countdown.h | 0 .../fsfw/timemanager/ReceivesTimeInfoIF.h | 0 src/{core => fsfw}/timemanager/Stopwatch.cpp | 0 {inc => src}/fsfw/timemanager/Stopwatch.h | 0 .../timemanager/TimeMessage.cpp | 0 {inc => src}/fsfw/timemanager/TimeMessage.h | 0 .../timemanager/TimeStamper.cpp | 0 {inc => src}/fsfw/timemanager/TimeStamper.h | 0 {inc => src}/fsfw/timemanager/TimeStamperIF.h | 0 .../fsfw/timemanager/clockDefinitions.h | 0 src/{opt => fsfw}/tmstorage/CMakeLists.txt | 0 .../fsfw/tmstorage/TmStoreBackendIF.h | 0 .../fsfw/tmstorage/TmStoreFrontendIF.h | 0 .../tmstorage/TmStoreMessage.cpp | 0 {inc => src}/fsfw/tmstorage/TmStoreMessage.h | 0 {inc => src}/fsfw/tmstorage/TmStorePackets.h | 0 src/{core => fsfw}/tmtcpacket/CMakeLists.txt | 0 src/{core => fsfw}/tmtcpacket/SpacePacket.cpp | 0 {inc => src}/fsfw/tmtcpacket/SpacePacket.h | 0 .../tmtcpacket/SpacePacketBase.cpp | 0 .../fsfw/tmtcpacket/SpacePacketBase.h | 0 {inc => src}/fsfw/tmtcpacket/ccsds_header.h | 0 .../tmtcpacket/packetmatcher/ApidMatcher.h | 0 .../tmtcpacket/packetmatcher/CMakeLists.txt | 0 .../packetmatcher/PacketMatchTree.cpp | 0 .../packetmatcher/PacketMatchTree.h | 0 .../tmtcpacket/packetmatcher/ServiceMatcher.h | 0 .../packetmatcher/SubserviceMatcher.h | 0 .../tmtcpacket/pus/CMakeLists.txt | 0 .../pus/PacketTimestampInterpreterIF.h | 0 {inc => src}/fsfw/tmtcpacket/pus/tc.h | 0 .../tmtcpacket/pus/tc/CMakeLists.txt | 0 .../tmtcpacket/pus/tc/TcPacketBase.cpp | 0 .../fsfw/tmtcpacket/pus/tc/TcPacketBase.h | 0 .../tmtcpacket/pus/tc/TcPacketPus.cpp | 0 .../fsfw/tmtcpacket/pus/tc/TcPacketPus.h | 0 .../tmtcpacket/pus/tc/TcPacketStoredBase.cpp | 0 .../tmtcpacket/pus/tc/TcPacketStoredBase.h | 0 .../fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h | 0 .../tmtcpacket/pus/tc/TcPacketStoredPus.cpp | 0 .../tmtcpacket/pus/tc/TcPacketStoredPus.h | 0 {inc => src}/fsfw/tmtcpacket/pus/tm.h | 0 .../tmtcpacket/pus/tm/CMakeLists.txt | 0 .../tmtcpacket/pus/tm/TmPacketBase.cpp | 0 .../fsfw/tmtcpacket/pus/tm/TmPacketBase.h | 0 .../tmtcpacket/pus/tm/TmPacketMinimal.cpp | 0 .../fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h | 0 .../tmtcpacket/pus/tm/TmPacketPusA.cpp | 0 .../fsfw/tmtcpacket/pus/tm/TmPacketPusA.h | 0 .../tmtcpacket/pus/tm/TmPacketPusC.cpp | 0 .../fsfw/tmtcpacket/pus/tm/TmPacketPusC.h | 0 .../fsfw/tmtcpacket/pus/tm/TmPacketStored.h | 0 .../tmtcpacket/pus/tm/TmPacketStoredBase.cpp | 0 .../tmtcpacket/pus/tm/TmPacketStoredBase.h | 0 .../tmtcpacket/pus/tm/TmPacketStoredPusA.cpp | 0 .../tmtcpacket/pus/tm/TmPacketStoredPusA.h | 0 .../tmtcpacket/pus/tm/TmPacketStoredPusC.cpp | 0 .../tmtcpacket/pus/tm/TmPacketStoredPusC.h | 0 .../fsfw/tmtcservices/AcceptsTelecommandsIF.h | 0 .../fsfw/tmtcservices/AcceptsTelemetryIF.h | 0 .../tmtcservices/AcceptsVerifyMessageIF.h | 0 .../tmtcservices/CMakeLists.txt | 0 .../tmtcservices/CommandingServiceBase.cpp | 0 .../fsfw/tmtcservices/CommandingServiceBase.h | 0 .../tmtcservices/PusServiceBase.cpp | 0 .../fsfw/tmtcservices/PusServiceBase.h | 0 .../tmtcservices/PusVerificationReport.cpp | 0 .../fsfw/tmtcservices/PusVerificationReport.h | 0 .../fsfw/tmtcservices/SourceSequenceCounter.h | 0 .../tmtcservices/TmTcBridge.cpp | 0 {inc => src}/fsfw/tmtcservices/TmTcBridge.h | 0 .../tmtcservices/TmTcMessage.cpp | 0 {inc => src}/fsfw/tmtcservices/TmTcMessage.h | 0 .../fsfw/tmtcservices/VerificationCodes.h | 0 .../tmtcservices/VerificationReporter.cpp | 0 .../fsfw/tmtcservices/VerificationReporter.h | 0 src/opt/CMakeLists.txt | 6 ---- tests/CMakeLists.txt | 1 - tests/inc/CMakeLists.txt | 7 ---- tests/src/CMakeLists.txt | 14 ++++---- tests/src/fsfw/CMakeLists.txt | 1 + tests/src/fsfw/tests/CMakeLists.txt | 8 +++++ .../{ => fsfw/tests}/internal/CMakeLists.txt | 0 .../tests}/internal/InternalUnitTester.cpp | 0 .../fsfw/tests/internal/InternalUnitTester.h | 0 .../tests}/internal/UnittDefinitions.cpp | 0 .../fsfw/tests/internal/UnittDefinitions.h | 0 .../internal/globalfunctions/CMakeLists.txt | 0 .../globalfunctions/TestArrayPrinter.cpp | 0 .../globalfunctions/TestArrayPrinter.h | 0 .../tests}/internal/osal/CMakeLists.txt | 0 .../tests}/internal/osal/IntTestMq.cpp | 0 .../fsfw/tests/internal/osal/IntTestMq.h | 0 .../tests}/internal/osal/IntTestMutex.cpp | 0 .../fsfw/tests/internal/osal/IntTestMutex.h | 0 .../tests}/internal/osal/IntTestSemaphore.cpp | 0 .../tests/internal/osal/IntTestSemaphore.h | 0 .../tests}/internal/serialize/CMakeLists.txt | 0 .../serialize/IntTestSerialization.cpp | 0 .../internal/serialize/IntTestSerialization.h | 0 .../{tests => fsfw/tests/unit}/CMakeLists.txt | 2 ++ .../tests/unit}/action/CMakeLists.txt | 0 .../tests/unit}/action/TestActionHelper.cpp | 0 .../tests/unit}/action/TestActionHelper.h | 0 .../tests/unit}/container/CMakeLists.txt | 0 .../tests/unit}/container/RingBufferTest.cpp | 0 .../tests/unit}/container/TestArrayList.cpp | 0 .../tests/unit}/container/TestDynamicFifo.cpp | 0 .../tests/unit}/container/TestFifo.cpp | 0 .../unit}/container/TestFixedArrayList.cpp | 0 .../tests/unit}/container/TestFixedMap.cpp | 0 .../container/TestFixedOrderedMultimap.cpp | 0 .../unit}/container/TestPlacementFactory.cpp | 0 .../tests/unit}/datapoollocal/CMakeLists.txt | 0 .../tests/unit}/datapoollocal/DataSetTest.cpp | 0 .../datapoollocal/LocalPoolManagerTest.cpp | 0 .../datapoollocal/LocalPoolOwnerBase.cpp | 0 .../unit}/datapoollocal/LocalPoolOwnerBase.h | 0 .../datapoollocal/LocalPoolVariableTest.cpp | 0 .../datapoollocal/LocalPoolVectorTest.cpp | 0 .../unit}/globalfunctions/CMakeLists.txt | 0 .../tests/unit}/mocks/HkReceiverMock.h | 0 .../tests/unit}/mocks/MessageQueueMockBase.h | 0 .../tests/unit}/osal/CMakeLists.txt | 0 .../tests/unit}/osal/TestMessageQueue.cpp | 0 .../tests/unit}/osal/TestSemaphore.cpp | 0 .../tests/unit}/serialize/CMakeLists.txt | 0 .../serialize/TestSerialBufferAdapter.cpp | 0 .../serialize/TestSerialLinkedPacket.cpp | 0 .../unit}/serialize/TestSerialLinkedPacket.h | 0 .../unit}/serialize/TestSerialization.cpp | 0 .../tests/unit}/storagemanager/CMakeLists.txt | 0 .../unit}/storagemanager/TestNewAccessor.cpp | 0 .../tests/unit}/storagemanager/TestPool.cpp | 0 .../tests/unit}/tmtcpacket/CMakeLists.txt | 0 .../tests/unit}/tmtcpacket/PusTmTest.cpp | 0 767 files changed, 117 insertions(+), 135 deletions(-) delete mode 100644 hal/inc/CMakeLists.txt create mode 100644 hal/src/fsfw/CMakeLists.txt create mode 100644 hal/src/fsfw/hal/CMakeLists.txt rename hal/src/{ => fsfw/hal}/common/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/common/gpio/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/common/gpio/GpioCookie.cpp (100%) rename hal/{inc => src}/fsfw/hal/common/gpio/GpioCookie.h (100%) rename hal/{inc => src}/fsfw/hal/common/gpio/GpioIF.h (100%) rename hal/{inc => src}/fsfw/hal/common/gpio/gpioDefinitions.h (100%) rename hal/{inc => src}/fsfw/hal/common/spi/spiCommon.h (100%) rename hal/src/{ => fsfw/hal}/devicehandlers/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/devicehandlers/GyroL3GD20Handler.cpp (100%) rename hal/{inc => src}/fsfw/hal/devicehandlers/GyroL3GD20Handler.h (100%) rename hal/{inc => src}/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h (100%) rename hal/src/{ => fsfw/hal}/host/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/UnixFileGuard.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/UnixFileGuard.h (100%) rename hal/src/{ => fsfw/hal}/linux/gpio/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/gpio/LinuxLibgpioIF.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/gpio/LinuxLibgpioIF.h (100%) rename hal/src/{ => fsfw/hal}/linux/i2c/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/i2c/I2cComIF.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/i2c/I2cComIF.h (100%) rename hal/src/{ => fsfw/hal}/linux/i2c/I2cCookie.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/i2c/I2cCookie.h (100%) rename hal/src/{ => fsfw/hal}/linux/rpi/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/rpi/GpioRPi.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/rpi/GpioRPi.h (100%) rename hal/src/{ => fsfw/hal}/linux/spi/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/spi/SpiComIF.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/spi/SpiComIF.h (100%) rename hal/src/{ => fsfw/hal}/linux/spi/SpiCookie.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/spi/SpiCookie.h (100%) rename hal/{inc => src}/fsfw/hal/linux/spi/spiDefinitions.h (100%) rename hal/src/{ => fsfw/hal}/linux/uart/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/linux/uart/UartComIF.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/uart/UartComIF.h (100%) rename hal/src/{ => fsfw/hal}/linux/uart/UartCookie.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/uart/UartCookie.h (100%) rename hal/src/{ => fsfw/hal}/linux/utility.cpp (100%) rename hal/{inc => src}/fsfw/hal/linux/utility.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/stm32h7/devicetest/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/stm32h7/devicetest/GyroL3GD20H.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/dma.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/dma.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/gpio/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/stm32h7/gpio/gpio.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/gpio/gpio.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/i2c/CMakeLists.txt (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/interrupts.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/CMakeLists.txt (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/SpiComIF.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/SpiComIF.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/SpiCookie.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/SpiCookie.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/mspInit.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/mspInit.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/spiCore.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/spiCore.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/spiDefinitions.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/spiDefinitions.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/spiInterrupts.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/spiInterrupts.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/spi/stm32h743ziSpi.cpp (100%) rename hal/{inc => src}/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h (100%) rename hal/src/{ => fsfw/hal}/stm32h7/uart/CMakeLists.txt (100%) delete mode 100644 inc/fsfw/action.h delete mode 100644 inc/fsfw/datapoollocal.h delete mode 100644 inc/fsfw/osal/host/Mutex.cpp delete mode 100644 inc/fsfw/osal/rtems/BinarySemaphore.h delete mode 100644 src/core/devicehandlers/CMakeLists.txt delete mode 100644 src/core/housekeeping/CMakeLists.txt rename src/{core => fsfw}/CMakeLists.txt (78%) rename {inc => src}/fsfw/FSFW.h (100%) rename {inc => src}/fsfw/FSFWVersion.h (100%) create mode 100644 src/fsfw/action.h rename src/{core => fsfw}/action/ActionHelper.cpp (100%) rename {inc => src}/fsfw/action/ActionHelper.h (100%) rename src/{core => fsfw}/action/ActionMessage.cpp (100%) rename {inc => src}/fsfw/action/ActionMessage.h (100%) rename src/{core => fsfw}/action/CMakeLists.txt (100%) rename src/{core => fsfw}/action/CommandActionHelper.cpp (100%) rename {inc => src}/fsfw/action/CommandActionHelper.h (100%) rename {inc => src}/fsfw/action/CommandsActionsIF.h (100%) rename {inc => src}/fsfw/action/HasActionsIF.h (100%) rename src/{core => fsfw}/action/SimpleActionHelper.cpp (100%) rename {inc => src}/fsfw/action/SimpleActionHelper.h (100%) rename {inc => src}/fsfw/container/ArrayList.h (100%) rename {inc => src}/fsfw/container/BinaryTree.h (100%) rename src/{core => fsfw}/container/CMakeLists.txt (100%) rename {inc => src}/fsfw/container/DynamicFIFO.h (100%) rename {inc => src}/fsfw/container/FIFO.h (100%) rename {inc => src}/fsfw/container/FIFOBase.h (100%) rename {inc => src}/fsfw/container/FIFOBase.tpp (100%) rename {inc => src}/fsfw/container/FixedArrayList.h (100%) rename {inc => src}/fsfw/container/FixedMap.h (100%) rename {inc => src}/fsfw/container/FixedOrderedMultimap.h (100%) rename {inc => src}/fsfw/container/FixedOrderedMultimap.tpp (100%) rename {inc => src}/fsfw/container/HybridIterator.h (100%) rename {inc => src}/fsfw/container/IndexedRingMemoryArray.h (100%) rename {inc => src}/fsfw/container/PlacementFactory.h (100%) rename {inc => src}/fsfw/container/RingBufferBase.h (100%) rename src/{core => fsfw}/container/SharedRingBuffer.cpp (100%) rename {inc => src}/fsfw/container/SharedRingBuffer.h (100%) rename src/{core => fsfw}/container/SimpleRingBuffer.cpp (100%) rename {inc => src}/fsfw/container/SimpleRingBuffer.h (100%) rename {inc => src}/fsfw/container/SinglyLinkedList.h (100%) rename {inc => src}/fsfw/container/group.h (100%) rename src/{core => fsfw}/controller/CMakeLists.txt (100%) rename src/{core => fsfw}/controller/ControllerBase.cpp (100%) rename {inc => src}/fsfw/controller/ControllerBase.h (100%) rename src/{core => fsfw}/controller/ExtendedControllerBase.cpp (100%) rename {inc => src}/fsfw/controller/ExtendedControllerBase.h (100%) rename src/{opt => fsfw}/coordinates/CMakeLists.txt (100%) rename src/{opt => fsfw}/coordinates/CoordinateTransformations.cpp (100%) rename {inc => src}/fsfw/coordinates/CoordinateTransformations.h (100%) rename {inc => src}/fsfw/coordinates/Jgm3Model.h (100%) rename src/{opt => fsfw}/coordinates/Sgp4Propagator.cpp (100%) rename {inc => src}/fsfw/coordinates/Sgp4Propagator.h (100%) rename {inc => src}/fsfw/datalinklayer/BCFrame.h (100%) rename {inc => src}/fsfw/datalinklayer/CCSDSReturnValuesIF.h (100%) rename src/{opt => fsfw}/datalinklayer/CMakeLists.txt (100%) rename src/{opt => fsfw}/datalinklayer/Clcw.cpp (100%) rename {inc => src}/fsfw/datalinklayer/Clcw.h (100%) rename {inc => src}/fsfw/datalinklayer/ClcwIF.h (100%) rename src/{opt => fsfw}/datalinklayer/DataLinkLayer.cpp (100%) rename {inc => src}/fsfw/datalinklayer/DataLinkLayer.h (100%) rename {inc => src}/fsfw/datalinklayer/Farm1StateIF.h (100%) rename src/{opt => fsfw}/datalinklayer/Farm1StateLockout.cpp (100%) rename {inc => src}/fsfw/datalinklayer/Farm1StateLockout.h (100%) rename src/{opt => fsfw}/datalinklayer/Farm1StateOpen.cpp (100%) rename {inc => src}/fsfw/datalinklayer/Farm1StateOpen.h (100%) rename src/{opt => fsfw}/datalinklayer/Farm1StateWait.cpp (100%) rename {inc => src}/fsfw/datalinklayer/Farm1StateWait.h (100%) rename src/{opt => fsfw}/datalinklayer/MapPacketExtraction.cpp (100%) rename {inc => src}/fsfw/datalinklayer/MapPacketExtraction.h (100%) rename {inc => src}/fsfw/datalinklayer/MapPacketExtractionIF.h (100%) rename src/{opt => fsfw}/datalinklayer/TcTransferFrame.cpp (100%) rename {inc => src}/fsfw/datalinklayer/TcTransferFrame.h (100%) rename src/{opt => fsfw}/datalinklayer/TcTransferFrameLocal.cpp (100%) rename {inc => src}/fsfw/datalinklayer/TcTransferFrameLocal.h (100%) rename src/{opt => fsfw}/datalinklayer/VirtualChannelReception.cpp (100%) rename {inc => src}/fsfw/datalinklayer/VirtualChannelReception.h (100%) rename {inc => src}/fsfw/datalinklayer/VirtualChannelReceptionIF.h (100%) rename src/{core => fsfw}/datapool/CMakeLists.txt (100%) rename {inc => src}/fsfw/datapool/DataSetIF.h (100%) rename src/{core => fsfw}/datapool/HkSwitchHelper.cpp (100%) rename {inc => src}/fsfw/datapool/HkSwitchHelper.h (100%) rename src/{core => fsfw}/datapool/PoolDataSetBase.cpp (100%) rename {inc => src}/fsfw/datapool/PoolDataSetBase.h (100%) rename {inc => src}/fsfw/datapool/PoolDataSetIF.h (100%) rename src/{core => fsfw}/datapool/PoolEntry.cpp (100%) rename {inc => src}/fsfw/datapool/PoolEntry.h (100%) rename {inc => src}/fsfw/datapool/PoolEntryIF.h (100%) rename {inc => src}/fsfw/datapool/PoolReadGuard.h (100%) rename {inc => src}/fsfw/datapool/PoolVarList.h (100%) rename {inc => src}/fsfw/datapool/PoolVariableIF.h (100%) rename {inc => src}/fsfw/datapool/ReadCommitIF.h (100%) rename {inc => src}/fsfw/datapool/ReadCommitIFAttorney.h (100%) rename {inc => src}/fsfw/datapool/SharedDataSetIF.h (100%) create mode 100644 src/fsfw/datapoollocal.h rename {inc => src}/fsfw/datapoollocal/AccessLocalPoolF.h (100%) rename src/{core => fsfw}/datapoollocal/CMakeLists.txt (100%) rename {inc => src}/fsfw/datapoollocal/HasLocalDataPoolIF.h (100%) rename src/{core => fsfw}/datapoollocal/LocalDataPoolManager.cpp (100%) rename {inc => src}/fsfw/datapoollocal/LocalDataPoolManager.h (100%) rename src/{core => fsfw}/datapoollocal/LocalDataSet.cpp (100%) rename {inc => src}/fsfw/datapoollocal/LocalDataSet.h (100%) rename src/{core => fsfw}/datapoollocal/LocalPoolDataSetBase.cpp (100%) rename {inc => src}/fsfw/datapoollocal/LocalPoolDataSetBase.h (100%) rename src/{core => fsfw}/datapoollocal/LocalPoolObjectBase.cpp (100%) rename {inc => src}/fsfw/datapoollocal/LocalPoolObjectBase.h (100%) rename {inc => src}/fsfw/datapoollocal/LocalPoolVariable.h (100%) rename {inc => src}/fsfw/datapoollocal/LocalPoolVariable.tpp (100%) rename {inc => src}/fsfw/datapoollocal/LocalPoolVector.h (100%) rename {inc => src}/fsfw/datapoollocal/LocalPoolVector.tpp (100%) rename {inc => src}/fsfw/datapoollocal/MarkChangedIF.h (100%) rename {inc => src}/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h (100%) rename src/{core => fsfw}/datapoollocal/SharedLocalDataSet.cpp (100%) rename {inc => src}/fsfw/datapoollocal/SharedLocalDataSet.h (100%) rename {inc => src}/fsfw/datapoollocal/StaticLocalDataSet.h (100%) rename src/{core => fsfw}/datapoollocal/internal/CMakeLists.txt (100%) rename src/{core => fsfw}/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp (100%) rename src/{core => fsfw}/datapoollocal/internal/HasLocalDpIFManagerAttorney.h (100%) rename src/{core => fsfw}/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp (100%) rename src/{core => fsfw}/datapoollocal/internal/HasLocalDpIFUserAttorney.h (100%) rename {inc => src}/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h (100%) rename src/{core => fsfw}/datapoollocal/internal/LocalPoolDataSetAttorney.h (100%) rename {inc => src}/fsfw/datapoollocal/localPoolDefinitions.h (100%) rename {inc => src}/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h (100%) rename src/{core => fsfw}/devicehandlers/AssemblyBase.cpp (100%) rename {inc => src}/fsfw/devicehandlers/AssemblyBase.h (100%) rename {inc => src}/fsfw/devicehandlers/CMakeLists.txt (100%) rename src/{core => fsfw}/devicehandlers/ChildHandlerBase.cpp (100%) rename {inc => src}/fsfw/devicehandlers/ChildHandlerBase.h (100%) rename src/{core => fsfw}/devicehandlers/ChildHandlerFDIR.cpp (100%) rename {inc => src}/fsfw/devicehandlers/ChildHandlerFDIR.h (100%) rename {inc => src}/fsfw/devicehandlers/CookieIF.h (100%) rename {inc => src}/fsfw/devicehandlers/DeviceCommunicationIF.h (100%) rename src/{core => fsfw}/devicehandlers/DeviceHandlerBase.cpp (100%) rename {inc => src}/fsfw/devicehandlers/DeviceHandlerBase.h (100%) rename src/{core => fsfw}/devicehandlers/DeviceHandlerFailureIsolation.cpp (100%) rename {inc => src}/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h (100%) rename {inc => src}/fsfw/devicehandlers/DeviceHandlerIF.h (100%) rename src/{core => fsfw}/devicehandlers/DeviceHandlerMessage.cpp (100%) rename {inc => src}/fsfw/devicehandlers/DeviceHandlerMessage.h (100%) rename {inc => src}/fsfw/devicehandlers/DeviceHandlerThermalSet.h (100%) rename src/{core => fsfw}/devicehandlers/DeviceTmReportingWrapper.cpp (100%) rename {inc => src}/fsfw/devicehandlers/DeviceTmReportingWrapper.h (100%) rename src/{core => fsfw}/devicehandlers/HealthDevice.cpp (100%) rename {inc => src}/fsfw/devicehandlers/HealthDevice.h (100%) rename src/{core => fsfw}/events/CMakeLists.txt (100%) rename {inc => src}/fsfw/events/Event.h (100%) rename src/{core => fsfw}/events/EventManager.cpp (100%) rename {inc => src}/fsfw/events/EventManager.h (100%) rename {inc => src}/fsfw/events/EventManagerIF.h (100%) rename src/{core => fsfw}/events/EventMessage.cpp (100%) rename {inc => src}/fsfw/events/EventMessage.h (100%) rename {inc => src}/fsfw/events/EventReportingProxyIF.h (100%) rename src/{core => fsfw}/events/eventmatching/CMakeLists.txt (100%) rename src/{core => fsfw}/events/eventmatching/EventIdRangeMatcher.cpp (100%) rename {inc => src}/fsfw/events/eventmatching/EventIdRangeMatcher.h (100%) rename src/{core => fsfw}/events/eventmatching/EventMatchTree.cpp (100%) rename {inc => src}/fsfw/events/eventmatching/EventMatchTree.h (100%) rename {inc => src}/fsfw/events/eventmatching/EventRangeMatcherBase.h (100%) rename src/{core => fsfw}/events/eventmatching/ReporterRangeMatcher.cpp (100%) rename {inc => src}/fsfw/events/eventmatching/ReporterRangeMatcher.h (100%) rename src/{core => fsfw}/events/eventmatching/SeverityRangeMatcher.cpp (100%) rename {inc => src}/fsfw/events/eventmatching/SeverityRangeMatcher.h (100%) rename {inc => src}/fsfw/events/eventmatching/eventmatching.h (100%) rename {inc => src}/fsfw/events/fwSubsystemIdRanges.h (100%) rename src/{core => fsfw}/fdir/CMakeLists.txt (100%) rename {inc => src}/fsfw/fdir/ConfirmsFailuresIF.h (100%) rename src/{core => fsfw}/fdir/EventCorrelation.cpp (100%) rename {inc => src}/fsfw/fdir/EventCorrelation.h (100%) rename src/{core => fsfw}/fdir/FailureIsolationBase.cpp (100%) rename {inc => src}/fsfw/fdir/FailureIsolationBase.h (100%) rename src/{core => fsfw}/fdir/FaultCounter.cpp (100%) rename {inc => src}/fsfw/fdir/FaultCounter.h (100%) rename src/{core => fsfw}/globalfunctions/AsciiConverter.cpp (100%) rename {inc => src}/fsfw/globalfunctions/AsciiConverter.h (100%) rename src/{core => fsfw}/globalfunctions/CMakeLists.txt (100%) rename src/{core => fsfw}/globalfunctions/CRC.cpp (100%) rename {inc => src}/fsfw/globalfunctions/CRC.h (100%) rename src/{core => fsfw}/globalfunctions/DleEncoder.cpp (100%) rename {inc => src}/fsfw/globalfunctions/DleEncoder.h (100%) rename src/{core => fsfw}/globalfunctions/PeriodicOperationDivider.cpp (100%) rename {inc => src}/fsfw/globalfunctions/PeriodicOperationDivider.h (100%) rename src/{core => fsfw}/globalfunctions/Type.cpp (100%) rename {inc => src}/fsfw/globalfunctions/Type.h (100%) rename src/{core => fsfw}/globalfunctions/arrayprinter.cpp (100%) rename {inc => src}/fsfw/globalfunctions/arrayprinter.h (100%) rename src/{core => fsfw}/globalfunctions/bitutility.cpp (100%) rename {inc => src}/fsfw/globalfunctions/bitutility.h (100%) rename {inc => src}/fsfw/globalfunctions/constants.h (100%) rename {inc => src}/fsfw/globalfunctions/matching/BinaryMatcher.h (100%) rename {inc => src}/fsfw/globalfunctions/matching/DecimalMatcher.h (100%) rename {inc => src}/fsfw/globalfunctions/matching/MatchTree.h (100%) rename {inc => src}/fsfw/globalfunctions/matching/MatcherIF.h (100%) rename {inc => src}/fsfw/globalfunctions/matching/RangeMatcher.h (100%) rename {inc => src}/fsfw/globalfunctions/matching/SerializeableMatcherIF.h (100%) rename src/{core => fsfw}/globalfunctions/math/CMakeLists.txt (100%) rename {inc => src}/fsfw/globalfunctions/math/MatrixOperations.h (100%) rename src/{core => fsfw}/globalfunctions/math/QuaternionOperations.cpp (100%) rename {inc => src}/fsfw/globalfunctions/math/QuaternionOperations.h (100%) rename {inc => src}/fsfw/globalfunctions/math/VectorOperations.h (100%) rename {inc => src}/fsfw/globalfunctions/sign.h (100%) rename src/{core => fsfw}/globalfunctions/timevalOperations.cpp (100%) rename {inc => src}/fsfw/globalfunctions/timevalOperations.h (100%) create mode 100644 src/fsfw/health.h rename src/{core => fsfw}/health/CMakeLists.txt (100%) rename {inc => src}/fsfw/health/HasHealthIF.h (100%) rename src/{core => fsfw}/health/HealthHelper.cpp (100%) rename {inc => src}/fsfw/health/HealthHelper.h (100%) rename src/{core => fsfw}/health/HealthMessage.cpp (100%) rename {inc => src}/fsfw/health/HealthMessage.h (100%) rename src/{core => fsfw}/health/HealthTable.cpp (100%) rename {inc => src}/fsfw/health/HealthTable.h (100%) rename {inc => src}/fsfw/health/HealthTableIF.h (100%) rename {inc => src}/fsfw/health/ManagesHealthIF.h (100%) create mode 100644 src/fsfw/housekeeping.h rename {inc => src}/fsfw/housekeeping/AcceptsHkPacketsIF.h (100%) rename {inc => src}/fsfw/housekeeping/CMakeLists.txt (100%) rename src/{core => fsfw}/housekeeping/HousekeepingMessage.cpp (100%) rename {inc => src}/fsfw/housekeeping/HousekeepingMessage.h (100%) rename {inc => src}/fsfw/housekeeping/HousekeepingPacketDownlink.h (100%) rename {inc => src}/fsfw/housekeeping/HousekeepingSetPacket.h (100%) rename {inc => src}/fsfw/housekeeping/HousekeepingSnapshot.h (100%) rename src/{core => fsfw}/housekeeping/PeriodicHousekeepingHelper.cpp (100%) rename {inc => src}/fsfw/housekeeping/PeriodicHousekeepingHelper.h (100%) rename src/{core => fsfw}/internalerror/CMakeLists.txt (100%) rename {inc => src}/fsfw/internalerror/InternalErrorDataset.h (100%) rename src/{core => fsfw}/internalerror/InternalErrorReporter.cpp (100%) rename {inc => src}/fsfw/internalerror/InternalErrorReporter.h (100%) rename {inc => src}/fsfw/internalerror/InternalErrorReporterIF.h (100%) rename src/{core => fsfw}/ipc/CMakeLists.txt (100%) rename src/{core => fsfw}/ipc/CommandMessage.cpp (100%) rename {inc => src}/fsfw/ipc/CommandMessage.h (100%) rename src/{core => fsfw}/ipc/CommandMessageCleaner.cpp (100%) rename {inc => src}/fsfw/ipc/CommandMessageCleaner.h (100%) rename {inc => src}/fsfw/ipc/CommandMessageIF.h (100%) rename {inc => src}/fsfw/ipc/FwMessageTypes.h (100%) rename {inc => src}/fsfw/ipc/MessageQueueIF.h (100%) rename src/{core => fsfw}/ipc/MessageQueueMessage.cpp (100%) rename {inc => src}/fsfw/ipc/MessageQueueMessage.h (100%) rename {inc => src}/fsfw/ipc/MessageQueueMessageIF.h (100%) rename {inc => src}/fsfw/ipc/MessageQueueSenderIF.h (100%) rename {inc => src}/fsfw/ipc/MutexFactory.h (100%) rename {inc => src}/fsfw/ipc/MutexGuard.h (100%) rename {inc => src}/fsfw/ipc/MutexIF.h (100%) rename {inc => src}/fsfw/ipc/QueueFactory.h (100%) rename {inc => src}/fsfw/ipc/messageQueueDefinitions.h (100%) rename {inc => src}/fsfw/memory/AcceptsMemoryMessagesIF.h (100%) rename src/{core => fsfw}/memory/CMakeLists.txt (100%) rename src/{core => fsfw}/memory/GenericFileSystemMessage.cpp (100%) rename {inc => src}/fsfw/memory/GenericFileSystemMessage.h (100%) rename {inc => src}/fsfw/memory/HasFileSystemIF.h (100%) rename {inc => src}/fsfw/memory/HasMemoryIF.h (100%) rename src/{core => fsfw}/memory/MemoryHelper.cpp (100%) rename {inc => src}/fsfw/memory/MemoryHelper.h (100%) rename src/{core => fsfw}/memory/MemoryMessage.cpp (100%) rename {inc => src}/fsfw/memory/MemoryMessage.h (100%) rename src/{core => fsfw}/modes/CMakeLists.txt (100%) rename {inc => src}/fsfw/modes/HasModesIF.h (100%) rename src/{core => fsfw}/modes/ModeHelper.cpp (100%) rename {inc => src}/fsfw/modes/ModeHelper.h (100%) rename src/{core => fsfw}/modes/ModeMessage.cpp (100%) rename {inc => src}/fsfw/modes/ModeMessage.h (100%) rename {inc => src}/fsfw/monitoring/AbsLimitMonitor.h (100%) rename src/{opt => fsfw}/monitoring/CMakeLists.txt (100%) rename {inc => src}/fsfw/monitoring/HasMonitorsIF.h (100%) rename {inc => src}/fsfw/monitoring/LimitMonitor.h (100%) rename src/{opt => fsfw}/monitoring/LimitViolationReporter.cpp (100%) rename {inc => src}/fsfw/monitoring/LimitViolationReporter.h (100%) rename {inc => src}/fsfw/monitoring/MonitorBase.h (100%) rename {inc => src}/fsfw/monitoring/MonitorReporter.h (100%) rename {inc => src}/fsfw/monitoring/MonitoringIF.h (100%) rename src/{opt => fsfw}/monitoring/MonitoringMessage.cpp (100%) rename {inc => src}/fsfw/monitoring/MonitoringMessage.h (100%) rename {inc => src}/fsfw/monitoring/MonitoringMessageContent.h (100%) rename {inc => src}/fsfw/monitoring/ReceivesMonitoringReportsIF.h (100%) rename {inc => src}/fsfw/monitoring/TriplexMonitor.h (100%) rename {inc => src}/fsfw/monitoring/TwoValueLimitMonitor.h (100%) rename src/{core => fsfw}/objectmanager/CMakeLists.txt (100%) rename src/{core => fsfw}/objectmanager/ObjectManager.cpp (100%) rename {inc => src}/fsfw/objectmanager/ObjectManager.h (100%) rename {inc => src}/fsfw/objectmanager/ObjectManagerIF.h (100%) rename src/{core => fsfw}/objectmanager/SystemObject.cpp (100%) rename {inc => src}/fsfw/objectmanager/SystemObject.h (100%) rename {inc => src}/fsfw/objectmanager/SystemObjectIF.h (100%) rename {inc => src}/fsfw/objectmanager/frameworkObjects.h (100%) rename src/{ => fsfw}/osal/CMakeLists.txt (100%) rename {inc => src}/fsfw/osal/Endiness.h (100%) rename {inc => src}/fsfw/osal/InternalErrorCodes.h (100%) rename src/{ => fsfw}/osal/common/CMakeLists.txt (100%) rename src/{ => fsfw}/osal/common/TcpIpBase.cpp (100%) rename {inc => src}/fsfw/osal/common/TcpIpBase.h (100%) rename src/{ => fsfw}/osal/common/TcpTmTcBridge.cpp (100%) rename {inc => src}/fsfw/osal/common/TcpTmTcBridge.h (100%) rename src/{ => fsfw}/osal/common/TcpTmTcServer.cpp (100%) rename {inc => src}/fsfw/osal/common/TcpTmTcServer.h (100%) rename src/{ => fsfw}/osal/common/UdpTcPollingTask.cpp (100%) rename {inc => src}/fsfw/osal/common/UdpTcPollingTask.h (100%) rename src/{ => fsfw}/osal/common/UdpTmTcBridge.cpp (100%) rename {inc => src}/fsfw/osal/common/UdpTmTcBridge.h (100%) rename src/{ => fsfw}/osal/common/tcpipCommon.cpp (100%) rename {inc => src}/fsfw/osal/common/tcpipCommon.h (100%) rename {inc => src}/fsfw/osal/common/tcpipHelpers.h (100%) rename src/{ => fsfw}/osal/freertos/BinSemaphUsingTask.cpp (100%) rename {inc => src}/fsfw/osal/freertos/BinSemaphUsingTask.h (100%) rename src/{ => fsfw}/osal/freertos/BinarySemaphore.cpp (100%) rename {inc => src}/fsfw/osal/freertos/BinarySemaphore.h (100%) rename src/{ => fsfw}/osal/freertos/CMakeLists.txt (100%) rename src/{ => fsfw}/osal/freertos/Clock.cpp (100%) rename src/{ => fsfw}/osal/freertos/CountingSemaphUsingTask.cpp (100%) rename {inc => src}/fsfw/osal/freertos/CountingSemaphUsingTask.h (100%) rename src/{ => fsfw}/osal/freertos/CountingSemaphore.cpp (100%) rename {inc => src}/fsfw/osal/freertos/CountingSemaphore.h (100%) rename src/{ => fsfw}/osal/freertos/FixedTimeslotTask.cpp (100%) rename {inc => src}/fsfw/osal/freertos/FixedTimeslotTask.h (100%) rename {inc => src}/fsfw/osal/freertos/FreeRTOSTaskIF.h (100%) rename src/{ => fsfw}/osal/freertos/MessageQueue.cpp (100%) rename {inc => src}/fsfw/osal/freertos/MessageQueue.h (100%) rename src/{ => fsfw}/osal/freertos/Mutex.cpp (100%) rename {inc => src}/fsfw/osal/freertos/Mutex.h (100%) rename src/{ => fsfw}/osal/freertos/MutexFactory.cpp (100%) rename src/{ => fsfw}/osal/freertos/PeriodicTask.cpp (100%) rename {inc => src}/fsfw/osal/freertos/PeriodicTask.h (100%) rename src/{ => fsfw}/osal/freertos/QueueFactory.cpp (100%) rename src/{ => fsfw}/osal/freertos/QueueMapManager.cpp (100%) rename {inc => src}/fsfw/osal/freertos/QueueMapManager.h (100%) rename {inc => src}/fsfw/osal/freertos/README.md (100%) rename src/{ => fsfw}/osal/freertos/SemaphoreFactory.cpp (100%) rename src/{ => fsfw}/osal/freertos/TaskFactory.cpp (100%) rename src/{ => fsfw}/osal/freertos/TaskManagement.cpp (100%) rename {inc => src}/fsfw/osal/freertos/TaskManagement.h (100%) rename src/{ => fsfw}/osal/freertos/Timekeeper.cpp (100%) rename {inc => src}/fsfw/osal/freertos/Timekeeper.h (100%) rename src/{ => fsfw}/osal/host/CMakeLists.txt (100%) rename src/{ => fsfw}/osal/host/Clock.cpp (100%) rename src/{ => fsfw}/osal/host/FixedTimeslotTask.cpp (100%) rename {inc => src}/fsfw/osal/host/FixedTimeslotTask.h (100%) rename src/{ => fsfw}/osal/host/MessageQueue.cpp (100%) rename {inc => src}/fsfw/osal/host/MessageQueue.h (97%) rename src/{ => fsfw}/osal/host/Mutex.cpp (95%) rename {inc => src}/fsfw/osal/host/Mutex.h (100%) rename src/{ => fsfw}/osal/host/MutexFactory.cpp (100%) rename src/{ => fsfw}/osal/host/PeriodicTask.cpp (100%) rename {inc => src}/fsfw/osal/host/PeriodicTask.h (100%) rename src/{ => fsfw}/osal/host/QueueFactory.cpp (100%) rename src/{ => fsfw}/osal/host/QueueMapManager.cpp (100%) rename {inc => src}/fsfw/osal/host/QueueMapManager.h (100%) rename src/{ => fsfw}/osal/host/SemaphoreFactory.cpp (100%) rename src/{ => fsfw}/osal/host/TaskFactory.cpp (100%) rename src/{ => fsfw}/osal/host/taskHelpers.cpp (100%) rename {inc => src}/fsfw/osal/host/taskHelpers.h (100%) rename src/{ => fsfw}/osal/linux/BinarySemaphore.cpp (100%) rename {inc => src}/fsfw/osal/linux/BinarySemaphore.h (100%) rename src/{ => fsfw}/osal/linux/CMakeLists.txt (100%) rename src/{ => fsfw}/osal/linux/Clock.cpp (100%) rename src/{ => fsfw}/osal/linux/CountingSemaphore.cpp (100%) rename {inc => src}/fsfw/osal/linux/CountingSemaphore.h (100%) rename src/{ => fsfw}/osal/linux/FixedTimeslotTask.cpp (100%) rename {inc => src}/fsfw/osal/linux/FixedTimeslotTask.h (100%) rename src/{ => fsfw}/osal/linux/InternalErrorCodes.cpp (100%) rename src/{ => fsfw}/osal/linux/MessageQueue.cpp (100%) rename {inc => src}/fsfw/osal/linux/MessageQueue.h (100%) rename src/{ => fsfw}/osal/linux/Mutex.cpp (100%) rename {inc => src}/fsfw/osal/linux/Mutex.h (100%) rename src/{ => fsfw}/osal/linux/MutexFactory.cpp (100%) rename src/{ => fsfw}/osal/linux/PeriodicPosixTask.cpp (100%) rename {inc => src}/fsfw/osal/linux/PeriodicPosixTask.h (100%) rename src/{ => fsfw}/osal/linux/PosixThread.cpp (100%) rename {inc => src}/fsfw/osal/linux/PosixThread.h (100%) rename src/{ => fsfw}/osal/linux/QueueFactory.cpp (100%) rename src/{ => fsfw}/osal/linux/SemaphoreFactory.cpp (100%) rename src/{ => fsfw}/osal/linux/TaskFactory.cpp (100%) rename src/{ => fsfw}/osal/linux/Timer.cpp (100%) rename {inc => src}/fsfw/osal/linux/Timer.h (100%) rename src/{ => fsfw}/osal/linux/tcpipHelpers.cpp (100%) rename src/{ => fsfw}/osal/linux/unixUtility.cpp (100%) rename {inc => src}/fsfw/osal/linux/unixUtility.h (100%) rename src/{ => fsfw}/osal/rtems/BinarySemaphore.cpp (100%) rename src/{ => fsfw}/osal/rtems/CMakeLists.txt (100%) rename src/{ => fsfw}/osal/rtems/Clock.cpp (100%) rename src/{ => fsfw}/osal/rtems/CpuUsage.cpp (100%) rename {inc => src}/fsfw/osal/rtems/CpuUsage.h (100%) rename src/{ => fsfw}/osal/rtems/FixedTimeslotTask.cpp (100%) rename {inc => src}/fsfw/osal/rtems/FixedTimeslotTask.h (100%) rename src/{ => fsfw}/osal/rtems/InitTask.cpp (100%) rename {inc => src}/fsfw/osal/rtems/InitTask.h (100%) rename src/{ => fsfw}/osal/rtems/InternalErrorCodes.cpp (100%) rename src/{ => fsfw}/osal/rtems/MessageQueue.cpp (100%) rename {inc => src}/fsfw/osal/rtems/MessageQueue.h (100%) rename src/{ => fsfw}/osal/rtems/Mutex.cpp (100%) rename {inc => src}/fsfw/osal/rtems/Mutex.h (100%) rename src/{ => fsfw}/osal/rtems/MutexFactory.cpp (100%) rename src/{ => fsfw}/osal/rtems/PeriodicTask.cpp (100%) rename {inc => src}/fsfw/osal/rtems/PeriodicTask.h (100%) rename src/{ => fsfw}/osal/rtems/QueueFactory.cpp (100%) rename src/{ => fsfw}/osal/rtems/RTEMSTaskBase.cpp (100%) rename {inc => src}/fsfw/osal/rtems/RTEMSTaskBase.h (100%) rename src/{ => fsfw}/osal/rtems/RtemsBasic.cpp (100%) rename {inc => src}/fsfw/osal/rtems/RtemsBasic.h (100%) rename src/{ => fsfw}/osal/rtems/SemaphoreFactory.cpp (100%) rename src/{ => fsfw}/osal/rtems/TaskFactory.cpp (100%) rename src/{ => fsfw}/osal/windows/CMakeLists.txt (100%) rename src/{ => fsfw}/osal/windows/tcpipHelpers.cpp (100%) rename src/{ => fsfw}/osal/windows/winTaskHelpers.cpp (100%) rename {inc => src}/fsfw/osal/windows/winTaskHelpers.h (100%) rename src/{core => fsfw}/parameters/CMakeLists.txt (100%) rename {inc => src}/fsfw/parameters/HasParametersIF.h (100%) rename src/{core => fsfw}/parameters/ParameterHelper.cpp (100%) rename {inc => src}/fsfw/parameters/ParameterHelper.h (100%) rename src/{core => fsfw}/parameters/ParameterMessage.cpp (100%) rename {inc => src}/fsfw/parameters/ParameterMessage.h (100%) rename src/{core => fsfw}/parameters/ParameterWrapper.cpp (100%) rename {inc => src}/fsfw/parameters/ParameterWrapper.h (100%) rename {inc => src}/fsfw/parameters/ReceivesParameterMessagesIF.h (100%) rename {inc => src}/fsfw/platform.h (100%) rename src/{core => fsfw}/power/CMakeLists.txt (100%) rename src/{core => fsfw}/power/Fuse.cpp (100%) rename {inc => src}/fsfw/power/Fuse.h (100%) rename src/{core => fsfw}/power/PowerComponent.cpp (100%) rename {inc => src}/fsfw/power/PowerComponent.h (100%) rename {inc => src}/fsfw/power/PowerComponentIF.h (100%) rename src/{core => fsfw}/power/PowerSensor.cpp (100%) rename {inc => src}/fsfw/power/PowerSensor.h (100%) rename {inc => src}/fsfw/power/PowerSwitchIF.h (100%) rename src/{core => fsfw}/power/PowerSwitcher.cpp (100%) rename {inc => src}/fsfw/power/PowerSwitcher.h (100%) rename src/{opt => fsfw}/pus/CMakeLists.txt (100%) rename src/{opt => fsfw}/pus/CService200ModeCommanding.cpp (100%) rename {inc => src}/fsfw/pus/CService200ModeCommanding.h (100%) rename src/{opt => fsfw}/pus/CService201HealthCommanding.cpp (100%) rename {inc => src}/fsfw/pus/CService201HealthCommanding.h (100%) rename src/{opt => fsfw}/pus/Service17Test.cpp (100%) rename {inc => src}/fsfw/pus/Service17Test.h (100%) rename src/{opt => fsfw}/pus/Service1TelecommandVerification.cpp (100%) rename {inc => src}/fsfw/pus/Service1TelecommandVerification.h (100%) rename src/{opt => fsfw}/pus/Service20ParameterManagement.cpp (100%) rename {inc => src}/fsfw/pus/Service20ParameterManagement.h (100%) rename src/{opt => fsfw}/pus/Service2DeviceAccess.cpp (100%) rename {inc => src}/fsfw/pus/Service2DeviceAccess.h (100%) rename src/{opt => fsfw}/pus/Service3Housekeeping.cpp (100%) rename {inc => src}/fsfw/pus/Service3Housekeeping.h (100%) rename src/{opt => fsfw}/pus/Service5EventReporting.cpp (100%) rename {inc => src}/fsfw/pus/Service5EventReporting.h (100%) rename src/{opt => fsfw}/pus/Service8FunctionManagement.cpp (100%) rename {inc => src}/fsfw/pus/Service8FunctionManagement.h (100%) rename src/{opt => fsfw}/pus/Service9TimeManagement.cpp (100%) rename {inc => src}/fsfw/pus/Service9TimeManagement.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service1Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service200Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service201Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service20Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service2Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service3Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service5Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service8Packets.h (100%) rename {inc => src}/fsfw/pus/servicepackets/Service9Packets.h (100%) rename {inc => src}/fsfw/returnvalues/FwClassIds.h (100%) rename {inc => src}/fsfw/returnvalues/HasReturnvaluesIF.h (100%) rename src/{opt => fsfw}/rmap/CMakeLists.txt (100%) rename src/{opt => fsfw}/rmap/RMAP.cpp (100%) rename {inc => src}/fsfw/rmap/RMAP.h (100%) rename {inc => src}/fsfw/rmap/RMAPChannelIF.h (100%) rename src/{opt => fsfw}/rmap/RMAPCookie.cpp (100%) rename {inc => src}/fsfw/rmap/RMAPCookie.h (100%) rename src/{opt => fsfw}/rmap/RmapDeviceCommunicationIF.cpp (100%) rename {inc => src}/fsfw/rmap/RmapDeviceCommunicationIF.h (100%) rename {inc => src}/fsfw/rmap/rmapStructs.h (100%) create mode 100644 src/fsfw/serialize.h rename src/{core => fsfw}/serialize/CMakeLists.txt (100%) rename {inc => src}/fsfw/serialize/EndianConverter.h (100%) rename {inc => src}/fsfw/serialize/SerialArrayListAdapter.h (100%) rename src/{core => fsfw}/serialize/SerialBufferAdapter.cpp (100%) rename {inc => src}/fsfw/serialize/SerialBufferAdapter.h (100%) rename {inc => src}/fsfw/serialize/SerialFixedArrayListAdapter.h (100%) rename {inc => src}/fsfw/serialize/SerialLinkedListAdapter.h (100%) rename {inc => src}/fsfw/serialize/SerializeAdapter.h (100%) rename {inc => src}/fsfw/serialize/SerializeElement.h (100%) rename {inc => src}/fsfw/serialize/SerializeIF.h (100%) rename src/{core => fsfw}/serviceinterface/CMakeLists.txt (100%) rename {inc => src}/fsfw/serviceinterface/ServiceInterface.h (100%) rename src/{core => fsfw}/serviceinterface/ServiceInterfaceBuffer.cpp (100%) rename {inc => src}/fsfw/serviceinterface/ServiceInterfaceBuffer.h (100%) rename src/{core => fsfw}/serviceinterface/ServiceInterfacePrinter.cpp (100%) rename {inc => src}/fsfw/serviceinterface/ServiceInterfacePrinter.h (100%) rename src/{core => fsfw}/serviceinterface/ServiceInterfaceStream.cpp (100%) rename {inc => src}/fsfw/serviceinterface/ServiceInterfaceStream.h (100%) rename {inc => src}/fsfw/serviceinterface/serviceInterfaceDefintions.h (100%) rename src/{core => fsfw}/storagemanager/CMakeLists.txt (100%) rename src/{core => fsfw}/storagemanager/ConstStorageAccessor.cpp (100%) rename {inc => src}/fsfw/storagemanager/ConstStorageAccessor.h (100%) rename src/{core => fsfw}/storagemanager/LocalPool.cpp (100%) rename {inc => src}/fsfw/storagemanager/LocalPool.h (100%) rename src/{core => fsfw}/storagemanager/PoolManager.cpp (100%) rename {inc => src}/fsfw/storagemanager/PoolManager.h (100%) rename src/{core => fsfw}/storagemanager/StorageAccessor.cpp (100%) rename {inc => src}/fsfw/storagemanager/StorageAccessor.h (100%) rename {inc => src}/fsfw/storagemanager/StorageManagerIF.h (100%) rename {inc => src}/fsfw/storagemanager/storeAddress.h (100%) rename src/{core => fsfw}/subsystem/CMakeLists.txt (100%) rename src/{core => fsfw}/subsystem/Subsystem.cpp (100%) rename {inc => src}/fsfw/subsystem/Subsystem.h (100%) rename src/{core => fsfw}/subsystem/SubsystemBase.cpp (100%) rename {inc => src}/fsfw/subsystem/SubsystemBase.h (100%) rename src/{core => fsfw}/subsystem/modes/CMakeLists.txt (100%) rename {inc => src}/fsfw/subsystem/modes/HasModeSequenceIF.h (100%) rename {inc => src}/fsfw/subsystem/modes/ModeDefinitions.h (100%) rename src/{core => fsfw}/subsystem/modes/ModeSequenceMessage.cpp (100%) rename {inc => src}/fsfw/subsystem/modes/ModeSequenceMessage.h (100%) rename src/{core => fsfw}/subsystem/modes/ModeStore.cpp (100%) rename {inc => src}/fsfw/subsystem/modes/ModeStore.h (100%) rename {inc => src}/fsfw/subsystem/modes/ModeStoreIF.h (100%) rename src/{core => fsfw}/tasks/CMakeLists.txt (100%) rename {inc => src}/fsfw/tasks/ExecutableObjectIF.h (100%) rename src/{core => fsfw}/tasks/FixedSequenceSlot.cpp (100%) rename {inc => src}/fsfw/tasks/FixedSequenceSlot.h (100%) rename src/{core => fsfw}/tasks/FixedSlotSequence.cpp (100%) rename {inc => src}/fsfw/tasks/FixedSlotSequence.h (100%) rename {inc => src}/fsfw/tasks/FixedTimeslotTaskIF.h (100%) rename {inc => src}/fsfw/tasks/PeriodicTaskIF.h (100%) rename {inc => src}/fsfw/tasks/SemaphoreFactory.h (100%) rename {inc => src}/fsfw/tasks/SemaphoreIF.h (100%) rename {inc => src}/fsfw/tasks/TaskFactory.h (100%) rename {inc => src}/fsfw/tasks/Typedef.h (100%) rename src/{core => fsfw}/tcdistribution/CCSDSDistributor.cpp (100%) rename {inc => src}/fsfw/tcdistribution/CCSDSDistributor.h (100%) rename {inc => src}/fsfw/tcdistribution/CCSDSDistributorIF.h (100%) rename src/{core => fsfw}/tcdistribution/CMakeLists.txt (100%) rename src/{core => fsfw}/tcdistribution/PUSDistributor.cpp (100%) rename {inc => src}/fsfw/tcdistribution/PUSDistributor.h (100%) rename {inc => src}/fsfw/tcdistribution/PUSDistributorIF.h (100%) rename src/{core => fsfw}/tcdistribution/TcDistributor.cpp (100%) rename {inc => src}/fsfw/tcdistribution/TcDistributor.h (100%) rename src/{core => fsfw}/tcdistribution/TcPacketCheck.cpp (100%) rename {inc => src}/fsfw/tcdistribution/TcPacketCheck.h (100%) rename src/{core => fsfw}/thermal/AbstractTemperatureSensor.cpp (100%) rename {inc => src}/fsfw/thermal/AbstractTemperatureSensor.h (100%) rename {inc => src}/fsfw/thermal/AcceptsThermalMessagesIF.h (100%) rename src/{core => fsfw}/thermal/CMakeLists.txt (100%) rename src/{core => fsfw}/thermal/Heater.cpp (100%) rename {inc => src}/fsfw/thermal/Heater.h (100%) rename src/{core => fsfw}/thermal/RedundantHeater.cpp (100%) rename {inc => src}/fsfw/thermal/RedundantHeater.h (100%) rename {inc => src}/fsfw/thermal/TemperatureSensor.h (100%) rename src/{core => fsfw}/thermal/ThermalComponent.cpp (100%) rename {inc => src}/fsfw/thermal/ThermalComponent.h (100%) rename src/{core => fsfw}/thermal/ThermalComponentCore.cpp (100%) rename {inc => src}/fsfw/thermal/ThermalComponentCore.h (100%) rename {inc => src}/fsfw/thermal/ThermalComponentIF.h (100%) rename src/{core => fsfw}/thermal/ThermalModule.cpp (100%) rename {inc => src}/fsfw/thermal/ThermalModule.h (100%) rename {inc => src}/fsfw/thermal/ThermalModuleIF.h (100%) rename src/{core => fsfw}/thermal/ThermalMonitorReporter.cpp (100%) rename {inc => src}/fsfw/thermal/ThermalMonitorReporter.h (100%) rename {inc => src}/fsfw/thermal/tcsDefinitions.h (100%) rename src/{core => fsfw}/timemanager/CCSDSTime.cpp (100%) rename {inc => src}/fsfw/timemanager/CCSDSTime.h (100%) rename src/{core => fsfw}/timemanager/CMakeLists.txt (100%) rename {inc => src}/fsfw/timemanager/Clock.h (100%) rename src/{core => fsfw}/timemanager/ClockCommon.cpp (100%) rename src/{core => fsfw}/timemanager/Countdown.cpp (100%) rename {inc => src}/fsfw/timemanager/Countdown.h (100%) rename {inc => src}/fsfw/timemanager/ReceivesTimeInfoIF.h (100%) rename src/{core => fsfw}/timemanager/Stopwatch.cpp (100%) rename {inc => src}/fsfw/timemanager/Stopwatch.h (100%) rename src/{core => fsfw}/timemanager/TimeMessage.cpp (100%) rename {inc => src}/fsfw/timemanager/TimeMessage.h (100%) rename src/{core => fsfw}/timemanager/TimeStamper.cpp (100%) rename {inc => src}/fsfw/timemanager/TimeStamper.h (100%) rename {inc => src}/fsfw/timemanager/TimeStamperIF.h (100%) rename {inc => src}/fsfw/timemanager/clockDefinitions.h (100%) rename src/{opt => fsfw}/tmstorage/CMakeLists.txt (100%) rename {inc => src}/fsfw/tmstorage/TmStoreBackendIF.h (100%) rename {inc => src}/fsfw/tmstorage/TmStoreFrontendIF.h (100%) rename src/{opt => fsfw}/tmstorage/TmStoreMessage.cpp (100%) rename {inc => src}/fsfw/tmstorage/TmStoreMessage.h (100%) rename {inc => src}/fsfw/tmstorage/TmStorePackets.h (100%) rename src/{core => fsfw}/tmtcpacket/CMakeLists.txt (100%) rename src/{core => fsfw}/tmtcpacket/SpacePacket.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/SpacePacket.h (100%) rename src/{core => fsfw}/tmtcpacket/SpacePacketBase.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/SpacePacketBase.h (100%) rename {inc => src}/fsfw/tmtcpacket/ccsds_header.h (100%) rename {inc => src}/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h (100%) rename src/{core => fsfw}/tmtcpacket/packetmatcher/CMakeLists.txt (100%) rename src/{core => fsfw}/tmtcpacket/packetmatcher/PacketMatchTree.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h (100%) rename {inc => src}/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h (100%) rename {inc => src}/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/CMakeLists.txt (100%) rename {inc => src}/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tc.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tc/CMakeLists.txt (100%) rename src/{core => fsfw}/tmtcpacket/pus/tc/TcPacketBase.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tc/TcPacketBase.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tc/TcPacketPus.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tc/TcPacketPus.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tc/TcPacketStoredBase.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tc/TcPacketStoredPus.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/CMakeLists.txt (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketBase.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketBase.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketMinimal.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketPusA.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketPusC.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketStored.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketStoredBase.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h (100%) rename src/{core => fsfw}/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp (100%) rename {inc => src}/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h (100%) rename {inc => src}/fsfw/tmtcservices/AcceptsTelecommandsIF.h (100%) rename {inc => src}/fsfw/tmtcservices/AcceptsTelemetryIF.h (100%) rename {inc => src}/fsfw/tmtcservices/AcceptsVerifyMessageIF.h (100%) rename src/{core => fsfw}/tmtcservices/CMakeLists.txt (100%) rename src/{core => fsfw}/tmtcservices/CommandingServiceBase.cpp (100%) rename {inc => src}/fsfw/tmtcservices/CommandingServiceBase.h (100%) rename src/{core => fsfw}/tmtcservices/PusServiceBase.cpp (100%) rename {inc => src}/fsfw/tmtcservices/PusServiceBase.h (100%) rename src/{core => fsfw}/tmtcservices/PusVerificationReport.cpp (100%) rename {inc => src}/fsfw/tmtcservices/PusVerificationReport.h (100%) rename {inc => src}/fsfw/tmtcservices/SourceSequenceCounter.h (100%) rename src/{core => fsfw}/tmtcservices/TmTcBridge.cpp (100%) rename {inc => src}/fsfw/tmtcservices/TmTcBridge.h (100%) rename src/{core => fsfw}/tmtcservices/TmTcMessage.cpp (100%) rename {inc => src}/fsfw/tmtcservices/TmTcMessage.h (100%) rename {inc => src}/fsfw/tmtcservices/VerificationCodes.h (100%) rename src/{core => fsfw}/tmtcservices/VerificationReporter.cpp (100%) rename {inc => src}/fsfw/tmtcservices/VerificationReporter.h (100%) delete mode 100644 src/opt/CMakeLists.txt delete mode 100644 tests/inc/CMakeLists.txt create mode 100644 tests/src/fsfw/CMakeLists.txt create mode 100644 tests/src/fsfw/tests/CMakeLists.txt rename tests/src/{ => fsfw/tests}/internal/CMakeLists.txt (100%) rename tests/src/{ => fsfw/tests}/internal/InternalUnitTester.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/InternalUnitTester.h (100%) rename tests/src/{ => fsfw/tests}/internal/UnittDefinitions.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/UnittDefinitions.h (100%) rename tests/src/{ => fsfw/tests}/internal/globalfunctions/CMakeLists.txt (100%) rename tests/src/{ => fsfw/tests}/internal/globalfunctions/TestArrayPrinter.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h (100%) rename tests/src/{ => fsfw/tests}/internal/osal/CMakeLists.txt (100%) rename tests/src/{ => fsfw/tests}/internal/osal/IntTestMq.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/osal/IntTestMq.h (100%) rename tests/src/{ => fsfw/tests}/internal/osal/IntTestMutex.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/osal/IntTestMutex.h (100%) rename tests/src/{ => fsfw/tests}/internal/osal/IntTestSemaphore.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/osal/IntTestSemaphore.h (100%) rename tests/src/{ => fsfw/tests}/internal/serialize/CMakeLists.txt (100%) rename tests/src/{ => fsfw/tests}/internal/serialize/IntTestSerialization.cpp (100%) rename tests/{inc => src}/fsfw/tests/internal/serialize/IntTestSerialization.h (100%) rename tests/src/{tests => fsfw/tests/unit}/CMakeLists.txt (72%) rename tests/src/{tests => fsfw/tests/unit}/action/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/action/TestActionHelper.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/action/TestActionHelper.h (100%) rename tests/src/{tests => fsfw/tests/unit}/container/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/container/RingBufferTest.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestArrayList.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestDynamicFifo.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestFifo.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestFixedArrayList.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestFixedMap.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestFixedOrderedMultimap.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/container/TestPlacementFactory.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/DataSetTest.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/LocalPoolManagerTest.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/LocalPoolOwnerBase.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/LocalPoolOwnerBase.h (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/LocalPoolVariableTest.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/datapoollocal/LocalPoolVectorTest.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/globalfunctions/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/mocks/HkReceiverMock.h (100%) rename tests/src/{tests => fsfw/tests/unit}/mocks/MessageQueueMockBase.h (100%) rename tests/src/{tests => fsfw/tests/unit}/osal/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/osal/TestMessageQueue.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/osal/TestSemaphore.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/serialize/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/serialize/TestSerialBufferAdapter.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/serialize/TestSerialLinkedPacket.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/serialize/TestSerialLinkedPacket.h (100%) rename tests/src/{tests => fsfw/tests/unit}/serialize/TestSerialization.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/storagemanager/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/storagemanager/TestNewAccessor.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/storagemanager/TestPool.cpp (100%) rename tests/src/{tests => fsfw/tests/unit}/tmtcpacket/CMakeLists.txt (100%) rename tests/src/{tests => fsfw/tests/unit}/tmtcpacket/PusTmTest.cpp (100%) diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 4cb183158..7a9a0ffaa 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -12,7 +12,6 @@ set(LINUX_HAL_PATH_NAME linux) set(STM32H7_PATH_NAME stm32h7) add_subdirectory(src) -add_subdirectory(inc) foreach(INCLUDE_PATH ${FSFW_HAL_ADDITIONAL_INC_PATHS}) if(IS_ABSOLUTE ${INCLUDE_PATH}) diff --git a/hal/inc/CMakeLists.txt b/hal/inc/CMakeLists.txt deleted file mode 100644 index abf6a3d27..000000000 --- a/hal/inc/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -target_include_directories(${LIB_FSFW_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} -) - -target_include_directories(${LIB_FSFW_NAME} INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR} -) diff --git a/hal/src/CMakeLists.txt b/hal/src/CMakeLists.txt index fcd813898..ed2f2522e 100644 --- a/hal/src/CMakeLists.txt +++ b/hal/src/CMakeLists.txt @@ -1,10 +1,9 @@ -add_subdirectory(devicehandlers) -add_subdirectory(common) +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) -if(FSFW_HAL_ADD_LINUX) - add_subdirectory(${LINUX_HAL_PATH_NAME}) -endif() +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} +) -if(FSFW_HAL_ADD_STM32H7) - add_subdirectory(${STM32H7_PATH_NAME}) -endif() +add_subdirectory(fsfw) diff --git a/hal/src/fsfw/CMakeLists.txt b/hal/src/fsfw/CMakeLists.txt new file mode 100644 index 000000000..c034e0b73 --- /dev/null +++ b/hal/src/fsfw/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(hal) diff --git a/hal/src/fsfw/hal/CMakeLists.txt b/hal/src/fsfw/hal/CMakeLists.txt new file mode 100644 index 000000000..f5901e91d --- /dev/null +++ b/hal/src/fsfw/hal/CMakeLists.txt @@ -0,0 +1,10 @@ +add_subdirectory(devicehandlers) +add_subdirectory(common) + +if(FSFW_HAL_ADD_LINUX) + add_subdirectory(linux) +endif() + +if(FSFW_HAL_ADD_STM32H7) + add_subdirectory(stm32h7) +endif() diff --git a/hal/src/common/CMakeLists.txt b/hal/src/fsfw/hal/common/CMakeLists.txt similarity index 100% rename from hal/src/common/CMakeLists.txt rename to hal/src/fsfw/hal/common/CMakeLists.txt diff --git a/hal/src/common/gpio/CMakeLists.txt b/hal/src/fsfw/hal/common/gpio/CMakeLists.txt similarity index 100% rename from hal/src/common/gpio/CMakeLists.txt rename to hal/src/fsfw/hal/common/gpio/CMakeLists.txt diff --git a/hal/src/common/gpio/GpioCookie.cpp b/hal/src/fsfw/hal/common/gpio/GpioCookie.cpp similarity index 100% rename from hal/src/common/gpio/GpioCookie.cpp rename to hal/src/fsfw/hal/common/gpio/GpioCookie.cpp diff --git a/hal/inc/fsfw/hal/common/gpio/GpioCookie.h b/hal/src/fsfw/hal/common/gpio/GpioCookie.h similarity index 100% rename from hal/inc/fsfw/hal/common/gpio/GpioCookie.h rename to hal/src/fsfw/hal/common/gpio/GpioCookie.h diff --git a/hal/inc/fsfw/hal/common/gpio/GpioIF.h b/hal/src/fsfw/hal/common/gpio/GpioIF.h similarity index 100% rename from hal/inc/fsfw/hal/common/gpio/GpioIF.h rename to hal/src/fsfw/hal/common/gpio/GpioIF.h diff --git a/hal/inc/fsfw/hal/common/gpio/gpioDefinitions.h b/hal/src/fsfw/hal/common/gpio/gpioDefinitions.h similarity index 100% rename from hal/inc/fsfw/hal/common/gpio/gpioDefinitions.h rename to hal/src/fsfw/hal/common/gpio/gpioDefinitions.h diff --git a/hal/inc/fsfw/hal/common/spi/spiCommon.h b/hal/src/fsfw/hal/common/spi/spiCommon.h similarity index 100% rename from hal/inc/fsfw/hal/common/spi/spiCommon.h rename to hal/src/fsfw/hal/common/spi/spiCommon.h diff --git a/hal/src/devicehandlers/CMakeLists.txt b/hal/src/fsfw/hal/devicehandlers/CMakeLists.txt similarity index 100% rename from hal/src/devicehandlers/CMakeLists.txt rename to hal/src/fsfw/hal/devicehandlers/CMakeLists.txt diff --git a/hal/src/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.cpp similarity index 100% rename from hal/src/devicehandlers/GyroL3GD20Handler.cpp rename to hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.cpp diff --git a/hal/inc/fsfw/hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h similarity index 100% rename from hal/inc/fsfw/hal/devicehandlers/GyroL3GD20Handler.h rename to hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h diff --git a/hal/inc/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h b/hal/src/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h similarity index 100% rename from hal/inc/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h rename to hal/src/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h diff --git a/hal/src/host/CMakeLists.txt b/hal/src/fsfw/hal/host/CMakeLists.txt similarity index 100% rename from hal/src/host/CMakeLists.txt rename to hal/src/fsfw/hal/host/CMakeLists.txt diff --git a/hal/src/linux/CMakeLists.txt b/hal/src/fsfw/hal/linux/CMakeLists.txt similarity index 100% rename from hal/src/linux/CMakeLists.txt rename to hal/src/fsfw/hal/linux/CMakeLists.txt diff --git a/hal/src/linux/UnixFileGuard.cpp b/hal/src/fsfw/hal/linux/UnixFileGuard.cpp similarity index 100% rename from hal/src/linux/UnixFileGuard.cpp rename to hal/src/fsfw/hal/linux/UnixFileGuard.cpp diff --git a/hal/inc/fsfw/hal/linux/UnixFileGuard.h b/hal/src/fsfw/hal/linux/UnixFileGuard.h similarity index 100% rename from hal/inc/fsfw/hal/linux/UnixFileGuard.h rename to hal/src/fsfw/hal/linux/UnixFileGuard.h diff --git a/hal/src/linux/gpio/CMakeLists.txt b/hal/src/fsfw/hal/linux/gpio/CMakeLists.txt similarity index 100% rename from hal/src/linux/gpio/CMakeLists.txt rename to hal/src/fsfw/hal/linux/gpio/CMakeLists.txt diff --git a/hal/src/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.cpp similarity index 100% rename from hal/src/linux/gpio/LinuxLibgpioIF.cpp rename to hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.cpp diff --git a/hal/inc/fsfw/hal/linux/gpio/LinuxLibgpioIF.h b/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h similarity index 100% rename from hal/inc/fsfw/hal/linux/gpio/LinuxLibgpioIF.h rename to hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h diff --git a/hal/src/linux/i2c/CMakeLists.txt b/hal/src/fsfw/hal/linux/i2c/CMakeLists.txt similarity index 100% rename from hal/src/linux/i2c/CMakeLists.txt rename to hal/src/fsfw/hal/linux/i2c/CMakeLists.txt diff --git a/hal/src/linux/i2c/I2cComIF.cpp b/hal/src/fsfw/hal/linux/i2c/I2cComIF.cpp similarity index 100% rename from hal/src/linux/i2c/I2cComIF.cpp rename to hal/src/fsfw/hal/linux/i2c/I2cComIF.cpp diff --git a/hal/inc/fsfw/hal/linux/i2c/I2cComIF.h b/hal/src/fsfw/hal/linux/i2c/I2cComIF.h similarity index 100% rename from hal/inc/fsfw/hal/linux/i2c/I2cComIF.h rename to hal/src/fsfw/hal/linux/i2c/I2cComIF.h diff --git a/hal/src/linux/i2c/I2cCookie.cpp b/hal/src/fsfw/hal/linux/i2c/I2cCookie.cpp similarity index 100% rename from hal/src/linux/i2c/I2cCookie.cpp rename to hal/src/fsfw/hal/linux/i2c/I2cCookie.cpp diff --git a/hal/inc/fsfw/hal/linux/i2c/I2cCookie.h b/hal/src/fsfw/hal/linux/i2c/I2cCookie.h similarity index 100% rename from hal/inc/fsfw/hal/linux/i2c/I2cCookie.h rename to hal/src/fsfw/hal/linux/i2c/I2cCookie.h diff --git a/hal/src/linux/rpi/CMakeLists.txt b/hal/src/fsfw/hal/linux/rpi/CMakeLists.txt similarity index 100% rename from hal/src/linux/rpi/CMakeLists.txt rename to hal/src/fsfw/hal/linux/rpi/CMakeLists.txt diff --git a/hal/src/linux/rpi/GpioRPi.cpp b/hal/src/fsfw/hal/linux/rpi/GpioRPi.cpp similarity index 100% rename from hal/src/linux/rpi/GpioRPi.cpp rename to hal/src/fsfw/hal/linux/rpi/GpioRPi.cpp diff --git a/hal/inc/fsfw/hal/linux/rpi/GpioRPi.h b/hal/src/fsfw/hal/linux/rpi/GpioRPi.h similarity index 100% rename from hal/inc/fsfw/hal/linux/rpi/GpioRPi.h rename to hal/src/fsfw/hal/linux/rpi/GpioRPi.h diff --git a/hal/src/linux/spi/CMakeLists.txt b/hal/src/fsfw/hal/linux/spi/CMakeLists.txt similarity index 100% rename from hal/src/linux/spi/CMakeLists.txt rename to hal/src/fsfw/hal/linux/spi/CMakeLists.txt diff --git a/hal/src/linux/spi/SpiComIF.cpp b/hal/src/fsfw/hal/linux/spi/SpiComIF.cpp similarity index 100% rename from hal/src/linux/spi/SpiComIF.cpp rename to hal/src/fsfw/hal/linux/spi/SpiComIF.cpp diff --git a/hal/inc/fsfw/hal/linux/spi/SpiComIF.h b/hal/src/fsfw/hal/linux/spi/SpiComIF.h similarity index 100% rename from hal/inc/fsfw/hal/linux/spi/SpiComIF.h rename to hal/src/fsfw/hal/linux/spi/SpiComIF.h diff --git a/hal/src/linux/spi/SpiCookie.cpp b/hal/src/fsfw/hal/linux/spi/SpiCookie.cpp similarity index 100% rename from hal/src/linux/spi/SpiCookie.cpp rename to hal/src/fsfw/hal/linux/spi/SpiCookie.cpp diff --git a/hal/inc/fsfw/hal/linux/spi/SpiCookie.h b/hal/src/fsfw/hal/linux/spi/SpiCookie.h similarity index 100% rename from hal/inc/fsfw/hal/linux/spi/SpiCookie.h rename to hal/src/fsfw/hal/linux/spi/SpiCookie.h diff --git a/hal/inc/fsfw/hal/linux/spi/spiDefinitions.h b/hal/src/fsfw/hal/linux/spi/spiDefinitions.h similarity index 100% rename from hal/inc/fsfw/hal/linux/spi/spiDefinitions.h rename to hal/src/fsfw/hal/linux/spi/spiDefinitions.h diff --git a/hal/src/linux/uart/CMakeLists.txt b/hal/src/fsfw/hal/linux/uart/CMakeLists.txt similarity index 100% rename from hal/src/linux/uart/CMakeLists.txt rename to hal/src/fsfw/hal/linux/uart/CMakeLists.txt diff --git a/hal/src/linux/uart/UartComIF.cpp b/hal/src/fsfw/hal/linux/uart/UartComIF.cpp similarity index 100% rename from hal/src/linux/uart/UartComIF.cpp rename to hal/src/fsfw/hal/linux/uart/UartComIF.cpp diff --git a/hal/inc/fsfw/hal/linux/uart/UartComIF.h b/hal/src/fsfw/hal/linux/uart/UartComIF.h similarity index 100% rename from hal/inc/fsfw/hal/linux/uart/UartComIF.h rename to hal/src/fsfw/hal/linux/uart/UartComIF.h diff --git a/hal/src/linux/uart/UartCookie.cpp b/hal/src/fsfw/hal/linux/uart/UartCookie.cpp similarity index 100% rename from hal/src/linux/uart/UartCookie.cpp rename to hal/src/fsfw/hal/linux/uart/UartCookie.cpp diff --git a/hal/inc/fsfw/hal/linux/uart/UartCookie.h b/hal/src/fsfw/hal/linux/uart/UartCookie.h similarity index 100% rename from hal/inc/fsfw/hal/linux/uart/UartCookie.h rename to hal/src/fsfw/hal/linux/uart/UartCookie.h diff --git a/hal/src/linux/utility.cpp b/hal/src/fsfw/hal/linux/utility.cpp similarity index 100% rename from hal/src/linux/utility.cpp rename to hal/src/fsfw/hal/linux/utility.cpp diff --git a/hal/inc/fsfw/hal/linux/utility.h b/hal/src/fsfw/hal/linux/utility.h similarity index 100% rename from hal/inc/fsfw/hal/linux/utility.h rename to hal/src/fsfw/hal/linux/utility.h diff --git a/hal/src/stm32h7/CMakeLists.txt b/hal/src/fsfw/hal/stm32h7/CMakeLists.txt similarity index 100% rename from hal/src/stm32h7/CMakeLists.txt rename to hal/src/fsfw/hal/stm32h7/CMakeLists.txt diff --git a/hal/src/stm32h7/devicetest/CMakeLists.txt b/hal/src/fsfw/hal/stm32h7/devicetest/CMakeLists.txt similarity index 100% rename from hal/src/stm32h7/devicetest/CMakeLists.txt rename to hal/src/fsfw/hal/stm32h7/devicetest/CMakeLists.txt diff --git a/hal/src/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.cpp similarity index 100% rename from hal/src/stm32h7/devicetest/GyroL3GD20H.cpp rename to hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h b/hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h rename to hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h diff --git a/hal/src/stm32h7/dma.cpp b/hal/src/fsfw/hal/stm32h7/dma.cpp similarity index 100% rename from hal/src/stm32h7/dma.cpp rename to hal/src/fsfw/hal/stm32h7/dma.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/dma.h b/hal/src/fsfw/hal/stm32h7/dma.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/dma.h rename to hal/src/fsfw/hal/stm32h7/dma.h diff --git a/hal/src/stm32h7/gpio/CMakeLists.txt b/hal/src/fsfw/hal/stm32h7/gpio/CMakeLists.txt similarity index 100% rename from hal/src/stm32h7/gpio/CMakeLists.txt rename to hal/src/fsfw/hal/stm32h7/gpio/CMakeLists.txt diff --git a/hal/src/stm32h7/gpio/gpio.cpp b/hal/src/fsfw/hal/stm32h7/gpio/gpio.cpp similarity index 100% rename from hal/src/stm32h7/gpio/gpio.cpp rename to hal/src/fsfw/hal/stm32h7/gpio/gpio.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/gpio/gpio.h b/hal/src/fsfw/hal/stm32h7/gpio/gpio.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/gpio/gpio.h rename to hal/src/fsfw/hal/stm32h7/gpio/gpio.h diff --git a/hal/src/stm32h7/i2c/CMakeLists.txt b/hal/src/fsfw/hal/stm32h7/i2c/CMakeLists.txt similarity index 100% rename from hal/src/stm32h7/i2c/CMakeLists.txt rename to hal/src/fsfw/hal/stm32h7/i2c/CMakeLists.txt diff --git a/hal/inc/fsfw/hal/stm32h7/interrupts.h b/hal/src/fsfw/hal/stm32h7/interrupts.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/interrupts.h rename to hal/src/fsfw/hal/stm32h7/interrupts.h diff --git a/hal/src/stm32h7/spi/CMakeLists.txt b/hal/src/fsfw/hal/stm32h7/spi/CMakeLists.txt similarity index 100% rename from hal/src/stm32h7/spi/CMakeLists.txt rename to hal/src/fsfw/hal/stm32h7/spi/CMakeLists.txt diff --git a/hal/src/stm32h7/spi/SpiComIF.cpp b/hal/src/fsfw/hal/stm32h7/spi/SpiComIF.cpp similarity index 100% rename from hal/src/stm32h7/spi/SpiComIF.cpp rename to hal/src/fsfw/hal/stm32h7/spi/SpiComIF.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h b/hal/src/fsfw/hal/stm32h7/spi/SpiComIF.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/SpiComIF.h rename to hal/src/fsfw/hal/stm32h7/spi/SpiComIF.h diff --git a/hal/src/stm32h7/spi/SpiCookie.cpp b/hal/src/fsfw/hal/stm32h7/spi/SpiCookie.cpp similarity index 100% rename from hal/src/stm32h7/spi/SpiCookie.cpp rename to hal/src/fsfw/hal/stm32h7/spi/SpiCookie.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/SpiCookie.h b/hal/src/fsfw/hal/stm32h7/spi/SpiCookie.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/SpiCookie.h rename to hal/src/fsfw/hal/stm32h7/spi/SpiCookie.h diff --git a/hal/src/stm32h7/spi/mspInit.cpp b/hal/src/fsfw/hal/stm32h7/spi/mspInit.cpp similarity index 100% rename from hal/src/stm32h7/spi/mspInit.cpp rename to hal/src/fsfw/hal/stm32h7/spi/mspInit.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/mspInit.h b/hal/src/fsfw/hal/stm32h7/spi/mspInit.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/mspInit.h rename to hal/src/fsfw/hal/stm32h7/spi/mspInit.h diff --git a/hal/src/stm32h7/spi/spiCore.cpp b/hal/src/fsfw/hal/stm32h7/spi/spiCore.cpp similarity index 100% rename from hal/src/stm32h7/spi/spiCore.cpp rename to hal/src/fsfw/hal/stm32h7/spi/spiCore.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/spiCore.h b/hal/src/fsfw/hal/stm32h7/spi/spiCore.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/spiCore.h rename to hal/src/fsfw/hal/stm32h7/spi/spiCore.h diff --git a/hal/src/stm32h7/spi/spiDefinitions.cpp b/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.cpp similarity index 100% rename from hal/src/stm32h7/spi/spiDefinitions.cpp rename to hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/spiDefinitions.h b/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/spiDefinitions.h rename to hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h diff --git a/hal/src/stm32h7/spi/spiInterrupts.cpp b/hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.cpp similarity index 100% rename from hal/src/stm32h7/spi/spiInterrupts.cpp rename to hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/spiInterrupts.h b/hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/spiInterrupts.h rename to hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.h diff --git a/hal/src/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.cpp similarity index 100% rename from hal/src/stm32h7/spi/stm32h743ziSpi.cpp rename to hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.cpp diff --git a/hal/inc/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h b/hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h similarity index 100% rename from hal/inc/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h rename to hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h diff --git a/hal/src/stm32h7/uart/CMakeLists.txt b/hal/src/fsfw/hal/stm32h7/uart/CMakeLists.txt similarity index 100% rename from hal/src/stm32h7/uart/CMakeLists.txt rename to hal/src/fsfw/hal/stm32h7/uart/CMakeLists.txt diff --git a/inc/fsfw/action.h b/inc/fsfw/action.h deleted file mode 100644 index 543ccb0cf..000000000 --- a/inc/fsfw/action.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef FSFW_INC_FSFW_ACTION_H_ -#define FSFW_INC_FSFW_ACTION_H_ - -#include "action/ActionHelper.h" -#include "action/ActionMessage.h" -#include "action/CommandActionHelper.h" -#include "action/HasActionsIF.h" -#include "action/CommandsActionsIF.h" -#include "action/SimpleActionHelper.h" - -#endif /* FSFW_INC_FSFW_ACTION_H_ */ diff --git a/inc/fsfw/datapoollocal.h b/inc/fsfw/datapoollocal.h deleted file mode 100644 index 73024a5cf..000000000 --- a/inc/fsfw/datapoollocal.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ -#define FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ - -/* Collected related headers */ -#include "datapoollocal/LocalPoolVariable.h" -#include "datapoollocal/LocalPoolVector.h" -#include "datapoollocal/StaticLocalDataSet.h" -#include "datapoollocal/LocalDataSet.h" -#include "datapoollocal/SharedLocalDataSet.h" - - -#endif /* FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ */ diff --git a/inc/fsfw/osal/host/Mutex.cpp b/inc/fsfw/osal/host/Mutex.cpp deleted file mode 100644 index 892028b23..000000000 --- a/inc/fsfw/osal/host/Mutex.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "Mutex.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" - -Mutex::Mutex() {} - -ReturnValue_t Mutex::lockMutex(TimeoutType timeoutType, uint32_t timeoutMs) { - if(timeoutType == TimeoutType::BLOCKING) { - mutex.lock(); - return HasReturnvaluesIF::RETURN_OK; - } - else if(timeoutType == TimeoutType::POLLING) { - if(mutex.try_lock()) { - return HasReturnvaluesIF::RETURN_OK; - } - } - else if(timeoutType == TimeoutType::WAITING){ - auto chronoMs = std::chrono::milliseconds(timeoutMs); - if(mutex.try_lock_for(chronoMs)) { - return HasReturnvaluesIF::RETURN_OK; - } - } - return MutexIF::MUTEX_TIMEOUT; -} - -ReturnValue_t Mutex::unlockMutex() { - mutex.unlock(); - return HasReturnvaluesIF::RETURN_OK; -} - -std::timed_mutex* Mutex::getMutexHandle() { - return &mutex; -} diff --git a/inc/fsfw/osal/rtems/BinarySemaphore.h b/inc/fsfw/osal/rtems/BinarySemaphore.h deleted file mode 100644 index 3b3a5aba3..000000000 --- a/inc/fsfw/osal/rtems/BinarySemaphore.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef FSFW_INC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ -#define FSFW_INC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ - -#include "fsfw/tasks/SemaphoreIF.h" - -class BinarySemaphore: public SemaphoreIF { -public: - BinarySemaphore(); - virtual ~BinarySemaphore(); - - // Interface implementation - ReturnValue_t acquire(TimeoutType timeoutType = - TimeoutType::BLOCKING, uint32_t timeoutMs = 0) override; - ReturnValue_t release() override; - uint8_t getSemaphoreCounter() const override; -private: -}; - - - -#endif /* FSFW_INC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ */ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 70e6d76e6..81ecb6e40 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,9 @@ -add_subdirectory(core) -add_subdirectory(opt) -add_subdirectory(osal) +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) + +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_subdirectory(fsfw) \ No newline at end of file diff --git a/src/core/devicehandlers/CMakeLists.txt b/src/core/devicehandlers/CMakeLists.txt deleted file mode 100644 index a3fb6d651..000000000 --- a/src/core/devicehandlers/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -target_sources(${LIB_FSFW_NAME} PRIVATE - AssemblyBase.cpp - ChildHandlerBase.cpp - ChildHandlerFDIR.cpp - DeviceHandlerBase.cpp - DeviceHandlerFailureIsolation.cpp - DeviceHandlerMessage.cpp - DeviceTmReportingWrapper.cpp - HealthDevice.cpp -) diff --git a/src/core/housekeeping/CMakeLists.txt b/src/core/housekeeping/CMakeLists.txt deleted file mode 100644 index 0a3e7bd12..000000000 --- a/src/core/housekeeping/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -target_sources(${LIB_FSFW_NAME} PRIVATE - HousekeepingMessage.cpp - PeriodicHousekeepingHelper.cpp -) \ No newline at end of file diff --git a/src/core/CMakeLists.txt b/src/fsfw/CMakeLists.txt similarity index 78% rename from src/core/CMakeLists.txt rename to src/fsfw/CMakeLists.txt index 4a2f7a2c4..2944f2b6b 100644 --- a/src/core/CMakeLists.txt +++ b/src/fsfw/CMakeLists.txt @@ -1,3 +1,5 @@ +# Core + add_subdirectory(action) add_subdirectory(container) add_subdirectory(controller) @@ -26,3 +28,16 @@ add_subdirectory(thermal) add_subdirectory(timemanager) add_subdirectory(tmtcpacket) add_subdirectory(tmtcservices) + +# Optional + +add_subdirectory(coordinates) +add_subdirectory(datalinklayer) +add_subdirectory(monitoring) +add_subdirectory(pus) +add_subdirectory(rmap) +add_subdirectory(tmstorage) + +# OSAL + +add_subdirectory(osal) diff --git a/inc/fsfw/FSFW.h b/src/fsfw/FSFW.h similarity index 100% rename from inc/fsfw/FSFW.h rename to src/fsfw/FSFW.h diff --git a/inc/fsfw/FSFWVersion.h b/src/fsfw/FSFWVersion.h similarity index 100% rename from inc/fsfw/FSFWVersion.h rename to src/fsfw/FSFWVersion.h diff --git a/src/fsfw/action.h b/src/fsfw/action.h new file mode 100644 index 000000000..1300cf176 --- /dev/null +++ b/src/fsfw/action.h @@ -0,0 +1,11 @@ +#ifndef FSFW_INC_FSFW_ACTION_H_ +#define FSFW_INC_FSFW_ACTION_H_ + +#include "fsfw/action/ActionHelper.h" +#include "fsfw/action/ActionMessage.h" +#include "fsfw/action/CommandActionHelper.h" +#include "fsfw/action/HasActionsIF.h" +#include "fsfw/action/CommandsActionsIF.h" +#include "fsfw/action/SimpleActionHelper.h" + +#endif /* FSFW_INC_FSFW_ACTION_H_ */ diff --git a/src/core/action/ActionHelper.cpp b/src/fsfw/action/ActionHelper.cpp similarity index 100% rename from src/core/action/ActionHelper.cpp rename to src/fsfw/action/ActionHelper.cpp diff --git a/inc/fsfw/action/ActionHelper.h b/src/fsfw/action/ActionHelper.h similarity index 100% rename from inc/fsfw/action/ActionHelper.h rename to src/fsfw/action/ActionHelper.h diff --git a/src/core/action/ActionMessage.cpp b/src/fsfw/action/ActionMessage.cpp similarity index 100% rename from src/core/action/ActionMessage.cpp rename to src/fsfw/action/ActionMessage.cpp diff --git a/inc/fsfw/action/ActionMessage.h b/src/fsfw/action/ActionMessage.h similarity index 100% rename from inc/fsfw/action/ActionMessage.h rename to src/fsfw/action/ActionMessage.h diff --git a/src/core/action/CMakeLists.txt b/src/fsfw/action/CMakeLists.txt similarity index 100% rename from src/core/action/CMakeLists.txt rename to src/fsfw/action/CMakeLists.txt diff --git a/src/core/action/CommandActionHelper.cpp b/src/fsfw/action/CommandActionHelper.cpp similarity index 100% rename from src/core/action/CommandActionHelper.cpp rename to src/fsfw/action/CommandActionHelper.cpp diff --git a/inc/fsfw/action/CommandActionHelper.h b/src/fsfw/action/CommandActionHelper.h similarity index 100% rename from inc/fsfw/action/CommandActionHelper.h rename to src/fsfw/action/CommandActionHelper.h diff --git a/inc/fsfw/action/CommandsActionsIF.h b/src/fsfw/action/CommandsActionsIF.h similarity index 100% rename from inc/fsfw/action/CommandsActionsIF.h rename to src/fsfw/action/CommandsActionsIF.h diff --git a/inc/fsfw/action/HasActionsIF.h b/src/fsfw/action/HasActionsIF.h similarity index 100% rename from inc/fsfw/action/HasActionsIF.h rename to src/fsfw/action/HasActionsIF.h diff --git a/src/core/action/SimpleActionHelper.cpp b/src/fsfw/action/SimpleActionHelper.cpp similarity index 100% rename from src/core/action/SimpleActionHelper.cpp rename to src/fsfw/action/SimpleActionHelper.cpp diff --git a/inc/fsfw/action/SimpleActionHelper.h b/src/fsfw/action/SimpleActionHelper.h similarity index 100% rename from inc/fsfw/action/SimpleActionHelper.h rename to src/fsfw/action/SimpleActionHelper.h diff --git a/inc/fsfw/container/ArrayList.h b/src/fsfw/container/ArrayList.h similarity index 100% rename from inc/fsfw/container/ArrayList.h rename to src/fsfw/container/ArrayList.h diff --git a/inc/fsfw/container/BinaryTree.h b/src/fsfw/container/BinaryTree.h similarity index 100% rename from inc/fsfw/container/BinaryTree.h rename to src/fsfw/container/BinaryTree.h diff --git a/src/core/container/CMakeLists.txt b/src/fsfw/container/CMakeLists.txt similarity index 100% rename from src/core/container/CMakeLists.txt rename to src/fsfw/container/CMakeLists.txt diff --git a/inc/fsfw/container/DynamicFIFO.h b/src/fsfw/container/DynamicFIFO.h similarity index 100% rename from inc/fsfw/container/DynamicFIFO.h rename to src/fsfw/container/DynamicFIFO.h diff --git a/inc/fsfw/container/FIFO.h b/src/fsfw/container/FIFO.h similarity index 100% rename from inc/fsfw/container/FIFO.h rename to src/fsfw/container/FIFO.h diff --git a/inc/fsfw/container/FIFOBase.h b/src/fsfw/container/FIFOBase.h similarity index 100% rename from inc/fsfw/container/FIFOBase.h rename to src/fsfw/container/FIFOBase.h diff --git a/inc/fsfw/container/FIFOBase.tpp b/src/fsfw/container/FIFOBase.tpp similarity index 100% rename from inc/fsfw/container/FIFOBase.tpp rename to src/fsfw/container/FIFOBase.tpp diff --git a/inc/fsfw/container/FixedArrayList.h b/src/fsfw/container/FixedArrayList.h similarity index 100% rename from inc/fsfw/container/FixedArrayList.h rename to src/fsfw/container/FixedArrayList.h diff --git a/inc/fsfw/container/FixedMap.h b/src/fsfw/container/FixedMap.h similarity index 100% rename from inc/fsfw/container/FixedMap.h rename to src/fsfw/container/FixedMap.h diff --git a/inc/fsfw/container/FixedOrderedMultimap.h b/src/fsfw/container/FixedOrderedMultimap.h similarity index 100% rename from inc/fsfw/container/FixedOrderedMultimap.h rename to src/fsfw/container/FixedOrderedMultimap.h diff --git a/inc/fsfw/container/FixedOrderedMultimap.tpp b/src/fsfw/container/FixedOrderedMultimap.tpp similarity index 100% rename from inc/fsfw/container/FixedOrderedMultimap.tpp rename to src/fsfw/container/FixedOrderedMultimap.tpp diff --git a/inc/fsfw/container/HybridIterator.h b/src/fsfw/container/HybridIterator.h similarity index 100% rename from inc/fsfw/container/HybridIterator.h rename to src/fsfw/container/HybridIterator.h diff --git a/inc/fsfw/container/IndexedRingMemoryArray.h b/src/fsfw/container/IndexedRingMemoryArray.h similarity index 100% rename from inc/fsfw/container/IndexedRingMemoryArray.h rename to src/fsfw/container/IndexedRingMemoryArray.h diff --git a/inc/fsfw/container/PlacementFactory.h b/src/fsfw/container/PlacementFactory.h similarity index 100% rename from inc/fsfw/container/PlacementFactory.h rename to src/fsfw/container/PlacementFactory.h diff --git a/inc/fsfw/container/RingBufferBase.h b/src/fsfw/container/RingBufferBase.h similarity index 100% rename from inc/fsfw/container/RingBufferBase.h rename to src/fsfw/container/RingBufferBase.h diff --git a/src/core/container/SharedRingBuffer.cpp b/src/fsfw/container/SharedRingBuffer.cpp similarity index 100% rename from src/core/container/SharedRingBuffer.cpp rename to src/fsfw/container/SharedRingBuffer.cpp diff --git a/inc/fsfw/container/SharedRingBuffer.h b/src/fsfw/container/SharedRingBuffer.h similarity index 100% rename from inc/fsfw/container/SharedRingBuffer.h rename to src/fsfw/container/SharedRingBuffer.h diff --git a/src/core/container/SimpleRingBuffer.cpp b/src/fsfw/container/SimpleRingBuffer.cpp similarity index 100% rename from src/core/container/SimpleRingBuffer.cpp rename to src/fsfw/container/SimpleRingBuffer.cpp diff --git a/inc/fsfw/container/SimpleRingBuffer.h b/src/fsfw/container/SimpleRingBuffer.h similarity index 100% rename from inc/fsfw/container/SimpleRingBuffer.h rename to src/fsfw/container/SimpleRingBuffer.h diff --git a/inc/fsfw/container/SinglyLinkedList.h b/src/fsfw/container/SinglyLinkedList.h similarity index 100% rename from inc/fsfw/container/SinglyLinkedList.h rename to src/fsfw/container/SinglyLinkedList.h diff --git a/inc/fsfw/container/group.h b/src/fsfw/container/group.h similarity index 100% rename from inc/fsfw/container/group.h rename to src/fsfw/container/group.h diff --git a/src/core/controller/CMakeLists.txt b/src/fsfw/controller/CMakeLists.txt similarity index 100% rename from src/core/controller/CMakeLists.txt rename to src/fsfw/controller/CMakeLists.txt diff --git a/src/core/controller/ControllerBase.cpp b/src/fsfw/controller/ControllerBase.cpp similarity index 100% rename from src/core/controller/ControllerBase.cpp rename to src/fsfw/controller/ControllerBase.cpp diff --git a/inc/fsfw/controller/ControllerBase.h b/src/fsfw/controller/ControllerBase.h similarity index 100% rename from inc/fsfw/controller/ControllerBase.h rename to src/fsfw/controller/ControllerBase.h diff --git a/src/core/controller/ExtendedControllerBase.cpp b/src/fsfw/controller/ExtendedControllerBase.cpp similarity index 100% rename from src/core/controller/ExtendedControllerBase.cpp rename to src/fsfw/controller/ExtendedControllerBase.cpp diff --git a/inc/fsfw/controller/ExtendedControllerBase.h b/src/fsfw/controller/ExtendedControllerBase.h similarity index 100% rename from inc/fsfw/controller/ExtendedControllerBase.h rename to src/fsfw/controller/ExtendedControllerBase.h diff --git a/src/opt/coordinates/CMakeLists.txt b/src/fsfw/coordinates/CMakeLists.txt similarity index 100% rename from src/opt/coordinates/CMakeLists.txt rename to src/fsfw/coordinates/CMakeLists.txt diff --git a/src/opt/coordinates/CoordinateTransformations.cpp b/src/fsfw/coordinates/CoordinateTransformations.cpp similarity index 100% rename from src/opt/coordinates/CoordinateTransformations.cpp rename to src/fsfw/coordinates/CoordinateTransformations.cpp diff --git a/inc/fsfw/coordinates/CoordinateTransformations.h b/src/fsfw/coordinates/CoordinateTransformations.h similarity index 100% rename from inc/fsfw/coordinates/CoordinateTransformations.h rename to src/fsfw/coordinates/CoordinateTransformations.h diff --git a/inc/fsfw/coordinates/Jgm3Model.h b/src/fsfw/coordinates/Jgm3Model.h similarity index 100% rename from inc/fsfw/coordinates/Jgm3Model.h rename to src/fsfw/coordinates/Jgm3Model.h diff --git a/src/opt/coordinates/Sgp4Propagator.cpp b/src/fsfw/coordinates/Sgp4Propagator.cpp similarity index 100% rename from src/opt/coordinates/Sgp4Propagator.cpp rename to src/fsfw/coordinates/Sgp4Propagator.cpp diff --git a/inc/fsfw/coordinates/Sgp4Propagator.h b/src/fsfw/coordinates/Sgp4Propagator.h similarity index 100% rename from inc/fsfw/coordinates/Sgp4Propagator.h rename to src/fsfw/coordinates/Sgp4Propagator.h diff --git a/inc/fsfw/datalinklayer/BCFrame.h b/src/fsfw/datalinklayer/BCFrame.h similarity index 100% rename from inc/fsfw/datalinklayer/BCFrame.h rename to src/fsfw/datalinklayer/BCFrame.h diff --git a/inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h b/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h similarity index 100% rename from inc/fsfw/datalinklayer/CCSDSReturnValuesIF.h rename to src/fsfw/datalinklayer/CCSDSReturnValuesIF.h diff --git a/src/opt/datalinklayer/CMakeLists.txt b/src/fsfw/datalinklayer/CMakeLists.txt similarity index 100% rename from src/opt/datalinklayer/CMakeLists.txt rename to src/fsfw/datalinklayer/CMakeLists.txt diff --git a/src/opt/datalinklayer/Clcw.cpp b/src/fsfw/datalinklayer/Clcw.cpp similarity index 100% rename from src/opt/datalinklayer/Clcw.cpp rename to src/fsfw/datalinklayer/Clcw.cpp diff --git a/inc/fsfw/datalinklayer/Clcw.h b/src/fsfw/datalinklayer/Clcw.h similarity index 100% rename from inc/fsfw/datalinklayer/Clcw.h rename to src/fsfw/datalinklayer/Clcw.h diff --git a/inc/fsfw/datalinklayer/ClcwIF.h b/src/fsfw/datalinklayer/ClcwIF.h similarity index 100% rename from inc/fsfw/datalinklayer/ClcwIF.h rename to src/fsfw/datalinklayer/ClcwIF.h diff --git a/src/opt/datalinklayer/DataLinkLayer.cpp b/src/fsfw/datalinklayer/DataLinkLayer.cpp similarity index 100% rename from src/opt/datalinklayer/DataLinkLayer.cpp rename to src/fsfw/datalinklayer/DataLinkLayer.cpp diff --git a/inc/fsfw/datalinklayer/DataLinkLayer.h b/src/fsfw/datalinklayer/DataLinkLayer.h similarity index 100% rename from inc/fsfw/datalinklayer/DataLinkLayer.h rename to src/fsfw/datalinklayer/DataLinkLayer.h diff --git a/inc/fsfw/datalinklayer/Farm1StateIF.h b/src/fsfw/datalinklayer/Farm1StateIF.h similarity index 100% rename from inc/fsfw/datalinklayer/Farm1StateIF.h rename to src/fsfw/datalinklayer/Farm1StateIF.h diff --git a/src/opt/datalinklayer/Farm1StateLockout.cpp b/src/fsfw/datalinklayer/Farm1StateLockout.cpp similarity index 100% rename from src/opt/datalinklayer/Farm1StateLockout.cpp rename to src/fsfw/datalinklayer/Farm1StateLockout.cpp diff --git a/inc/fsfw/datalinklayer/Farm1StateLockout.h b/src/fsfw/datalinklayer/Farm1StateLockout.h similarity index 100% rename from inc/fsfw/datalinklayer/Farm1StateLockout.h rename to src/fsfw/datalinklayer/Farm1StateLockout.h diff --git a/src/opt/datalinklayer/Farm1StateOpen.cpp b/src/fsfw/datalinklayer/Farm1StateOpen.cpp similarity index 100% rename from src/opt/datalinklayer/Farm1StateOpen.cpp rename to src/fsfw/datalinklayer/Farm1StateOpen.cpp diff --git a/inc/fsfw/datalinklayer/Farm1StateOpen.h b/src/fsfw/datalinklayer/Farm1StateOpen.h similarity index 100% rename from inc/fsfw/datalinklayer/Farm1StateOpen.h rename to src/fsfw/datalinklayer/Farm1StateOpen.h diff --git a/src/opt/datalinklayer/Farm1StateWait.cpp b/src/fsfw/datalinklayer/Farm1StateWait.cpp similarity index 100% rename from src/opt/datalinklayer/Farm1StateWait.cpp rename to src/fsfw/datalinklayer/Farm1StateWait.cpp diff --git a/inc/fsfw/datalinklayer/Farm1StateWait.h b/src/fsfw/datalinklayer/Farm1StateWait.h similarity index 100% rename from inc/fsfw/datalinklayer/Farm1StateWait.h rename to src/fsfw/datalinklayer/Farm1StateWait.h diff --git a/src/opt/datalinklayer/MapPacketExtraction.cpp b/src/fsfw/datalinklayer/MapPacketExtraction.cpp similarity index 100% rename from src/opt/datalinklayer/MapPacketExtraction.cpp rename to src/fsfw/datalinklayer/MapPacketExtraction.cpp diff --git a/inc/fsfw/datalinklayer/MapPacketExtraction.h b/src/fsfw/datalinklayer/MapPacketExtraction.h similarity index 100% rename from inc/fsfw/datalinklayer/MapPacketExtraction.h rename to src/fsfw/datalinklayer/MapPacketExtraction.h diff --git a/inc/fsfw/datalinklayer/MapPacketExtractionIF.h b/src/fsfw/datalinklayer/MapPacketExtractionIF.h similarity index 100% rename from inc/fsfw/datalinklayer/MapPacketExtractionIF.h rename to src/fsfw/datalinklayer/MapPacketExtractionIF.h diff --git a/src/opt/datalinklayer/TcTransferFrame.cpp b/src/fsfw/datalinklayer/TcTransferFrame.cpp similarity index 100% rename from src/opt/datalinklayer/TcTransferFrame.cpp rename to src/fsfw/datalinklayer/TcTransferFrame.cpp diff --git a/inc/fsfw/datalinklayer/TcTransferFrame.h b/src/fsfw/datalinklayer/TcTransferFrame.h similarity index 100% rename from inc/fsfw/datalinklayer/TcTransferFrame.h rename to src/fsfw/datalinklayer/TcTransferFrame.h diff --git a/src/opt/datalinklayer/TcTransferFrameLocal.cpp b/src/fsfw/datalinklayer/TcTransferFrameLocal.cpp similarity index 100% rename from src/opt/datalinklayer/TcTransferFrameLocal.cpp rename to src/fsfw/datalinklayer/TcTransferFrameLocal.cpp diff --git a/inc/fsfw/datalinklayer/TcTransferFrameLocal.h b/src/fsfw/datalinklayer/TcTransferFrameLocal.h similarity index 100% rename from inc/fsfw/datalinklayer/TcTransferFrameLocal.h rename to src/fsfw/datalinklayer/TcTransferFrameLocal.h diff --git a/src/opt/datalinklayer/VirtualChannelReception.cpp b/src/fsfw/datalinklayer/VirtualChannelReception.cpp similarity index 100% rename from src/opt/datalinklayer/VirtualChannelReception.cpp rename to src/fsfw/datalinklayer/VirtualChannelReception.cpp diff --git a/inc/fsfw/datalinklayer/VirtualChannelReception.h b/src/fsfw/datalinklayer/VirtualChannelReception.h similarity index 100% rename from inc/fsfw/datalinklayer/VirtualChannelReception.h rename to src/fsfw/datalinklayer/VirtualChannelReception.h diff --git a/inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h b/src/fsfw/datalinklayer/VirtualChannelReceptionIF.h similarity index 100% rename from inc/fsfw/datalinklayer/VirtualChannelReceptionIF.h rename to src/fsfw/datalinklayer/VirtualChannelReceptionIF.h diff --git a/src/core/datapool/CMakeLists.txt b/src/fsfw/datapool/CMakeLists.txt similarity index 100% rename from src/core/datapool/CMakeLists.txt rename to src/fsfw/datapool/CMakeLists.txt diff --git a/inc/fsfw/datapool/DataSetIF.h b/src/fsfw/datapool/DataSetIF.h similarity index 100% rename from inc/fsfw/datapool/DataSetIF.h rename to src/fsfw/datapool/DataSetIF.h diff --git a/src/core/datapool/HkSwitchHelper.cpp b/src/fsfw/datapool/HkSwitchHelper.cpp similarity index 100% rename from src/core/datapool/HkSwitchHelper.cpp rename to src/fsfw/datapool/HkSwitchHelper.cpp diff --git a/inc/fsfw/datapool/HkSwitchHelper.h b/src/fsfw/datapool/HkSwitchHelper.h similarity index 100% rename from inc/fsfw/datapool/HkSwitchHelper.h rename to src/fsfw/datapool/HkSwitchHelper.h diff --git a/src/core/datapool/PoolDataSetBase.cpp b/src/fsfw/datapool/PoolDataSetBase.cpp similarity index 100% rename from src/core/datapool/PoolDataSetBase.cpp rename to src/fsfw/datapool/PoolDataSetBase.cpp diff --git a/inc/fsfw/datapool/PoolDataSetBase.h b/src/fsfw/datapool/PoolDataSetBase.h similarity index 100% rename from inc/fsfw/datapool/PoolDataSetBase.h rename to src/fsfw/datapool/PoolDataSetBase.h diff --git a/inc/fsfw/datapool/PoolDataSetIF.h b/src/fsfw/datapool/PoolDataSetIF.h similarity index 100% rename from inc/fsfw/datapool/PoolDataSetIF.h rename to src/fsfw/datapool/PoolDataSetIF.h diff --git a/src/core/datapool/PoolEntry.cpp b/src/fsfw/datapool/PoolEntry.cpp similarity index 100% rename from src/core/datapool/PoolEntry.cpp rename to src/fsfw/datapool/PoolEntry.cpp diff --git a/inc/fsfw/datapool/PoolEntry.h b/src/fsfw/datapool/PoolEntry.h similarity index 100% rename from inc/fsfw/datapool/PoolEntry.h rename to src/fsfw/datapool/PoolEntry.h diff --git a/inc/fsfw/datapool/PoolEntryIF.h b/src/fsfw/datapool/PoolEntryIF.h similarity index 100% rename from inc/fsfw/datapool/PoolEntryIF.h rename to src/fsfw/datapool/PoolEntryIF.h diff --git a/inc/fsfw/datapool/PoolReadGuard.h b/src/fsfw/datapool/PoolReadGuard.h similarity index 100% rename from inc/fsfw/datapool/PoolReadGuard.h rename to src/fsfw/datapool/PoolReadGuard.h diff --git a/inc/fsfw/datapool/PoolVarList.h b/src/fsfw/datapool/PoolVarList.h similarity index 100% rename from inc/fsfw/datapool/PoolVarList.h rename to src/fsfw/datapool/PoolVarList.h diff --git a/inc/fsfw/datapool/PoolVariableIF.h b/src/fsfw/datapool/PoolVariableIF.h similarity index 100% rename from inc/fsfw/datapool/PoolVariableIF.h rename to src/fsfw/datapool/PoolVariableIF.h diff --git a/inc/fsfw/datapool/ReadCommitIF.h b/src/fsfw/datapool/ReadCommitIF.h similarity index 100% rename from inc/fsfw/datapool/ReadCommitIF.h rename to src/fsfw/datapool/ReadCommitIF.h diff --git a/inc/fsfw/datapool/ReadCommitIFAttorney.h b/src/fsfw/datapool/ReadCommitIFAttorney.h similarity index 100% rename from inc/fsfw/datapool/ReadCommitIFAttorney.h rename to src/fsfw/datapool/ReadCommitIFAttorney.h diff --git a/inc/fsfw/datapool/SharedDataSetIF.h b/src/fsfw/datapool/SharedDataSetIF.h similarity index 100% rename from inc/fsfw/datapool/SharedDataSetIF.h rename to src/fsfw/datapool/SharedDataSetIF.h diff --git a/src/fsfw/datapoollocal.h b/src/fsfw/datapoollocal.h new file mode 100644 index 000000000..7a3c4c20a --- /dev/null +++ b/src/fsfw/datapoollocal.h @@ -0,0 +1,11 @@ +#ifndef FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ +#define FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ + +/* Collected related headers */ +#include "fsfw/datapoollocal/LocalPoolVariable.h" +#include "fsfw/datapoollocal/LocalPoolVector.h" +#include "fsfw/datapoollocal/StaticLocalDataSet.h" +#include "fsfw/datapoollocal/LocalDataSet.h" +#include "fsfw/datapoollocal/SharedLocalDataSet.h" + +#endif /* FSFW_DATAPOOLLOCAL_DATAPOOLLOCAL_H_ */ diff --git a/inc/fsfw/datapoollocal/AccessLocalPoolF.h b/src/fsfw/datapoollocal/AccessLocalPoolF.h similarity index 100% rename from inc/fsfw/datapoollocal/AccessLocalPoolF.h rename to src/fsfw/datapoollocal/AccessLocalPoolF.h diff --git a/src/core/datapoollocal/CMakeLists.txt b/src/fsfw/datapoollocal/CMakeLists.txt similarity index 100% rename from src/core/datapoollocal/CMakeLists.txt rename to src/fsfw/datapoollocal/CMakeLists.txt diff --git a/inc/fsfw/datapoollocal/HasLocalDataPoolIF.h b/src/fsfw/datapoollocal/HasLocalDataPoolIF.h similarity index 100% rename from inc/fsfw/datapoollocal/HasLocalDataPoolIF.h rename to src/fsfw/datapoollocal/HasLocalDataPoolIF.h diff --git a/src/core/datapoollocal/LocalDataPoolManager.cpp b/src/fsfw/datapoollocal/LocalDataPoolManager.cpp similarity index 100% rename from src/core/datapoollocal/LocalDataPoolManager.cpp rename to src/fsfw/datapoollocal/LocalDataPoolManager.cpp diff --git a/inc/fsfw/datapoollocal/LocalDataPoolManager.h b/src/fsfw/datapoollocal/LocalDataPoolManager.h similarity index 100% rename from inc/fsfw/datapoollocal/LocalDataPoolManager.h rename to src/fsfw/datapoollocal/LocalDataPoolManager.h diff --git a/src/core/datapoollocal/LocalDataSet.cpp b/src/fsfw/datapoollocal/LocalDataSet.cpp similarity index 100% rename from src/core/datapoollocal/LocalDataSet.cpp rename to src/fsfw/datapoollocal/LocalDataSet.cpp diff --git a/inc/fsfw/datapoollocal/LocalDataSet.h b/src/fsfw/datapoollocal/LocalDataSet.h similarity index 100% rename from inc/fsfw/datapoollocal/LocalDataSet.h rename to src/fsfw/datapoollocal/LocalDataSet.h diff --git a/src/core/datapoollocal/LocalPoolDataSetBase.cpp b/src/fsfw/datapoollocal/LocalPoolDataSetBase.cpp similarity index 100% rename from src/core/datapoollocal/LocalPoolDataSetBase.cpp rename to src/fsfw/datapoollocal/LocalPoolDataSetBase.cpp diff --git a/inc/fsfw/datapoollocal/LocalPoolDataSetBase.h b/src/fsfw/datapoollocal/LocalPoolDataSetBase.h similarity index 100% rename from inc/fsfw/datapoollocal/LocalPoolDataSetBase.h rename to src/fsfw/datapoollocal/LocalPoolDataSetBase.h diff --git a/src/core/datapoollocal/LocalPoolObjectBase.cpp b/src/fsfw/datapoollocal/LocalPoolObjectBase.cpp similarity index 100% rename from src/core/datapoollocal/LocalPoolObjectBase.cpp rename to src/fsfw/datapoollocal/LocalPoolObjectBase.cpp diff --git a/inc/fsfw/datapoollocal/LocalPoolObjectBase.h b/src/fsfw/datapoollocal/LocalPoolObjectBase.h similarity index 100% rename from inc/fsfw/datapoollocal/LocalPoolObjectBase.h rename to src/fsfw/datapoollocal/LocalPoolObjectBase.h diff --git a/inc/fsfw/datapoollocal/LocalPoolVariable.h b/src/fsfw/datapoollocal/LocalPoolVariable.h similarity index 100% rename from inc/fsfw/datapoollocal/LocalPoolVariable.h rename to src/fsfw/datapoollocal/LocalPoolVariable.h diff --git a/inc/fsfw/datapoollocal/LocalPoolVariable.tpp b/src/fsfw/datapoollocal/LocalPoolVariable.tpp similarity index 100% rename from inc/fsfw/datapoollocal/LocalPoolVariable.tpp rename to src/fsfw/datapoollocal/LocalPoolVariable.tpp diff --git a/inc/fsfw/datapoollocal/LocalPoolVector.h b/src/fsfw/datapoollocal/LocalPoolVector.h similarity index 100% rename from inc/fsfw/datapoollocal/LocalPoolVector.h rename to src/fsfw/datapoollocal/LocalPoolVector.h diff --git a/inc/fsfw/datapoollocal/LocalPoolVector.tpp b/src/fsfw/datapoollocal/LocalPoolVector.tpp similarity index 100% rename from inc/fsfw/datapoollocal/LocalPoolVector.tpp rename to src/fsfw/datapoollocal/LocalPoolVector.tpp diff --git a/inc/fsfw/datapoollocal/MarkChangedIF.h b/src/fsfw/datapoollocal/MarkChangedIF.h similarity index 100% rename from inc/fsfw/datapoollocal/MarkChangedIF.h rename to src/fsfw/datapoollocal/MarkChangedIF.h diff --git a/inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h b/src/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h similarity index 100% rename from inc/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h rename to src/fsfw/datapoollocal/ProvidesDataPoolSubscriptionIF.h diff --git a/src/core/datapoollocal/SharedLocalDataSet.cpp b/src/fsfw/datapoollocal/SharedLocalDataSet.cpp similarity index 100% rename from src/core/datapoollocal/SharedLocalDataSet.cpp rename to src/fsfw/datapoollocal/SharedLocalDataSet.cpp diff --git a/inc/fsfw/datapoollocal/SharedLocalDataSet.h b/src/fsfw/datapoollocal/SharedLocalDataSet.h similarity index 100% rename from inc/fsfw/datapoollocal/SharedLocalDataSet.h rename to src/fsfw/datapoollocal/SharedLocalDataSet.h diff --git a/inc/fsfw/datapoollocal/StaticLocalDataSet.h b/src/fsfw/datapoollocal/StaticLocalDataSet.h similarity index 100% rename from inc/fsfw/datapoollocal/StaticLocalDataSet.h rename to src/fsfw/datapoollocal/StaticLocalDataSet.h diff --git a/src/core/datapoollocal/internal/CMakeLists.txt b/src/fsfw/datapoollocal/internal/CMakeLists.txt similarity index 100% rename from src/core/datapoollocal/internal/CMakeLists.txt rename to src/fsfw/datapoollocal/internal/CMakeLists.txt diff --git a/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp b/src/fsfw/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp similarity index 100% rename from src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp rename to src/fsfw/datapoollocal/internal/HasLocalDpIFManagerAttorney.cpp diff --git a/src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h b/src/fsfw/datapoollocal/internal/HasLocalDpIFManagerAttorney.h similarity index 100% rename from src/core/datapoollocal/internal/HasLocalDpIFManagerAttorney.h rename to src/fsfw/datapoollocal/internal/HasLocalDpIFManagerAttorney.h diff --git a/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp b/src/fsfw/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp similarity index 100% rename from src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp rename to src/fsfw/datapoollocal/internal/HasLocalDpIFUserAttorney.cpp diff --git a/src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.h b/src/fsfw/datapoollocal/internal/HasLocalDpIFUserAttorney.h similarity index 100% rename from src/core/datapoollocal/internal/HasLocalDpIFUserAttorney.h rename to src/fsfw/datapoollocal/internal/HasLocalDpIFUserAttorney.h diff --git a/inc/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h b/src/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h similarity index 100% rename from inc/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h rename to src/fsfw/datapoollocal/internal/LocalDpManagerAttorney.h diff --git a/src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h b/src/fsfw/datapoollocal/internal/LocalPoolDataSetAttorney.h similarity index 100% rename from src/core/datapoollocal/internal/LocalPoolDataSetAttorney.h rename to src/fsfw/datapoollocal/internal/LocalPoolDataSetAttorney.h diff --git a/inc/fsfw/datapoollocal/localPoolDefinitions.h b/src/fsfw/datapoollocal/localPoolDefinitions.h similarity index 100% rename from inc/fsfw/datapoollocal/localPoolDefinitions.h rename to src/fsfw/datapoollocal/localPoolDefinitions.h diff --git a/inc/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h b/src/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h similarity index 100% rename from inc/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h rename to src/fsfw/devicehandlers/AcceptsDeviceResponsesIF.h diff --git a/src/core/devicehandlers/AssemblyBase.cpp b/src/fsfw/devicehandlers/AssemblyBase.cpp similarity index 100% rename from src/core/devicehandlers/AssemblyBase.cpp rename to src/fsfw/devicehandlers/AssemblyBase.cpp diff --git a/inc/fsfw/devicehandlers/AssemblyBase.h b/src/fsfw/devicehandlers/AssemblyBase.h similarity index 100% rename from inc/fsfw/devicehandlers/AssemblyBase.h rename to src/fsfw/devicehandlers/AssemblyBase.h diff --git a/inc/fsfw/devicehandlers/CMakeLists.txt b/src/fsfw/devicehandlers/CMakeLists.txt similarity index 100% rename from inc/fsfw/devicehandlers/CMakeLists.txt rename to src/fsfw/devicehandlers/CMakeLists.txt diff --git a/src/core/devicehandlers/ChildHandlerBase.cpp b/src/fsfw/devicehandlers/ChildHandlerBase.cpp similarity index 100% rename from src/core/devicehandlers/ChildHandlerBase.cpp rename to src/fsfw/devicehandlers/ChildHandlerBase.cpp diff --git a/inc/fsfw/devicehandlers/ChildHandlerBase.h b/src/fsfw/devicehandlers/ChildHandlerBase.h similarity index 100% rename from inc/fsfw/devicehandlers/ChildHandlerBase.h rename to src/fsfw/devicehandlers/ChildHandlerBase.h diff --git a/src/core/devicehandlers/ChildHandlerFDIR.cpp b/src/fsfw/devicehandlers/ChildHandlerFDIR.cpp similarity index 100% rename from src/core/devicehandlers/ChildHandlerFDIR.cpp rename to src/fsfw/devicehandlers/ChildHandlerFDIR.cpp diff --git a/inc/fsfw/devicehandlers/ChildHandlerFDIR.h b/src/fsfw/devicehandlers/ChildHandlerFDIR.h similarity index 100% rename from inc/fsfw/devicehandlers/ChildHandlerFDIR.h rename to src/fsfw/devicehandlers/ChildHandlerFDIR.h diff --git a/inc/fsfw/devicehandlers/CookieIF.h b/src/fsfw/devicehandlers/CookieIF.h similarity index 100% rename from inc/fsfw/devicehandlers/CookieIF.h rename to src/fsfw/devicehandlers/CookieIF.h diff --git a/inc/fsfw/devicehandlers/DeviceCommunicationIF.h b/src/fsfw/devicehandlers/DeviceCommunicationIF.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceCommunicationIF.h rename to src/fsfw/devicehandlers/DeviceCommunicationIF.h diff --git a/src/core/devicehandlers/DeviceHandlerBase.cpp b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp similarity index 100% rename from src/core/devicehandlers/DeviceHandlerBase.cpp rename to src/fsfw/devicehandlers/DeviceHandlerBase.cpp diff --git a/inc/fsfw/devicehandlers/DeviceHandlerBase.h b/src/fsfw/devicehandlers/DeviceHandlerBase.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceHandlerBase.h rename to src/fsfw/devicehandlers/DeviceHandlerBase.h diff --git a/src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp b/src/fsfw/devicehandlers/DeviceHandlerFailureIsolation.cpp similarity index 100% rename from src/core/devicehandlers/DeviceHandlerFailureIsolation.cpp rename to src/fsfw/devicehandlers/DeviceHandlerFailureIsolation.cpp diff --git a/inc/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h b/src/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h rename to src/fsfw/devicehandlers/DeviceHandlerFailureIsolation.h diff --git a/inc/fsfw/devicehandlers/DeviceHandlerIF.h b/src/fsfw/devicehandlers/DeviceHandlerIF.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceHandlerIF.h rename to src/fsfw/devicehandlers/DeviceHandlerIF.h diff --git a/src/core/devicehandlers/DeviceHandlerMessage.cpp b/src/fsfw/devicehandlers/DeviceHandlerMessage.cpp similarity index 100% rename from src/core/devicehandlers/DeviceHandlerMessage.cpp rename to src/fsfw/devicehandlers/DeviceHandlerMessage.cpp diff --git a/inc/fsfw/devicehandlers/DeviceHandlerMessage.h b/src/fsfw/devicehandlers/DeviceHandlerMessage.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceHandlerMessage.h rename to src/fsfw/devicehandlers/DeviceHandlerMessage.h diff --git a/inc/fsfw/devicehandlers/DeviceHandlerThermalSet.h b/src/fsfw/devicehandlers/DeviceHandlerThermalSet.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceHandlerThermalSet.h rename to src/fsfw/devicehandlers/DeviceHandlerThermalSet.h diff --git a/src/core/devicehandlers/DeviceTmReportingWrapper.cpp b/src/fsfw/devicehandlers/DeviceTmReportingWrapper.cpp similarity index 100% rename from src/core/devicehandlers/DeviceTmReportingWrapper.cpp rename to src/fsfw/devicehandlers/DeviceTmReportingWrapper.cpp diff --git a/inc/fsfw/devicehandlers/DeviceTmReportingWrapper.h b/src/fsfw/devicehandlers/DeviceTmReportingWrapper.h similarity index 100% rename from inc/fsfw/devicehandlers/DeviceTmReportingWrapper.h rename to src/fsfw/devicehandlers/DeviceTmReportingWrapper.h diff --git a/src/core/devicehandlers/HealthDevice.cpp b/src/fsfw/devicehandlers/HealthDevice.cpp similarity index 100% rename from src/core/devicehandlers/HealthDevice.cpp rename to src/fsfw/devicehandlers/HealthDevice.cpp diff --git a/inc/fsfw/devicehandlers/HealthDevice.h b/src/fsfw/devicehandlers/HealthDevice.h similarity index 100% rename from inc/fsfw/devicehandlers/HealthDevice.h rename to src/fsfw/devicehandlers/HealthDevice.h diff --git a/src/core/events/CMakeLists.txt b/src/fsfw/events/CMakeLists.txt similarity index 100% rename from src/core/events/CMakeLists.txt rename to src/fsfw/events/CMakeLists.txt diff --git a/inc/fsfw/events/Event.h b/src/fsfw/events/Event.h similarity index 100% rename from inc/fsfw/events/Event.h rename to src/fsfw/events/Event.h diff --git a/src/core/events/EventManager.cpp b/src/fsfw/events/EventManager.cpp similarity index 100% rename from src/core/events/EventManager.cpp rename to src/fsfw/events/EventManager.cpp diff --git a/inc/fsfw/events/EventManager.h b/src/fsfw/events/EventManager.h similarity index 100% rename from inc/fsfw/events/EventManager.h rename to src/fsfw/events/EventManager.h diff --git a/inc/fsfw/events/EventManagerIF.h b/src/fsfw/events/EventManagerIF.h similarity index 100% rename from inc/fsfw/events/EventManagerIF.h rename to src/fsfw/events/EventManagerIF.h diff --git a/src/core/events/EventMessage.cpp b/src/fsfw/events/EventMessage.cpp similarity index 100% rename from src/core/events/EventMessage.cpp rename to src/fsfw/events/EventMessage.cpp diff --git a/inc/fsfw/events/EventMessage.h b/src/fsfw/events/EventMessage.h similarity index 100% rename from inc/fsfw/events/EventMessage.h rename to src/fsfw/events/EventMessage.h diff --git a/inc/fsfw/events/EventReportingProxyIF.h b/src/fsfw/events/EventReportingProxyIF.h similarity index 100% rename from inc/fsfw/events/EventReportingProxyIF.h rename to src/fsfw/events/EventReportingProxyIF.h diff --git a/src/core/events/eventmatching/CMakeLists.txt b/src/fsfw/events/eventmatching/CMakeLists.txt similarity index 100% rename from src/core/events/eventmatching/CMakeLists.txt rename to src/fsfw/events/eventmatching/CMakeLists.txt diff --git a/src/core/events/eventmatching/EventIdRangeMatcher.cpp b/src/fsfw/events/eventmatching/EventIdRangeMatcher.cpp similarity index 100% rename from src/core/events/eventmatching/EventIdRangeMatcher.cpp rename to src/fsfw/events/eventmatching/EventIdRangeMatcher.cpp diff --git a/inc/fsfw/events/eventmatching/EventIdRangeMatcher.h b/src/fsfw/events/eventmatching/EventIdRangeMatcher.h similarity index 100% rename from inc/fsfw/events/eventmatching/EventIdRangeMatcher.h rename to src/fsfw/events/eventmatching/EventIdRangeMatcher.h diff --git a/src/core/events/eventmatching/EventMatchTree.cpp b/src/fsfw/events/eventmatching/EventMatchTree.cpp similarity index 100% rename from src/core/events/eventmatching/EventMatchTree.cpp rename to src/fsfw/events/eventmatching/EventMatchTree.cpp diff --git a/inc/fsfw/events/eventmatching/EventMatchTree.h b/src/fsfw/events/eventmatching/EventMatchTree.h similarity index 100% rename from inc/fsfw/events/eventmatching/EventMatchTree.h rename to src/fsfw/events/eventmatching/EventMatchTree.h diff --git a/inc/fsfw/events/eventmatching/EventRangeMatcherBase.h b/src/fsfw/events/eventmatching/EventRangeMatcherBase.h similarity index 100% rename from inc/fsfw/events/eventmatching/EventRangeMatcherBase.h rename to src/fsfw/events/eventmatching/EventRangeMatcherBase.h diff --git a/src/core/events/eventmatching/ReporterRangeMatcher.cpp b/src/fsfw/events/eventmatching/ReporterRangeMatcher.cpp similarity index 100% rename from src/core/events/eventmatching/ReporterRangeMatcher.cpp rename to src/fsfw/events/eventmatching/ReporterRangeMatcher.cpp diff --git a/inc/fsfw/events/eventmatching/ReporterRangeMatcher.h b/src/fsfw/events/eventmatching/ReporterRangeMatcher.h similarity index 100% rename from inc/fsfw/events/eventmatching/ReporterRangeMatcher.h rename to src/fsfw/events/eventmatching/ReporterRangeMatcher.h diff --git a/src/core/events/eventmatching/SeverityRangeMatcher.cpp b/src/fsfw/events/eventmatching/SeverityRangeMatcher.cpp similarity index 100% rename from src/core/events/eventmatching/SeverityRangeMatcher.cpp rename to src/fsfw/events/eventmatching/SeverityRangeMatcher.cpp diff --git a/inc/fsfw/events/eventmatching/SeverityRangeMatcher.h b/src/fsfw/events/eventmatching/SeverityRangeMatcher.h similarity index 100% rename from inc/fsfw/events/eventmatching/SeverityRangeMatcher.h rename to src/fsfw/events/eventmatching/SeverityRangeMatcher.h diff --git a/inc/fsfw/events/eventmatching/eventmatching.h b/src/fsfw/events/eventmatching/eventmatching.h similarity index 100% rename from inc/fsfw/events/eventmatching/eventmatching.h rename to src/fsfw/events/eventmatching/eventmatching.h diff --git a/inc/fsfw/events/fwSubsystemIdRanges.h b/src/fsfw/events/fwSubsystemIdRanges.h similarity index 100% rename from inc/fsfw/events/fwSubsystemIdRanges.h rename to src/fsfw/events/fwSubsystemIdRanges.h diff --git a/src/core/fdir/CMakeLists.txt b/src/fsfw/fdir/CMakeLists.txt similarity index 100% rename from src/core/fdir/CMakeLists.txt rename to src/fsfw/fdir/CMakeLists.txt diff --git a/inc/fsfw/fdir/ConfirmsFailuresIF.h b/src/fsfw/fdir/ConfirmsFailuresIF.h similarity index 100% rename from inc/fsfw/fdir/ConfirmsFailuresIF.h rename to src/fsfw/fdir/ConfirmsFailuresIF.h diff --git a/src/core/fdir/EventCorrelation.cpp b/src/fsfw/fdir/EventCorrelation.cpp similarity index 100% rename from src/core/fdir/EventCorrelation.cpp rename to src/fsfw/fdir/EventCorrelation.cpp diff --git a/inc/fsfw/fdir/EventCorrelation.h b/src/fsfw/fdir/EventCorrelation.h similarity index 100% rename from inc/fsfw/fdir/EventCorrelation.h rename to src/fsfw/fdir/EventCorrelation.h diff --git a/src/core/fdir/FailureIsolationBase.cpp b/src/fsfw/fdir/FailureIsolationBase.cpp similarity index 100% rename from src/core/fdir/FailureIsolationBase.cpp rename to src/fsfw/fdir/FailureIsolationBase.cpp diff --git a/inc/fsfw/fdir/FailureIsolationBase.h b/src/fsfw/fdir/FailureIsolationBase.h similarity index 100% rename from inc/fsfw/fdir/FailureIsolationBase.h rename to src/fsfw/fdir/FailureIsolationBase.h diff --git a/src/core/fdir/FaultCounter.cpp b/src/fsfw/fdir/FaultCounter.cpp similarity index 100% rename from src/core/fdir/FaultCounter.cpp rename to src/fsfw/fdir/FaultCounter.cpp diff --git a/inc/fsfw/fdir/FaultCounter.h b/src/fsfw/fdir/FaultCounter.h similarity index 100% rename from inc/fsfw/fdir/FaultCounter.h rename to src/fsfw/fdir/FaultCounter.h diff --git a/src/core/globalfunctions/AsciiConverter.cpp b/src/fsfw/globalfunctions/AsciiConverter.cpp similarity index 100% rename from src/core/globalfunctions/AsciiConverter.cpp rename to src/fsfw/globalfunctions/AsciiConverter.cpp diff --git a/inc/fsfw/globalfunctions/AsciiConverter.h b/src/fsfw/globalfunctions/AsciiConverter.h similarity index 100% rename from inc/fsfw/globalfunctions/AsciiConverter.h rename to src/fsfw/globalfunctions/AsciiConverter.h diff --git a/src/core/globalfunctions/CMakeLists.txt b/src/fsfw/globalfunctions/CMakeLists.txt similarity index 100% rename from src/core/globalfunctions/CMakeLists.txt rename to src/fsfw/globalfunctions/CMakeLists.txt diff --git a/src/core/globalfunctions/CRC.cpp b/src/fsfw/globalfunctions/CRC.cpp similarity index 100% rename from src/core/globalfunctions/CRC.cpp rename to src/fsfw/globalfunctions/CRC.cpp diff --git a/inc/fsfw/globalfunctions/CRC.h b/src/fsfw/globalfunctions/CRC.h similarity index 100% rename from inc/fsfw/globalfunctions/CRC.h rename to src/fsfw/globalfunctions/CRC.h diff --git a/src/core/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp similarity index 100% rename from src/core/globalfunctions/DleEncoder.cpp rename to src/fsfw/globalfunctions/DleEncoder.cpp diff --git a/inc/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h similarity index 100% rename from inc/fsfw/globalfunctions/DleEncoder.h rename to src/fsfw/globalfunctions/DleEncoder.h diff --git a/src/core/globalfunctions/PeriodicOperationDivider.cpp b/src/fsfw/globalfunctions/PeriodicOperationDivider.cpp similarity index 100% rename from src/core/globalfunctions/PeriodicOperationDivider.cpp rename to src/fsfw/globalfunctions/PeriodicOperationDivider.cpp diff --git a/inc/fsfw/globalfunctions/PeriodicOperationDivider.h b/src/fsfw/globalfunctions/PeriodicOperationDivider.h similarity index 100% rename from inc/fsfw/globalfunctions/PeriodicOperationDivider.h rename to src/fsfw/globalfunctions/PeriodicOperationDivider.h diff --git a/src/core/globalfunctions/Type.cpp b/src/fsfw/globalfunctions/Type.cpp similarity index 100% rename from src/core/globalfunctions/Type.cpp rename to src/fsfw/globalfunctions/Type.cpp diff --git a/inc/fsfw/globalfunctions/Type.h b/src/fsfw/globalfunctions/Type.h similarity index 100% rename from inc/fsfw/globalfunctions/Type.h rename to src/fsfw/globalfunctions/Type.h diff --git a/src/core/globalfunctions/arrayprinter.cpp b/src/fsfw/globalfunctions/arrayprinter.cpp similarity index 100% rename from src/core/globalfunctions/arrayprinter.cpp rename to src/fsfw/globalfunctions/arrayprinter.cpp diff --git a/inc/fsfw/globalfunctions/arrayprinter.h b/src/fsfw/globalfunctions/arrayprinter.h similarity index 100% rename from inc/fsfw/globalfunctions/arrayprinter.h rename to src/fsfw/globalfunctions/arrayprinter.h diff --git a/src/core/globalfunctions/bitutility.cpp b/src/fsfw/globalfunctions/bitutility.cpp similarity index 100% rename from src/core/globalfunctions/bitutility.cpp rename to src/fsfw/globalfunctions/bitutility.cpp diff --git a/inc/fsfw/globalfunctions/bitutility.h b/src/fsfw/globalfunctions/bitutility.h similarity index 100% rename from inc/fsfw/globalfunctions/bitutility.h rename to src/fsfw/globalfunctions/bitutility.h diff --git a/inc/fsfw/globalfunctions/constants.h b/src/fsfw/globalfunctions/constants.h similarity index 100% rename from inc/fsfw/globalfunctions/constants.h rename to src/fsfw/globalfunctions/constants.h diff --git a/inc/fsfw/globalfunctions/matching/BinaryMatcher.h b/src/fsfw/globalfunctions/matching/BinaryMatcher.h similarity index 100% rename from inc/fsfw/globalfunctions/matching/BinaryMatcher.h rename to src/fsfw/globalfunctions/matching/BinaryMatcher.h diff --git a/inc/fsfw/globalfunctions/matching/DecimalMatcher.h b/src/fsfw/globalfunctions/matching/DecimalMatcher.h similarity index 100% rename from inc/fsfw/globalfunctions/matching/DecimalMatcher.h rename to src/fsfw/globalfunctions/matching/DecimalMatcher.h diff --git a/inc/fsfw/globalfunctions/matching/MatchTree.h b/src/fsfw/globalfunctions/matching/MatchTree.h similarity index 100% rename from inc/fsfw/globalfunctions/matching/MatchTree.h rename to src/fsfw/globalfunctions/matching/MatchTree.h diff --git a/inc/fsfw/globalfunctions/matching/MatcherIF.h b/src/fsfw/globalfunctions/matching/MatcherIF.h similarity index 100% rename from inc/fsfw/globalfunctions/matching/MatcherIF.h rename to src/fsfw/globalfunctions/matching/MatcherIF.h diff --git a/inc/fsfw/globalfunctions/matching/RangeMatcher.h b/src/fsfw/globalfunctions/matching/RangeMatcher.h similarity index 100% rename from inc/fsfw/globalfunctions/matching/RangeMatcher.h rename to src/fsfw/globalfunctions/matching/RangeMatcher.h diff --git a/inc/fsfw/globalfunctions/matching/SerializeableMatcherIF.h b/src/fsfw/globalfunctions/matching/SerializeableMatcherIF.h similarity index 100% rename from inc/fsfw/globalfunctions/matching/SerializeableMatcherIF.h rename to src/fsfw/globalfunctions/matching/SerializeableMatcherIF.h diff --git a/src/core/globalfunctions/math/CMakeLists.txt b/src/fsfw/globalfunctions/math/CMakeLists.txt similarity index 100% rename from src/core/globalfunctions/math/CMakeLists.txt rename to src/fsfw/globalfunctions/math/CMakeLists.txt diff --git a/inc/fsfw/globalfunctions/math/MatrixOperations.h b/src/fsfw/globalfunctions/math/MatrixOperations.h similarity index 100% rename from inc/fsfw/globalfunctions/math/MatrixOperations.h rename to src/fsfw/globalfunctions/math/MatrixOperations.h diff --git a/src/core/globalfunctions/math/QuaternionOperations.cpp b/src/fsfw/globalfunctions/math/QuaternionOperations.cpp similarity index 100% rename from src/core/globalfunctions/math/QuaternionOperations.cpp rename to src/fsfw/globalfunctions/math/QuaternionOperations.cpp diff --git a/inc/fsfw/globalfunctions/math/QuaternionOperations.h b/src/fsfw/globalfunctions/math/QuaternionOperations.h similarity index 100% rename from inc/fsfw/globalfunctions/math/QuaternionOperations.h rename to src/fsfw/globalfunctions/math/QuaternionOperations.h diff --git a/inc/fsfw/globalfunctions/math/VectorOperations.h b/src/fsfw/globalfunctions/math/VectorOperations.h similarity index 100% rename from inc/fsfw/globalfunctions/math/VectorOperations.h rename to src/fsfw/globalfunctions/math/VectorOperations.h diff --git a/inc/fsfw/globalfunctions/sign.h b/src/fsfw/globalfunctions/sign.h similarity index 100% rename from inc/fsfw/globalfunctions/sign.h rename to src/fsfw/globalfunctions/sign.h diff --git a/src/core/globalfunctions/timevalOperations.cpp b/src/fsfw/globalfunctions/timevalOperations.cpp similarity index 100% rename from src/core/globalfunctions/timevalOperations.cpp rename to src/fsfw/globalfunctions/timevalOperations.cpp diff --git a/inc/fsfw/globalfunctions/timevalOperations.h b/src/fsfw/globalfunctions/timevalOperations.h similarity index 100% rename from inc/fsfw/globalfunctions/timevalOperations.h rename to src/fsfw/globalfunctions/timevalOperations.h diff --git a/src/fsfw/health.h b/src/fsfw/health.h new file mode 100644 index 000000000..0b7c87933 --- /dev/null +++ b/src/fsfw/health.h @@ -0,0 +1,9 @@ +#ifndef FSFW_INC_FSFW_HEALTH_H_ +#define FSFW_INC_FSFW_HEALTH_H_ + +#include "src/core/health/HasHealthIF.h" +#include "src/core/health/HealthHelper.h" +#include "src/core/health/HealthMessage.h" +#include "src/core/health/HealthTable.h" + +#endif /* FSFW_INC_FSFW_HEALTH_H_ */ diff --git a/src/core/health/CMakeLists.txt b/src/fsfw/health/CMakeLists.txt similarity index 100% rename from src/core/health/CMakeLists.txt rename to src/fsfw/health/CMakeLists.txt diff --git a/inc/fsfw/health/HasHealthIF.h b/src/fsfw/health/HasHealthIF.h similarity index 100% rename from inc/fsfw/health/HasHealthIF.h rename to src/fsfw/health/HasHealthIF.h diff --git a/src/core/health/HealthHelper.cpp b/src/fsfw/health/HealthHelper.cpp similarity index 100% rename from src/core/health/HealthHelper.cpp rename to src/fsfw/health/HealthHelper.cpp diff --git a/inc/fsfw/health/HealthHelper.h b/src/fsfw/health/HealthHelper.h similarity index 100% rename from inc/fsfw/health/HealthHelper.h rename to src/fsfw/health/HealthHelper.h diff --git a/src/core/health/HealthMessage.cpp b/src/fsfw/health/HealthMessage.cpp similarity index 100% rename from src/core/health/HealthMessage.cpp rename to src/fsfw/health/HealthMessage.cpp diff --git a/inc/fsfw/health/HealthMessage.h b/src/fsfw/health/HealthMessage.h similarity index 100% rename from inc/fsfw/health/HealthMessage.h rename to src/fsfw/health/HealthMessage.h diff --git a/src/core/health/HealthTable.cpp b/src/fsfw/health/HealthTable.cpp similarity index 100% rename from src/core/health/HealthTable.cpp rename to src/fsfw/health/HealthTable.cpp diff --git a/inc/fsfw/health/HealthTable.h b/src/fsfw/health/HealthTable.h similarity index 100% rename from inc/fsfw/health/HealthTable.h rename to src/fsfw/health/HealthTable.h diff --git a/inc/fsfw/health/HealthTableIF.h b/src/fsfw/health/HealthTableIF.h similarity index 100% rename from inc/fsfw/health/HealthTableIF.h rename to src/fsfw/health/HealthTableIF.h diff --git a/inc/fsfw/health/ManagesHealthIF.h b/src/fsfw/health/ManagesHealthIF.h similarity index 100% rename from inc/fsfw/health/ManagesHealthIF.h rename to src/fsfw/health/ManagesHealthIF.h diff --git a/src/fsfw/housekeeping.h b/src/fsfw/housekeeping.h new file mode 100644 index 000000000..0627d523d --- /dev/null +++ b/src/fsfw/housekeeping.h @@ -0,0 +1,9 @@ +#ifndef FSFW_INC_FSFW_HOUSEKEEPING_H_ +#define FSFW_INC_FSFW_HOUSEKEEPING_H_ + +#include "src/core/housekeeping/HousekeepingMessage.h" +#include "src/core/housekeeping/HousekeepingPacketDownlink.h" +#include "src/core/housekeeping/HousekeepingSetPacket.h" +#include "src/core/housekeeping/HousekeepingSnapshot.h" + +#endif /* FSFW_INC_FSFW_HOUSEKEEPING_H_ */ diff --git a/inc/fsfw/housekeeping/AcceptsHkPacketsIF.h b/src/fsfw/housekeeping/AcceptsHkPacketsIF.h similarity index 100% rename from inc/fsfw/housekeeping/AcceptsHkPacketsIF.h rename to src/fsfw/housekeeping/AcceptsHkPacketsIF.h diff --git a/inc/fsfw/housekeeping/CMakeLists.txt b/src/fsfw/housekeeping/CMakeLists.txt similarity index 100% rename from inc/fsfw/housekeeping/CMakeLists.txt rename to src/fsfw/housekeeping/CMakeLists.txt diff --git a/src/core/housekeeping/HousekeepingMessage.cpp b/src/fsfw/housekeeping/HousekeepingMessage.cpp similarity index 100% rename from src/core/housekeeping/HousekeepingMessage.cpp rename to src/fsfw/housekeeping/HousekeepingMessage.cpp diff --git a/inc/fsfw/housekeeping/HousekeepingMessage.h b/src/fsfw/housekeeping/HousekeepingMessage.h similarity index 100% rename from inc/fsfw/housekeeping/HousekeepingMessage.h rename to src/fsfw/housekeeping/HousekeepingMessage.h diff --git a/inc/fsfw/housekeeping/HousekeepingPacketDownlink.h b/src/fsfw/housekeeping/HousekeepingPacketDownlink.h similarity index 100% rename from inc/fsfw/housekeeping/HousekeepingPacketDownlink.h rename to src/fsfw/housekeeping/HousekeepingPacketDownlink.h diff --git a/inc/fsfw/housekeeping/HousekeepingSetPacket.h b/src/fsfw/housekeeping/HousekeepingSetPacket.h similarity index 100% rename from inc/fsfw/housekeeping/HousekeepingSetPacket.h rename to src/fsfw/housekeeping/HousekeepingSetPacket.h diff --git a/inc/fsfw/housekeeping/HousekeepingSnapshot.h b/src/fsfw/housekeeping/HousekeepingSnapshot.h similarity index 100% rename from inc/fsfw/housekeeping/HousekeepingSnapshot.h rename to src/fsfw/housekeeping/HousekeepingSnapshot.h diff --git a/src/core/housekeeping/PeriodicHousekeepingHelper.cpp b/src/fsfw/housekeeping/PeriodicHousekeepingHelper.cpp similarity index 100% rename from src/core/housekeeping/PeriodicHousekeepingHelper.cpp rename to src/fsfw/housekeeping/PeriodicHousekeepingHelper.cpp diff --git a/inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h b/src/fsfw/housekeeping/PeriodicHousekeepingHelper.h similarity index 100% rename from inc/fsfw/housekeeping/PeriodicHousekeepingHelper.h rename to src/fsfw/housekeeping/PeriodicHousekeepingHelper.h diff --git a/src/core/internalerror/CMakeLists.txt b/src/fsfw/internalerror/CMakeLists.txt similarity index 100% rename from src/core/internalerror/CMakeLists.txt rename to src/fsfw/internalerror/CMakeLists.txt diff --git a/inc/fsfw/internalerror/InternalErrorDataset.h b/src/fsfw/internalerror/InternalErrorDataset.h similarity index 100% rename from inc/fsfw/internalerror/InternalErrorDataset.h rename to src/fsfw/internalerror/InternalErrorDataset.h diff --git a/src/core/internalerror/InternalErrorReporter.cpp b/src/fsfw/internalerror/InternalErrorReporter.cpp similarity index 100% rename from src/core/internalerror/InternalErrorReporter.cpp rename to src/fsfw/internalerror/InternalErrorReporter.cpp diff --git a/inc/fsfw/internalerror/InternalErrorReporter.h b/src/fsfw/internalerror/InternalErrorReporter.h similarity index 100% rename from inc/fsfw/internalerror/InternalErrorReporter.h rename to src/fsfw/internalerror/InternalErrorReporter.h diff --git a/inc/fsfw/internalerror/InternalErrorReporterIF.h b/src/fsfw/internalerror/InternalErrorReporterIF.h similarity index 100% rename from inc/fsfw/internalerror/InternalErrorReporterIF.h rename to src/fsfw/internalerror/InternalErrorReporterIF.h diff --git a/src/core/ipc/CMakeLists.txt b/src/fsfw/ipc/CMakeLists.txt similarity index 100% rename from src/core/ipc/CMakeLists.txt rename to src/fsfw/ipc/CMakeLists.txt diff --git a/src/core/ipc/CommandMessage.cpp b/src/fsfw/ipc/CommandMessage.cpp similarity index 100% rename from src/core/ipc/CommandMessage.cpp rename to src/fsfw/ipc/CommandMessage.cpp diff --git a/inc/fsfw/ipc/CommandMessage.h b/src/fsfw/ipc/CommandMessage.h similarity index 100% rename from inc/fsfw/ipc/CommandMessage.h rename to src/fsfw/ipc/CommandMessage.h diff --git a/src/core/ipc/CommandMessageCleaner.cpp b/src/fsfw/ipc/CommandMessageCleaner.cpp similarity index 100% rename from src/core/ipc/CommandMessageCleaner.cpp rename to src/fsfw/ipc/CommandMessageCleaner.cpp diff --git a/inc/fsfw/ipc/CommandMessageCleaner.h b/src/fsfw/ipc/CommandMessageCleaner.h similarity index 100% rename from inc/fsfw/ipc/CommandMessageCleaner.h rename to src/fsfw/ipc/CommandMessageCleaner.h diff --git a/inc/fsfw/ipc/CommandMessageIF.h b/src/fsfw/ipc/CommandMessageIF.h similarity index 100% rename from inc/fsfw/ipc/CommandMessageIF.h rename to src/fsfw/ipc/CommandMessageIF.h diff --git a/inc/fsfw/ipc/FwMessageTypes.h b/src/fsfw/ipc/FwMessageTypes.h similarity index 100% rename from inc/fsfw/ipc/FwMessageTypes.h rename to src/fsfw/ipc/FwMessageTypes.h diff --git a/inc/fsfw/ipc/MessageQueueIF.h b/src/fsfw/ipc/MessageQueueIF.h similarity index 100% rename from inc/fsfw/ipc/MessageQueueIF.h rename to src/fsfw/ipc/MessageQueueIF.h diff --git a/src/core/ipc/MessageQueueMessage.cpp b/src/fsfw/ipc/MessageQueueMessage.cpp similarity index 100% rename from src/core/ipc/MessageQueueMessage.cpp rename to src/fsfw/ipc/MessageQueueMessage.cpp diff --git a/inc/fsfw/ipc/MessageQueueMessage.h b/src/fsfw/ipc/MessageQueueMessage.h similarity index 100% rename from inc/fsfw/ipc/MessageQueueMessage.h rename to src/fsfw/ipc/MessageQueueMessage.h diff --git a/inc/fsfw/ipc/MessageQueueMessageIF.h b/src/fsfw/ipc/MessageQueueMessageIF.h similarity index 100% rename from inc/fsfw/ipc/MessageQueueMessageIF.h rename to src/fsfw/ipc/MessageQueueMessageIF.h diff --git a/inc/fsfw/ipc/MessageQueueSenderIF.h b/src/fsfw/ipc/MessageQueueSenderIF.h similarity index 100% rename from inc/fsfw/ipc/MessageQueueSenderIF.h rename to src/fsfw/ipc/MessageQueueSenderIF.h diff --git a/inc/fsfw/ipc/MutexFactory.h b/src/fsfw/ipc/MutexFactory.h similarity index 100% rename from inc/fsfw/ipc/MutexFactory.h rename to src/fsfw/ipc/MutexFactory.h diff --git a/inc/fsfw/ipc/MutexGuard.h b/src/fsfw/ipc/MutexGuard.h similarity index 100% rename from inc/fsfw/ipc/MutexGuard.h rename to src/fsfw/ipc/MutexGuard.h diff --git a/inc/fsfw/ipc/MutexIF.h b/src/fsfw/ipc/MutexIF.h similarity index 100% rename from inc/fsfw/ipc/MutexIF.h rename to src/fsfw/ipc/MutexIF.h diff --git a/inc/fsfw/ipc/QueueFactory.h b/src/fsfw/ipc/QueueFactory.h similarity index 100% rename from inc/fsfw/ipc/QueueFactory.h rename to src/fsfw/ipc/QueueFactory.h diff --git a/inc/fsfw/ipc/messageQueueDefinitions.h b/src/fsfw/ipc/messageQueueDefinitions.h similarity index 100% rename from inc/fsfw/ipc/messageQueueDefinitions.h rename to src/fsfw/ipc/messageQueueDefinitions.h diff --git a/inc/fsfw/memory/AcceptsMemoryMessagesIF.h b/src/fsfw/memory/AcceptsMemoryMessagesIF.h similarity index 100% rename from inc/fsfw/memory/AcceptsMemoryMessagesIF.h rename to src/fsfw/memory/AcceptsMemoryMessagesIF.h diff --git a/src/core/memory/CMakeLists.txt b/src/fsfw/memory/CMakeLists.txt similarity index 100% rename from src/core/memory/CMakeLists.txt rename to src/fsfw/memory/CMakeLists.txt diff --git a/src/core/memory/GenericFileSystemMessage.cpp b/src/fsfw/memory/GenericFileSystemMessage.cpp similarity index 100% rename from src/core/memory/GenericFileSystemMessage.cpp rename to src/fsfw/memory/GenericFileSystemMessage.cpp diff --git a/inc/fsfw/memory/GenericFileSystemMessage.h b/src/fsfw/memory/GenericFileSystemMessage.h similarity index 100% rename from inc/fsfw/memory/GenericFileSystemMessage.h rename to src/fsfw/memory/GenericFileSystemMessage.h diff --git a/inc/fsfw/memory/HasFileSystemIF.h b/src/fsfw/memory/HasFileSystemIF.h similarity index 100% rename from inc/fsfw/memory/HasFileSystemIF.h rename to src/fsfw/memory/HasFileSystemIF.h diff --git a/inc/fsfw/memory/HasMemoryIF.h b/src/fsfw/memory/HasMemoryIF.h similarity index 100% rename from inc/fsfw/memory/HasMemoryIF.h rename to src/fsfw/memory/HasMemoryIF.h diff --git a/src/core/memory/MemoryHelper.cpp b/src/fsfw/memory/MemoryHelper.cpp similarity index 100% rename from src/core/memory/MemoryHelper.cpp rename to src/fsfw/memory/MemoryHelper.cpp diff --git a/inc/fsfw/memory/MemoryHelper.h b/src/fsfw/memory/MemoryHelper.h similarity index 100% rename from inc/fsfw/memory/MemoryHelper.h rename to src/fsfw/memory/MemoryHelper.h diff --git a/src/core/memory/MemoryMessage.cpp b/src/fsfw/memory/MemoryMessage.cpp similarity index 100% rename from src/core/memory/MemoryMessage.cpp rename to src/fsfw/memory/MemoryMessage.cpp diff --git a/inc/fsfw/memory/MemoryMessage.h b/src/fsfw/memory/MemoryMessage.h similarity index 100% rename from inc/fsfw/memory/MemoryMessage.h rename to src/fsfw/memory/MemoryMessage.h diff --git a/src/core/modes/CMakeLists.txt b/src/fsfw/modes/CMakeLists.txt similarity index 100% rename from src/core/modes/CMakeLists.txt rename to src/fsfw/modes/CMakeLists.txt diff --git a/inc/fsfw/modes/HasModesIF.h b/src/fsfw/modes/HasModesIF.h similarity index 100% rename from inc/fsfw/modes/HasModesIF.h rename to src/fsfw/modes/HasModesIF.h diff --git a/src/core/modes/ModeHelper.cpp b/src/fsfw/modes/ModeHelper.cpp similarity index 100% rename from src/core/modes/ModeHelper.cpp rename to src/fsfw/modes/ModeHelper.cpp diff --git a/inc/fsfw/modes/ModeHelper.h b/src/fsfw/modes/ModeHelper.h similarity index 100% rename from inc/fsfw/modes/ModeHelper.h rename to src/fsfw/modes/ModeHelper.h diff --git a/src/core/modes/ModeMessage.cpp b/src/fsfw/modes/ModeMessage.cpp similarity index 100% rename from src/core/modes/ModeMessage.cpp rename to src/fsfw/modes/ModeMessage.cpp diff --git a/inc/fsfw/modes/ModeMessage.h b/src/fsfw/modes/ModeMessage.h similarity index 100% rename from inc/fsfw/modes/ModeMessage.h rename to src/fsfw/modes/ModeMessage.h diff --git a/inc/fsfw/monitoring/AbsLimitMonitor.h b/src/fsfw/monitoring/AbsLimitMonitor.h similarity index 100% rename from inc/fsfw/monitoring/AbsLimitMonitor.h rename to src/fsfw/monitoring/AbsLimitMonitor.h diff --git a/src/opt/monitoring/CMakeLists.txt b/src/fsfw/monitoring/CMakeLists.txt similarity index 100% rename from src/opt/monitoring/CMakeLists.txt rename to src/fsfw/monitoring/CMakeLists.txt diff --git a/inc/fsfw/monitoring/HasMonitorsIF.h b/src/fsfw/monitoring/HasMonitorsIF.h similarity index 100% rename from inc/fsfw/monitoring/HasMonitorsIF.h rename to src/fsfw/monitoring/HasMonitorsIF.h diff --git a/inc/fsfw/monitoring/LimitMonitor.h b/src/fsfw/monitoring/LimitMonitor.h similarity index 100% rename from inc/fsfw/monitoring/LimitMonitor.h rename to src/fsfw/monitoring/LimitMonitor.h diff --git a/src/opt/monitoring/LimitViolationReporter.cpp b/src/fsfw/monitoring/LimitViolationReporter.cpp similarity index 100% rename from src/opt/monitoring/LimitViolationReporter.cpp rename to src/fsfw/monitoring/LimitViolationReporter.cpp diff --git a/inc/fsfw/monitoring/LimitViolationReporter.h b/src/fsfw/monitoring/LimitViolationReporter.h similarity index 100% rename from inc/fsfw/monitoring/LimitViolationReporter.h rename to src/fsfw/monitoring/LimitViolationReporter.h diff --git a/inc/fsfw/monitoring/MonitorBase.h b/src/fsfw/monitoring/MonitorBase.h similarity index 100% rename from inc/fsfw/monitoring/MonitorBase.h rename to src/fsfw/monitoring/MonitorBase.h diff --git a/inc/fsfw/monitoring/MonitorReporter.h b/src/fsfw/monitoring/MonitorReporter.h similarity index 100% rename from inc/fsfw/monitoring/MonitorReporter.h rename to src/fsfw/monitoring/MonitorReporter.h diff --git a/inc/fsfw/monitoring/MonitoringIF.h b/src/fsfw/monitoring/MonitoringIF.h similarity index 100% rename from inc/fsfw/monitoring/MonitoringIF.h rename to src/fsfw/monitoring/MonitoringIF.h diff --git a/src/opt/monitoring/MonitoringMessage.cpp b/src/fsfw/monitoring/MonitoringMessage.cpp similarity index 100% rename from src/opt/monitoring/MonitoringMessage.cpp rename to src/fsfw/monitoring/MonitoringMessage.cpp diff --git a/inc/fsfw/monitoring/MonitoringMessage.h b/src/fsfw/monitoring/MonitoringMessage.h similarity index 100% rename from inc/fsfw/monitoring/MonitoringMessage.h rename to src/fsfw/monitoring/MonitoringMessage.h diff --git a/inc/fsfw/monitoring/MonitoringMessageContent.h b/src/fsfw/monitoring/MonitoringMessageContent.h similarity index 100% rename from inc/fsfw/monitoring/MonitoringMessageContent.h rename to src/fsfw/monitoring/MonitoringMessageContent.h diff --git a/inc/fsfw/monitoring/ReceivesMonitoringReportsIF.h b/src/fsfw/monitoring/ReceivesMonitoringReportsIF.h similarity index 100% rename from inc/fsfw/monitoring/ReceivesMonitoringReportsIF.h rename to src/fsfw/monitoring/ReceivesMonitoringReportsIF.h diff --git a/inc/fsfw/monitoring/TriplexMonitor.h b/src/fsfw/monitoring/TriplexMonitor.h similarity index 100% rename from inc/fsfw/monitoring/TriplexMonitor.h rename to src/fsfw/monitoring/TriplexMonitor.h diff --git a/inc/fsfw/monitoring/TwoValueLimitMonitor.h b/src/fsfw/monitoring/TwoValueLimitMonitor.h similarity index 100% rename from inc/fsfw/monitoring/TwoValueLimitMonitor.h rename to src/fsfw/monitoring/TwoValueLimitMonitor.h diff --git a/src/core/objectmanager/CMakeLists.txt b/src/fsfw/objectmanager/CMakeLists.txt similarity index 100% rename from src/core/objectmanager/CMakeLists.txt rename to src/fsfw/objectmanager/CMakeLists.txt diff --git a/src/core/objectmanager/ObjectManager.cpp b/src/fsfw/objectmanager/ObjectManager.cpp similarity index 100% rename from src/core/objectmanager/ObjectManager.cpp rename to src/fsfw/objectmanager/ObjectManager.cpp diff --git a/inc/fsfw/objectmanager/ObjectManager.h b/src/fsfw/objectmanager/ObjectManager.h similarity index 100% rename from inc/fsfw/objectmanager/ObjectManager.h rename to src/fsfw/objectmanager/ObjectManager.h diff --git a/inc/fsfw/objectmanager/ObjectManagerIF.h b/src/fsfw/objectmanager/ObjectManagerIF.h similarity index 100% rename from inc/fsfw/objectmanager/ObjectManagerIF.h rename to src/fsfw/objectmanager/ObjectManagerIF.h diff --git a/src/core/objectmanager/SystemObject.cpp b/src/fsfw/objectmanager/SystemObject.cpp similarity index 100% rename from src/core/objectmanager/SystemObject.cpp rename to src/fsfw/objectmanager/SystemObject.cpp diff --git a/inc/fsfw/objectmanager/SystemObject.h b/src/fsfw/objectmanager/SystemObject.h similarity index 100% rename from inc/fsfw/objectmanager/SystemObject.h rename to src/fsfw/objectmanager/SystemObject.h diff --git a/inc/fsfw/objectmanager/SystemObjectIF.h b/src/fsfw/objectmanager/SystemObjectIF.h similarity index 100% rename from inc/fsfw/objectmanager/SystemObjectIF.h rename to src/fsfw/objectmanager/SystemObjectIF.h diff --git a/inc/fsfw/objectmanager/frameworkObjects.h b/src/fsfw/objectmanager/frameworkObjects.h similarity index 100% rename from inc/fsfw/objectmanager/frameworkObjects.h rename to src/fsfw/objectmanager/frameworkObjects.h diff --git a/src/osal/CMakeLists.txt b/src/fsfw/osal/CMakeLists.txt similarity index 100% rename from src/osal/CMakeLists.txt rename to src/fsfw/osal/CMakeLists.txt diff --git a/inc/fsfw/osal/Endiness.h b/src/fsfw/osal/Endiness.h similarity index 100% rename from inc/fsfw/osal/Endiness.h rename to src/fsfw/osal/Endiness.h diff --git a/inc/fsfw/osal/InternalErrorCodes.h b/src/fsfw/osal/InternalErrorCodes.h similarity index 100% rename from inc/fsfw/osal/InternalErrorCodes.h rename to src/fsfw/osal/InternalErrorCodes.h diff --git a/src/osal/common/CMakeLists.txt b/src/fsfw/osal/common/CMakeLists.txt similarity index 100% rename from src/osal/common/CMakeLists.txt rename to src/fsfw/osal/common/CMakeLists.txt diff --git a/src/osal/common/TcpIpBase.cpp b/src/fsfw/osal/common/TcpIpBase.cpp similarity index 100% rename from src/osal/common/TcpIpBase.cpp rename to src/fsfw/osal/common/TcpIpBase.cpp diff --git a/inc/fsfw/osal/common/TcpIpBase.h b/src/fsfw/osal/common/TcpIpBase.h similarity index 100% rename from inc/fsfw/osal/common/TcpIpBase.h rename to src/fsfw/osal/common/TcpIpBase.h diff --git a/src/osal/common/TcpTmTcBridge.cpp b/src/fsfw/osal/common/TcpTmTcBridge.cpp similarity index 100% rename from src/osal/common/TcpTmTcBridge.cpp rename to src/fsfw/osal/common/TcpTmTcBridge.cpp diff --git a/inc/fsfw/osal/common/TcpTmTcBridge.h b/src/fsfw/osal/common/TcpTmTcBridge.h similarity index 100% rename from inc/fsfw/osal/common/TcpTmTcBridge.h rename to src/fsfw/osal/common/TcpTmTcBridge.h diff --git a/src/osal/common/TcpTmTcServer.cpp b/src/fsfw/osal/common/TcpTmTcServer.cpp similarity index 100% rename from src/osal/common/TcpTmTcServer.cpp rename to src/fsfw/osal/common/TcpTmTcServer.cpp diff --git a/inc/fsfw/osal/common/TcpTmTcServer.h b/src/fsfw/osal/common/TcpTmTcServer.h similarity index 100% rename from inc/fsfw/osal/common/TcpTmTcServer.h rename to src/fsfw/osal/common/TcpTmTcServer.h diff --git a/src/osal/common/UdpTcPollingTask.cpp b/src/fsfw/osal/common/UdpTcPollingTask.cpp similarity index 100% rename from src/osal/common/UdpTcPollingTask.cpp rename to src/fsfw/osal/common/UdpTcPollingTask.cpp diff --git a/inc/fsfw/osal/common/UdpTcPollingTask.h b/src/fsfw/osal/common/UdpTcPollingTask.h similarity index 100% rename from inc/fsfw/osal/common/UdpTcPollingTask.h rename to src/fsfw/osal/common/UdpTcPollingTask.h diff --git a/src/osal/common/UdpTmTcBridge.cpp b/src/fsfw/osal/common/UdpTmTcBridge.cpp similarity index 100% rename from src/osal/common/UdpTmTcBridge.cpp rename to src/fsfw/osal/common/UdpTmTcBridge.cpp diff --git a/inc/fsfw/osal/common/UdpTmTcBridge.h b/src/fsfw/osal/common/UdpTmTcBridge.h similarity index 100% rename from inc/fsfw/osal/common/UdpTmTcBridge.h rename to src/fsfw/osal/common/UdpTmTcBridge.h diff --git a/src/osal/common/tcpipCommon.cpp b/src/fsfw/osal/common/tcpipCommon.cpp similarity index 100% rename from src/osal/common/tcpipCommon.cpp rename to src/fsfw/osal/common/tcpipCommon.cpp diff --git a/inc/fsfw/osal/common/tcpipCommon.h b/src/fsfw/osal/common/tcpipCommon.h similarity index 100% rename from inc/fsfw/osal/common/tcpipCommon.h rename to src/fsfw/osal/common/tcpipCommon.h diff --git a/inc/fsfw/osal/common/tcpipHelpers.h b/src/fsfw/osal/common/tcpipHelpers.h similarity index 100% rename from inc/fsfw/osal/common/tcpipHelpers.h rename to src/fsfw/osal/common/tcpipHelpers.h diff --git a/src/osal/freertos/BinSemaphUsingTask.cpp b/src/fsfw/osal/freertos/BinSemaphUsingTask.cpp similarity index 100% rename from src/osal/freertos/BinSemaphUsingTask.cpp rename to src/fsfw/osal/freertos/BinSemaphUsingTask.cpp diff --git a/inc/fsfw/osal/freertos/BinSemaphUsingTask.h b/src/fsfw/osal/freertos/BinSemaphUsingTask.h similarity index 100% rename from inc/fsfw/osal/freertos/BinSemaphUsingTask.h rename to src/fsfw/osal/freertos/BinSemaphUsingTask.h diff --git a/src/osal/freertos/BinarySemaphore.cpp b/src/fsfw/osal/freertos/BinarySemaphore.cpp similarity index 100% rename from src/osal/freertos/BinarySemaphore.cpp rename to src/fsfw/osal/freertos/BinarySemaphore.cpp diff --git a/inc/fsfw/osal/freertos/BinarySemaphore.h b/src/fsfw/osal/freertos/BinarySemaphore.h similarity index 100% rename from inc/fsfw/osal/freertos/BinarySemaphore.h rename to src/fsfw/osal/freertos/BinarySemaphore.h diff --git a/src/osal/freertos/CMakeLists.txt b/src/fsfw/osal/freertos/CMakeLists.txt similarity index 100% rename from src/osal/freertos/CMakeLists.txt rename to src/fsfw/osal/freertos/CMakeLists.txt diff --git a/src/osal/freertos/Clock.cpp b/src/fsfw/osal/freertos/Clock.cpp similarity index 100% rename from src/osal/freertos/Clock.cpp rename to src/fsfw/osal/freertos/Clock.cpp diff --git a/src/osal/freertos/CountingSemaphUsingTask.cpp b/src/fsfw/osal/freertos/CountingSemaphUsingTask.cpp similarity index 100% rename from src/osal/freertos/CountingSemaphUsingTask.cpp rename to src/fsfw/osal/freertos/CountingSemaphUsingTask.cpp diff --git a/inc/fsfw/osal/freertos/CountingSemaphUsingTask.h b/src/fsfw/osal/freertos/CountingSemaphUsingTask.h similarity index 100% rename from inc/fsfw/osal/freertos/CountingSemaphUsingTask.h rename to src/fsfw/osal/freertos/CountingSemaphUsingTask.h diff --git a/src/osal/freertos/CountingSemaphore.cpp b/src/fsfw/osal/freertos/CountingSemaphore.cpp similarity index 100% rename from src/osal/freertos/CountingSemaphore.cpp rename to src/fsfw/osal/freertos/CountingSemaphore.cpp diff --git a/inc/fsfw/osal/freertos/CountingSemaphore.h b/src/fsfw/osal/freertos/CountingSemaphore.h similarity index 100% rename from inc/fsfw/osal/freertos/CountingSemaphore.h rename to src/fsfw/osal/freertos/CountingSemaphore.h diff --git a/src/osal/freertos/FixedTimeslotTask.cpp b/src/fsfw/osal/freertos/FixedTimeslotTask.cpp similarity index 100% rename from src/osal/freertos/FixedTimeslotTask.cpp rename to src/fsfw/osal/freertos/FixedTimeslotTask.cpp diff --git a/inc/fsfw/osal/freertos/FixedTimeslotTask.h b/src/fsfw/osal/freertos/FixedTimeslotTask.h similarity index 100% rename from inc/fsfw/osal/freertos/FixedTimeslotTask.h rename to src/fsfw/osal/freertos/FixedTimeslotTask.h diff --git a/inc/fsfw/osal/freertos/FreeRTOSTaskIF.h b/src/fsfw/osal/freertos/FreeRTOSTaskIF.h similarity index 100% rename from inc/fsfw/osal/freertos/FreeRTOSTaskIF.h rename to src/fsfw/osal/freertos/FreeRTOSTaskIF.h diff --git a/src/osal/freertos/MessageQueue.cpp b/src/fsfw/osal/freertos/MessageQueue.cpp similarity index 100% rename from src/osal/freertos/MessageQueue.cpp rename to src/fsfw/osal/freertos/MessageQueue.cpp diff --git a/inc/fsfw/osal/freertos/MessageQueue.h b/src/fsfw/osal/freertos/MessageQueue.h similarity index 100% rename from inc/fsfw/osal/freertos/MessageQueue.h rename to src/fsfw/osal/freertos/MessageQueue.h diff --git a/src/osal/freertos/Mutex.cpp b/src/fsfw/osal/freertos/Mutex.cpp similarity index 100% rename from src/osal/freertos/Mutex.cpp rename to src/fsfw/osal/freertos/Mutex.cpp diff --git a/inc/fsfw/osal/freertos/Mutex.h b/src/fsfw/osal/freertos/Mutex.h similarity index 100% rename from inc/fsfw/osal/freertos/Mutex.h rename to src/fsfw/osal/freertos/Mutex.h diff --git a/src/osal/freertos/MutexFactory.cpp b/src/fsfw/osal/freertos/MutexFactory.cpp similarity index 100% rename from src/osal/freertos/MutexFactory.cpp rename to src/fsfw/osal/freertos/MutexFactory.cpp diff --git a/src/osal/freertos/PeriodicTask.cpp b/src/fsfw/osal/freertos/PeriodicTask.cpp similarity index 100% rename from src/osal/freertos/PeriodicTask.cpp rename to src/fsfw/osal/freertos/PeriodicTask.cpp diff --git a/inc/fsfw/osal/freertos/PeriodicTask.h b/src/fsfw/osal/freertos/PeriodicTask.h similarity index 100% rename from inc/fsfw/osal/freertos/PeriodicTask.h rename to src/fsfw/osal/freertos/PeriodicTask.h diff --git a/src/osal/freertos/QueueFactory.cpp b/src/fsfw/osal/freertos/QueueFactory.cpp similarity index 100% rename from src/osal/freertos/QueueFactory.cpp rename to src/fsfw/osal/freertos/QueueFactory.cpp diff --git a/src/osal/freertos/QueueMapManager.cpp b/src/fsfw/osal/freertos/QueueMapManager.cpp similarity index 100% rename from src/osal/freertos/QueueMapManager.cpp rename to src/fsfw/osal/freertos/QueueMapManager.cpp diff --git a/inc/fsfw/osal/freertos/QueueMapManager.h b/src/fsfw/osal/freertos/QueueMapManager.h similarity index 100% rename from inc/fsfw/osal/freertos/QueueMapManager.h rename to src/fsfw/osal/freertos/QueueMapManager.h diff --git a/inc/fsfw/osal/freertos/README.md b/src/fsfw/osal/freertos/README.md similarity index 100% rename from inc/fsfw/osal/freertos/README.md rename to src/fsfw/osal/freertos/README.md diff --git a/src/osal/freertos/SemaphoreFactory.cpp b/src/fsfw/osal/freertos/SemaphoreFactory.cpp similarity index 100% rename from src/osal/freertos/SemaphoreFactory.cpp rename to src/fsfw/osal/freertos/SemaphoreFactory.cpp diff --git a/src/osal/freertos/TaskFactory.cpp b/src/fsfw/osal/freertos/TaskFactory.cpp similarity index 100% rename from src/osal/freertos/TaskFactory.cpp rename to src/fsfw/osal/freertos/TaskFactory.cpp diff --git a/src/osal/freertos/TaskManagement.cpp b/src/fsfw/osal/freertos/TaskManagement.cpp similarity index 100% rename from src/osal/freertos/TaskManagement.cpp rename to src/fsfw/osal/freertos/TaskManagement.cpp diff --git a/inc/fsfw/osal/freertos/TaskManagement.h b/src/fsfw/osal/freertos/TaskManagement.h similarity index 100% rename from inc/fsfw/osal/freertos/TaskManagement.h rename to src/fsfw/osal/freertos/TaskManagement.h diff --git a/src/osal/freertos/Timekeeper.cpp b/src/fsfw/osal/freertos/Timekeeper.cpp similarity index 100% rename from src/osal/freertos/Timekeeper.cpp rename to src/fsfw/osal/freertos/Timekeeper.cpp diff --git a/inc/fsfw/osal/freertos/Timekeeper.h b/src/fsfw/osal/freertos/Timekeeper.h similarity index 100% rename from inc/fsfw/osal/freertos/Timekeeper.h rename to src/fsfw/osal/freertos/Timekeeper.h diff --git a/src/osal/host/CMakeLists.txt b/src/fsfw/osal/host/CMakeLists.txt similarity index 100% rename from src/osal/host/CMakeLists.txt rename to src/fsfw/osal/host/CMakeLists.txt diff --git a/src/osal/host/Clock.cpp b/src/fsfw/osal/host/Clock.cpp similarity index 100% rename from src/osal/host/Clock.cpp rename to src/fsfw/osal/host/Clock.cpp diff --git a/src/osal/host/FixedTimeslotTask.cpp b/src/fsfw/osal/host/FixedTimeslotTask.cpp similarity index 100% rename from src/osal/host/FixedTimeslotTask.cpp rename to src/fsfw/osal/host/FixedTimeslotTask.cpp diff --git a/inc/fsfw/osal/host/FixedTimeslotTask.h b/src/fsfw/osal/host/FixedTimeslotTask.h similarity index 100% rename from inc/fsfw/osal/host/FixedTimeslotTask.h rename to src/fsfw/osal/host/FixedTimeslotTask.h diff --git a/src/osal/host/MessageQueue.cpp b/src/fsfw/osal/host/MessageQueue.cpp similarity index 100% rename from src/osal/host/MessageQueue.cpp rename to src/fsfw/osal/host/MessageQueue.cpp diff --git a/inc/fsfw/osal/host/MessageQueue.h b/src/fsfw/osal/host/MessageQueue.h similarity index 97% rename from inc/fsfw/osal/host/MessageQueue.h rename to src/fsfw/osal/host/MessageQueue.h index 1c9b5e331..0bdfd8fcb 100644 --- a/inc/fsfw/osal/host/MessageQueue.h +++ b/src/fsfw/osal/host/MessageQueue.h @@ -1,11 +1,11 @@ #ifndef FRAMEWORK_OSAL_HOST_MESSAGEQUEUE_H_ #define FRAMEWORK_OSAL_HOST_MESSAGEQUEUE_H_ -#include "../../internalError/InternalErrorReporterIF.h" -#include "../../ipc/MessageQueueIF.h" -#include "../../ipc/MessageQueueMessage.h" -#include "../../ipc/MutexIF.h" -#include "../../timemanager/Clock.h" +#include "fsfw/internalerror/InternalErrorReporterIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" +#include "fsfw/ipc/MutexIF.h" +#include "fsfw/timemanager/Clock.h" #include #include diff --git a/src/osal/host/Mutex.cpp b/src/fsfw/osal/host/Mutex.cpp similarity index 95% rename from src/osal/host/Mutex.cpp rename to src/fsfw/osal/host/Mutex.cpp index 1c8b1dd81..e423ea937 100644 --- a/src/osal/host/Mutex.cpp +++ b/src/fsfw/osal/host/Mutex.cpp @@ -1,4 +1,4 @@ -#include "Mutex.h" +#include "fsfw/osal/host/Mutex.h" #include "fsfw/serviceinterface/ServiceInterface.h" Mutex::Mutex() {} diff --git a/inc/fsfw/osal/host/Mutex.h b/src/fsfw/osal/host/Mutex.h similarity index 100% rename from inc/fsfw/osal/host/Mutex.h rename to src/fsfw/osal/host/Mutex.h diff --git a/src/osal/host/MutexFactory.cpp b/src/fsfw/osal/host/MutexFactory.cpp similarity index 100% rename from src/osal/host/MutexFactory.cpp rename to src/fsfw/osal/host/MutexFactory.cpp diff --git a/src/osal/host/PeriodicTask.cpp b/src/fsfw/osal/host/PeriodicTask.cpp similarity index 100% rename from src/osal/host/PeriodicTask.cpp rename to src/fsfw/osal/host/PeriodicTask.cpp diff --git a/inc/fsfw/osal/host/PeriodicTask.h b/src/fsfw/osal/host/PeriodicTask.h similarity index 100% rename from inc/fsfw/osal/host/PeriodicTask.h rename to src/fsfw/osal/host/PeriodicTask.h diff --git a/src/osal/host/QueueFactory.cpp b/src/fsfw/osal/host/QueueFactory.cpp similarity index 100% rename from src/osal/host/QueueFactory.cpp rename to src/fsfw/osal/host/QueueFactory.cpp diff --git a/src/osal/host/QueueMapManager.cpp b/src/fsfw/osal/host/QueueMapManager.cpp similarity index 100% rename from src/osal/host/QueueMapManager.cpp rename to src/fsfw/osal/host/QueueMapManager.cpp diff --git a/inc/fsfw/osal/host/QueueMapManager.h b/src/fsfw/osal/host/QueueMapManager.h similarity index 100% rename from inc/fsfw/osal/host/QueueMapManager.h rename to src/fsfw/osal/host/QueueMapManager.h diff --git a/src/osal/host/SemaphoreFactory.cpp b/src/fsfw/osal/host/SemaphoreFactory.cpp similarity index 100% rename from src/osal/host/SemaphoreFactory.cpp rename to src/fsfw/osal/host/SemaphoreFactory.cpp diff --git a/src/osal/host/TaskFactory.cpp b/src/fsfw/osal/host/TaskFactory.cpp similarity index 100% rename from src/osal/host/TaskFactory.cpp rename to src/fsfw/osal/host/TaskFactory.cpp diff --git a/src/osal/host/taskHelpers.cpp b/src/fsfw/osal/host/taskHelpers.cpp similarity index 100% rename from src/osal/host/taskHelpers.cpp rename to src/fsfw/osal/host/taskHelpers.cpp diff --git a/inc/fsfw/osal/host/taskHelpers.h b/src/fsfw/osal/host/taskHelpers.h similarity index 100% rename from inc/fsfw/osal/host/taskHelpers.h rename to src/fsfw/osal/host/taskHelpers.h diff --git a/src/osal/linux/BinarySemaphore.cpp b/src/fsfw/osal/linux/BinarySemaphore.cpp similarity index 100% rename from src/osal/linux/BinarySemaphore.cpp rename to src/fsfw/osal/linux/BinarySemaphore.cpp diff --git a/inc/fsfw/osal/linux/BinarySemaphore.h b/src/fsfw/osal/linux/BinarySemaphore.h similarity index 100% rename from inc/fsfw/osal/linux/BinarySemaphore.h rename to src/fsfw/osal/linux/BinarySemaphore.h diff --git a/src/osal/linux/CMakeLists.txt b/src/fsfw/osal/linux/CMakeLists.txt similarity index 100% rename from src/osal/linux/CMakeLists.txt rename to src/fsfw/osal/linux/CMakeLists.txt diff --git a/src/osal/linux/Clock.cpp b/src/fsfw/osal/linux/Clock.cpp similarity index 100% rename from src/osal/linux/Clock.cpp rename to src/fsfw/osal/linux/Clock.cpp diff --git a/src/osal/linux/CountingSemaphore.cpp b/src/fsfw/osal/linux/CountingSemaphore.cpp similarity index 100% rename from src/osal/linux/CountingSemaphore.cpp rename to src/fsfw/osal/linux/CountingSemaphore.cpp diff --git a/inc/fsfw/osal/linux/CountingSemaphore.h b/src/fsfw/osal/linux/CountingSemaphore.h similarity index 100% rename from inc/fsfw/osal/linux/CountingSemaphore.h rename to src/fsfw/osal/linux/CountingSemaphore.h diff --git a/src/osal/linux/FixedTimeslotTask.cpp b/src/fsfw/osal/linux/FixedTimeslotTask.cpp similarity index 100% rename from src/osal/linux/FixedTimeslotTask.cpp rename to src/fsfw/osal/linux/FixedTimeslotTask.cpp diff --git a/inc/fsfw/osal/linux/FixedTimeslotTask.h b/src/fsfw/osal/linux/FixedTimeslotTask.h similarity index 100% rename from inc/fsfw/osal/linux/FixedTimeslotTask.h rename to src/fsfw/osal/linux/FixedTimeslotTask.h diff --git a/src/osal/linux/InternalErrorCodes.cpp b/src/fsfw/osal/linux/InternalErrorCodes.cpp similarity index 100% rename from src/osal/linux/InternalErrorCodes.cpp rename to src/fsfw/osal/linux/InternalErrorCodes.cpp diff --git a/src/osal/linux/MessageQueue.cpp b/src/fsfw/osal/linux/MessageQueue.cpp similarity index 100% rename from src/osal/linux/MessageQueue.cpp rename to src/fsfw/osal/linux/MessageQueue.cpp diff --git a/inc/fsfw/osal/linux/MessageQueue.h b/src/fsfw/osal/linux/MessageQueue.h similarity index 100% rename from inc/fsfw/osal/linux/MessageQueue.h rename to src/fsfw/osal/linux/MessageQueue.h diff --git a/src/osal/linux/Mutex.cpp b/src/fsfw/osal/linux/Mutex.cpp similarity index 100% rename from src/osal/linux/Mutex.cpp rename to src/fsfw/osal/linux/Mutex.cpp diff --git a/inc/fsfw/osal/linux/Mutex.h b/src/fsfw/osal/linux/Mutex.h similarity index 100% rename from inc/fsfw/osal/linux/Mutex.h rename to src/fsfw/osal/linux/Mutex.h diff --git a/src/osal/linux/MutexFactory.cpp b/src/fsfw/osal/linux/MutexFactory.cpp similarity index 100% rename from src/osal/linux/MutexFactory.cpp rename to src/fsfw/osal/linux/MutexFactory.cpp diff --git a/src/osal/linux/PeriodicPosixTask.cpp b/src/fsfw/osal/linux/PeriodicPosixTask.cpp similarity index 100% rename from src/osal/linux/PeriodicPosixTask.cpp rename to src/fsfw/osal/linux/PeriodicPosixTask.cpp diff --git a/inc/fsfw/osal/linux/PeriodicPosixTask.h b/src/fsfw/osal/linux/PeriodicPosixTask.h similarity index 100% rename from inc/fsfw/osal/linux/PeriodicPosixTask.h rename to src/fsfw/osal/linux/PeriodicPosixTask.h diff --git a/src/osal/linux/PosixThread.cpp b/src/fsfw/osal/linux/PosixThread.cpp similarity index 100% rename from src/osal/linux/PosixThread.cpp rename to src/fsfw/osal/linux/PosixThread.cpp diff --git a/inc/fsfw/osal/linux/PosixThread.h b/src/fsfw/osal/linux/PosixThread.h similarity index 100% rename from inc/fsfw/osal/linux/PosixThread.h rename to src/fsfw/osal/linux/PosixThread.h diff --git a/src/osal/linux/QueueFactory.cpp b/src/fsfw/osal/linux/QueueFactory.cpp similarity index 100% rename from src/osal/linux/QueueFactory.cpp rename to src/fsfw/osal/linux/QueueFactory.cpp diff --git a/src/osal/linux/SemaphoreFactory.cpp b/src/fsfw/osal/linux/SemaphoreFactory.cpp similarity index 100% rename from src/osal/linux/SemaphoreFactory.cpp rename to src/fsfw/osal/linux/SemaphoreFactory.cpp diff --git a/src/osal/linux/TaskFactory.cpp b/src/fsfw/osal/linux/TaskFactory.cpp similarity index 100% rename from src/osal/linux/TaskFactory.cpp rename to src/fsfw/osal/linux/TaskFactory.cpp diff --git a/src/osal/linux/Timer.cpp b/src/fsfw/osal/linux/Timer.cpp similarity index 100% rename from src/osal/linux/Timer.cpp rename to src/fsfw/osal/linux/Timer.cpp diff --git a/inc/fsfw/osal/linux/Timer.h b/src/fsfw/osal/linux/Timer.h similarity index 100% rename from inc/fsfw/osal/linux/Timer.h rename to src/fsfw/osal/linux/Timer.h diff --git a/src/osal/linux/tcpipHelpers.cpp b/src/fsfw/osal/linux/tcpipHelpers.cpp similarity index 100% rename from src/osal/linux/tcpipHelpers.cpp rename to src/fsfw/osal/linux/tcpipHelpers.cpp diff --git a/src/osal/linux/unixUtility.cpp b/src/fsfw/osal/linux/unixUtility.cpp similarity index 100% rename from src/osal/linux/unixUtility.cpp rename to src/fsfw/osal/linux/unixUtility.cpp diff --git a/inc/fsfw/osal/linux/unixUtility.h b/src/fsfw/osal/linux/unixUtility.h similarity index 100% rename from inc/fsfw/osal/linux/unixUtility.h rename to src/fsfw/osal/linux/unixUtility.h diff --git a/src/osal/rtems/BinarySemaphore.cpp b/src/fsfw/osal/rtems/BinarySemaphore.cpp similarity index 100% rename from src/osal/rtems/BinarySemaphore.cpp rename to src/fsfw/osal/rtems/BinarySemaphore.cpp diff --git a/src/osal/rtems/CMakeLists.txt b/src/fsfw/osal/rtems/CMakeLists.txt similarity index 100% rename from src/osal/rtems/CMakeLists.txt rename to src/fsfw/osal/rtems/CMakeLists.txt diff --git a/src/osal/rtems/Clock.cpp b/src/fsfw/osal/rtems/Clock.cpp similarity index 100% rename from src/osal/rtems/Clock.cpp rename to src/fsfw/osal/rtems/Clock.cpp diff --git a/src/osal/rtems/CpuUsage.cpp b/src/fsfw/osal/rtems/CpuUsage.cpp similarity index 100% rename from src/osal/rtems/CpuUsage.cpp rename to src/fsfw/osal/rtems/CpuUsage.cpp diff --git a/inc/fsfw/osal/rtems/CpuUsage.h b/src/fsfw/osal/rtems/CpuUsage.h similarity index 100% rename from inc/fsfw/osal/rtems/CpuUsage.h rename to src/fsfw/osal/rtems/CpuUsage.h diff --git a/src/osal/rtems/FixedTimeslotTask.cpp b/src/fsfw/osal/rtems/FixedTimeslotTask.cpp similarity index 100% rename from src/osal/rtems/FixedTimeslotTask.cpp rename to src/fsfw/osal/rtems/FixedTimeslotTask.cpp diff --git a/inc/fsfw/osal/rtems/FixedTimeslotTask.h b/src/fsfw/osal/rtems/FixedTimeslotTask.h similarity index 100% rename from inc/fsfw/osal/rtems/FixedTimeslotTask.h rename to src/fsfw/osal/rtems/FixedTimeslotTask.h diff --git a/src/osal/rtems/InitTask.cpp b/src/fsfw/osal/rtems/InitTask.cpp similarity index 100% rename from src/osal/rtems/InitTask.cpp rename to src/fsfw/osal/rtems/InitTask.cpp diff --git a/inc/fsfw/osal/rtems/InitTask.h b/src/fsfw/osal/rtems/InitTask.h similarity index 100% rename from inc/fsfw/osal/rtems/InitTask.h rename to src/fsfw/osal/rtems/InitTask.h diff --git a/src/osal/rtems/InternalErrorCodes.cpp b/src/fsfw/osal/rtems/InternalErrorCodes.cpp similarity index 100% rename from src/osal/rtems/InternalErrorCodes.cpp rename to src/fsfw/osal/rtems/InternalErrorCodes.cpp diff --git a/src/osal/rtems/MessageQueue.cpp b/src/fsfw/osal/rtems/MessageQueue.cpp similarity index 100% rename from src/osal/rtems/MessageQueue.cpp rename to src/fsfw/osal/rtems/MessageQueue.cpp diff --git a/inc/fsfw/osal/rtems/MessageQueue.h b/src/fsfw/osal/rtems/MessageQueue.h similarity index 100% rename from inc/fsfw/osal/rtems/MessageQueue.h rename to src/fsfw/osal/rtems/MessageQueue.h diff --git a/src/osal/rtems/Mutex.cpp b/src/fsfw/osal/rtems/Mutex.cpp similarity index 100% rename from src/osal/rtems/Mutex.cpp rename to src/fsfw/osal/rtems/Mutex.cpp diff --git a/inc/fsfw/osal/rtems/Mutex.h b/src/fsfw/osal/rtems/Mutex.h similarity index 100% rename from inc/fsfw/osal/rtems/Mutex.h rename to src/fsfw/osal/rtems/Mutex.h diff --git a/src/osal/rtems/MutexFactory.cpp b/src/fsfw/osal/rtems/MutexFactory.cpp similarity index 100% rename from src/osal/rtems/MutexFactory.cpp rename to src/fsfw/osal/rtems/MutexFactory.cpp diff --git a/src/osal/rtems/PeriodicTask.cpp b/src/fsfw/osal/rtems/PeriodicTask.cpp similarity index 100% rename from src/osal/rtems/PeriodicTask.cpp rename to src/fsfw/osal/rtems/PeriodicTask.cpp diff --git a/inc/fsfw/osal/rtems/PeriodicTask.h b/src/fsfw/osal/rtems/PeriodicTask.h similarity index 100% rename from inc/fsfw/osal/rtems/PeriodicTask.h rename to src/fsfw/osal/rtems/PeriodicTask.h diff --git a/src/osal/rtems/QueueFactory.cpp b/src/fsfw/osal/rtems/QueueFactory.cpp similarity index 100% rename from src/osal/rtems/QueueFactory.cpp rename to src/fsfw/osal/rtems/QueueFactory.cpp diff --git a/src/osal/rtems/RTEMSTaskBase.cpp b/src/fsfw/osal/rtems/RTEMSTaskBase.cpp similarity index 100% rename from src/osal/rtems/RTEMSTaskBase.cpp rename to src/fsfw/osal/rtems/RTEMSTaskBase.cpp diff --git a/inc/fsfw/osal/rtems/RTEMSTaskBase.h b/src/fsfw/osal/rtems/RTEMSTaskBase.h similarity index 100% rename from inc/fsfw/osal/rtems/RTEMSTaskBase.h rename to src/fsfw/osal/rtems/RTEMSTaskBase.h diff --git a/src/osal/rtems/RtemsBasic.cpp b/src/fsfw/osal/rtems/RtemsBasic.cpp similarity index 100% rename from src/osal/rtems/RtemsBasic.cpp rename to src/fsfw/osal/rtems/RtemsBasic.cpp diff --git a/inc/fsfw/osal/rtems/RtemsBasic.h b/src/fsfw/osal/rtems/RtemsBasic.h similarity index 100% rename from inc/fsfw/osal/rtems/RtemsBasic.h rename to src/fsfw/osal/rtems/RtemsBasic.h diff --git a/src/osal/rtems/SemaphoreFactory.cpp b/src/fsfw/osal/rtems/SemaphoreFactory.cpp similarity index 100% rename from src/osal/rtems/SemaphoreFactory.cpp rename to src/fsfw/osal/rtems/SemaphoreFactory.cpp diff --git a/src/osal/rtems/TaskFactory.cpp b/src/fsfw/osal/rtems/TaskFactory.cpp similarity index 100% rename from src/osal/rtems/TaskFactory.cpp rename to src/fsfw/osal/rtems/TaskFactory.cpp diff --git a/src/osal/windows/CMakeLists.txt b/src/fsfw/osal/windows/CMakeLists.txt similarity index 100% rename from src/osal/windows/CMakeLists.txt rename to src/fsfw/osal/windows/CMakeLists.txt diff --git a/src/osal/windows/tcpipHelpers.cpp b/src/fsfw/osal/windows/tcpipHelpers.cpp similarity index 100% rename from src/osal/windows/tcpipHelpers.cpp rename to src/fsfw/osal/windows/tcpipHelpers.cpp diff --git a/src/osal/windows/winTaskHelpers.cpp b/src/fsfw/osal/windows/winTaskHelpers.cpp similarity index 100% rename from src/osal/windows/winTaskHelpers.cpp rename to src/fsfw/osal/windows/winTaskHelpers.cpp diff --git a/inc/fsfw/osal/windows/winTaskHelpers.h b/src/fsfw/osal/windows/winTaskHelpers.h similarity index 100% rename from inc/fsfw/osal/windows/winTaskHelpers.h rename to src/fsfw/osal/windows/winTaskHelpers.h diff --git a/src/core/parameters/CMakeLists.txt b/src/fsfw/parameters/CMakeLists.txt similarity index 100% rename from src/core/parameters/CMakeLists.txt rename to src/fsfw/parameters/CMakeLists.txt diff --git a/inc/fsfw/parameters/HasParametersIF.h b/src/fsfw/parameters/HasParametersIF.h similarity index 100% rename from inc/fsfw/parameters/HasParametersIF.h rename to src/fsfw/parameters/HasParametersIF.h diff --git a/src/core/parameters/ParameterHelper.cpp b/src/fsfw/parameters/ParameterHelper.cpp similarity index 100% rename from src/core/parameters/ParameterHelper.cpp rename to src/fsfw/parameters/ParameterHelper.cpp diff --git a/inc/fsfw/parameters/ParameterHelper.h b/src/fsfw/parameters/ParameterHelper.h similarity index 100% rename from inc/fsfw/parameters/ParameterHelper.h rename to src/fsfw/parameters/ParameterHelper.h diff --git a/src/core/parameters/ParameterMessage.cpp b/src/fsfw/parameters/ParameterMessage.cpp similarity index 100% rename from src/core/parameters/ParameterMessage.cpp rename to src/fsfw/parameters/ParameterMessage.cpp diff --git a/inc/fsfw/parameters/ParameterMessage.h b/src/fsfw/parameters/ParameterMessage.h similarity index 100% rename from inc/fsfw/parameters/ParameterMessage.h rename to src/fsfw/parameters/ParameterMessage.h diff --git a/src/core/parameters/ParameterWrapper.cpp b/src/fsfw/parameters/ParameterWrapper.cpp similarity index 100% rename from src/core/parameters/ParameterWrapper.cpp rename to src/fsfw/parameters/ParameterWrapper.cpp diff --git a/inc/fsfw/parameters/ParameterWrapper.h b/src/fsfw/parameters/ParameterWrapper.h similarity index 100% rename from inc/fsfw/parameters/ParameterWrapper.h rename to src/fsfw/parameters/ParameterWrapper.h diff --git a/inc/fsfw/parameters/ReceivesParameterMessagesIF.h b/src/fsfw/parameters/ReceivesParameterMessagesIF.h similarity index 100% rename from inc/fsfw/parameters/ReceivesParameterMessagesIF.h rename to src/fsfw/parameters/ReceivesParameterMessagesIF.h diff --git a/inc/fsfw/platform.h b/src/fsfw/platform.h similarity index 100% rename from inc/fsfw/platform.h rename to src/fsfw/platform.h diff --git a/src/core/power/CMakeLists.txt b/src/fsfw/power/CMakeLists.txt similarity index 100% rename from src/core/power/CMakeLists.txt rename to src/fsfw/power/CMakeLists.txt diff --git a/src/core/power/Fuse.cpp b/src/fsfw/power/Fuse.cpp similarity index 100% rename from src/core/power/Fuse.cpp rename to src/fsfw/power/Fuse.cpp diff --git a/inc/fsfw/power/Fuse.h b/src/fsfw/power/Fuse.h similarity index 100% rename from inc/fsfw/power/Fuse.h rename to src/fsfw/power/Fuse.h diff --git a/src/core/power/PowerComponent.cpp b/src/fsfw/power/PowerComponent.cpp similarity index 100% rename from src/core/power/PowerComponent.cpp rename to src/fsfw/power/PowerComponent.cpp diff --git a/inc/fsfw/power/PowerComponent.h b/src/fsfw/power/PowerComponent.h similarity index 100% rename from inc/fsfw/power/PowerComponent.h rename to src/fsfw/power/PowerComponent.h diff --git a/inc/fsfw/power/PowerComponentIF.h b/src/fsfw/power/PowerComponentIF.h similarity index 100% rename from inc/fsfw/power/PowerComponentIF.h rename to src/fsfw/power/PowerComponentIF.h diff --git a/src/core/power/PowerSensor.cpp b/src/fsfw/power/PowerSensor.cpp similarity index 100% rename from src/core/power/PowerSensor.cpp rename to src/fsfw/power/PowerSensor.cpp diff --git a/inc/fsfw/power/PowerSensor.h b/src/fsfw/power/PowerSensor.h similarity index 100% rename from inc/fsfw/power/PowerSensor.h rename to src/fsfw/power/PowerSensor.h diff --git a/inc/fsfw/power/PowerSwitchIF.h b/src/fsfw/power/PowerSwitchIF.h similarity index 100% rename from inc/fsfw/power/PowerSwitchIF.h rename to src/fsfw/power/PowerSwitchIF.h diff --git a/src/core/power/PowerSwitcher.cpp b/src/fsfw/power/PowerSwitcher.cpp similarity index 100% rename from src/core/power/PowerSwitcher.cpp rename to src/fsfw/power/PowerSwitcher.cpp diff --git a/inc/fsfw/power/PowerSwitcher.h b/src/fsfw/power/PowerSwitcher.h similarity index 100% rename from inc/fsfw/power/PowerSwitcher.h rename to src/fsfw/power/PowerSwitcher.h diff --git a/src/opt/pus/CMakeLists.txt b/src/fsfw/pus/CMakeLists.txt similarity index 100% rename from src/opt/pus/CMakeLists.txt rename to src/fsfw/pus/CMakeLists.txt diff --git a/src/opt/pus/CService200ModeCommanding.cpp b/src/fsfw/pus/CService200ModeCommanding.cpp similarity index 100% rename from src/opt/pus/CService200ModeCommanding.cpp rename to src/fsfw/pus/CService200ModeCommanding.cpp diff --git a/inc/fsfw/pus/CService200ModeCommanding.h b/src/fsfw/pus/CService200ModeCommanding.h similarity index 100% rename from inc/fsfw/pus/CService200ModeCommanding.h rename to src/fsfw/pus/CService200ModeCommanding.h diff --git a/src/opt/pus/CService201HealthCommanding.cpp b/src/fsfw/pus/CService201HealthCommanding.cpp similarity index 100% rename from src/opt/pus/CService201HealthCommanding.cpp rename to src/fsfw/pus/CService201HealthCommanding.cpp diff --git a/inc/fsfw/pus/CService201HealthCommanding.h b/src/fsfw/pus/CService201HealthCommanding.h similarity index 100% rename from inc/fsfw/pus/CService201HealthCommanding.h rename to src/fsfw/pus/CService201HealthCommanding.h diff --git a/src/opt/pus/Service17Test.cpp b/src/fsfw/pus/Service17Test.cpp similarity index 100% rename from src/opt/pus/Service17Test.cpp rename to src/fsfw/pus/Service17Test.cpp diff --git a/inc/fsfw/pus/Service17Test.h b/src/fsfw/pus/Service17Test.h similarity index 100% rename from inc/fsfw/pus/Service17Test.h rename to src/fsfw/pus/Service17Test.h diff --git a/src/opt/pus/Service1TelecommandVerification.cpp b/src/fsfw/pus/Service1TelecommandVerification.cpp similarity index 100% rename from src/opt/pus/Service1TelecommandVerification.cpp rename to src/fsfw/pus/Service1TelecommandVerification.cpp diff --git a/inc/fsfw/pus/Service1TelecommandVerification.h b/src/fsfw/pus/Service1TelecommandVerification.h similarity index 100% rename from inc/fsfw/pus/Service1TelecommandVerification.h rename to src/fsfw/pus/Service1TelecommandVerification.h diff --git a/src/opt/pus/Service20ParameterManagement.cpp b/src/fsfw/pus/Service20ParameterManagement.cpp similarity index 100% rename from src/opt/pus/Service20ParameterManagement.cpp rename to src/fsfw/pus/Service20ParameterManagement.cpp diff --git a/inc/fsfw/pus/Service20ParameterManagement.h b/src/fsfw/pus/Service20ParameterManagement.h similarity index 100% rename from inc/fsfw/pus/Service20ParameterManagement.h rename to src/fsfw/pus/Service20ParameterManagement.h diff --git a/src/opt/pus/Service2DeviceAccess.cpp b/src/fsfw/pus/Service2DeviceAccess.cpp similarity index 100% rename from src/opt/pus/Service2DeviceAccess.cpp rename to src/fsfw/pus/Service2DeviceAccess.cpp diff --git a/inc/fsfw/pus/Service2DeviceAccess.h b/src/fsfw/pus/Service2DeviceAccess.h similarity index 100% rename from inc/fsfw/pus/Service2DeviceAccess.h rename to src/fsfw/pus/Service2DeviceAccess.h diff --git a/src/opt/pus/Service3Housekeeping.cpp b/src/fsfw/pus/Service3Housekeeping.cpp similarity index 100% rename from src/opt/pus/Service3Housekeeping.cpp rename to src/fsfw/pus/Service3Housekeeping.cpp diff --git a/inc/fsfw/pus/Service3Housekeeping.h b/src/fsfw/pus/Service3Housekeeping.h similarity index 100% rename from inc/fsfw/pus/Service3Housekeeping.h rename to src/fsfw/pus/Service3Housekeeping.h diff --git a/src/opt/pus/Service5EventReporting.cpp b/src/fsfw/pus/Service5EventReporting.cpp similarity index 100% rename from src/opt/pus/Service5EventReporting.cpp rename to src/fsfw/pus/Service5EventReporting.cpp diff --git a/inc/fsfw/pus/Service5EventReporting.h b/src/fsfw/pus/Service5EventReporting.h similarity index 100% rename from inc/fsfw/pus/Service5EventReporting.h rename to src/fsfw/pus/Service5EventReporting.h diff --git a/src/opt/pus/Service8FunctionManagement.cpp b/src/fsfw/pus/Service8FunctionManagement.cpp similarity index 100% rename from src/opt/pus/Service8FunctionManagement.cpp rename to src/fsfw/pus/Service8FunctionManagement.cpp diff --git a/inc/fsfw/pus/Service8FunctionManagement.h b/src/fsfw/pus/Service8FunctionManagement.h similarity index 100% rename from inc/fsfw/pus/Service8FunctionManagement.h rename to src/fsfw/pus/Service8FunctionManagement.h diff --git a/src/opt/pus/Service9TimeManagement.cpp b/src/fsfw/pus/Service9TimeManagement.cpp similarity index 100% rename from src/opt/pus/Service9TimeManagement.cpp rename to src/fsfw/pus/Service9TimeManagement.cpp diff --git a/inc/fsfw/pus/Service9TimeManagement.h b/src/fsfw/pus/Service9TimeManagement.h similarity index 100% rename from inc/fsfw/pus/Service9TimeManagement.h rename to src/fsfw/pus/Service9TimeManagement.h diff --git a/inc/fsfw/pus/servicepackets/Service1Packets.h b/src/fsfw/pus/servicepackets/Service1Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service1Packets.h rename to src/fsfw/pus/servicepackets/Service1Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service200Packets.h b/src/fsfw/pus/servicepackets/Service200Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service200Packets.h rename to src/fsfw/pus/servicepackets/Service200Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service201Packets.h b/src/fsfw/pus/servicepackets/Service201Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service201Packets.h rename to src/fsfw/pus/servicepackets/Service201Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service20Packets.h b/src/fsfw/pus/servicepackets/Service20Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service20Packets.h rename to src/fsfw/pus/servicepackets/Service20Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service2Packets.h b/src/fsfw/pus/servicepackets/Service2Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service2Packets.h rename to src/fsfw/pus/servicepackets/Service2Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service3Packets.h b/src/fsfw/pus/servicepackets/Service3Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service3Packets.h rename to src/fsfw/pus/servicepackets/Service3Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service5Packets.h b/src/fsfw/pus/servicepackets/Service5Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service5Packets.h rename to src/fsfw/pus/servicepackets/Service5Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service8Packets.h b/src/fsfw/pus/servicepackets/Service8Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service8Packets.h rename to src/fsfw/pus/servicepackets/Service8Packets.h diff --git a/inc/fsfw/pus/servicepackets/Service9Packets.h b/src/fsfw/pus/servicepackets/Service9Packets.h similarity index 100% rename from inc/fsfw/pus/servicepackets/Service9Packets.h rename to src/fsfw/pus/servicepackets/Service9Packets.h diff --git a/inc/fsfw/returnvalues/FwClassIds.h b/src/fsfw/returnvalues/FwClassIds.h similarity index 100% rename from inc/fsfw/returnvalues/FwClassIds.h rename to src/fsfw/returnvalues/FwClassIds.h diff --git a/inc/fsfw/returnvalues/HasReturnvaluesIF.h b/src/fsfw/returnvalues/HasReturnvaluesIF.h similarity index 100% rename from inc/fsfw/returnvalues/HasReturnvaluesIF.h rename to src/fsfw/returnvalues/HasReturnvaluesIF.h diff --git a/src/opt/rmap/CMakeLists.txt b/src/fsfw/rmap/CMakeLists.txt similarity index 100% rename from src/opt/rmap/CMakeLists.txt rename to src/fsfw/rmap/CMakeLists.txt diff --git a/src/opt/rmap/RMAP.cpp b/src/fsfw/rmap/RMAP.cpp similarity index 100% rename from src/opt/rmap/RMAP.cpp rename to src/fsfw/rmap/RMAP.cpp diff --git a/inc/fsfw/rmap/RMAP.h b/src/fsfw/rmap/RMAP.h similarity index 100% rename from inc/fsfw/rmap/RMAP.h rename to src/fsfw/rmap/RMAP.h diff --git a/inc/fsfw/rmap/RMAPChannelIF.h b/src/fsfw/rmap/RMAPChannelIF.h similarity index 100% rename from inc/fsfw/rmap/RMAPChannelIF.h rename to src/fsfw/rmap/RMAPChannelIF.h diff --git a/src/opt/rmap/RMAPCookie.cpp b/src/fsfw/rmap/RMAPCookie.cpp similarity index 100% rename from src/opt/rmap/RMAPCookie.cpp rename to src/fsfw/rmap/RMAPCookie.cpp diff --git a/inc/fsfw/rmap/RMAPCookie.h b/src/fsfw/rmap/RMAPCookie.h similarity index 100% rename from inc/fsfw/rmap/RMAPCookie.h rename to src/fsfw/rmap/RMAPCookie.h diff --git a/src/opt/rmap/RmapDeviceCommunicationIF.cpp b/src/fsfw/rmap/RmapDeviceCommunicationIF.cpp similarity index 100% rename from src/opt/rmap/RmapDeviceCommunicationIF.cpp rename to src/fsfw/rmap/RmapDeviceCommunicationIF.cpp diff --git a/inc/fsfw/rmap/RmapDeviceCommunicationIF.h b/src/fsfw/rmap/RmapDeviceCommunicationIF.h similarity index 100% rename from inc/fsfw/rmap/RmapDeviceCommunicationIF.h rename to src/fsfw/rmap/RmapDeviceCommunicationIF.h diff --git a/inc/fsfw/rmap/rmapStructs.h b/src/fsfw/rmap/rmapStructs.h similarity index 100% rename from inc/fsfw/rmap/rmapStructs.h rename to src/fsfw/rmap/rmapStructs.h diff --git a/src/fsfw/serialize.h b/src/fsfw/serialize.h new file mode 100644 index 000000000..7cd735bb9 --- /dev/null +++ b/src/fsfw/serialize.h @@ -0,0 +1,10 @@ +#ifndef FSFW_INC_FSFW_SERIALIZE_H_ +#define FSFW_INC_FSFW_SERIALIZE_H_ + +#include "src/core/serialize/EndianConverter.h" +#include "src/core/serialize/SerialArrayListAdapter.h" +#include "src/core/serialize/SerialBufferAdapter.h" +#include "src/core/serialize/SerializeElement.h" +#include "src/core/serialize/SerialLinkedListAdapter.h" + +#endif /* FSFW_INC_FSFW_SERIALIZE_H_ */ diff --git a/src/core/serialize/CMakeLists.txt b/src/fsfw/serialize/CMakeLists.txt similarity index 100% rename from src/core/serialize/CMakeLists.txt rename to src/fsfw/serialize/CMakeLists.txt diff --git a/inc/fsfw/serialize/EndianConverter.h b/src/fsfw/serialize/EndianConverter.h similarity index 100% rename from inc/fsfw/serialize/EndianConverter.h rename to src/fsfw/serialize/EndianConverter.h diff --git a/inc/fsfw/serialize/SerialArrayListAdapter.h b/src/fsfw/serialize/SerialArrayListAdapter.h similarity index 100% rename from inc/fsfw/serialize/SerialArrayListAdapter.h rename to src/fsfw/serialize/SerialArrayListAdapter.h diff --git a/src/core/serialize/SerialBufferAdapter.cpp b/src/fsfw/serialize/SerialBufferAdapter.cpp similarity index 100% rename from src/core/serialize/SerialBufferAdapter.cpp rename to src/fsfw/serialize/SerialBufferAdapter.cpp diff --git a/inc/fsfw/serialize/SerialBufferAdapter.h b/src/fsfw/serialize/SerialBufferAdapter.h similarity index 100% rename from inc/fsfw/serialize/SerialBufferAdapter.h rename to src/fsfw/serialize/SerialBufferAdapter.h diff --git a/inc/fsfw/serialize/SerialFixedArrayListAdapter.h b/src/fsfw/serialize/SerialFixedArrayListAdapter.h similarity index 100% rename from inc/fsfw/serialize/SerialFixedArrayListAdapter.h rename to src/fsfw/serialize/SerialFixedArrayListAdapter.h diff --git a/inc/fsfw/serialize/SerialLinkedListAdapter.h b/src/fsfw/serialize/SerialLinkedListAdapter.h similarity index 100% rename from inc/fsfw/serialize/SerialLinkedListAdapter.h rename to src/fsfw/serialize/SerialLinkedListAdapter.h diff --git a/inc/fsfw/serialize/SerializeAdapter.h b/src/fsfw/serialize/SerializeAdapter.h similarity index 100% rename from inc/fsfw/serialize/SerializeAdapter.h rename to src/fsfw/serialize/SerializeAdapter.h diff --git a/inc/fsfw/serialize/SerializeElement.h b/src/fsfw/serialize/SerializeElement.h similarity index 100% rename from inc/fsfw/serialize/SerializeElement.h rename to src/fsfw/serialize/SerializeElement.h diff --git a/inc/fsfw/serialize/SerializeIF.h b/src/fsfw/serialize/SerializeIF.h similarity index 100% rename from inc/fsfw/serialize/SerializeIF.h rename to src/fsfw/serialize/SerializeIF.h diff --git a/src/core/serviceinterface/CMakeLists.txt b/src/fsfw/serviceinterface/CMakeLists.txt similarity index 100% rename from src/core/serviceinterface/CMakeLists.txt rename to src/fsfw/serviceinterface/CMakeLists.txt diff --git a/inc/fsfw/serviceinterface/ServiceInterface.h b/src/fsfw/serviceinterface/ServiceInterface.h similarity index 100% rename from inc/fsfw/serviceinterface/ServiceInterface.h rename to src/fsfw/serviceinterface/ServiceInterface.h diff --git a/src/core/serviceinterface/ServiceInterfaceBuffer.cpp b/src/fsfw/serviceinterface/ServiceInterfaceBuffer.cpp similarity index 100% rename from src/core/serviceinterface/ServiceInterfaceBuffer.cpp rename to src/fsfw/serviceinterface/ServiceInterfaceBuffer.cpp diff --git a/inc/fsfw/serviceinterface/ServiceInterfaceBuffer.h b/src/fsfw/serviceinterface/ServiceInterfaceBuffer.h similarity index 100% rename from inc/fsfw/serviceinterface/ServiceInterfaceBuffer.h rename to src/fsfw/serviceinterface/ServiceInterfaceBuffer.h diff --git a/src/core/serviceinterface/ServiceInterfacePrinter.cpp b/src/fsfw/serviceinterface/ServiceInterfacePrinter.cpp similarity index 100% rename from src/core/serviceinterface/ServiceInterfacePrinter.cpp rename to src/fsfw/serviceinterface/ServiceInterfacePrinter.cpp diff --git a/inc/fsfw/serviceinterface/ServiceInterfacePrinter.h b/src/fsfw/serviceinterface/ServiceInterfacePrinter.h similarity index 100% rename from inc/fsfw/serviceinterface/ServiceInterfacePrinter.h rename to src/fsfw/serviceinterface/ServiceInterfacePrinter.h diff --git a/src/core/serviceinterface/ServiceInterfaceStream.cpp b/src/fsfw/serviceinterface/ServiceInterfaceStream.cpp similarity index 100% rename from src/core/serviceinterface/ServiceInterfaceStream.cpp rename to src/fsfw/serviceinterface/ServiceInterfaceStream.cpp diff --git a/inc/fsfw/serviceinterface/ServiceInterfaceStream.h b/src/fsfw/serviceinterface/ServiceInterfaceStream.h similarity index 100% rename from inc/fsfw/serviceinterface/ServiceInterfaceStream.h rename to src/fsfw/serviceinterface/ServiceInterfaceStream.h diff --git a/inc/fsfw/serviceinterface/serviceInterfaceDefintions.h b/src/fsfw/serviceinterface/serviceInterfaceDefintions.h similarity index 100% rename from inc/fsfw/serviceinterface/serviceInterfaceDefintions.h rename to src/fsfw/serviceinterface/serviceInterfaceDefintions.h diff --git a/src/core/storagemanager/CMakeLists.txt b/src/fsfw/storagemanager/CMakeLists.txt similarity index 100% rename from src/core/storagemanager/CMakeLists.txt rename to src/fsfw/storagemanager/CMakeLists.txt diff --git a/src/core/storagemanager/ConstStorageAccessor.cpp b/src/fsfw/storagemanager/ConstStorageAccessor.cpp similarity index 100% rename from src/core/storagemanager/ConstStorageAccessor.cpp rename to src/fsfw/storagemanager/ConstStorageAccessor.cpp diff --git a/inc/fsfw/storagemanager/ConstStorageAccessor.h b/src/fsfw/storagemanager/ConstStorageAccessor.h similarity index 100% rename from inc/fsfw/storagemanager/ConstStorageAccessor.h rename to src/fsfw/storagemanager/ConstStorageAccessor.h diff --git a/src/core/storagemanager/LocalPool.cpp b/src/fsfw/storagemanager/LocalPool.cpp similarity index 100% rename from src/core/storagemanager/LocalPool.cpp rename to src/fsfw/storagemanager/LocalPool.cpp diff --git a/inc/fsfw/storagemanager/LocalPool.h b/src/fsfw/storagemanager/LocalPool.h similarity index 100% rename from inc/fsfw/storagemanager/LocalPool.h rename to src/fsfw/storagemanager/LocalPool.h diff --git a/src/core/storagemanager/PoolManager.cpp b/src/fsfw/storagemanager/PoolManager.cpp similarity index 100% rename from src/core/storagemanager/PoolManager.cpp rename to src/fsfw/storagemanager/PoolManager.cpp diff --git a/inc/fsfw/storagemanager/PoolManager.h b/src/fsfw/storagemanager/PoolManager.h similarity index 100% rename from inc/fsfw/storagemanager/PoolManager.h rename to src/fsfw/storagemanager/PoolManager.h diff --git a/src/core/storagemanager/StorageAccessor.cpp b/src/fsfw/storagemanager/StorageAccessor.cpp similarity index 100% rename from src/core/storagemanager/StorageAccessor.cpp rename to src/fsfw/storagemanager/StorageAccessor.cpp diff --git a/inc/fsfw/storagemanager/StorageAccessor.h b/src/fsfw/storagemanager/StorageAccessor.h similarity index 100% rename from inc/fsfw/storagemanager/StorageAccessor.h rename to src/fsfw/storagemanager/StorageAccessor.h diff --git a/inc/fsfw/storagemanager/StorageManagerIF.h b/src/fsfw/storagemanager/StorageManagerIF.h similarity index 100% rename from inc/fsfw/storagemanager/StorageManagerIF.h rename to src/fsfw/storagemanager/StorageManagerIF.h diff --git a/inc/fsfw/storagemanager/storeAddress.h b/src/fsfw/storagemanager/storeAddress.h similarity index 100% rename from inc/fsfw/storagemanager/storeAddress.h rename to src/fsfw/storagemanager/storeAddress.h diff --git a/src/core/subsystem/CMakeLists.txt b/src/fsfw/subsystem/CMakeLists.txt similarity index 100% rename from src/core/subsystem/CMakeLists.txt rename to src/fsfw/subsystem/CMakeLists.txt diff --git a/src/core/subsystem/Subsystem.cpp b/src/fsfw/subsystem/Subsystem.cpp similarity index 100% rename from src/core/subsystem/Subsystem.cpp rename to src/fsfw/subsystem/Subsystem.cpp diff --git a/inc/fsfw/subsystem/Subsystem.h b/src/fsfw/subsystem/Subsystem.h similarity index 100% rename from inc/fsfw/subsystem/Subsystem.h rename to src/fsfw/subsystem/Subsystem.h diff --git a/src/core/subsystem/SubsystemBase.cpp b/src/fsfw/subsystem/SubsystemBase.cpp similarity index 100% rename from src/core/subsystem/SubsystemBase.cpp rename to src/fsfw/subsystem/SubsystemBase.cpp diff --git a/inc/fsfw/subsystem/SubsystemBase.h b/src/fsfw/subsystem/SubsystemBase.h similarity index 100% rename from inc/fsfw/subsystem/SubsystemBase.h rename to src/fsfw/subsystem/SubsystemBase.h diff --git a/src/core/subsystem/modes/CMakeLists.txt b/src/fsfw/subsystem/modes/CMakeLists.txt similarity index 100% rename from src/core/subsystem/modes/CMakeLists.txt rename to src/fsfw/subsystem/modes/CMakeLists.txt diff --git a/inc/fsfw/subsystem/modes/HasModeSequenceIF.h b/src/fsfw/subsystem/modes/HasModeSequenceIF.h similarity index 100% rename from inc/fsfw/subsystem/modes/HasModeSequenceIF.h rename to src/fsfw/subsystem/modes/HasModeSequenceIF.h diff --git a/inc/fsfw/subsystem/modes/ModeDefinitions.h b/src/fsfw/subsystem/modes/ModeDefinitions.h similarity index 100% rename from inc/fsfw/subsystem/modes/ModeDefinitions.h rename to src/fsfw/subsystem/modes/ModeDefinitions.h diff --git a/src/core/subsystem/modes/ModeSequenceMessage.cpp b/src/fsfw/subsystem/modes/ModeSequenceMessage.cpp similarity index 100% rename from src/core/subsystem/modes/ModeSequenceMessage.cpp rename to src/fsfw/subsystem/modes/ModeSequenceMessage.cpp diff --git a/inc/fsfw/subsystem/modes/ModeSequenceMessage.h b/src/fsfw/subsystem/modes/ModeSequenceMessage.h similarity index 100% rename from inc/fsfw/subsystem/modes/ModeSequenceMessage.h rename to src/fsfw/subsystem/modes/ModeSequenceMessage.h diff --git a/src/core/subsystem/modes/ModeStore.cpp b/src/fsfw/subsystem/modes/ModeStore.cpp similarity index 100% rename from src/core/subsystem/modes/ModeStore.cpp rename to src/fsfw/subsystem/modes/ModeStore.cpp diff --git a/inc/fsfw/subsystem/modes/ModeStore.h b/src/fsfw/subsystem/modes/ModeStore.h similarity index 100% rename from inc/fsfw/subsystem/modes/ModeStore.h rename to src/fsfw/subsystem/modes/ModeStore.h diff --git a/inc/fsfw/subsystem/modes/ModeStoreIF.h b/src/fsfw/subsystem/modes/ModeStoreIF.h similarity index 100% rename from inc/fsfw/subsystem/modes/ModeStoreIF.h rename to src/fsfw/subsystem/modes/ModeStoreIF.h diff --git a/src/core/tasks/CMakeLists.txt b/src/fsfw/tasks/CMakeLists.txt similarity index 100% rename from src/core/tasks/CMakeLists.txt rename to src/fsfw/tasks/CMakeLists.txt diff --git a/inc/fsfw/tasks/ExecutableObjectIF.h b/src/fsfw/tasks/ExecutableObjectIF.h similarity index 100% rename from inc/fsfw/tasks/ExecutableObjectIF.h rename to src/fsfw/tasks/ExecutableObjectIF.h diff --git a/src/core/tasks/FixedSequenceSlot.cpp b/src/fsfw/tasks/FixedSequenceSlot.cpp similarity index 100% rename from src/core/tasks/FixedSequenceSlot.cpp rename to src/fsfw/tasks/FixedSequenceSlot.cpp diff --git a/inc/fsfw/tasks/FixedSequenceSlot.h b/src/fsfw/tasks/FixedSequenceSlot.h similarity index 100% rename from inc/fsfw/tasks/FixedSequenceSlot.h rename to src/fsfw/tasks/FixedSequenceSlot.h diff --git a/src/core/tasks/FixedSlotSequence.cpp b/src/fsfw/tasks/FixedSlotSequence.cpp similarity index 100% rename from src/core/tasks/FixedSlotSequence.cpp rename to src/fsfw/tasks/FixedSlotSequence.cpp diff --git a/inc/fsfw/tasks/FixedSlotSequence.h b/src/fsfw/tasks/FixedSlotSequence.h similarity index 100% rename from inc/fsfw/tasks/FixedSlotSequence.h rename to src/fsfw/tasks/FixedSlotSequence.h diff --git a/inc/fsfw/tasks/FixedTimeslotTaskIF.h b/src/fsfw/tasks/FixedTimeslotTaskIF.h similarity index 100% rename from inc/fsfw/tasks/FixedTimeslotTaskIF.h rename to src/fsfw/tasks/FixedTimeslotTaskIF.h diff --git a/inc/fsfw/tasks/PeriodicTaskIF.h b/src/fsfw/tasks/PeriodicTaskIF.h similarity index 100% rename from inc/fsfw/tasks/PeriodicTaskIF.h rename to src/fsfw/tasks/PeriodicTaskIF.h diff --git a/inc/fsfw/tasks/SemaphoreFactory.h b/src/fsfw/tasks/SemaphoreFactory.h similarity index 100% rename from inc/fsfw/tasks/SemaphoreFactory.h rename to src/fsfw/tasks/SemaphoreFactory.h diff --git a/inc/fsfw/tasks/SemaphoreIF.h b/src/fsfw/tasks/SemaphoreIF.h similarity index 100% rename from inc/fsfw/tasks/SemaphoreIF.h rename to src/fsfw/tasks/SemaphoreIF.h diff --git a/inc/fsfw/tasks/TaskFactory.h b/src/fsfw/tasks/TaskFactory.h similarity index 100% rename from inc/fsfw/tasks/TaskFactory.h rename to src/fsfw/tasks/TaskFactory.h diff --git a/inc/fsfw/tasks/Typedef.h b/src/fsfw/tasks/Typedef.h similarity index 100% rename from inc/fsfw/tasks/Typedef.h rename to src/fsfw/tasks/Typedef.h diff --git a/src/core/tcdistribution/CCSDSDistributor.cpp b/src/fsfw/tcdistribution/CCSDSDistributor.cpp similarity index 100% rename from src/core/tcdistribution/CCSDSDistributor.cpp rename to src/fsfw/tcdistribution/CCSDSDistributor.cpp diff --git a/inc/fsfw/tcdistribution/CCSDSDistributor.h b/src/fsfw/tcdistribution/CCSDSDistributor.h similarity index 100% rename from inc/fsfw/tcdistribution/CCSDSDistributor.h rename to src/fsfw/tcdistribution/CCSDSDistributor.h diff --git a/inc/fsfw/tcdistribution/CCSDSDistributorIF.h b/src/fsfw/tcdistribution/CCSDSDistributorIF.h similarity index 100% rename from inc/fsfw/tcdistribution/CCSDSDistributorIF.h rename to src/fsfw/tcdistribution/CCSDSDistributorIF.h diff --git a/src/core/tcdistribution/CMakeLists.txt b/src/fsfw/tcdistribution/CMakeLists.txt similarity index 100% rename from src/core/tcdistribution/CMakeLists.txt rename to src/fsfw/tcdistribution/CMakeLists.txt diff --git a/src/core/tcdistribution/PUSDistributor.cpp b/src/fsfw/tcdistribution/PUSDistributor.cpp similarity index 100% rename from src/core/tcdistribution/PUSDistributor.cpp rename to src/fsfw/tcdistribution/PUSDistributor.cpp diff --git a/inc/fsfw/tcdistribution/PUSDistributor.h b/src/fsfw/tcdistribution/PUSDistributor.h similarity index 100% rename from inc/fsfw/tcdistribution/PUSDistributor.h rename to src/fsfw/tcdistribution/PUSDistributor.h diff --git a/inc/fsfw/tcdistribution/PUSDistributorIF.h b/src/fsfw/tcdistribution/PUSDistributorIF.h similarity index 100% rename from inc/fsfw/tcdistribution/PUSDistributorIF.h rename to src/fsfw/tcdistribution/PUSDistributorIF.h diff --git a/src/core/tcdistribution/TcDistributor.cpp b/src/fsfw/tcdistribution/TcDistributor.cpp similarity index 100% rename from src/core/tcdistribution/TcDistributor.cpp rename to src/fsfw/tcdistribution/TcDistributor.cpp diff --git a/inc/fsfw/tcdistribution/TcDistributor.h b/src/fsfw/tcdistribution/TcDistributor.h similarity index 100% rename from inc/fsfw/tcdistribution/TcDistributor.h rename to src/fsfw/tcdistribution/TcDistributor.h diff --git a/src/core/tcdistribution/TcPacketCheck.cpp b/src/fsfw/tcdistribution/TcPacketCheck.cpp similarity index 100% rename from src/core/tcdistribution/TcPacketCheck.cpp rename to src/fsfw/tcdistribution/TcPacketCheck.cpp diff --git a/inc/fsfw/tcdistribution/TcPacketCheck.h b/src/fsfw/tcdistribution/TcPacketCheck.h similarity index 100% rename from inc/fsfw/tcdistribution/TcPacketCheck.h rename to src/fsfw/tcdistribution/TcPacketCheck.h diff --git a/src/core/thermal/AbstractTemperatureSensor.cpp b/src/fsfw/thermal/AbstractTemperatureSensor.cpp similarity index 100% rename from src/core/thermal/AbstractTemperatureSensor.cpp rename to src/fsfw/thermal/AbstractTemperatureSensor.cpp diff --git a/inc/fsfw/thermal/AbstractTemperatureSensor.h b/src/fsfw/thermal/AbstractTemperatureSensor.h similarity index 100% rename from inc/fsfw/thermal/AbstractTemperatureSensor.h rename to src/fsfw/thermal/AbstractTemperatureSensor.h diff --git a/inc/fsfw/thermal/AcceptsThermalMessagesIF.h b/src/fsfw/thermal/AcceptsThermalMessagesIF.h similarity index 100% rename from inc/fsfw/thermal/AcceptsThermalMessagesIF.h rename to src/fsfw/thermal/AcceptsThermalMessagesIF.h diff --git a/src/core/thermal/CMakeLists.txt b/src/fsfw/thermal/CMakeLists.txt similarity index 100% rename from src/core/thermal/CMakeLists.txt rename to src/fsfw/thermal/CMakeLists.txt diff --git a/src/core/thermal/Heater.cpp b/src/fsfw/thermal/Heater.cpp similarity index 100% rename from src/core/thermal/Heater.cpp rename to src/fsfw/thermal/Heater.cpp diff --git a/inc/fsfw/thermal/Heater.h b/src/fsfw/thermal/Heater.h similarity index 100% rename from inc/fsfw/thermal/Heater.h rename to src/fsfw/thermal/Heater.h diff --git a/src/core/thermal/RedundantHeater.cpp b/src/fsfw/thermal/RedundantHeater.cpp similarity index 100% rename from src/core/thermal/RedundantHeater.cpp rename to src/fsfw/thermal/RedundantHeater.cpp diff --git a/inc/fsfw/thermal/RedundantHeater.h b/src/fsfw/thermal/RedundantHeater.h similarity index 100% rename from inc/fsfw/thermal/RedundantHeater.h rename to src/fsfw/thermal/RedundantHeater.h diff --git a/inc/fsfw/thermal/TemperatureSensor.h b/src/fsfw/thermal/TemperatureSensor.h similarity index 100% rename from inc/fsfw/thermal/TemperatureSensor.h rename to src/fsfw/thermal/TemperatureSensor.h diff --git a/src/core/thermal/ThermalComponent.cpp b/src/fsfw/thermal/ThermalComponent.cpp similarity index 100% rename from src/core/thermal/ThermalComponent.cpp rename to src/fsfw/thermal/ThermalComponent.cpp diff --git a/inc/fsfw/thermal/ThermalComponent.h b/src/fsfw/thermal/ThermalComponent.h similarity index 100% rename from inc/fsfw/thermal/ThermalComponent.h rename to src/fsfw/thermal/ThermalComponent.h diff --git a/src/core/thermal/ThermalComponentCore.cpp b/src/fsfw/thermal/ThermalComponentCore.cpp similarity index 100% rename from src/core/thermal/ThermalComponentCore.cpp rename to src/fsfw/thermal/ThermalComponentCore.cpp diff --git a/inc/fsfw/thermal/ThermalComponentCore.h b/src/fsfw/thermal/ThermalComponentCore.h similarity index 100% rename from inc/fsfw/thermal/ThermalComponentCore.h rename to src/fsfw/thermal/ThermalComponentCore.h diff --git a/inc/fsfw/thermal/ThermalComponentIF.h b/src/fsfw/thermal/ThermalComponentIF.h similarity index 100% rename from inc/fsfw/thermal/ThermalComponentIF.h rename to src/fsfw/thermal/ThermalComponentIF.h diff --git a/src/core/thermal/ThermalModule.cpp b/src/fsfw/thermal/ThermalModule.cpp similarity index 100% rename from src/core/thermal/ThermalModule.cpp rename to src/fsfw/thermal/ThermalModule.cpp diff --git a/inc/fsfw/thermal/ThermalModule.h b/src/fsfw/thermal/ThermalModule.h similarity index 100% rename from inc/fsfw/thermal/ThermalModule.h rename to src/fsfw/thermal/ThermalModule.h diff --git a/inc/fsfw/thermal/ThermalModuleIF.h b/src/fsfw/thermal/ThermalModuleIF.h similarity index 100% rename from inc/fsfw/thermal/ThermalModuleIF.h rename to src/fsfw/thermal/ThermalModuleIF.h diff --git a/src/core/thermal/ThermalMonitorReporter.cpp b/src/fsfw/thermal/ThermalMonitorReporter.cpp similarity index 100% rename from src/core/thermal/ThermalMonitorReporter.cpp rename to src/fsfw/thermal/ThermalMonitorReporter.cpp diff --git a/inc/fsfw/thermal/ThermalMonitorReporter.h b/src/fsfw/thermal/ThermalMonitorReporter.h similarity index 100% rename from inc/fsfw/thermal/ThermalMonitorReporter.h rename to src/fsfw/thermal/ThermalMonitorReporter.h diff --git a/inc/fsfw/thermal/tcsDefinitions.h b/src/fsfw/thermal/tcsDefinitions.h similarity index 100% rename from inc/fsfw/thermal/tcsDefinitions.h rename to src/fsfw/thermal/tcsDefinitions.h diff --git a/src/core/timemanager/CCSDSTime.cpp b/src/fsfw/timemanager/CCSDSTime.cpp similarity index 100% rename from src/core/timemanager/CCSDSTime.cpp rename to src/fsfw/timemanager/CCSDSTime.cpp diff --git a/inc/fsfw/timemanager/CCSDSTime.h b/src/fsfw/timemanager/CCSDSTime.h similarity index 100% rename from inc/fsfw/timemanager/CCSDSTime.h rename to src/fsfw/timemanager/CCSDSTime.h diff --git a/src/core/timemanager/CMakeLists.txt b/src/fsfw/timemanager/CMakeLists.txt similarity index 100% rename from src/core/timemanager/CMakeLists.txt rename to src/fsfw/timemanager/CMakeLists.txt diff --git a/inc/fsfw/timemanager/Clock.h b/src/fsfw/timemanager/Clock.h similarity index 100% rename from inc/fsfw/timemanager/Clock.h rename to src/fsfw/timemanager/Clock.h diff --git a/src/core/timemanager/ClockCommon.cpp b/src/fsfw/timemanager/ClockCommon.cpp similarity index 100% rename from src/core/timemanager/ClockCommon.cpp rename to src/fsfw/timemanager/ClockCommon.cpp diff --git a/src/core/timemanager/Countdown.cpp b/src/fsfw/timemanager/Countdown.cpp similarity index 100% rename from src/core/timemanager/Countdown.cpp rename to src/fsfw/timemanager/Countdown.cpp diff --git a/inc/fsfw/timemanager/Countdown.h b/src/fsfw/timemanager/Countdown.h similarity index 100% rename from inc/fsfw/timemanager/Countdown.h rename to src/fsfw/timemanager/Countdown.h diff --git a/inc/fsfw/timemanager/ReceivesTimeInfoIF.h b/src/fsfw/timemanager/ReceivesTimeInfoIF.h similarity index 100% rename from inc/fsfw/timemanager/ReceivesTimeInfoIF.h rename to src/fsfw/timemanager/ReceivesTimeInfoIF.h diff --git a/src/core/timemanager/Stopwatch.cpp b/src/fsfw/timemanager/Stopwatch.cpp similarity index 100% rename from src/core/timemanager/Stopwatch.cpp rename to src/fsfw/timemanager/Stopwatch.cpp diff --git a/inc/fsfw/timemanager/Stopwatch.h b/src/fsfw/timemanager/Stopwatch.h similarity index 100% rename from inc/fsfw/timemanager/Stopwatch.h rename to src/fsfw/timemanager/Stopwatch.h diff --git a/src/core/timemanager/TimeMessage.cpp b/src/fsfw/timemanager/TimeMessage.cpp similarity index 100% rename from src/core/timemanager/TimeMessage.cpp rename to src/fsfw/timemanager/TimeMessage.cpp diff --git a/inc/fsfw/timemanager/TimeMessage.h b/src/fsfw/timemanager/TimeMessage.h similarity index 100% rename from inc/fsfw/timemanager/TimeMessage.h rename to src/fsfw/timemanager/TimeMessage.h diff --git a/src/core/timemanager/TimeStamper.cpp b/src/fsfw/timemanager/TimeStamper.cpp similarity index 100% rename from src/core/timemanager/TimeStamper.cpp rename to src/fsfw/timemanager/TimeStamper.cpp diff --git a/inc/fsfw/timemanager/TimeStamper.h b/src/fsfw/timemanager/TimeStamper.h similarity index 100% rename from inc/fsfw/timemanager/TimeStamper.h rename to src/fsfw/timemanager/TimeStamper.h diff --git a/inc/fsfw/timemanager/TimeStamperIF.h b/src/fsfw/timemanager/TimeStamperIF.h similarity index 100% rename from inc/fsfw/timemanager/TimeStamperIF.h rename to src/fsfw/timemanager/TimeStamperIF.h diff --git a/inc/fsfw/timemanager/clockDefinitions.h b/src/fsfw/timemanager/clockDefinitions.h similarity index 100% rename from inc/fsfw/timemanager/clockDefinitions.h rename to src/fsfw/timemanager/clockDefinitions.h diff --git a/src/opt/tmstorage/CMakeLists.txt b/src/fsfw/tmstorage/CMakeLists.txt similarity index 100% rename from src/opt/tmstorage/CMakeLists.txt rename to src/fsfw/tmstorage/CMakeLists.txt diff --git a/inc/fsfw/tmstorage/TmStoreBackendIF.h b/src/fsfw/tmstorage/TmStoreBackendIF.h similarity index 100% rename from inc/fsfw/tmstorage/TmStoreBackendIF.h rename to src/fsfw/tmstorage/TmStoreBackendIF.h diff --git a/inc/fsfw/tmstorage/TmStoreFrontendIF.h b/src/fsfw/tmstorage/TmStoreFrontendIF.h similarity index 100% rename from inc/fsfw/tmstorage/TmStoreFrontendIF.h rename to src/fsfw/tmstorage/TmStoreFrontendIF.h diff --git a/src/opt/tmstorage/TmStoreMessage.cpp b/src/fsfw/tmstorage/TmStoreMessage.cpp similarity index 100% rename from src/opt/tmstorage/TmStoreMessage.cpp rename to src/fsfw/tmstorage/TmStoreMessage.cpp diff --git a/inc/fsfw/tmstorage/TmStoreMessage.h b/src/fsfw/tmstorage/TmStoreMessage.h similarity index 100% rename from inc/fsfw/tmstorage/TmStoreMessage.h rename to src/fsfw/tmstorage/TmStoreMessage.h diff --git a/inc/fsfw/tmstorage/TmStorePackets.h b/src/fsfw/tmstorage/TmStorePackets.h similarity index 100% rename from inc/fsfw/tmstorage/TmStorePackets.h rename to src/fsfw/tmstorage/TmStorePackets.h diff --git a/src/core/tmtcpacket/CMakeLists.txt b/src/fsfw/tmtcpacket/CMakeLists.txt similarity index 100% rename from src/core/tmtcpacket/CMakeLists.txt rename to src/fsfw/tmtcpacket/CMakeLists.txt diff --git a/src/core/tmtcpacket/SpacePacket.cpp b/src/fsfw/tmtcpacket/SpacePacket.cpp similarity index 100% rename from src/core/tmtcpacket/SpacePacket.cpp rename to src/fsfw/tmtcpacket/SpacePacket.cpp diff --git a/inc/fsfw/tmtcpacket/SpacePacket.h b/src/fsfw/tmtcpacket/SpacePacket.h similarity index 100% rename from inc/fsfw/tmtcpacket/SpacePacket.h rename to src/fsfw/tmtcpacket/SpacePacket.h diff --git a/src/core/tmtcpacket/SpacePacketBase.cpp b/src/fsfw/tmtcpacket/SpacePacketBase.cpp similarity index 100% rename from src/core/tmtcpacket/SpacePacketBase.cpp rename to src/fsfw/tmtcpacket/SpacePacketBase.cpp diff --git a/inc/fsfw/tmtcpacket/SpacePacketBase.h b/src/fsfw/tmtcpacket/SpacePacketBase.h similarity index 100% rename from inc/fsfw/tmtcpacket/SpacePacketBase.h rename to src/fsfw/tmtcpacket/SpacePacketBase.h diff --git a/inc/fsfw/tmtcpacket/ccsds_header.h b/src/fsfw/tmtcpacket/ccsds_header.h similarity index 100% rename from inc/fsfw/tmtcpacket/ccsds_header.h rename to src/fsfw/tmtcpacket/ccsds_header.h diff --git a/inc/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h b/src/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h similarity index 100% rename from inc/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h rename to src/fsfw/tmtcpacket/packetmatcher/ApidMatcher.h diff --git a/src/core/tmtcpacket/packetmatcher/CMakeLists.txt b/src/fsfw/tmtcpacket/packetmatcher/CMakeLists.txt similarity index 100% rename from src/core/tmtcpacket/packetmatcher/CMakeLists.txt rename to src/fsfw/tmtcpacket/packetmatcher/CMakeLists.txt diff --git a/src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp b/src/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.cpp similarity index 100% rename from src/core/tmtcpacket/packetmatcher/PacketMatchTree.cpp rename to src/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.cpp diff --git a/inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h b/src/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h similarity index 100% rename from inc/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h rename to src/fsfw/tmtcpacket/packetmatcher/PacketMatchTree.h diff --git a/inc/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h b/src/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h similarity index 100% rename from inc/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h rename to src/fsfw/tmtcpacket/packetmatcher/ServiceMatcher.h diff --git a/inc/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h b/src/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h similarity index 100% rename from inc/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h rename to src/fsfw/tmtcpacket/packetmatcher/SubserviceMatcher.h diff --git a/src/core/tmtcpacket/pus/CMakeLists.txt b/src/fsfw/tmtcpacket/pus/CMakeLists.txt similarity index 100% rename from src/core/tmtcpacket/pus/CMakeLists.txt rename to src/fsfw/tmtcpacket/pus/CMakeLists.txt diff --git a/inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h b/src/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h rename to src/fsfw/tmtcpacket/pus/PacketTimestampInterpreterIF.h diff --git a/inc/fsfw/tmtcpacket/pus/tc.h b/src/fsfw/tmtcpacket/pus/tc.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tc.h rename to src/fsfw/tmtcpacket/pus/tc.h diff --git a/src/core/tmtcpacket/pus/tc/CMakeLists.txt b/src/fsfw/tmtcpacket/pus/tc/CMakeLists.txt similarity index 100% rename from src/core/tmtcpacket/pus/tc/CMakeLists.txt rename to src/fsfw/tmtcpacket/pus/tc/CMakeLists.txt diff --git a/src/core/tmtcpacket/pus/tc/TcPacketBase.cpp b/src/fsfw/tmtcpacket/pus/tc/TcPacketBase.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tc/TcPacketBase.cpp rename to src/fsfw/tmtcpacket/pus/tc/TcPacketBase.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h b/src/fsfw/tmtcpacket/pus/tc/TcPacketBase.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tc/TcPacketBase.h rename to src/fsfw/tmtcpacket/pus/tc/TcPacketBase.h diff --git a/src/core/tmtcpacket/pus/tc/TcPacketPus.cpp b/src/fsfw/tmtcpacket/pus/tc/TcPacketPus.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tc/TcPacketPus.cpp rename to src/fsfw/tmtcpacket/pus/tc/TcPacketPus.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tc/TcPacketPus.h b/src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tc/TcPacketPus.h rename to src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h diff --git a/src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp b/src/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tc/TcPacketStoredBase.cpp rename to src/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h b/src/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h rename to src/fsfw/tmtcpacket/pus/tc/TcPacketStoredBase.h diff --git a/inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h b/src/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h rename to src/fsfw/tmtcpacket/pus/tc/TcPacketStoredIF.h diff --git a/src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp b/src/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tc/TcPacketStoredPus.cpp rename to src/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h b/src/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h rename to src/fsfw/tmtcpacket/pus/tc/TcPacketStoredPus.h diff --git a/inc/fsfw/tmtcpacket/pus/tm.h b/src/fsfw/tmtcpacket/pus/tm.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm.h rename to src/fsfw/tmtcpacket/pus/tm.h diff --git a/src/core/tmtcpacket/pus/tm/CMakeLists.txt b/src/fsfw/tmtcpacket/pus/tm/CMakeLists.txt similarity index 100% rename from src/core/tmtcpacket/pus/tm/CMakeLists.txt rename to src/fsfw/tmtcpacket/pus/tm/CMakeLists.txt diff --git a/src/core/tmtcpacket/pus/tm/TmPacketBase.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketBase.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketBase.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketBase.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketBase.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketBase.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketBase.h diff --git a/src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketMinimal.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h diff --git a/src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketPusA.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketPusA.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketPusA.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketPusA.h diff --git a/src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketPusC.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketPusC.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketPusC.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketPusC.h diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketStored.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketStored.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketStored.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStored.h diff --git a/src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketStoredBase.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStoredBase.h diff --git a/src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusA.h diff --git a/src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp b/src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp similarity index 100% rename from src/core/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.cpp diff --git a/inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h b/src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h similarity index 100% rename from inc/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h rename to src/fsfw/tmtcpacket/pus/tm/TmPacketStoredPusC.h diff --git a/inc/fsfw/tmtcservices/AcceptsTelecommandsIF.h b/src/fsfw/tmtcservices/AcceptsTelecommandsIF.h similarity index 100% rename from inc/fsfw/tmtcservices/AcceptsTelecommandsIF.h rename to src/fsfw/tmtcservices/AcceptsTelecommandsIF.h diff --git a/inc/fsfw/tmtcservices/AcceptsTelemetryIF.h b/src/fsfw/tmtcservices/AcceptsTelemetryIF.h similarity index 100% rename from inc/fsfw/tmtcservices/AcceptsTelemetryIF.h rename to src/fsfw/tmtcservices/AcceptsTelemetryIF.h diff --git a/inc/fsfw/tmtcservices/AcceptsVerifyMessageIF.h b/src/fsfw/tmtcservices/AcceptsVerifyMessageIF.h similarity index 100% rename from inc/fsfw/tmtcservices/AcceptsVerifyMessageIF.h rename to src/fsfw/tmtcservices/AcceptsVerifyMessageIF.h diff --git a/src/core/tmtcservices/CMakeLists.txt b/src/fsfw/tmtcservices/CMakeLists.txt similarity index 100% rename from src/core/tmtcservices/CMakeLists.txt rename to src/fsfw/tmtcservices/CMakeLists.txt diff --git a/src/core/tmtcservices/CommandingServiceBase.cpp b/src/fsfw/tmtcservices/CommandingServiceBase.cpp similarity index 100% rename from src/core/tmtcservices/CommandingServiceBase.cpp rename to src/fsfw/tmtcservices/CommandingServiceBase.cpp diff --git a/inc/fsfw/tmtcservices/CommandingServiceBase.h b/src/fsfw/tmtcservices/CommandingServiceBase.h similarity index 100% rename from inc/fsfw/tmtcservices/CommandingServiceBase.h rename to src/fsfw/tmtcservices/CommandingServiceBase.h diff --git a/src/core/tmtcservices/PusServiceBase.cpp b/src/fsfw/tmtcservices/PusServiceBase.cpp similarity index 100% rename from src/core/tmtcservices/PusServiceBase.cpp rename to src/fsfw/tmtcservices/PusServiceBase.cpp diff --git a/inc/fsfw/tmtcservices/PusServiceBase.h b/src/fsfw/tmtcservices/PusServiceBase.h similarity index 100% rename from inc/fsfw/tmtcservices/PusServiceBase.h rename to src/fsfw/tmtcservices/PusServiceBase.h diff --git a/src/core/tmtcservices/PusVerificationReport.cpp b/src/fsfw/tmtcservices/PusVerificationReport.cpp similarity index 100% rename from src/core/tmtcservices/PusVerificationReport.cpp rename to src/fsfw/tmtcservices/PusVerificationReport.cpp diff --git a/inc/fsfw/tmtcservices/PusVerificationReport.h b/src/fsfw/tmtcservices/PusVerificationReport.h similarity index 100% rename from inc/fsfw/tmtcservices/PusVerificationReport.h rename to src/fsfw/tmtcservices/PusVerificationReport.h diff --git a/inc/fsfw/tmtcservices/SourceSequenceCounter.h b/src/fsfw/tmtcservices/SourceSequenceCounter.h similarity index 100% rename from inc/fsfw/tmtcservices/SourceSequenceCounter.h rename to src/fsfw/tmtcservices/SourceSequenceCounter.h diff --git a/src/core/tmtcservices/TmTcBridge.cpp b/src/fsfw/tmtcservices/TmTcBridge.cpp similarity index 100% rename from src/core/tmtcservices/TmTcBridge.cpp rename to src/fsfw/tmtcservices/TmTcBridge.cpp diff --git a/inc/fsfw/tmtcservices/TmTcBridge.h b/src/fsfw/tmtcservices/TmTcBridge.h similarity index 100% rename from inc/fsfw/tmtcservices/TmTcBridge.h rename to src/fsfw/tmtcservices/TmTcBridge.h diff --git a/src/core/tmtcservices/TmTcMessage.cpp b/src/fsfw/tmtcservices/TmTcMessage.cpp similarity index 100% rename from src/core/tmtcservices/TmTcMessage.cpp rename to src/fsfw/tmtcservices/TmTcMessage.cpp diff --git a/inc/fsfw/tmtcservices/TmTcMessage.h b/src/fsfw/tmtcservices/TmTcMessage.h similarity index 100% rename from inc/fsfw/tmtcservices/TmTcMessage.h rename to src/fsfw/tmtcservices/TmTcMessage.h diff --git a/inc/fsfw/tmtcservices/VerificationCodes.h b/src/fsfw/tmtcservices/VerificationCodes.h similarity index 100% rename from inc/fsfw/tmtcservices/VerificationCodes.h rename to src/fsfw/tmtcservices/VerificationCodes.h diff --git a/src/core/tmtcservices/VerificationReporter.cpp b/src/fsfw/tmtcservices/VerificationReporter.cpp similarity index 100% rename from src/core/tmtcservices/VerificationReporter.cpp rename to src/fsfw/tmtcservices/VerificationReporter.cpp diff --git a/inc/fsfw/tmtcservices/VerificationReporter.h b/src/fsfw/tmtcservices/VerificationReporter.h similarity index 100% rename from inc/fsfw/tmtcservices/VerificationReporter.h rename to src/fsfw/tmtcservices/VerificationReporter.h diff --git a/src/opt/CMakeLists.txt b/src/opt/CMakeLists.txt deleted file mode 100644 index 48ee664b3..000000000 --- a/src/opt/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -add_subdirectory(coordinates) -add_subdirectory(datalinklayer) -add_subdirectory(monitoring) -add_subdirectory(pus) -add_subdirectory(rmap) -add_subdirectory(tmstorage) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 26ce12e85..febd4f0ab 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,2 +1 @@ add_subdirectory(src) -add_subdirectory(inc) \ No newline at end of file diff --git a/tests/inc/CMakeLists.txt b/tests/inc/CMakeLists.txt deleted file mode 100644 index abf6a3d27..000000000 --- a/tests/inc/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -target_include_directories(${LIB_FSFW_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} -) - -target_include_directories(${LIB_FSFW_NAME} INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR} -) diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index 3f5d21b55..ed2f2522e 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -1,7 +1,9 @@ -if(FSFW_ADD_INTERNAL_TESTS) - add_subdirectory(internal) -endif() +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) -if(FSFW_ADD_UNITTESTS) - add_subdirectory(tests) -endif() +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_subdirectory(fsfw) diff --git a/tests/src/fsfw/CMakeLists.txt b/tests/src/fsfw/CMakeLists.txt new file mode 100644 index 000000000..571a126ee --- /dev/null +++ b/tests/src/fsfw/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(tests) \ No newline at end of file diff --git a/tests/src/fsfw/tests/CMakeLists.txt b/tests/src/fsfw/tests/CMakeLists.txt new file mode 100644 index 000000000..e4a6be80c --- /dev/null +++ b/tests/src/fsfw/tests/CMakeLists.txt @@ -0,0 +1,8 @@ + +if(FSFW_ADD_INTERNAL_TESTS) + add_subdirectory(internal) +endif() + +if(FSFW_ADD_UNITTESTS) + add_subdirectory(unit) +endif() diff --git a/tests/src/internal/CMakeLists.txt b/tests/src/fsfw/tests/internal/CMakeLists.txt similarity index 100% rename from tests/src/internal/CMakeLists.txt rename to tests/src/fsfw/tests/internal/CMakeLists.txt diff --git a/tests/src/internal/InternalUnitTester.cpp b/tests/src/fsfw/tests/internal/InternalUnitTester.cpp similarity index 100% rename from tests/src/internal/InternalUnitTester.cpp rename to tests/src/fsfw/tests/internal/InternalUnitTester.cpp diff --git a/tests/inc/fsfw/tests/internal/InternalUnitTester.h b/tests/src/fsfw/tests/internal/InternalUnitTester.h similarity index 100% rename from tests/inc/fsfw/tests/internal/InternalUnitTester.h rename to tests/src/fsfw/tests/internal/InternalUnitTester.h diff --git a/tests/src/internal/UnittDefinitions.cpp b/tests/src/fsfw/tests/internal/UnittDefinitions.cpp similarity index 100% rename from tests/src/internal/UnittDefinitions.cpp rename to tests/src/fsfw/tests/internal/UnittDefinitions.cpp diff --git a/tests/inc/fsfw/tests/internal/UnittDefinitions.h b/tests/src/fsfw/tests/internal/UnittDefinitions.h similarity index 100% rename from tests/inc/fsfw/tests/internal/UnittDefinitions.h rename to tests/src/fsfw/tests/internal/UnittDefinitions.h diff --git a/tests/src/internal/globalfunctions/CMakeLists.txt b/tests/src/fsfw/tests/internal/globalfunctions/CMakeLists.txt similarity index 100% rename from tests/src/internal/globalfunctions/CMakeLists.txt rename to tests/src/fsfw/tests/internal/globalfunctions/CMakeLists.txt diff --git a/tests/src/internal/globalfunctions/TestArrayPrinter.cpp b/tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.cpp similarity index 100% rename from tests/src/internal/globalfunctions/TestArrayPrinter.cpp rename to tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.cpp diff --git a/tests/inc/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h b/tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h similarity index 100% rename from tests/inc/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h rename to tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h diff --git a/tests/src/internal/osal/CMakeLists.txt b/tests/src/fsfw/tests/internal/osal/CMakeLists.txt similarity index 100% rename from tests/src/internal/osal/CMakeLists.txt rename to tests/src/fsfw/tests/internal/osal/CMakeLists.txt diff --git a/tests/src/internal/osal/IntTestMq.cpp b/tests/src/fsfw/tests/internal/osal/IntTestMq.cpp similarity index 100% rename from tests/src/internal/osal/IntTestMq.cpp rename to tests/src/fsfw/tests/internal/osal/IntTestMq.cpp diff --git a/tests/inc/fsfw/tests/internal/osal/IntTestMq.h b/tests/src/fsfw/tests/internal/osal/IntTestMq.h similarity index 100% rename from tests/inc/fsfw/tests/internal/osal/IntTestMq.h rename to tests/src/fsfw/tests/internal/osal/IntTestMq.h diff --git a/tests/src/internal/osal/IntTestMutex.cpp b/tests/src/fsfw/tests/internal/osal/IntTestMutex.cpp similarity index 100% rename from tests/src/internal/osal/IntTestMutex.cpp rename to tests/src/fsfw/tests/internal/osal/IntTestMutex.cpp diff --git a/tests/inc/fsfw/tests/internal/osal/IntTestMutex.h b/tests/src/fsfw/tests/internal/osal/IntTestMutex.h similarity index 100% rename from tests/inc/fsfw/tests/internal/osal/IntTestMutex.h rename to tests/src/fsfw/tests/internal/osal/IntTestMutex.h diff --git a/tests/src/internal/osal/IntTestSemaphore.cpp b/tests/src/fsfw/tests/internal/osal/IntTestSemaphore.cpp similarity index 100% rename from tests/src/internal/osal/IntTestSemaphore.cpp rename to tests/src/fsfw/tests/internal/osal/IntTestSemaphore.cpp diff --git a/tests/inc/fsfw/tests/internal/osal/IntTestSemaphore.h b/tests/src/fsfw/tests/internal/osal/IntTestSemaphore.h similarity index 100% rename from tests/inc/fsfw/tests/internal/osal/IntTestSemaphore.h rename to tests/src/fsfw/tests/internal/osal/IntTestSemaphore.h diff --git a/tests/src/internal/serialize/CMakeLists.txt b/tests/src/fsfw/tests/internal/serialize/CMakeLists.txt similarity index 100% rename from tests/src/internal/serialize/CMakeLists.txt rename to tests/src/fsfw/tests/internal/serialize/CMakeLists.txt diff --git a/tests/src/internal/serialize/IntTestSerialization.cpp b/tests/src/fsfw/tests/internal/serialize/IntTestSerialization.cpp similarity index 100% rename from tests/src/internal/serialize/IntTestSerialization.cpp rename to tests/src/fsfw/tests/internal/serialize/IntTestSerialization.cpp diff --git a/tests/inc/fsfw/tests/internal/serialize/IntTestSerialization.h b/tests/src/fsfw/tests/internal/serialize/IntTestSerialization.h similarity index 100% rename from tests/inc/fsfw/tests/internal/serialize/IntTestSerialization.h rename to tests/src/fsfw/tests/internal/serialize/IntTestSerialization.h diff --git a/tests/src/tests/CMakeLists.txt b/tests/src/fsfw/tests/unit/CMakeLists.txt similarity index 72% rename from tests/src/tests/CMakeLists.txt rename to tests/src/fsfw/tests/unit/CMakeLists.txt index 2f3d9f70f..255063f3a 100644 --- a/tests/src/tests/CMakeLists.txt +++ b/tests/src/fsfw/tests/unit/CMakeLists.txt @@ -4,3 +4,5 @@ add_subdirectory(osal) add_subdirectory(serialize) add_subdirectory(datapoollocal) add_subdirectory(storagemanager) +add_subdirectory(globalfunctions) +add_subdirectory(tmtcpacket) diff --git a/tests/src/tests/action/CMakeLists.txt b/tests/src/fsfw/tests/unit/action/CMakeLists.txt similarity index 100% rename from tests/src/tests/action/CMakeLists.txt rename to tests/src/fsfw/tests/unit/action/CMakeLists.txt diff --git a/tests/src/tests/action/TestActionHelper.cpp b/tests/src/fsfw/tests/unit/action/TestActionHelper.cpp similarity index 100% rename from tests/src/tests/action/TestActionHelper.cpp rename to tests/src/fsfw/tests/unit/action/TestActionHelper.cpp diff --git a/tests/src/tests/action/TestActionHelper.h b/tests/src/fsfw/tests/unit/action/TestActionHelper.h similarity index 100% rename from tests/src/tests/action/TestActionHelper.h rename to tests/src/fsfw/tests/unit/action/TestActionHelper.h diff --git a/tests/src/tests/container/CMakeLists.txt b/tests/src/fsfw/tests/unit/container/CMakeLists.txt similarity index 100% rename from tests/src/tests/container/CMakeLists.txt rename to tests/src/fsfw/tests/unit/container/CMakeLists.txt diff --git a/tests/src/tests/container/RingBufferTest.cpp b/tests/src/fsfw/tests/unit/container/RingBufferTest.cpp similarity index 100% rename from tests/src/tests/container/RingBufferTest.cpp rename to tests/src/fsfw/tests/unit/container/RingBufferTest.cpp diff --git a/tests/src/tests/container/TestArrayList.cpp b/tests/src/fsfw/tests/unit/container/TestArrayList.cpp similarity index 100% rename from tests/src/tests/container/TestArrayList.cpp rename to tests/src/fsfw/tests/unit/container/TestArrayList.cpp diff --git a/tests/src/tests/container/TestDynamicFifo.cpp b/tests/src/fsfw/tests/unit/container/TestDynamicFifo.cpp similarity index 100% rename from tests/src/tests/container/TestDynamicFifo.cpp rename to tests/src/fsfw/tests/unit/container/TestDynamicFifo.cpp diff --git a/tests/src/tests/container/TestFifo.cpp b/tests/src/fsfw/tests/unit/container/TestFifo.cpp similarity index 100% rename from tests/src/tests/container/TestFifo.cpp rename to tests/src/fsfw/tests/unit/container/TestFifo.cpp diff --git a/tests/src/tests/container/TestFixedArrayList.cpp b/tests/src/fsfw/tests/unit/container/TestFixedArrayList.cpp similarity index 100% rename from tests/src/tests/container/TestFixedArrayList.cpp rename to tests/src/fsfw/tests/unit/container/TestFixedArrayList.cpp diff --git a/tests/src/tests/container/TestFixedMap.cpp b/tests/src/fsfw/tests/unit/container/TestFixedMap.cpp similarity index 100% rename from tests/src/tests/container/TestFixedMap.cpp rename to tests/src/fsfw/tests/unit/container/TestFixedMap.cpp diff --git a/tests/src/tests/container/TestFixedOrderedMultimap.cpp b/tests/src/fsfw/tests/unit/container/TestFixedOrderedMultimap.cpp similarity index 100% rename from tests/src/tests/container/TestFixedOrderedMultimap.cpp rename to tests/src/fsfw/tests/unit/container/TestFixedOrderedMultimap.cpp diff --git a/tests/src/tests/container/TestPlacementFactory.cpp b/tests/src/fsfw/tests/unit/container/TestPlacementFactory.cpp similarity index 100% rename from tests/src/tests/container/TestPlacementFactory.cpp rename to tests/src/fsfw/tests/unit/container/TestPlacementFactory.cpp diff --git a/tests/src/tests/datapoollocal/CMakeLists.txt b/tests/src/fsfw/tests/unit/datapoollocal/CMakeLists.txt similarity index 100% rename from tests/src/tests/datapoollocal/CMakeLists.txt rename to tests/src/fsfw/tests/unit/datapoollocal/CMakeLists.txt diff --git a/tests/src/tests/datapoollocal/DataSetTest.cpp b/tests/src/fsfw/tests/unit/datapoollocal/DataSetTest.cpp similarity index 100% rename from tests/src/tests/datapoollocal/DataSetTest.cpp rename to tests/src/fsfw/tests/unit/datapoollocal/DataSetTest.cpp diff --git a/tests/src/tests/datapoollocal/LocalPoolManagerTest.cpp b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolManagerTest.cpp similarity index 100% rename from tests/src/tests/datapoollocal/LocalPoolManagerTest.cpp rename to tests/src/fsfw/tests/unit/datapoollocal/LocalPoolManagerTest.cpp diff --git a/tests/src/tests/datapoollocal/LocalPoolOwnerBase.cpp b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.cpp similarity index 100% rename from tests/src/tests/datapoollocal/LocalPoolOwnerBase.cpp rename to tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.cpp diff --git a/tests/src/tests/datapoollocal/LocalPoolOwnerBase.h b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h similarity index 100% rename from tests/src/tests/datapoollocal/LocalPoolOwnerBase.h rename to tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h diff --git a/tests/src/tests/datapoollocal/LocalPoolVariableTest.cpp b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVariableTest.cpp similarity index 100% rename from tests/src/tests/datapoollocal/LocalPoolVariableTest.cpp rename to tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVariableTest.cpp diff --git a/tests/src/tests/datapoollocal/LocalPoolVectorTest.cpp b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVectorTest.cpp similarity index 100% rename from tests/src/tests/datapoollocal/LocalPoolVectorTest.cpp rename to tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVectorTest.cpp diff --git a/tests/src/tests/globalfunctions/CMakeLists.txt b/tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt similarity index 100% rename from tests/src/tests/globalfunctions/CMakeLists.txt rename to tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt diff --git a/tests/src/tests/mocks/HkReceiverMock.h b/tests/src/fsfw/tests/unit/mocks/HkReceiverMock.h similarity index 100% rename from tests/src/tests/mocks/HkReceiverMock.h rename to tests/src/fsfw/tests/unit/mocks/HkReceiverMock.h diff --git a/tests/src/tests/mocks/MessageQueueMockBase.h b/tests/src/fsfw/tests/unit/mocks/MessageQueueMockBase.h similarity index 100% rename from tests/src/tests/mocks/MessageQueueMockBase.h rename to tests/src/fsfw/tests/unit/mocks/MessageQueueMockBase.h diff --git a/tests/src/tests/osal/CMakeLists.txt b/tests/src/fsfw/tests/unit/osal/CMakeLists.txt similarity index 100% rename from tests/src/tests/osal/CMakeLists.txt rename to tests/src/fsfw/tests/unit/osal/CMakeLists.txt diff --git a/tests/src/tests/osal/TestMessageQueue.cpp b/tests/src/fsfw/tests/unit/osal/TestMessageQueue.cpp similarity index 100% rename from tests/src/tests/osal/TestMessageQueue.cpp rename to tests/src/fsfw/tests/unit/osal/TestMessageQueue.cpp diff --git a/tests/src/tests/osal/TestSemaphore.cpp b/tests/src/fsfw/tests/unit/osal/TestSemaphore.cpp similarity index 100% rename from tests/src/tests/osal/TestSemaphore.cpp rename to tests/src/fsfw/tests/unit/osal/TestSemaphore.cpp diff --git a/tests/src/tests/serialize/CMakeLists.txt b/tests/src/fsfw/tests/unit/serialize/CMakeLists.txt similarity index 100% rename from tests/src/tests/serialize/CMakeLists.txt rename to tests/src/fsfw/tests/unit/serialize/CMakeLists.txt diff --git a/tests/src/tests/serialize/TestSerialBufferAdapter.cpp b/tests/src/fsfw/tests/unit/serialize/TestSerialBufferAdapter.cpp similarity index 100% rename from tests/src/tests/serialize/TestSerialBufferAdapter.cpp rename to tests/src/fsfw/tests/unit/serialize/TestSerialBufferAdapter.cpp diff --git a/tests/src/tests/serialize/TestSerialLinkedPacket.cpp b/tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.cpp similarity index 100% rename from tests/src/tests/serialize/TestSerialLinkedPacket.cpp rename to tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.cpp diff --git a/tests/src/tests/serialize/TestSerialLinkedPacket.h b/tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.h similarity index 100% rename from tests/src/tests/serialize/TestSerialLinkedPacket.h rename to tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.h diff --git a/tests/src/tests/serialize/TestSerialization.cpp b/tests/src/fsfw/tests/unit/serialize/TestSerialization.cpp similarity index 100% rename from tests/src/tests/serialize/TestSerialization.cpp rename to tests/src/fsfw/tests/unit/serialize/TestSerialization.cpp diff --git a/tests/src/tests/storagemanager/CMakeLists.txt b/tests/src/fsfw/tests/unit/storagemanager/CMakeLists.txt similarity index 100% rename from tests/src/tests/storagemanager/CMakeLists.txt rename to tests/src/fsfw/tests/unit/storagemanager/CMakeLists.txt diff --git a/tests/src/tests/storagemanager/TestNewAccessor.cpp b/tests/src/fsfw/tests/unit/storagemanager/TestNewAccessor.cpp similarity index 100% rename from tests/src/tests/storagemanager/TestNewAccessor.cpp rename to tests/src/fsfw/tests/unit/storagemanager/TestNewAccessor.cpp diff --git a/tests/src/tests/storagemanager/TestPool.cpp b/tests/src/fsfw/tests/unit/storagemanager/TestPool.cpp similarity index 100% rename from tests/src/tests/storagemanager/TestPool.cpp rename to tests/src/fsfw/tests/unit/storagemanager/TestPool.cpp diff --git a/tests/src/tests/tmtcpacket/CMakeLists.txt b/tests/src/fsfw/tests/unit/tmtcpacket/CMakeLists.txt similarity index 100% rename from tests/src/tests/tmtcpacket/CMakeLists.txt rename to tests/src/fsfw/tests/unit/tmtcpacket/CMakeLists.txt diff --git a/tests/src/tests/tmtcpacket/PusTmTest.cpp b/tests/src/fsfw/tests/unit/tmtcpacket/PusTmTest.cpp similarity index 100% rename from tests/src/tests/tmtcpacket/PusTmTest.cpp rename to tests/src/fsfw/tests/unit/tmtcpacket/PusTmTest.cpp From d4f5c31881745f406f50a4fcb50a383e4e5c742c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 18:26:54 +0200 Subject: [PATCH 051/136] optional module handling complete --- CMakeLists.txt | 16 ++++++++++---- src/CMakeLists.txt | 13 ++++++++++- src/fsfw/CMakeLists.txt | 22 ++++++++++++++----- src/fsfw/FSFW.h | 7 ------ src/fsfw/FSFW.h.in | 12 ++++++++++ .../coordinates/CoordinateTransformations.h | 1 + src/fsfw/coordinates/Jgm3Model.h | 11 +++++----- src/fsfw/coordinates/Sgp4Propagator.h | 2 ++ src/fsfw/coordinates/coordinatesConf.h | 11 ++++++++++ src/fsfw/datalinklayer/BCFrame.h | 1 + src/fsfw/datalinklayer/CCSDSReturnValuesIF.h | 3 ++- src/fsfw/datalinklayer/Clcw.h | 2 ++ src/fsfw/datalinklayer/DataLinkLayer.h | 4 +++- src/fsfw/datalinklayer/Farm1StateIF.h | 2 ++ src/fsfw/datalinklayer/Farm1StateLockout.h | 1 + src/fsfw/datalinklayer/Farm1StateOpen.h | 1 + src/fsfw/datalinklayer/Farm1StateWait.h | 1 + src/fsfw/datalinklayer/MapPacketExtraction.h | 1 + .../datalinklayer/MapPacketExtractionIF.h | 1 + src/fsfw/datalinklayer/TcTransferFrame.h | 2 ++ src/fsfw/datalinklayer/TcTransferFrameLocal.h | 1 + .../datalinklayer/VirtualChannelReception.h | 2 ++ .../datalinklayer/VirtualChannelReceptionIF.h | 3 ++- src/fsfw/datalinklayer/dllConf.h | 11 ++++++++++ src/fsfw/ipc/CommandMessageCleaner.cpp | 3 +++ src/fsfw/monitoring/AbsLimitMonitor.h | 1 + src/fsfw/monitoring/HasMonitorsIF.h | 1 + src/fsfw/monitoring/LimitMonitor.h | 1 + src/fsfw/monitoring/LimitViolationReporter.h | 1 + src/fsfw/monitoring/MonitorBase.h | 1 + src/fsfw/monitoring/MonitorReporter.h | 1 + src/fsfw/monitoring/MonitoringIF.h | 1 + src/fsfw/monitoring/MonitoringMessage.h | 5 +++-- .../monitoring/MonitoringMessageContent.h | 1 + .../monitoring/ReceivesMonitoringReportsIF.h | 3 ++- src/fsfw/monitoring/TriplexMonitor.h | 1 + src/fsfw/monitoring/TwoValueLimitMonitor.h | 1 + src/fsfw/monitoring/monitoringConf.h | 11 ++++++++++ src/fsfw/objectmanager.h | 8 +++++++ src/fsfw/rmap/RMAP.h | 1 + src/fsfw/rmap/RMAPChannelIF.h | 3 ++- src/fsfw/rmap/RMAPCookie.h | 1 + src/fsfw/rmap/RmapDeviceCommunicationIF.h | 1 + src/fsfw/rmap/rmapConf.h | 10 +++++++++ src/fsfw/rmap/rmapStructs.h | 2 ++ src/fsfw/serviceinterface.h | 6 +++++ src/fsfw/tcdistribution/TcPacketCheck.h | 6 ++--- src/fsfw/tmstorage/TmStoreBackendIF.h | 12 +++++----- src/fsfw/tmstorage/TmStoreFrontendIF.h | 5 +++-- src/fsfw/tmstorage/TmStoreMessage.cpp | 2 +- src/fsfw/tmstorage/TmStoreMessage.h | 7 +++--- src/fsfw/tmstorage/TmStorePackets.h | 17 +++++++------- src/fsfw/tmstorage/tmStorageConf.h | 11 ++++++++++ src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h | 4 ++-- src/fsfw/tmtcpacket/pus/tm.h | 2 +- 55 files changed, 207 insertions(+), 54 deletions(-) delete mode 100644 src/fsfw/FSFW.h create mode 100644 src/fsfw/FSFW.h.in create mode 100644 src/fsfw/coordinates/coordinatesConf.h create mode 100644 src/fsfw/datalinklayer/dllConf.h create mode 100644 src/fsfw/monitoring/monitoringConf.h create mode 100644 src/fsfw/objectmanager.h create mode 100644 src/fsfw/rmap/rmapConf.h create mode 100644 src/fsfw/serviceinterface.h create mode 100644 src/fsfw/tmstorage/tmStorageConf.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ea8c9b1c..c75d711fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.13) option(FSFW_GENERATE_SECTIONS "Generate function and data sections. Required to remove unused code" ON ) - if(FSFW_GENERATE_SECTIONS) option(FSFW_REMOVE_UNUSED_CODE "Remove unused code" ON) endif() @@ -11,9 +10,18 @@ endif() option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) # Options to exclude parts of the FSFW from compilation. option(FSFW_ADD_INTERNAL_TESTS "Add internal unit tests" ON) -option(FSFW_USE_RMAP "Compile with RMAP" ON) -option(FSFW_USE_DATALINKLAYER "Compile with Data Link Layer" ON) -option(FSFW_ADD_SPG4_PROPAGATOR "Add SPG4 propagator code" ON) + +# Optional sources +option(FSFW_ADD_PUS "Compile with PUS sources" ON) +option(FSFW_ADD_MONITORING "Compile with monitoring components" ON) + +option(FSFW_ADD_RMAP "Compile with RMAP" OFF) +option(FSFW_ADD_DATALINKLAYER "Compile with Data Link Layer" OFF) +option(FSFW_ADD_COORDINATES "Compile with coordinate components" OFF) +option(FSFW_ADD_TMSTORAGE "Compile with tm storage components" OFF) + +# Contrib sources +option(FSFW_ADD_SPG4_PROPAGATOR "Add SPG4 propagator code" OFF) set(LIB_FSFW_NAME fsfw) add_library(${LIB_FSFW_NAME}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 81ecb6e40..5a8f139ba 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,4 +6,15 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) -add_subdirectory(fsfw) \ No newline at end of file +add_subdirectory(fsfw) + +# Configure File + +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_BINARY_DIR} +) +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_BINARY_DIR} +) + +configure_file(fsfw/FSFW.h.in fsfw/FSFW.h) diff --git a/src/fsfw/CMakeLists.txt b/src/fsfw/CMakeLists.txt index 2944f2b6b..7c665e28a 100644 --- a/src/fsfw/CMakeLists.txt +++ b/src/fsfw/CMakeLists.txt @@ -31,12 +31,24 @@ add_subdirectory(tmtcservices) # Optional -add_subdirectory(coordinates) -add_subdirectory(datalinklayer) +if(FSFW_ADD_MONITORING) add_subdirectory(monitoring) -add_subdirectory(pus) -add_subdirectory(rmap) -add_subdirectory(tmstorage) +endif() +if(FSFW_ADD_PUS) + add_subdirectory(pus) +endif() +if(FSFW_ADD_TMSTORAGE) + add_subdirectory(tmstorage) +endif() +if(FSFW_ADD_COORDINATES) + add_subdirectory(coordinates) +endif() +if(FSFW_ADD_RMAP) + add_subdirectory(rmap) +endif() +if(FSFW_ADD_DATALINKLAYER) + add_subdirectory(datalinklayer) +endif() # OSAL diff --git a/src/fsfw/FSFW.h b/src/fsfw/FSFW.h deleted file mode 100644 index df06ff3df..000000000 --- a/src/fsfw/FSFW.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef FSFW_FSFW_H_ -#define FSFW_FSFW_H_ - -#include "FSFWConfig.h" - - -#endif /* FSFW_FSFW_H_ */ diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in new file mode 100644 index 000000000..c644f0b7c --- /dev/null +++ b/src/fsfw/FSFW.h.in @@ -0,0 +1,12 @@ +#ifndef FSFW_FSFW_H_ +#define FSFW_FSFW_H_ + +#include "FSFWConfig.h" + +#cmakedefine FSFW_ADD_RMAP +#cmakedefine FSFW_ADD_DATALINKLAYER +#cmakedefine FSFW_ADD_TMSTORAGE +#cmakedefine FSFW_ADD_COORDINATES +#cmakedefine FSFW_ADD_PUS + +#endif /* FSFW_FSFW_H_ */ diff --git a/src/fsfw/coordinates/CoordinateTransformations.h b/src/fsfw/coordinates/CoordinateTransformations.h index a22e0bd4d..ddc715d18 100644 --- a/src/fsfw/coordinates/CoordinateTransformations.h +++ b/src/fsfw/coordinates/CoordinateTransformations.h @@ -1,6 +1,7 @@ #ifndef COORDINATETRANSFORMATIONS_H_ #define COORDINATETRANSFORMATIONS_H_ +#include "coordinatesConf.h" #include "fsfw/timemanager/Clock.h" #include diff --git a/src/fsfw/coordinates/Jgm3Model.h b/src/fsfw/coordinates/Jgm3Model.h index 884ed1418..0eeaf08f4 100644 --- a/src/fsfw/coordinates/Jgm3Model.h +++ b/src/fsfw/coordinates/Jgm3Model.h @@ -1,13 +1,14 @@ #ifndef FRAMEWORK_COORDINATES_JGM3MODEL_H_ #define FRAMEWORK_COORDINATES_JGM3MODEL_H_ -#include +#include "coordinatesConf.h" #include "CoordinateTransformations.h" -#include "../globalfunctions/math/VectorOperations.h" -#include "../globalfunctions/timevalOperations.h" -#include "../globalfunctions/constants.h" -#include +#include "fsfw/globalfunctions/math/VectorOperations.h" +#include "fsfw/globalfunctions/timevalOperations.h" +#include "fsfw/globalfunctions/constants.h" +#include +#include template class Jgm3Model { diff --git a/src/fsfw/coordinates/Sgp4Propagator.h b/src/fsfw/coordinates/Sgp4Propagator.h index 53c5d3e52..4f29509fb 100644 --- a/src/fsfw/coordinates/Sgp4Propagator.h +++ b/src/fsfw/coordinates/Sgp4Propagator.h @@ -1,7 +1,9 @@ #ifndef SGP4PROPAGATOR_H_ #define SGP4PROPAGATOR_H_ +#include "coordinatesConf.h" #include "fsfw/platform.h" + #ifndef PLATFORM_WIN #include #endif diff --git a/src/fsfw/coordinates/coordinatesConf.h b/src/fsfw/coordinates/coordinatesConf.h new file mode 100644 index 000000000..ce798e6f1 --- /dev/null +++ b/src/fsfw/coordinates/coordinatesConf.h @@ -0,0 +1,11 @@ +#ifndef FSFW_SRC_FSFW_COORDINATES_COORDINATESCONF_H_ +#define FSFW_SRC_FSFW_COORDINATES_COORDINATESCONF_H_ + +#include "fsfw/FSFW.h" + +#ifndef FSFW_ADD_COORDINATES +#warning Coordinates files were included but compilation was \ + not enabled with FSFW_ADD_COORDINATES +#endif + +#endif /* FSFW_SRC_FSFW_COORDINATES_COORDINATESCONF_H_ */ diff --git a/src/fsfw/datalinklayer/BCFrame.h b/src/fsfw/datalinklayer/BCFrame.h index b7795556d..9cedd41b2 100644 --- a/src/fsfw/datalinklayer/BCFrame.h +++ b/src/fsfw/datalinklayer/BCFrame.h @@ -8,6 +8,7 @@ #ifndef BCFRAME_H_ #define BCFRAME_H_ +#include "dllConf.h" #include "CCSDSReturnValuesIF.h" /** diff --git a/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h b/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h index 805b6969f..a31f9ced1 100644 --- a/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h +++ b/src/fsfw/datalinklayer/CCSDSReturnValuesIF.h @@ -8,7 +8,8 @@ #ifndef CCSDSRETURNVALUESIF_H_ #define CCSDSRETURNVALUESIF_H_ -#include "../returnvalues/HasReturnvaluesIF.h" +#include "dllConf.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" /** * This is a helper class to collect special return values that come up during CCSDS Handling. * @ingroup ccsds_handling diff --git a/src/fsfw/datalinklayer/Clcw.h b/src/fsfw/datalinklayer/Clcw.h index f6c77230c..aa1ee35bb 100644 --- a/src/fsfw/datalinklayer/Clcw.h +++ b/src/fsfw/datalinklayer/Clcw.h @@ -1,7 +1,9 @@ #ifndef CLCW_H_ #define CLCW_H_ +#include "dllConf.h" #include "ClcwIF.h" + /** * Small helper method to handle the Clcw values. * It has a content struct that manages the register and can be set externally. diff --git a/src/fsfw/datalinklayer/DataLinkLayer.h b/src/fsfw/datalinklayer/DataLinkLayer.h index aa203785b..9c2a2952b 100644 --- a/src/fsfw/datalinklayer/DataLinkLayer.h +++ b/src/fsfw/datalinklayer/DataLinkLayer.h @@ -1,11 +1,13 @@ #ifndef DATALINKLAYER_H_ #define DATALINKLAYER_H_ +#include "dllConf.h" #include "CCSDSReturnValuesIF.h" #include "ClcwIF.h" #include "TcTransferFrame.h" #include "VirtualChannelReceptionIF.h" -#include "../events/Event.h" +#include "fsfw/events/Event.h" + #include diff --git a/src/fsfw/datalinklayer/Farm1StateIF.h b/src/fsfw/datalinklayer/Farm1StateIF.h index 71794d75e..7e1ba2ec5 100644 --- a/src/fsfw/datalinklayer/Farm1StateIF.h +++ b/src/fsfw/datalinklayer/Farm1StateIF.h @@ -8,7 +8,9 @@ #ifndef FARM1STATEIF_H_ #define FARM1STATEIF_H_ +#include "dllConf.h" #include "CCSDSReturnValuesIF.h" + class VirtualChannelReception; class TcTransferFrame; class ClcwIF; diff --git a/src/fsfw/datalinklayer/Farm1StateLockout.h b/src/fsfw/datalinklayer/Farm1StateLockout.h index 28abf4e69..a039c89b6 100644 --- a/src/fsfw/datalinklayer/Farm1StateLockout.h +++ b/src/fsfw/datalinklayer/Farm1StateLockout.h @@ -1,6 +1,7 @@ #ifndef FARM1STATELOCKOUT_H_ #define FARM1STATELOCKOUT_H_ +#include "dllConf.h" #include "Farm1StateIF.h" /** diff --git a/src/fsfw/datalinklayer/Farm1StateOpen.h b/src/fsfw/datalinklayer/Farm1StateOpen.h index 3b3a26048..c5506e7a7 100644 --- a/src/fsfw/datalinklayer/Farm1StateOpen.h +++ b/src/fsfw/datalinklayer/Farm1StateOpen.h @@ -8,6 +8,7 @@ #ifndef FARM1STATEOPEN_H_ #define FARM1STATEOPEN_H_ +#include "dllConf.h" #include "Farm1StateIF.h" /** diff --git a/src/fsfw/datalinklayer/Farm1StateWait.h b/src/fsfw/datalinklayer/Farm1StateWait.h index 877c36c26..76704fdb3 100644 --- a/src/fsfw/datalinklayer/Farm1StateWait.h +++ b/src/fsfw/datalinklayer/Farm1StateWait.h @@ -8,6 +8,7 @@ #ifndef FARM1STATEWAIT_H_ #define FARM1STATEWAIT_H_ +#include "dllConf.h" #include "Farm1StateIF.h" /** diff --git a/src/fsfw/datalinklayer/MapPacketExtraction.h b/src/fsfw/datalinklayer/MapPacketExtraction.h index c74ab8039..30552a8e3 100644 --- a/src/fsfw/datalinklayer/MapPacketExtraction.h +++ b/src/fsfw/datalinklayer/MapPacketExtraction.h @@ -1,6 +1,7 @@ #ifndef FSFW_DATALINKLAYER_MAPPACKETEXTRACTION_H_ #define FSFW_DATALINKLAYER_MAPPACKETEXTRACTION_H_ +#include "dllConf.h" #include "MapPacketExtractionIF.h" #include "fsfw/objectmanager/ObjectManagerIF.h" #include "fsfw/returnvalues/HasReturnvaluesIF.h" diff --git a/src/fsfw/datalinklayer/MapPacketExtractionIF.h b/src/fsfw/datalinklayer/MapPacketExtractionIF.h index e29ac6660..7f8a60afa 100644 --- a/src/fsfw/datalinklayer/MapPacketExtractionIF.h +++ b/src/fsfw/datalinklayer/MapPacketExtractionIF.h @@ -8,6 +8,7 @@ #ifndef MAPPACKETEXTRACTIONIF_H_ #define MAPPACKETEXTRACTIONIF_H_ +#include "dllConf.h" #include "CCSDSReturnValuesIF.h" #include "TcTransferFrame.h" diff --git a/src/fsfw/datalinklayer/TcTransferFrame.h b/src/fsfw/datalinklayer/TcTransferFrame.h index ca96536f3..9d4f6349b 100644 --- a/src/fsfw/datalinklayer/TcTransferFrame.h +++ b/src/fsfw/datalinklayer/TcTransferFrame.h @@ -1,6 +1,8 @@ #ifndef TCTRANSFERFRAME_H_ #define TCTRANSFERFRAME_H_ +#include "dllConf.h" + #include #include diff --git a/src/fsfw/datalinklayer/TcTransferFrameLocal.h b/src/fsfw/datalinklayer/TcTransferFrameLocal.h index 487d8940b..f2bf32755 100644 --- a/src/fsfw/datalinklayer/TcTransferFrameLocal.h +++ b/src/fsfw/datalinklayer/TcTransferFrameLocal.h @@ -8,6 +8,7 @@ #ifndef TCTRANSFERFRAMELOCAL_H_ #define TCTRANSFERFRAMELOCAL_H_ +#include "dllConf.h" #include "TcTransferFrame.h" /** diff --git a/src/fsfw/datalinklayer/VirtualChannelReception.h b/src/fsfw/datalinklayer/VirtualChannelReception.h index 9b4e2987e..314e18ece 100644 --- a/src/fsfw/datalinklayer/VirtualChannelReception.h +++ b/src/fsfw/datalinklayer/VirtualChannelReception.h @@ -8,6 +8,7 @@ #ifndef VIRTUALCHANNELRECEPTION_H_ #define VIRTUALCHANNELRECEPTION_H_ +#include "dllConf.h" #include "CCSDSReturnValuesIF.h" #include "Clcw.h" #include "Farm1StateIF.h" @@ -16,6 +17,7 @@ #include "Farm1StateWait.h" #include "MapPacketExtractionIF.h" #include "VirtualChannelReceptionIF.h" + #include /** * Implementation of a TC Virtual Channel. diff --git a/src/fsfw/datalinklayer/VirtualChannelReceptionIF.h b/src/fsfw/datalinklayer/VirtualChannelReceptionIF.h index 36f60e8c4..e7a21b3c4 100644 --- a/src/fsfw/datalinklayer/VirtualChannelReceptionIF.h +++ b/src/fsfw/datalinklayer/VirtualChannelReceptionIF.h @@ -8,9 +8,10 @@ #ifndef VIRTUALCHANNELRECEPTIONIF_H_ #define VIRTUALCHANNELRECEPTIONIF_H_ +#include "dllConf.h" #include "ClcwIF.h" #include "TcTransferFrame.h" -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" /** * This is the interface for Virtual Channel reception classes. diff --git a/src/fsfw/datalinklayer/dllConf.h b/src/fsfw/datalinklayer/dllConf.h new file mode 100644 index 000000000..dce63ff04 --- /dev/null +++ b/src/fsfw/datalinklayer/dllConf.h @@ -0,0 +1,11 @@ +#ifndef FSFW_SRC_FSFW_DATALINKLAYER_DLLCONF_H_ +#define FSFW_SRC_FSFW_DATALINKLAYER_DLLCONF_H_ + +#include "fsfw/FSFW.h" + +#ifndef FSFW_ADD_DATALINKLAYER +#warning Datalinklayer files were included but compilation was \ + not enabled with FSFW_ADD_DATALINKLAYER +#endif + +#endif /* FSFW_SRC_FSFW_DATALINKLAYER_DLLCONF_H_ */ diff --git a/src/fsfw/ipc/CommandMessageCleaner.cpp b/src/fsfw/ipc/CommandMessageCleaner.cpp index ca835509c..70b7dd4b3 100644 --- a/src/fsfw/ipc/CommandMessageCleaner.cpp +++ b/src/fsfw/ipc/CommandMessageCleaner.cpp @@ -1,3 +1,4 @@ +#include "fsfw/FSFW.h" #include "fsfw/ipc/CommandMessageCleaner.h" #include "fsfw/memory/GenericFileSystemMessage.h" @@ -34,9 +35,11 @@ void CommandMessageCleaner::clearCommandMessage(CommandMessage* message) { case messagetypes::MONITORING: MonitoringMessage::clear(message); break; +#ifdef FSFW_ADD_TMSTORAGE case messagetypes::TM_STORE: TmStoreMessage::clear(message); break; +#endif case messagetypes::PARAMETER: ParameterMessage::clear(message); break; diff --git a/src/fsfw/monitoring/AbsLimitMonitor.h b/src/fsfw/monitoring/AbsLimitMonitor.h index 5feb369c0..f3bbf04c2 100644 --- a/src/fsfw/monitoring/AbsLimitMonitor.h +++ b/src/fsfw/monitoring/AbsLimitMonitor.h @@ -1,6 +1,7 @@ #ifndef FSFW_MONITORING_ABSLIMITMONITOR_H_ #define FSFW_MONITORING_ABSLIMITMONITOR_H_ +#include "monitoringConf.h" #include "MonitorBase.h" #include diff --git a/src/fsfw/monitoring/HasMonitorsIF.h b/src/fsfw/monitoring/HasMonitorsIF.h index 04f634374..205209523 100644 --- a/src/fsfw/monitoring/HasMonitorsIF.h +++ b/src/fsfw/monitoring/HasMonitorsIF.h @@ -1,6 +1,7 @@ #ifndef FSFW_MONITORING_HASMONITORSIF_H_ #define FSFW_MONITORING_HASMONITORSIF_H_ +#include "monitoringConf.h" #include "../events/EventReportingProxyIF.h" #include "../objectmanager/ObjectManagerIF.h" #include "../ipc/MessageQueueSenderIF.h" diff --git a/src/fsfw/monitoring/LimitMonitor.h b/src/fsfw/monitoring/LimitMonitor.h index cd8b8d130..2565ebaaf 100644 --- a/src/fsfw/monitoring/LimitMonitor.h +++ b/src/fsfw/monitoring/LimitMonitor.h @@ -1,6 +1,7 @@ #ifndef FRAMEWORK_MONITORING_LIMITMONITOR_H_ #define FRAMEWORK_MONITORING_LIMITMONITOR_H_ +#include "monitoringConf.h" #include "MonitorBase.h" /** diff --git a/src/fsfw/monitoring/LimitViolationReporter.h b/src/fsfw/monitoring/LimitViolationReporter.h index a71b972ff..b254e3120 100644 --- a/src/fsfw/monitoring/LimitViolationReporter.h +++ b/src/fsfw/monitoring/LimitViolationReporter.h @@ -7,6 +7,7 @@ #ifndef LIMITVIOLATIONREPORTER_H_ #define LIMITVIOLATIONREPORTER_H_ +#include "monitoringConf.h" #include "../returnvalues/HasReturnvaluesIF.h" #include "../serialize/SerializeIF.h" #include "../storagemanager/StorageManagerIF.h" diff --git a/src/fsfw/monitoring/MonitorBase.h b/src/fsfw/monitoring/MonitorBase.h index 967f0f62f..261b3eac8 100644 --- a/src/fsfw/monitoring/MonitorBase.h +++ b/src/fsfw/monitoring/MonitorBase.h @@ -1,6 +1,7 @@ #ifndef FSFW_MONITORING_MONITORBASE_H_ #define FSFW_MONITORING_MONITORBASE_H_ +#include "monitoringConf.h" #include "LimitViolationReporter.h" #include "MonitoringIF.h" #include "MonitoringMessageContent.h" diff --git a/src/fsfw/monitoring/MonitorReporter.h b/src/fsfw/monitoring/MonitorReporter.h index d155594d6..e27d0101a 100644 --- a/src/fsfw/monitoring/MonitorReporter.h +++ b/src/fsfw/monitoring/MonitorReporter.h @@ -1,6 +1,7 @@ #ifndef FSFW_MONITORING_MONITORREPORTER_H_ #define FSFW_MONITORING_MONITORREPORTER_H_ +#include "monitoringConf.h" #include "LimitViolationReporter.h" #include "MonitoringIF.h" #include "MonitoringMessageContent.h" diff --git a/src/fsfw/monitoring/MonitoringIF.h b/src/fsfw/monitoring/MonitoringIF.h index aae294753..9c35b419c 100644 --- a/src/fsfw/monitoring/MonitoringIF.h +++ b/src/fsfw/monitoring/MonitoringIF.h @@ -1,6 +1,7 @@ #ifndef FSFW_MONITORING_MONITORINGIF_H_ #define FSFW_MONITORING_MONITORINGIF_H_ +#include "monitoringConf.h" #include "MonitoringMessage.h" #include "../serialize/SerializeIF.h" diff --git a/src/fsfw/monitoring/MonitoringMessage.h b/src/fsfw/monitoring/MonitoringMessage.h index 84b027504..a625e388b 100644 --- a/src/fsfw/monitoring/MonitoringMessage.h +++ b/src/fsfw/monitoring/MonitoringMessage.h @@ -1,8 +1,9 @@ #ifndef MONITORINGMESSAGE_H_ #define MONITORINGMESSAGE_H_ -#include "../ipc/CommandMessage.h" -#include "../storagemanager/StorageManagerIF.h" +#include "monitoringConf.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/storagemanager/StorageManagerIF.h" class MonitoringMessage: public CommandMessage { public: diff --git a/src/fsfw/monitoring/MonitoringMessageContent.h b/src/fsfw/monitoring/MonitoringMessageContent.h index 1d5f9c92c..cf8c87521 100644 --- a/src/fsfw/monitoring/MonitoringMessageContent.h +++ b/src/fsfw/monitoring/MonitoringMessageContent.h @@ -1,6 +1,7 @@ #ifndef FSFW_MONITORING_MONITORINGMESSAGECONTENT_H_ #define FSFW_MONITORING_MONITORINGMESSAGECONTENT_H_ +#include "monitoringConf.h" #include "HasMonitorsIF.h" #include "MonitoringIF.h" diff --git a/src/fsfw/monitoring/ReceivesMonitoringReportsIF.h b/src/fsfw/monitoring/ReceivesMonitoringReportsIF.h index fb37c16c4..6c126c84b 100644 --- a/src/fsfw/monitoring/ReceivesMonitoringReportsIF.h +++ b/src/fsfw/monitoring/ReceivesMonitoringReportsIF.h @@ -1,7 +1,8 @@ #ifndef RECEIVESMONITORINGREPORTSIF_H_ #define RECEIVESMONITORINGREPORTSIF_H_ -#include "../ipc/MessageQueueSenderIF.h" +#include "monitoringConf.h" +#include "fsfw/ipc/messageQueueDefinitions.h" class ReceivesMonitoringReportsIF { public: diff --git a/src/fsfw/monitoring/TriplexMonitor.h b/src/fsfw/monitoring/TriplexMonitor.h index 295a61749..ff995b5dd 100644 --- a/src/fsfw/monitoring/TriplexMonitor.h +++ b/src/fsfw/monitoring/TriplexMonitor.h @@ -1,6 +1,7 @@ #ifndef FRAMEWORK_MONITORING_TRIPLEXMONITOR_H_ #define FRAMEWORK_MONITORING_TRIPLEXMONITOR_H_ +#include "monitoringConf.h" #include "../datapool/DataSet.h" #include "../datapool/PIDReaderList.h" #include "../health/HealthTableIF.h" diff --git a/src/fsfw/monitoring/TwoValueLimitMonitor.h b/src/fsfw/monitoring/TwoValueLimitMonitor.h index e690cdae2..cd34391cd 100644 --- a/src/fsfw/monitoring/TwoValueLimitMonitor.h +++ b/src/fsfw/monitoring/TwoValueLimitMonitor.h @@ -1,6 +1,7 @@ #ifndef FRAMEWORK_MONITORING_TWOVALUELIMITMONITOR_H_ #define FRAMEWORK_MONITORING_TWOVALUELIMITMONITOR_H_ +#include "monitoringConf.h" #include "LimitMonitor.h" template diff --git a/src/fsfw/monitoring/monitoringConf.h b/src/fsfw/monitoring/monitoringConf.h new file mode 100644 index 000000000..25cac8db4 --- /dev/null +++ b/src/fsfw/monitoring/monitoringConf.h @@ -0,0 +1,11 @@ +#ifndef FSFW_MONITORING_MONITORINGCONF_H_ +#define FSFW_MONITORING_MONITORINGCONF_H_ + +#include "fsfw/FSFW.h" + +#ifndef FSFW_ADD_MONITORING +#warning Monitoring files were included but compilation was \ + not enabled with FSFW_ADD_MONITORING +#endif + +#endif /* FSFW_MONITORING_MONITORINGCONF_H_ */ diff --git a/src/fsfw/objectmanager.h b/src/fsfw/objectmanager.h new file mode 100644 index 000000000..50a90c9fa --- /dev/null +++ b/src/fsfw/objectmanager.h @@ -0,0 +1,8 @@ +#ifndef FSFW_SRC_FSFW_OBJECTMANAGER_H_ +#define FSFW_SRC_FSFW_OBJECTMANAGER_H_ + +#include "objectmanager/ObjectManager.h" +#include "objectmanager/SystemObject.h" +#include "objectmanager/frameworkObjects.h" + +#endif /* FSFW_SRC_FSFW_OBJECTMANAGER_H_ */ diff --git a/src/fsfw/rmap/RMAP.h b/src/fsfw/rmap/RMAP.h index 7fa0021d8..ff310db08 100644 --- a/src/fsfw/rmap/RMAP.h +++ b/src/fsfw/rmap/RMAP.h @@ -1,6 +1,7 @@ #ifndef FSFW_RMAP_RMAP_H_ #define FSFW_RMAP_RMAP_H_ +#include "rmapConf.h" #include "fsfw/returnvalues/HasReturnvaluesIF.h" #include "fsfw/rmap/RMAPCookie.h" diff --git a/src/fsfw/rmap/RMAPChannelIF.h b/src/fsfw/rmap/RMAPChannelIF.h index 0aa809c53..7fbda3482 100644 --- a/src/fsfw/rmap/RMAPChannelIF.h +++ b/src/fsfw/rmap/RMAPChannelIF.h @@ -1,8 +1,9 @@ #ifndef FSFW_RMAP_RMAPCHANNELIF_H_ #define FSFW_RMAP_RMAPCHANNELIF_H_ +#include "rmapConf.h" #include "RMAPCookie.h" -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" #include class RMAPChannelIF { diff --git a/src/fsfw/rmap/RMAPCookie.h b/src/fsfw/rmap/RMAPCookie.h index 97aaa6d05..032e5a468 100644 --- a/src/fsfw/rmap/RMAPCookie.h +++ b/src/fsfw/rmap/RMAPCookie.h @@ -1,6 +1,7 @@ #ifndef FSFW_RMAP_RMAPCOOKIE_H_ #define FSFW_RMAP_RMAPCOOKIE_H_ +#include "rmapConf.h" #include "rmapStructs.h" #include "fsfw/devicehandlers/CookieIF.h" #include diff --git a/src/fsfw/rmap/RmapDeviceCommunicationIF.h b/src/fsfw/rmap/RmapDeviceCommunicationIF.h index 3714b7e75..36baf87b1 100644 --- a/src/fsfw/rmap/RmapDeviceCommunicationIF.h +++ b/src/fsfw/rmap/RmapDeviceCommunicationIF.h @@ -1,6 +1,7 @@ #ifndef FSFW_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_ #define FSFW_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_ +#include "rmapConf.h" #include "fsfw/devicehandlers/DeviceCommunicationIF.h" /** diff --git a/src/fsfw/rmap/rmapConf.h b/src/fsfw/rmap/rmapConf.h new file mode 100644 index 000000000..c4fa1e549 --- /dev/null +++ b/src/fsfw/rmap/rmapConf.h @@ -0,0 +1,10 @@ +#ifndef FSFW_SRC_FSFW_RMAP_RAMCONF_H_ +#define FSFW_SRC_FSFW_RMAP_RAMCONF_H_ + +#include "fsfw/FSFW.h" + +#ifndef FSFW_ADD_RMAP +#warning RMAP was included but compilation was not enabled with FSFW_ADD_RMAP +#endif + +#endif /* FSFW_SRC_FSFW_RMAP_RAMCONF_H_ */ diff --git a/src/fsfw/rmap/rmapStructs.h b/src/fsfw/rmap/rmapStructs.h index 11d8bb85b..de8b3a592 100644 --- a/src/fsfw/rmap/rmapStructs.h +++ b/src/fsfw/rmap/rmapStructs.h @@ -1,6 +1,8 @@ #ifndef FSFW_RMAP_RMAPSTRUCTS_H_ #define FSFW_RMAP_RMAPSTRUCTS_H_ +#include "rmapConf.h" + #include //SHOULDDO: having the defines within a namespace would be nice. Problem are the defines referencing the previous define, eg RMAP_COMMAND_WRITE diff --git a/src/fsfw/serviceinterface.h b/src/fsfw/serviceinterface.h new file mode 100644 index 000000000..2e9a0b7e4 --- /dev/null +++ b/src/fsfw/serviceinterface.h @@ -0,0 +1,6 @@ +#ifndef FSFW_SRC_FSFW_SERVICEINTERFACE_H_ +#define FSFW_SRC_FSFW_SERVICEINTERFACE_H_ + +#include "serviceinterface/ServiceInterface.h" + +#endif /* FSFW_SRC_FSFW_SERVICEINTERFACE_H_ */ diff --git a/src/fsfw/tcdistribution/TcPacketCheck.h b/src/fsfw/tcdistribution/TcPacketCheck.h index 7106b7e41..519943c7f 100644 --- a/src/fsfw/tcdistribution/TcPacketCheck.h +++ b/src/fsfw/tcdistribution/TcPacketCheck.h @@ -1,9 +1,9 @@ #ifndef FSFW_TCDISTRIBUTION_TCPACKETCHECK_H_ #define FSFW_TCDISTRIBUTION_TCPACKETCHECK_H_ -#include "../FSFW.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../tmtcservices/PusVerificationReport.h" +#include "fsfw/FSFW.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/tmtcservices/PusVerificationReport.h" class TcPacketStoredBase; diff --git a/src/fsfw/tmstorage/TmStoreBackendIF.h b/src/fsfw/tmstorage/TmStoreBackendIF.h index 4ae776095..4183334b9 100644 --- a/src/fsfw/tmstorage/TmStoreBackendIF.h +++ b/src/fsfw/tmstorage/TmStoreBackendIF.h @@ -1,11 +1,13 @@ #ifndef FSFW_TMTCSERVICES_TMSTOREBACKENDIF_H_ #define FSFW_TMTCSERVICES_TMSTOREBACKENDIF_H_ -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../objectmanager/SystemObjectIF.h" -#include "../parameters/HasParametersIF.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../timemanager/Clock.h" +#include "tmStorageConf.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/parameters/HasParametersIF.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/timemanager/Clock.h" + class TmPacketInformation; class TmPacketMinimal; class SpacePacketBase; diff --git a/src/fsfw/tmstorage/TmStoreFrontendIF.h b/src/fsfw/tmstorage/TmStoreFrontendIF.h index beee7ede0..11b2a6863 100644 --- a/src/fsfw/tmstorage/TmStoreFrontendIF.h +++ b/src/fsfw/tmstorage/TmStoreFrontendIF.h @@ -1,9 +1,10 @@ #ifndef FSFW_TMTCSERVICES_TMSTOREFRONTENDIF_H_ #define FSFW_TMTCSERVICES_TMSTOREFRONTENDIF_H_ +#include "tmStorageConf.h" #include "TmStorePackets.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../ipc/MessageQueueSenderIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/ipc/MessageQueueSenderIF.h" class TmPacketMinimal; class SpacePacketBase; diff --git a/src/fsfw/tmstorage/TmStoreMessage.cpp b/src/fsfw/tmstorage/TmStoreMessage.cpp index f63a4757e..fa5fb5414 100644 --- a/src/fsfw/tmstorage/TmStoreMessage.cpp +++ b/src/fsfw/tmstorage/TmStoreMessage.cpp @@ -1,4 +1,4 @@ -#include "fsfw/tmstorage/TmStoreMessage.h" +#include "TmStoreMessage.h" #include "fsfw/objectmanager/ObjectManager.h" TmStoreMessage::~TmStoreMessage() { diff --git a/src/fsfw/tmstorage/TmStoreMessage.h b/src/fsfw/tmstorage/TmStoreMessage.h index d0178920c..51f86b3ad 100644 --- a/src/fsfw/tmstorage/TmStoreMessage.h +++ b/src/fsfw/tmstorage/TmStoreMessage.h @@ -1,10 +1,11 @@ #ifndef FSFW_TMSTORAGE_TMSTOREMESSAGE_H_ #define FSFW_TMSTORAGE_TMSTOREMESSAGE_H_ +#include "tmStorageConf.h" #include "TmStorePackets.h" -#include "../ipc/CommandMessage.h" -#include "../storagemanager/StorageManagerIF.h" -#include "../objectmanager/SystemObjectIF.h" +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/objectmanager/SystemObjectIF.h" class TmStoreMessage { public: diff --git a/src/fsfw/tmstorage/TmStorePackets.h b/src/fsfw/tmstorage/TmStorePackets.h index 53a5d8d6b..738f7ac21 100644 --- a/src/fsfw/tmstorage/TmStorePackets.h +++ b/src/fsfw/tmstorage/TmStorePackets.h @@ -1,14 +1,15 @@ #ifndef FSFW_TMSTORAGE_TMSTOREPACKETS_H_ #define FSFW_TMSTORAGE_TMSTOREPACKETS_H_ -#include "../serialize/SerialFixedArrayListAdapter.h" -#include "../serialize/SerializeElement.h" -#include "../serialize/SerialLinkedListAdapter.h" -#include "../serialize/SerialBufferAdapter.h" -#include "../tmtcpacket/pus/tm/TmPacketMinimal.h" -#include "../timemanager/TimeStamperIF.h" -#include "../timemanager/CCSDSTime.h" -#include "../globalfunctions/timevalOperations.h" +#include "tmStorageConf.h" +#include "fsfw/serialize/SerialFixedArrayListAdapter.h" +#include "fsfw/serialize/SerializeElement.h" +#include "fsfw/serialize/SerialLinkedListAdapter.h" +#include "fsfw/serialize/SerialBufferAdapter.h" +#include "fsfw/tmtcpacket/pus/tm/TmPacketMinimal.h" +#include "fsfw/timemanager/TimeStamperIF.h" +#include "fsfw/timemanager/CCSDSTime.h" +#include "fsfw/globalfunctions/timevalOperations.h" class ServiceSubservice: public SerialLinkedListAdapter { public: diff --git a/src/fsfw/tmstorage/tmStorageConf.h b/src/fsfw/tmstorage/tmStorageConf.h new file mode 100644 index 000000000..e5c3d0d5b --- /dev/null +++ b/src/fsfw/tmstorage/tmStorageConf.h @@ -0,0 +1,11 @@ +#ifndef FSFW_TMSTORAGE_TMSTORAGECONF_H_ +#define FSFW_TMSTORAGE_TMSTORAGECONF_H_ + +#include "fsfw/FSFW.h" + +#ifndef FSFW_ADD_TMSTORAGE +#warning TM storage files were includes but compilation was \ + not enabled with FSFW_ADD_TMSTORAGE +#endif + +#endif /* FSFW_TMSTORAGE_TMSTORAGECONF_H_ */ diff --git a/src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h b/src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h index 7a28a957d..082541ba2 100644 --- a/src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h +++ b/src/fsfw/tmtcpacket/pus/tc/TcPacketPus.h @@ -1,8 +1,8 @@ #ifndef FSFW_TMTCPACKET_PUS_TCPACKETPUSA_H_ #define FSFW_TMTCPACKET_PUS_TCPACKETPUSA_H_ -#include "../../../FSFW.h" -#include "../../ccsds_header.h" +#include "fsfw/FSFW.h" +#include "fsfw/tmtcpacket/ccsds_header.h" #include "TcPacketBase.h" #include diff --git a/src/fsfw/tmtcpacket/pus/tm.h b/src/fsfw/tmtcpacket/pus/tm.h index 591ada7c3..afbe8251b 100644 --- a/src/fsfw/tmtcpacket/pus/tm.h +++ b/src/fsfw/tmtcpacket/pus/tm.h @@ -1,7 +1,7 @@ #ifndef FSFW_TMTCPACKET_PUS_TM_H_ #define FSFW_TMTCPACKET_PUS_TM_H_ -#include "../../FSFW.h" +#include "fsfw/FSFW.h" #if FSFW_USE_PUS_C_TELEMETRY == 1 #include "tm/TmPacketPusC.h" From ce93b9220e4bc8002ca1d7608d64403052b8241a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 18:29:57 +0200 Subject: [PATCH 052/136] command message cleaner include fix --- src/fsfw/FSFW.h.in | 1 + src/fsfw/ipc/CommandMessageCleaner.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in index c644f0b7c..9b74d04c8 100644 --- a/src/fsfw/FSFW.h.in +++ b/src/fsfw/FSFW.h.in @@ -8,5 +8,6 @@ #cmakedefine FSFW_ADD_TMSTORAGE #cmakedefine FSFW_ADD_COORDINATES #cmakedefine FSFW_ADD_PUS +#cmakedefine FSFW_ADD_MONITORING #endif /* FSFW_FSFW_H_ */ diff --git a/src/fsfw/ipc/CommandMessageCleaner.cpp b/src/fsfw/ipc/CommandMessageCleaner.cpp index 70b7dd4b3..0918d7393 100644 --- a/src/fsfw/ipc/CommandMessageCleaner.cpp +++ b/src/fsfw/ipc/CommandMessageCleaner.cpp @@ -8,9 +8,11 @@ #include "fsfw/modes/ModeMessage.h" #include "fsfw/monitoring/MonitoringMessage.h" #include "fsfw/subsystem/modes/ModeSequenceMessage.h" -#include "fsfw/tmstorage/TmStoreMessage.h" #include "fsfw/housekeeping/HousekeepingMessage.h" #include "fsfw/parameters/ParameterMessage.h" +#ifdef FSFW_ADD_TMSTORAGE +#include "fsfw/tmstorage/TmStoreMessage.h" +#endif void CommandMessageCleaner::clearCommandMessage(CommandMessage* message) { switch(message->getMessageType()){ From 10e81fdfb88e116538f8c7c70a19e6bbe3a54a70 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 18:35:16 +0200 Subject: [PATCH 053/136] update changelog --- CHANGELOG | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 75e7ced5e..8f86c147d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,10 +4,11 @@ ### FSFW Architecture -- Internal API changed completely to have separation of sources and headers -- External API mostly stayed the same +- New src folder which contains all source files except the HAL, contributed code and test code +- External and internal API mostly stayed the same - Folder names are now all smaller case: internalError was renamed to internalerror and FreeRTOS was renamed to freertos +- Warning if optional headers are used but the modules was not added to the source files to compile ### HAL From ee4449b74d29cadd6e250d9ef11f796d33befb42 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 18:36:55 +0200 Subject: [PATCH 054/136] override is not a good idea --- src/fsfw/osal/freertos/BinarySemaphore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fsfw/osal/freertos/BinarySemaphore.h b/src/fsfw/osal/freertos/BinarySemaphore.h index 6e70bf70c..1ae56ff66 100644 --- a/src/fsfw/osal/freertos/BinarySemaphore.h +++ b/src/fsfw/osal/freertos/BinarySemaphore.h @@ -98,7 +98,7 @@ public: * already available. */ static ReturnValue_t releaseFromISR(SemaphoreHandle_t semaphore, - BaseType_t * higherPriorityTaskWoken) override; + BaseType_t * higherPriorityTaskWoken); protected: SemaphoreHandle_t handle; From ab6c616cdb7d95bbfb3d0b05b3a45bf4ea32c790 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 19 Jul 2021 18:40:35 +0200 Subject: [PATCH 055/136] added binary semaphore header stub --- src/fsfw/osal/rtems/BinarySemaphore.cpp | 3 +-- src/fsfw/osal/rtems/BinarySemaphore.h | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/fsfw/osal/rtems/BinarySemaphore.h diff --git a/src/fsfw/osal/rtems/BinarySemaphore.cpp b/src/fsfw/osal/rtems/BinarySemaphore.cpp index f9db1009a..6d145d983 100644 --- a/src/fsfw/osal/rtems/BinarySemaphore.cpp +++ b/src/fsfw/osal/rtems/BinarySemaphore.cpp @@ -1,4 +1,4 @@ -#include "fsfw/osal/rtems/BinarySemaphore.h" +#include "BinarySemaphore.h" #include @@ -9,7 +9,6 @@ BinarySemaphore::~BinarySemaphore() { } -// Interface implementation ReturnValue_t BinarySemaphore::acquire(TimeoutType timeoutType, uint32_t timeoutMs) { return HasReturnvaluesIF::RETURN_OK; } diff --git a/src/fsfw/osal/rtems/BinarySemaphore.h b/src/fsfw/osal/rtems/BinarySemaphore.h new file mode 100644 index 000000000..a2796af1b --- /dev/null +++ b/src/fsfw/osal/rtems/BinarySemaphore.h @@ -0,0 +1,23 @@ +#ifndef FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ +#define FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ + +#include "fsfw/tasks/SemaphoreIF.h" + +class BinarySemaphore: public SemaphoreIF { +public: + BinarySemaphore(); + virtual ~BinarySemaphore(); + + // Semaphore IF implementations + ReturnValue_t acquire(TimeoutType timeoutType = + TimeoutType::BLOCKING, uint32_t timeoutMs = 0) override; + ReturnValue_t release() override; + uint8_t getSemaphoreCounter() const override; + +private: + +}; + + + +#endif /* FSFW_SRC_FSFW_OSAL_RTEMS_BINARYSEMAPHORE_H_ */ From 1515d59432fb1bc2ed62f223d741e77f4089f2ff Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 21 Jul 2021 09:45:36 +0200 Subject: [PATCH 056/136] EventManager fixes and tweaks 1. Using sif::info consistently now 2. Fix for printf support: Event translation is printed now as well --- events/EventManager.cpp | 147 ++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 73 deletions(-) diff --git a/events/EventManager.cpp b/events/EventManager.cpp index 8e2a2a829..7eb305532 100644 --- a/events/EventManager.cpp +++ b/events/EventManager.cpp @@ -12,119 +12,119 @@ MessageQueueId_t EventManagerIF::eventmanagerQueue = MessageQueueIF::NO_QUEUE; // So a good guess is 75 to a max of 100 pools required for each, which fits well. const LocalPool::LocalPoolConfig EventManager::poolConfig = { {fsfwconfig::FSFW_EVENTMGMR_MATCHTREE_NODES, - sizeof(EventMatchTree::Node)}, + sizeof(EventMatchTree::Node)}, {fsfwconfig::FSFW_EVENTMGMT_EVENTIDMATCHERS, - sizeof(EventIdRangeMatcher)}, + sizeof(EventIdRangeMatcher)}, {fsfwconfig::FSFW_EVENTMGMR_RANGEMATCHERS, - sizeof(ReporterRangeMatcher)} + sizeof(ReporterRangeMatcher)} }; EventManager::EventManager(object_id_t setObjectId) : - SystemObject(setObjectId), - factoryBackend(0, poolConfig, false, true) { - mutex = MutexFactory::instance()->createMutex(); - eventReportQueue = QueueFactory::instance()->createMessageQueue( - MAX_EVENTS_PER_CYCLE, EventMessage::EVENT_MESSAGE_SIZE); + SystemObject(setObjectId), + factoryBackend(0, poolConfig, false, true) { + mutex = MutexFactory::instance()->createMutex(); + eventReportQueue = QueueFactory::instance()->createMessageQueue( + MAX_EVENTS_PER_CYCLE, EventMessage::EVENT_MESSAGE_SIZE); } EventManager::~EventManager() { - QueueFactory::instance()->deleteMessageQueue(eventReportQueue); - MutexFactory::instance()->deleteMutex(mutex); + QueueFactory::instance()->deleteMessageQueue(eventReportQueue); + MutexFactory::instance()->deleteMutex(mutex); } MessageQueueId_t EventManager::getEventReportQueue() { - return eventReportQueue->getId(); + return eventReportQueue->getId(); } ReturnValue_t EventManager::performOperation(uint8_t opCode) { - ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; - while (result == HasReturnvaluesIF::RETURN_OK) { - EventMessage message; - result = eventReportQueue->receiveMessage(&message); - if (result == HasReturnvaluesIF::RETURN_OK) { + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + while (result == HasReturnvaluesIF::RETURN_OK) { + EventMessage message; + result = eventReportQueue->receiveMessage(&message); + if (result == HasReturnvaluesIF::RETURN_OK) { #if FSFW_OBJ_EVENT_TRANSLATION == 1 - printEvent(&message); + printEvent(&message); #endif - notifyListeners(&message); - } - } - return HasReturnvaluesIF::RETURN_OK; + notifyListeners(&message); + } + } + return HasReturnvaluesIF::RETURN_OK; } void EventManager::notifyListeners(EventMessage* message) { - lockMutex(); - for (auto iter = listenerList.begin(); iter != listenerList.end(); ++iter) { - if (iter->second.match(message)) { - MessageQueueSenderIF::sendMessage(iter->first, message, - message->getSender()); - } - } - unlockMutex(); + lockMutex(); + for (auto iter = listenerList.begin(); iter != listenerList.end(); ++iter) { + if (iter->second.match(message)) { + MessageQueueSenderIF::sendMessage(iter->first, message, + message->getSender()); + } + } + unlockMutex(); } ReturnValue_t EventManager::registerListener(MessageQueueId_t listener, bool forwardAllButSelected) { - auto result = listenerList.insert( - std::pair(listener, - EventMatchTree(&factoryBackend, forwardAllButSelected))); - if (!result.second) { - return HasReturnvaluesIF::RETURN_FAILED; - } - return HasReturnvaluesIF::RETURN_OK; + auto result = listenerList.insert( + std::pair(listener, + EventMatchTree(&factoryBackend, forwardAllButSelected))); + if (!result.second) { + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; } ReturnValue_t EventManager::subscribeToEvent(MessageQueueId_t listener, - EventId_t event) { - return subscribeToEventRange(listener, event); + EventId_t event) { + return subscribeToEventRange(listener, event); } ReturnValue_t EventManager::subscribeToAllEventsFrom(MessageQueueId_t listener, - object_id_t object) { - return subscribeToEventRange(listener, 0, 0, true, object); + object_id_t object) { + return subscribeToEventRange(listener, 0, 0, true, object); } ReturnValue_t EventManager::subscribeToEventRange(MessageQueueId_t listener, - EventId_t idFrom, EventId_t idTo, bool idInverted, - object_id_t reporterFrom, object_id_t reporterTo, - bool reporterInverted) { - auto iter = listenerList.find(listener); - if (iter == listenerList.end()) { - return LISTENER_NOT_FOUND; - } - lockMutex(); - ReturnValue_t result = iter->second.addMatch(idFrom, idTo, idInverted, - reporterFrom, reporterTo, reporterInverted); - unlockMutex(); - return result; + EventId_t idFrom, EventId_t idTo, bool idInverted, + object_id_t reporterFrom, object_id_t reporterTo, + bool reporterInverted) { + auto iter = listenerList.find(listener); + if (iter == listenerList.end()) { + return LISTENER_NOT_FOUND; + } + lockMutex(); + ReturnValue_t result = iter->second.addMatch(idFrom, idTo, idInverted, + reporterFrom, reporterTo, reporterInverted); + unlockMutex(); + return result; } ReturnValue_t EventManager::unsubscribeFromEventRange(MessageQueueId_t listener, - EventId_t idFrom, EventId_t idTo, bool idInverted, - object_id_t reporterFrom, object_id_t reporterTo, - bool reporterInverted) { - auto iter = listenerList.find(listener); - if (iter == listenerList.end()) { - return LISTENER_NOT_FOUND; - } - lockMutex(); - ReturnValue_t result = iter->second.removeMatch(idFrom, idTo, idInverted, - reporterFrom, reporterTo, reporterInverted); - unlockMutex(); - return result; + EventId_t idFrom, EventId_t idTo, bool idInverted, + object_id_t reporterFrom, object_id_t reporterTo, + bool reporterInverted) { + auto iter = listenerList.find(listener); + if (iter == listenerList.end()) { + return LISTENER_NOT_FOUND; + } + lockMutex(); + ReturnValue_t result = iter->second.removeMatch(idFrom, idTo, idInverted, + reporterFrom, reporterTo, reporterInverted); + unlockMutex(); + return result; } void EventManager::lockMutex() { - mutex->lockMutex(timeoutType, timeoutMs); + mutex->lockMutex(timeoutType, timeoutMs); } void EventManager::unlockMutex() { - mutex->unlockMutex(); + mutex->unlockMutex(); } void EventManager::setMutexTimeout(MutexIF::TimeoutType timeoutType, - uint32_t timeoutMs) { - this->timeoutType = timeoutType; - this->timeoutMs = timeoutMs; + uint32_t timeoutMs) { + this->timeoutType = timeoutType; + this->timeoutMs = timeoutMs; } #if FSFW_OBJ_EVENT_TRANSLATION == 1 @@ -157,7 +157,7 @@ void EventManager::printUtility(sif::OutputTypes printType, EventMessage *messag message->getReporter() << std::setfill(' ') << std::dec; } sif::info << " reported event with ID " << message->getEventId() << std::endl; - sif::debug << translateEvents(message->getEvent()) << " | " <getEvent()) << " | " <getParameter1() << " | P1 Dec: " << std::dec << message->getParameter1() << std::hex << " | P2 Hex: 0x" << message->getParameter2() << " | P2 Dec: " << std::dec << message->getParameter2() << std::endl; @@ -170,9 +170,10 @@ void EventManager::printUtility(sif::OutputTypes printType, EventMessage *messag sif::printInfo("Event Manager: Reporter ID 0x%08x reported event with ID %d\n", message->getReporter(), message->getEventId()); } - sif::printInfo("P1 Hex: 0x%x | P1 Dec: %d | P2 Hex: 0x%x | P2 Dec: %d\n", - message->getParameter1(), message->getParameter1(), - message->getParameter2(), message->getParameter2()); + + sif::printInfo("%s | P1 Hex: 0x%x | P1 Dec: %d | P2 Hex: 0x%x | P2 Dec: %d\n", + translateEvents(message->getEvent()), message->getParameter1(), + message->getParameter1(), message->getParameter2(), message->getParameter2()); #endif /* FSFW_CPP_OSTREAM_ENABLED == 0 */ } else { From 2489276350ab5b280afddf027af657bb0b202622 Mon Sep 17 00:00:00 2001 From: "Jakob.Meier" <–meierj@irs.uni-stuttgart.de> Date: Tue, 27 Jul 2021 10:05:56 +0200 Subject: [PATCH 057/136] removed double include --- osal/FreeRTOS/MessageQueue.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/osal/FreeRTOS/MessageQueue.h b/osal/FreeRTOS/MessageQueue.h index ad2534c00..af0dc4e14 100644 --- a/osal/FreeRTOS/MessageQueue.h +++ b/osal/FreeRTOS/MessageQueue.h @@ -11,9 +11,6 @@ #include "FreeRTOS.h" #include "queue.h" -#include "FreeRTOS.h" -#include "queue.h" - /** * @brief This class manages sending and receiving of * message queue messages. From 3d80d5d036ae78c1619336e878dfe03207ea52d6 Mon Sep 17 00:00:00 2001 From: "Jakob.Meier" <–meierj@irs.uni-stuttgart.de> Date: Tue, 27 Jul 2021 12:59:21 +0200 Subject: [PATCH 058/136] added proposed changes --- serviceinterface/ServiceInterfaceBuffer.cpp | 6 +++--- unittest/tests/mocks/MessageQueueMockBase.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/serviceinterface/ServiceInterfaceBuffer.cpp b/serviceinterface/ServiceInterfaceBuffer.cpp index 76128f5d0..f9fe8327c 100644 --- a/serviceinterface/ServiceInterfaceBuffer.cpp +++ b/serviceinterface/ServiceInterfaceBuffer.cpp @@ -172,9 +172,9 @@ bool ServiceInterfaceBuffer::crAdditionEnabled() const { } #if FSFW_COLORED_OUTPUT == 1 - void ServiceInterfaceBuffer::setAsciiColorPrefix(std::string colorPrefix) { - this->colorPrefix = colorPrefix; - } +void ServiceInterfaceBuffer::setAsciiColorPrefix(std::string colorPrefix) { + this->colorPrefix = colorPrefix; +} #endif #ifdef UT699 diff --git a/unittest/tests/mocks/MessageQueueMockBase.h b/unittest/tests/mocks/MessageQueueMockBase.h index 86958d53f..3000f7fb5 100644 --- a/unittest/tests/mocks/MessageQueueMockBase.h +++ b/unittest/tests/mocks/MessageQueueMockBase.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include From e1f92b3da4dc1fb5adcab2785da1570030506458 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 30 Jul 2021 13:47:29 +0200 Subject: [PATCH 059/136] various fixes and improvements --- CMakeLists.txt | 5 ++++- hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h | 4 ++-- src/fsfw/FSFW.h.in | 4 ++++ tests/src/fsfw/tests/unit/action/TestActionHelper.cpp | 2 +- tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h | 2 +- tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt | 1 - 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c75d711fe..3823bedfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ endif() option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) # Options to exclude parts of the FSFW from compilation. option(FSFW_ADD_INTERNAL_TESTS "Add internal unit tests" ON) +option(FSFW_ADD_HAL "Add Hardware Abstraction Layer" ON) # Optional sources option(FSFW_ADD_PUS "Compile with PUS sources" ON) @@ -94,7 +95,9 @@ message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") add_subdirectory(src) add_subdirectory(tests) -add_subdirectory(hal) +if(FSFW_ADD_HAL) + add_subdirectory(hal) +endif() add_subdirectory(contrib) # The project CMakeLists file has to set the FSFW_CONFIG_PATH and add it. diff --git a/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h index f82ba9359..020c5a32e 100644 --- a/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h +++ b/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h @@ -1,14 +1,14 @@ #ifndef MISSION_DEVICES_GYROL3GD20HANDLER_H_ #define MISSION_DEVICES_GYROL3GD20HANDLER_H_ -#include "OBSWConfig.h" +#include "fsfw/FSFW.h" #include "devicedefinitions/GyroL3GD20Definitions.h" #include #include #ifndef FSFW_HAL_L3GD20_GYRO_DEBUG -#define FSFW_HAL_L3GD20_GYRO_DEBUG 1 +#define FSFW_HAL_L3GD20_GYRO_DEBUG 0 #endif /* FSFW_HAL_L3GD20_GYRO_DEBUG */ /** diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in index 9b74d04c8..a23ef43fb 100644 --- a/src/fsfw/FSFW.h.in +++ b/src/fsfw/FSFW.h.in @@ -10,4 +10,8 @@ #cmakedefine FSFW_ADD_PUS #cmakedefine FSFW_ADD_MONITORING +#ifndef FSFW_HAL_L3GD20_GYRO_DEBUG +#define FSFW_HAL_L3GD20_GYRO_DEBUG 0 +#endif /* FSFW_HAL_L3GD20_GYRO_DEBUG */ + #endif /* FSFW_FSFW_H_ */ diff --git a/tests/src/fsfw/tests/unit/action/TestActionHelper.cpp b/tests/src/fsfw/tests/unit/action/TestActionHelper.cpp index d8bd58c99..126979f64 100644 --- a/tests/src/fsfw/tests/unit/action/TestActionHelper.cpp +++ b/tests/src/fsfw/tests/unit/action/TestActionHelper.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include diff --git a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h index 4c244b169..c0e41ddf6 100644 --- a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h +++ b/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include namespace lpool { diff --git a/tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt b/tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt index 4ea49bf74..8e57e01be 100644 --- a/tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt +++ b/tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt @@ -1,3 +1,2 @@ target_sources(${TARGET_NAME} PRIVATE - TestArrayPrinter.cpp ) From 0b207b2b1a73f098db898d2b4f4cbba3855a7c4b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 30 Jul 2021 14:18:47 +0200 Subject: [PATCH 060/136] updated user folder --- src/fsfw/serviceinterface/ServiceInterface.h | 2 +- tests/user/CMakeLists.txt | 46 +- .../testcfg/{FSFWConfig.h => FSFWConfig.h.in} | 28 +- tests/user/testcfg/Makefile-FSFW-Tests | 416 ------------------ tests/user/testcfg/OBSWConfig.h.in | 8 + tests/user/testcfg/TestsConfig.h | 8 - tests/user/testcfg/TestsConfig.h.in | 19 + tests/user/testcfg/cdatapool/dataPoolInit.cpp | 5 - tests/user/testcfg/cdatapool/dataPoolInit.h | 17 - tests/user/testcfg/objects/systemObjectList.h | 9 +- .../PollingSequenceFactory.cpp | 18 +- tests/user/testcfg/testcfg.mk | 8 - 12 files changed, 103 insertions(+), 481 deletions(-) rename tests/user/testcfg/{FSFWConfig.h => FSFWConfig.h.in} (68%) delete mode 100644 tests/user/testcfg/Makefile-FSFW-Tests create mode 100644 tests/user/testcfg/OBSWConfig.h.in delete mode 100644 tests/user/testcfg/TestsConfig.h create mode 100644 tests/user/testcfg/TestsConfig.h.in delete mode 100644 tests/user/testcfg/cdatapool/dataPoolInit.cpp delete mode 100644 tests/user/testcfg/cdatapool/dataPoolInit.h delete mode 100644 tests/user/testcfg/testcfg.mk diff --git a/src/fsfw/serviceinterface/ServiceInterface.h b/src/fsfw/serviceinterface/ServiceInterface.h index e95dd9a47..9f05b96cc 100644 --- a/src/fsfw/serviceinterface/ServiceInterface.h +++ b/src/fsfw/serviceinterface/ServiceInterface.h @@ -1,7 +1,7 @@ #ifndef FSFW_SERVICEINTERFACE_SERVICEINTERFACE_H_ #define FSFW_SERVICEINTERFACE_SERVICEINTERFACE_H_ -#include +#include "fsfw/FSFW.h" #include "serviceInterfaceDefintions.h" #if FSFW_CPP_OSTREAM_ENABLED == 1 diff --git a/tests/user/CMakeLists.txt b/tests/user/CMakeLists.txt index 722cc424c..e95edc2be 100644 --- a/tests/user/CMakeLists.txt +++ b/tests/user/CMakeLists.txt @@ -12,6 +12,7 @@ cmake_minimum_required(VERSION 3.13) # set(CMAKE_VERBOSE TRUE) +# set(CODE_COVERAGE_VERBOSE TRUE) set(CMAKE_SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") @@ -21,6 +22,8 @@ option(GENERATE_COVERAGE TRUE ) +set(FSFW_ADD_UNITTESTS ON) + if(TMTC_TEST) set(LINK_CATCH2 FALSE) else() @@ -28,8 +31,8 @@ else() endif() # Tests can be built with the Host OSAL or with the Linux OSAL. -if(NOT OS_FSFW) - set(OS_FSFW host CACHE STRING "OS for the FSFW.") +if(NOT FSFW_OSAL) + set(FSFW_OSAL host CACHE STRING "OS for the FSFW.") endif() option(CUSTOM_UNITTEST_RUNNER @@ -41,7 +44,7 @@ option(CUSTOM_UNITTEST_RUNNER #pre_project_config() # Project Name -project(fsfw_tests C CXX) +project(fsfw-tests C CXX) ################################################################################ # Pre-Sources preparation @@ -71,7 +74,7 @@ set(TMTC_TEST_PATH tests) # determine BSP_PATH # FreeRTOS -if(${OS_FSFW} STREQUAL linux) +if(FSFW_OSAL STREQUAL linux) add_definitions(-DUNIX -DLINUX) find_package(Threads REQUIRED) # Hosted @@ -94,6 +97,11 @@ if(GENERATE_COVERAGE) endif() set(FSFW_CONFIG_PATH testcfg) +set(FSFW_ADDITIONAL_INC_PATHS ${CMAKE_CURRENT_BINARY_DIR}) + +configure_file(${FSFW_CONFIG_PATH}/FSFWConfig.h.in FSFWConfig.h) +configure_file(${FSFW_CONFIG_PATH}/OBSWConfig.h.in OBSWConfig.h) +configure_file(${FSFW_CONFIG_PATH}/TestsConfig.h.in TestsConfig.h) ################################################################################ # Executable and Sources @@ -108,10 +116,16 @@ add_subdirectory(${FSFW_CONFIG_PATH}) if(LINK_CATCH2) add_subdirectory(${CATCH2_PATH}) - add_subdirectory(${FSFW_TESTS_PATH}) add_subdirectory(${TEST_SETUP_PATH}) else() + target_compile_definitions(${TARGET_NAME} PRIVATE + FSFW_DISABLE_PRINTOUT=0 + ) + target_compile_definitions(${LIB_FSFW_NAME} PRIVATE + FSFW_DISABLE_PRINTOUT=0 + ) add_subdirectory(${TMTC_TEST_PATH}) + add_subdirectory(${FSFW_TESTS_PATH}) endif() @@ -132,7 +146,7 @@ endif() if(GENERATE_COVERAGE) if(CMAKE_COMPILER_IS_GNUCXX) - set(CODE_COVERAGE_VERBOSE TRUE) + # set(CODE_COVERAGE_VERBOSE TRUE) include(CodeCoverage) # Remove quotes. @@ -194,6 +208,7 @@ endif() target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${FSFW_CONFIG_PATH} + ${CMAKE_CURRENT_BINARY_DIR} ) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") @@ -225,12 +240,9 @@ if(CMAKE_VERBOSE) message(STATUS "Warning flags: ${WARNING_FLAGS}") endif() - # Compile options for all sources. target_compile_options(${TARGET_NAME} PRIVATE - $<$:${WARNING_FLAGS} ${COMPILER_FLAGS}> - $<$:${WARNING_FLAGS} ${COMPILER_FLAGS}> - ${ABI_FLAGS} + ${WARNING_FLAGS} ) if(NOT CMAKE_SIZE) @@ -240,12 +252,16 @@ if(NOT CMAKE_SIZE) endif() endif() +string(CONCAT POST_BUILD_COMMENT + "Build directory: ${CMAKE_BINARY_DIR}\n" + "Target OSAL: ${FSFW_OSAL}\n" + "Target Build Type: ${CMAKE_BUILD_TYPE}" +) + add_custom_command(TARGET ${TARGET_NAME} - POST_BUILD - COMMAND echo "Build directory: ${CMAKE_BINARY_DIR}" - COMMAND echo "Target OSAL: ${OS_FSFW}" - COMMAND echo "Target Build Type: ${CMAKE_BUILD_TYPE}" - COMMAND ${CMAKE_SIZE} ${TARGET_NAME}${FILE_SUFFIX} + POST_BUILD + COMMAND ${CMAKE_SIZE} ${TARGET_NAME}${FILE_SUFFIX} + COMMENT ${POST_BUILD_COMMENT} ) include (${CMAKE_SCRIPT_PATH}/BuildType.cmake) diff --git a/tests/user/testcfg/FSFWConfig.h b/tests/user/testcfg/FSFWConfig.h.in similarity index 68% rename from tests/user/testcfg/FSFWConfig.h rename to tests/user/testcfg/FSFWConfig.h.in index ed86e6e1f..d38f0648f 100644 --- a/tests/user/testcfg/FSFWConfig.h +++ b/tests/user/testcfg/FSFWConfig.h.in @@ -7,18 +7,24 @@ //! Used to determine whether C++ ostreams are used which can increase //! the binary size significantly. If this is disabled, //! the C stdio functions can be used alternatively -#define FSFW_CPP_OSTREAM_ENABLED 1 +#define FSFW_CPP_OSTREAM_ENABLED 0 -//! More FSFW related printouts depending on level. Useful for development. -#define FSFW_VERBOSE_LEVEL 1 +//! More FSFW related printouts. Useful for development. +#define FSFW_ENHANCED_PRINTOUT 0 //! Can be used to completely disable printouts, even the C stdio ones. -#if FSFW_CPP_OSTREAM_ENABLED == 0 && FSFW_VERBOSE_LEVEL == 0 - #define FSFW_DISABLE_PRINTOUT 0 +//! By default, printouts will be disabled for the unit tests. +#if FSFW_CPP_OSTREAM_ENABLED == 0 && FSFW_ENHANCED_PRINTOUT == 0 + #ifndef FSFW_DISABLE_PRINTOUT + #define FSFW_DISABLE_PRINTOUT 1 + #endif #endif +//! Can be used to enable additional debugging printouts for developing the FSFW +#define FSFW_PRINT_VERBOSITY_LEVEL 0 + //! Can be used to disable the ANSI color sequences for C stdio. -#define FSFW_COLORED_OUTPUT 1 +#define FSFW_COLORED_OUTPUT 0 //! If FSFW_OBJ_EVENT_TRANSLATION is set to one, //! additional output which requires the translation files translateObjects @@ -40,6 +46,13 @@ //! Specify whether a special mode store is used for Subsystem components. #define FSFW_USE_MODESTORE 0 +//! Defines if the real time scheduler for linux should be used. +//! If set to 0, this will also disable priority settings for linux +//! as most systems will not allow to set nice values without privileges +//! For embedded linux system set this to 1. +//! If set to 1 the binary needs "cap_sys_nice=eip" privileges to run +#define FSFW_USE_REALTIME_FOR_LINUX 1 + namespace fsfwconfig { //! Default timestamp size. The default timestamp will be an eight byte CDC //! short timestamp. @@ -57,6 +70,9 @@ static constexpr size_t FSFW_EVENTMGMR_RANGEMATCHERS = 120; static constexpr uint8_t FSFW_CSB_FIFO_DEPTH = 6; static constexpr size_t FSFW_PRINT_BUFFER_SIZE = 124; + +static constexpr size_t FSFW_MAX_TM_PACKET_SIZE = 1500; + } #endif /* CONFIG_FSFWCONFIG_H_ */ diff --git a/tests/user/testcfg/Makefile-FSFW-Tests b/tests/user/testcfg/Makefile-FSFW-Tests deleted file mode 100644 index 550fd1dee..000000000 --- a/tests/user/testcfg/Makefile-FSFW-Tests +++ /dev/null @@ -1,416 +0,0 @@ -#------------------------------------------------------------------------------- -# Makefile for FSFW Test -#------------------------------------------------------------------------------- -# User-modifiable options -#------------------------------------------------------------------------------- -# Fundamentals on the build process of C/C++ Software: -# https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html - -# Make documentation: https://www.gnu.org/software/make/manual/make.pdf -# Online: https://www.gnu.org/software/make/manual/make.html -# General rules: http://make.mad-scientist.net/papers/rules-of-makefiles/#rule3 -SHELL = /bin/sh - -# Chip & board used for compilation -# (can be overriden by adding CHIP=chip and BOARD=board to the command-line) -# Unit Test can only be run on host machine for now (Linux) -FRAMEWORK_PATH = fsfw -TEST_FILE_ROOT = $(FRAMEWORK_PATH)/unittest -BOARD = unittest -LINUX = 1 -OS_FSFW = linux -CUSTOM_DEFINES += -D$(OS_FSFW) - -# Copied from stackoverflow, can be used to differentiate between Windows -# and Linux -ifeq ($(OS),Windows_NT) - CUSTOM_DEFINES += -DWIN32 - ifeq ($(PROCESSOR_ARCHITEW6432),AMD64) - CUSTOM_DEFINES += -DAMD64 - else - ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) - CUSTOM_DEFINES += -DAMD64 - endif - ifeq ($(PROCESSOR_ARCHITECTURE),x86) - CUSTOM_DEFINES += -DIA32 - endif - endif -else - UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S),Linux) - DETECTED_OS = LINUX - CUSTOM_DEFINES += -DLINUX - endif - ifeq ($(UNAME_S),Darwin) - CUSTOM_DEFINES += -DOSX - endif - UNAME_P := $(shell uname -p) - ifeq ($(UNAME_P),x86_64) - CUSTOM_DEFINES += -DAMD64 - endif - ifneq ($(filter %86,$(UNAME_P)),) - CUSTOM_DEFINES += -DIA32 - endif - ifneq ($(filter arm%,$(UNAME_P)),) - CUSTOM_DEFINES += -DARM - endif -endif - -UNIT_TEST = 1 -# General folder paths -CONFIG_PATH = testcfg -# Core copy has to be copied as well. -CORE_PATH = core -UNIT_TEST_PATH = $(TEST_FILE_ROOT)/tests - -# Output file basename -BASENAME = fsfw -BINARY_NAME := $(BASENAME)-$(BOARD) -# Output files will be put in this directory inside -OUTPUT_FOLDER = $(OS) - -# Optimization level. Optimized for debugging. -OPTIMIZATION = -O0 - -# Default debug output. Optimized for debugging. -DEBUG_LEVEL = -g3 - -ifdef GCOV -CUSTOM_DEFINES += -DGCOV -endif - - -# Output directories -BUILDPATH = _bin -DEPENDPATH = _dep -OBJECTPATH = _obj - -ifeq ($(MAKECMDGOALS),mission) -BUILD_FOLDER = mission -else -BUILD_FOLDER = devel -endif - -DEPENDDIR = $(DEPENDPATH)/$(OUTPUT_FOLDER)/$(BUILD_FOLDER) -OBJDIR = $(OBJECTPATH)/$(OUTPUT_FOLDER)/$(BUILD_FOLDER) -BINDIR = $(BUILDPATH) - -CLEANDEP = $(DEPENDPATH)/$(OUTPUT_FOLDER) -CLEANOBJ = $(OBJECTPATH)/$(OUTPUT_FOLDER) -CLEANBIN = $(BUILDPATH) -#------------------------------------------------------------------------------- -# Tools and Includes -#------------------------------------------------------------------------------- - -# Tool suffix when cross-compiling -CROSS_COMPILE = - -# C Compiler -CC = $(CROSS_COMPILE)gcc - -# C++ compiler -CXX = $(CROSS_COMPILE)g++ - -# Additional Tools -SIZE = $(CROSS_COMPILE)size -STRIP = $(CROSS_COMPILE)strip -CP = $(CROSS_COMPILE)objcopy - -HEXCOPY = $(CP) -O ihex -BINCOPY = $(CP) -O binary -# files to be compiled, will be filled in by include makefiles -# := assignment is neccessary so we get all paths right -# https://www.gnu.org/software/make/manual/html_node/Flavors.html -CSRC := -CXXSRC := -ASRC := -INCLUDES := - -# Directories where $(directoryname).mk files should be included from -SUBDIRS := $(FRAMEWORK_PATH) $(TEST_PATH) $(UNIT_TEST_PATH) $(CONFIG_PATH) \ - $(CORE_PATH) - - -I_INCLUDES += $(addprefix -I, $(INCLUDES)) - -# This is a hack from http://make.mad-scientist.net/the-eval-function/ -# -# The problem is, that included makefiles should be aware of their relative path -# but not need to guess or hardcode it. So we set $(CURRENTPATH) for them. If -# we do this globally and the included makefiles want to include other makefiles as -# well, they would overwrite $(CURRENTPATH), screwing the include after them. -# -# By using a for-loop with an eval'd macro, we can generate the code to include all -# sub-makefiles (with the correct $(CURRENTPATH) set) before actually evaluating -# (and by this possibly changing $(CURRENTPATH)) them. -# -# This works recursively, if an included makefile wants to include, it can safely set -# $(SUBDIRS) (which has already been evaluated here) and do -# "$(foreach S,$(SUBDIRS),$(eval $(INCLUDE_FILE)))" -# $(SUBDIRS) must be relative to the project root, so to include subdir foo, set -# $(SUBDIRS) = $(CURRENTPATH)/foo. -define INCLUDE_FILE -CURRENTPATH := $S -include $(S)/$(notdir $S).mk -endef -$(foreach S,$(SUBDIRS),$(eval $(INCLUDE_FILE))) - -INCLUDES += $(TEST_FILE_ROOT) -INCLUDES += $(TEST_FILE_ROOT)/catch2/ - -#------------------------------------------------------------------------------- -# Source Files -#------------------------------------------------------------------------------- - -# All source files which are not includes by the .mk files are added here -# Please ensure that no files are included by both .mk file and here ! - -# if a target is not listed in the current directory, -# make searches in the directories specified with VPATH - -# All C Sources included by .mk files are assigned here -# Add the objects to sources so dependency handling works -C_OBJECTS += $(CSRC:.c=.o) - -# Objects built from Assembly source files -ASM_OBJECTS = $(ASRC:.S=.o) - -# Objects built from C++ source files -CXX_OBJECTS += $(CXXSRC:.cpp=.o) - -#------------------------------------------------------------------------------- -# Build Configuration + Output -#------------------------------------------------------------------------------- - -TARGET = Debug build. -DEBUG_MESSAGE = Off -OPTIMIZATION_MESSAGE = Off - -# Define Messages -MSG_INFO = Software: Hosted unittest \(Catch2\) for the FSFW. -MSG_OPTIMIZATION = Optimization: $(OPTIMIZATION), $(OPTIMIZATION_MESSAGE) -MSG_TARGET = Target Build: $(TARGET) -MSG_DEBUG = Debug level: $(DEBUG_LEVEL), FSFW Debugging: $(DEBUG_MESSAGE) - -MSG_LINKING = Linking: -MSG_COMPILING = Compiling: -MSG_ASSEMBLING = Assembling: -MSG_DEPENDENCY = Collecting dependencies for: -MSG_BINARY = Generate binary: - -# See https://stackoverflow.com/questions/6687630/how-to-remove-unused-c-c-symbols-with-gcc-and-ld -# Used to throw away unused code. Reduces code size significantly ! -# -Wl,--gc-sections: needs to be passed to the linker to throw aways unused code -ifdef KEEP_UNUSED_CODE -PROTOTYPE_OPTIMIZATION = -UNUSED_CODE_REMOVAL = -else -PROTOTYPE_OPTIMIZATION = -ffunction-sections -fdata-sections -UNUSED_CODE_REMOVAL = -Wl,--gc-sections -# Link time optimization -# See https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html for reference -# Link time is larger and size of object files can not be retrieved -# but resulting binary is smaller. Could be used in mission/deployment build -# Requires -ffunction-section in linker call -LINK_TIME_OPTIMIZATION = -flto -OPTIMIZATION += $(PROTOTYPE_OPTIMIZATION) -endif - -# Dependency Flags -# These flags tell the compiler to build dependencies -# See: https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html -# Using following guide: http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/#combine -DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPENDDIR)/$*.d - -# Flags for the compiler call -# - std: Which C++ version to use. Common versions: c++11, c++14 and c++17 -# - Wall: enable all warnings -# - Wextra: enable extra warnings -# - g: defines debug level -# - fmessage-length: to control the formatting algorithm for diagnostic messages; -# =0 means no line-wrapping is done; each error message appears on a single line -# - fno-exceptions: stops generating extra code needed to propagate exceptions, -# which can produce significant data size overhead -CUSTOM_DEFINES += -DUNIT_TEST -WARNING_FLAGS = -Wall -Wshadow=local -Wextra -Wimplicit-fallthrough=1 \ - -Wno-unused-parameter - -CXXDEFINES := $(CUSTOM_DEFINES) -CFLAGS += -CXXFLAGS += -I. $(DEBUG_LEVEL) $(WARNING_FLAGS) $(DEPFLAGS) -fmessage-length=0 $(OPTIMIZATION)\ - $(I_INCLUDES) $(CXXDEFINES) -CPPFLAGS += -std=c++11 - -# Flags for the linker call -# LINK_INCLUDES specify the path to used libraries and the linker script -# LINK_LIBRARIES: Link real time support -LDFLAGS := $(DEBUG_LEVEL) $(UNUSED_CODE_REMOVAL) $(OPTIMIZATION) -pthread -LINK_INCLUDES := -LINK_LIBRARIES := - -ifdef LINUX -LINK_LIBRARIES += -lrt -endif - -ifeq ($(OS),Windows_NT) -LINK_LIBRARIES += -lwsock32 -lws2_32 -LDFLASGS += -fuse-ld=lld -endif - -# Gnu Coverage Tools Flags -ifdef GCOV -GCOV_CXXFLAGS = -fprofile-arcs -ftest-coverage --coverage -fno-inline \ - -fno-inline-small-functions -fno-default-inline -CXXFLAGS += $(GCOV_CXXFLAGS) -GCOV_LINKER_LIBS = -lgcov -fprofile-arcs -ftest-coverage -LINK_LIBRARIES += $(GCOV_LINKER_LIBS) -endif - -# $(info $${CXXFLAGS} is [${CXXFLAGS}]) - -#------------------------------------------------------------------------------- -# Rules -#------------------------------------------------------------------------------- -# the call function assigns parameters to temporary variables -# https://www.gnu.org/software/make/manual/make.html#Call-Function -# $(1) = Memory names -# Rules are called for each memory type -# Two Expansion Symbols $$ are to escape the dollar sign for eval. -# See: http://make.mad-scientist.net/the-eval-function/ - -default: all - -# Cleans all files -hardclean: - -rm -rf $(BUILDPATH) - -rm -rf $(OBJECTPATH) - -rm -rf $(DEPENDPATH) - -# Only clean files for current build -clean: - -rm -rf $(CLEANOBJ) - -rm -rf $(CLEANBIN) - -rm -rf $(CLEANDEP) - -# Only clean binaries. Useful for changing the binary type when object files -# are already compiled so complete rebuild is not necessary -cleanbin: - -rm -rf $(CLEANBIN) - -# In this section, the binaries are built for all selected memories -# notestfw: all -all: executable - -# Build target configuration -release: OPTIMIZATION = -Os $(PROTOTYPE_OPTIMIZATION) $(LINK_TIME_OPTIMIZATION) -release: LINK_TIME_OPTIMIZATION = -flto -release: TARGET = Mission build. -release: OPTIMIZATION_MESSAGE = On with Link Time Optimization - -debug: CXXDEFINES += -DDEBUG -debug: TARGET = Debug -debug: DEBUG_MESSAGE = On - -ifndef KEEP_UNUSED_CODE -debug release: OPTIMIZATION_MESSAGE += , no unused code removal -endif - -debug release notestfw: executable - -executable: $(BINDIR)/$(BINARY_NAME).elf - @echo - @echo $(MSG_INFO) - @echo $(MSG_TARGET) - @echo $(MSG_OPTIMIZATION) - @echo $(MSG_DEBUG) - -C_OBJECTS_PREFIXED = $(addprefix $(OBJDIR)/, $(C_OBJECTS)) -CXX_OBJECTS_PREFIXED = $(addprefix $(OBJDIR)/, $(CXX_OBJECTS)) -ASM_OBJECTS_PREFIXED = $(addprefix $(OBJDIR)/, $(ASM_OBJECTS)) -ALL_OBJECTS = $(ASM_OBJECTS_PREFIXED) $(C_OBJECTS_PREFIXED) \ - $(CXX_OBJECTS_PREFIXED) - -# Useful for debugging the Makefile -# Also see: https://www.oreilly.com/openbook/make3/book/ch12.pdf -# $(info $${ALL_OBJECTS} is [${ALL_OBJECTS}]) -# $(info $${CXXSRC} is [${CXXSRC}]) - -# Automatic variables are used here extensively. Some of them -# are escaped($$) to suppress immediate evaluation. The most important ones are: -# $@: Name of Target (left side of rule) -# $<: Name of the first prerequisite (right side of rule) -# @^: List of all prerequisite, omitting duplicates -# @D: Directory and file-within-directory part of $@ - -# Generates binary and displays all build properties -# -p with mkdir ignores error and creates directory when needed. - -# SHOW_DETAILS = 1 - - -# Link with required libraries: HAL (Hardware Abstraction Layer) and -# HCC (File System Library) -$(BINDIR)/$(BINARY_NAME).elf: $(ALL_OBJECTS) - @echo - @echo $(MSG_LINKING) Target $@ - @mkdir -p $(@D) -ifdef SHOW_DETAILS - $(CXX) $(LDFLAGS) $(LINK_INCLUDES) -o $@ $^ $(LINK_LIBRARIES) -else - @$(CXX) $(LDFLAGS) $(LINK_INCLUDES) -o $@ $^ $(LINK_LIBRARIES) -endif -ifeq ($(BUILD_FOLDER), mission) -# With Link Time Optimization, section size is not available - $(SIZE) $@ -else - $(SIZE) $^ $@ -endif - -$(BINDIR)/$(BINARY_NAME).hex: $(BINDIR)/$(BINARY_NAME).elf - @echo - @echo $(MSG_BINARY) - @mkdir -p $(@D) - $(HEXCOPY) $< $@ - -# Build new objects for changed dependencies. -$(OBJDIR)/%.o: %.cpp -$(OBJDIR)/%.o: %.cpp $(DEPENDDIR)/%.d | $(DEPENDDIR) - @echo - @echo $(MSG_COMPILING) $< - @mkdir -p $(@D) -ifdef SHOW_DETAILS - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< -else - @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $< -endif - -$(OBJDIR)/%.o: %.c -$(OBJDIR)/%.o: %.c $(DEPENDDIR)/%.d | $(DEPENDDIR) - @echo - @echo $(MSG_COMPILING) $< - @mkdir -p $(@D) -ifdef SHOW_DETAILS - $(CC) $(CXXFLAGS) $(CFLAGS) -c -o $@ $< -else - @$(CC) $(CXXFLAGS) $(CFLAGS) -c -o $@ $< -endif - -#------------------------------------------------------------------------------- -# Dependency Handling -#------------------------------------------------------------------------------- - -# Dependency Handling according to following guide: -# http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ -$(DEPENDDIR): - @mkdir -p $(@D) -DEPENDENCY_RELATIVE = $(CSRC:.c=.d) $(CXXSRC:.cpp=.d) -# This is the list of all dependencies -DEPFILES = $(addprefix $(DEPENDDIR)/, $(DEPENDENCY_RELATIVE)) -# Create subdirectories for dependencies -$(DEPFILES): - @mkdir -p $(@D) -# Include all dependencies -include $(wildcard $(DEPFILES)) - -# .PHONY tells make that these targets aren't files -.PHONY: clean release debug all hardclean cleanbin diff --git a/tests/user/testcfg/OBSWConfig.h.in b/tests/user/testcfg/OBSWConfig.h.in new file mode 100644 index 000000000..34eda31f0 --- /dev/null +++ b/tests/user/testcfg/OBSWConfig.h.in @@ -0,0 +1,8 @@ +#ifndef TESTCFG_OBSWCONFIG_H_ +#define TESTCFG_OBSWCONFIG_H_ + + + + + +#endif /* TESTCFG_OBSWCONFIG_H_ */ diff --git a/tests/user/testcfg/TestsConfig.h b/tests/user/testcfg/TestsConfig.h deleted file mode 100644 index cd967fa73..000000000 --- a/tests/user/testcfg/TestsConfig.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ -#define FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ - - -#define CUSTOM_UNITTEST_RUNNER 0 - - -#endif /* FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ */ diff --git a/tests/user/testcfg/TestsConfig.h.in b/tests/user/testcfg/TestsConfig.h.in new file mode 100644 index 000000000..0341583de --- /dev/null +++ b/tests/user/testcfg/TestsConfig.h.in @@ -0,0 +1,19 @@ +#ifndef FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ +#define FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ + +#ifdef __cplusplus + +#include "objects/systemObjectList.h" +#include "events/subsystemIdRanges.h" +#include "returnvalues/classIds.h" + +namespace config { +#endif + +/* Add mission configuration flags here */ + +#ifdef __cplusplus +} +#endif + +#endif /* FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ */ diff --git a/tests/user/testcfg/cdatapool/dataPoolInit.cpp b/tests/user/testcfg/cdatapool/dataPoolInit.cpp deleted file mode 100644 index ad2dc4ef5..000000000 --- a/tests/user/testcfg/cdatapool/dataPoolInit.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "dataPoolInit.h" - -void datapool::dataPoolInit(std::map * poolMap) { - -} diff --git a/tests/user/testcfg/cdatapool/dataPoolInit.h b/tests/user/testcfg/cdatapool/dataPoolInit.h deleted file mode 100644 index 9425d7678..000000000 --- a/tests/user/testcfg/cdatapool/dataPoolInit.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef HOSTED_CONFIG_CDATAPOOL_DATAPOOLINIT_H_ -#define HOSTED_CONFIG_CDATAPOOL_DATAPOOLINIT_H_ - -#include -#include -#include -#include - - -namespace datapool { - void dataPoolInit(std::map * poolMap); - - enum datapoolvariables { - NO_PARAMETER = 0, - }; -} -#endif /* CONFIG_CDATAPOOL_DATAPOOLINIT_H_ */ diff --git a/tests/user/testcfg/objects/systemObjectList.h b/tests/user/testcfg/objects/systemObjectList.h index 76f1ff90c..efd21e0de 100644 --- a/tests/user/testcfg/objects/systemObjectList.h +++ b/tests/user/testcfg/objects/systemObjectList.h @@ -15,14 +15,17 @@ namespace objects { PUS_DISTRIBUTOR = 11, TM_FUNNEL = 12, - TCPIP_BRIDGE = 15, - TCPIP_HELPER = 16, + UDP_BRIDGE = 15, + UDP_POLLING_TASK = 16, TEST_ECHO_COM_IF = 20, TEST_DEVICE = 21, HK_RECEIVER_MOCK = 22, - TEST_LOCAL_POOL_OWNER_BASE = 25 + TEST_LOCAL_POOL_OWNER_BASE = 25, + + SHARED_SET_ID = 26 + }; } diff --git a/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp b/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp index b7f1fb3e1..e3ee874a4 100644 --- a/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp +++ b/tests/user/testcfg/pollingsequence/PollingSequenceFactory.cpp @@ -1,6 +1,8 @@ #include "PollingSequenceFactory.h" -#include +#include + +#include #include #include @@ -10,14 +12,26 @@ ReturnValue_t pst::pollingSequenceInitDefault( uint32_t length = thisSequence->getPeriodMs(); /* Add polling sequence table here */ + thisSequence->addSlot(objects::TEST_DEVICE, 0, + DeviceHandlerIF::PERFORM_OPERATION); + thisSequence->addSlot(objects::TEST_DEVICE, 0.3, + DeviceHandlerIF::SEND_WRITE); + thisSequence->addSlot(objects::TEST_DEVICE, 0.45 * length, + DeviceHandlerIF::GET_WRITE); + thisSequence->addSlot(objects::TEST_DEVICE, 0.6 * length, + DeviceHandlerIF::SEND_READ); + thisSequence->addSlot(objects::TEST_DEVICE, 0.8 * length, + DeviceHandlerIF::GET_READ); if (thisSequence->checkSequence() == HasReturnvaluesIF::RETURN_OK) { return HasReturnvaluesIF::RETURN_OK; } else { -#if FSFW_CPP_OSTREAM_ENABLED == 1 +#if FSFW_CPP_OSTREAM_ENABLED sif::error << "pst::pollingSequenceInitDefault: Sequence invalid!" << std::endl; +#else + sif::printError("pst::pollingSequenceInitDefault: Sequence invalid!"); #endif return HasReturnvaluesIF::RETURN_FAILED; } diff --git a/tests/user/testcfg/testcfg.mk b/tests/user/testcfg/testcfg.mk deleted file mode 100644 index fca2f7327..000000000 --- a/tests/user/testcfg/testcfg.mk +++ /dev/null @@ -1,8 +0,0 @@ -CXXSRC += $(wildcard $(CURRENTPATH)/cdatapool/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/ipc/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/objects/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/pollingsequence/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/events/*.cpp) -CXXSRC += $(wildcard $(CURRENTPATH)/*.cpp) - -INCLUDES += $(CURRENTPATH) From 490ab440e5917af11ebb474098e0671acfe8d403 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 30 Jul 2021 14:21:37 +0200 Subject: [PATCH 061/136] smaller tweaks in CMakelists files --- tests/CMakeLists.txt | 1 - tests/user/CMakeLists.txt | 12 ------------ 2 files changed, 13 deletions(-) delete mode 100644 tests/CMakeLists.txt diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt deleted file mode 100644 index febd4f0ab..000000000 --- a/tests/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(src) diff --git a/tests/user/CMakeLists.txt b/tests/user/CMakeLists.txt index e95edc2be..df16c7567 100644 --- a/tests/user/CMakeLists.txt +++ b/tests/user/CMakeLists.txt @@ -1,8 +1,5 @@ ################################################################################ # CMake support for the Flight Software Framework Tests -# -# Developed in an effort to replace Make with a modern build system. -# # Author: R. Mueller ################################################################################ @@ -39,10 +36,6 @@ option(CUSTOM_UNITTEST_RUNNER "Specify whether custom main or Catch2 main is used" TRUE ) -# Perform steps like loading toolchain files where applicable. -#include(${CMAKE_SCRIPT_PATH}/PreProjectConfig.cmake) -#pre_project_config() - # Project Name project(fsfw-tests C CXX) @@ -266,8 +259,3 @@ add_custom_command(TARGET ${TARGET_NAME} include (${CMAKE_SCRIPT_PATH}/BuildType.cmake) set_build_type() - - - - - From 5bbe16081f78ea9ca8df30387ed3134e67f972fd Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 30 Jul 2021 14:38:20 +0200 Subject: [PATCH 062/136] added missing CMakeLists.txt --- tests/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/CMakeLists.txt diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 000000000..febd4f0ab --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(src) From c0591c3d24531fdc591bf150eeef1637cef908b7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 2 Aug 2021 15:31:13 +0200 Subject: [PATCH 063/136] renamed some folders --- contrib/CMakeLists.txt | 20 +++++++++---------- contrib/fsfw-contrib/CMakeLists.txt | 11 ++++++++++ contrib/{ => fsfw-contrib}/sgp4/LICENSE | 0 contrib/{ => fsfw-contrib}/sgp4/sgp4unit.cpp | 0 contrib/{ => fsfw-contrib}/sgp4/sgp4unit.h | 0 hal/src/CMakeLists.txt | 2 +- hal/src/{fsfw/hal => fsfw-hal}/CMakeLists.txt | 0 .../hal => fsfw-hal}/common/CMakeLists.txt | 0 .../common/gpio/CMakeLists.txt | 0 .../common/gpio/GpioCookie.cpp | 0 .../hal => fsfw-hal}/common/gpio/GpioCookie.h | 0 .../hal => fsfw-hal}/common/gpio/GpioIF.h | 0 .../common/gpio/gpioDefinitions.h | 0 .../hal => fsfw-hal}/common/spi/spiCommon.h | 0 .../devicehandlers/CMakeLists.txt | 0 .../devicehandlers/GyroL3GD20Handler.cpp | 0 .../devicehandlers/GyroL3GD20Handler.h | 0 .../devicedefinitions/GyroL3GD20Definitions.h | 0 .../hal => fsfw-hal}/host/CMakeLists.txt | 0 .../hal => fsfw-hal}/linux/CMakeLists.txt | 0 .../hal => fsfw-hal}/linux/UnixFileGuard.cpp | 0 .../hal => fsfw-hal}/linux/UnixFileGuard.h | 0 .../linux/gpio/CMakeLists.txt | 0 .../linux/gpio/LinuxLibgpioIF.cpp | 0 .../linux/gpio/LinuxLibgpioIF.h | 0 .../hal => fsfw-hal}/linux/i2c/CMakeLists.txt | 0 .../hal => fsfw-hal}/linux/i2c/I2cComIF.cpp | 0 .../hal => fsfw-hal}/linux/i2c/I2cComIF.h | 0 .../hal => fsfw-hal}/linux/i2c/I2cCookie.cpp | 0 .../hal => fsfw-hal}/linux/i2c/I2cCookie.h | 0 .../hal => fsfw-hal}/linux/rpi/CMakeLists.txt | 0 .../hal => fsfw-hal}/linux/rpi/GpioRPi.cpp | 0 .../hal => fsfw-hal}/linux/rpi/GpioRPi.h | 0 .../hal => fsfw-hal}/linux/spi/CMakeLists.txt | 0 .../hal => fsfw-hal}/linux/spi/SpiComIF.cpp | 0 .../hal => fsfw-hal}/linux/spi/SpiComIF.h | 0 .../hal => fsfw-hal}/linux/spi/SpiCookie.cpp | 0 .../hal => fsfw-hal}/linux/spi/SpiCookie.h | 0 .../linux/spi/spiDefinitions.h | 0 .../linux/uart/CMakeLists.txt | 0 .../hal => fsfw-hal}/linux/uart/UartComIF.cpp | 0 .../hal => fsfw-hal}/linux/uart/UartComIF.h | 0 .../linux/uart/UartCookie.cpp | 0 .../hal => fsfw-hal}/linux/uart/UartCookie.h | 0 .../{fsfw/hal => fsfw-hal}/linux/utility.cpp | 0 .../{fsfw/hal => fsfw-hal}/linux/utility.h | 0 .../hal => fsfw-hal}/stm32h7/CMakeLists.txt | 0 .../stm32h7/devicetest/CMakeLists.txt | 0 .../stm32h7/devicetest/GyroL3GD20H.cpp | 0 .../stm32h7/devicetest/GyroL3GD20H.h | 0 .../{fsfw/hal => fsfw-hal}/stm32h7/dma.cpp | 0 hal/src/{fsfw/hal => fsfw-hal}/stm32h7/dma.h | 0 .../stm32h7/gpio/CMakeLists.txt | 0 .../hal => fsfw-hal}/stm32h7/gpio/gpio.cpp | 0 .../hal => fsfw-hal}/stm32h7/gpio/gpio.h | 0 .../stm32h7/i2c/CMakeLists.txt | 0 .../hal => fsfw-hal}/stm32h7/interrupts.h | 0 .../stm32h7/spi/CMakeLists.txt | 0 .../hal => fsfw-hal}/stm32h7/spi/SpiComIF.cpp | 0 .../hal => fsfw-hal}/stm32h7/spi/SpiComIF.h | 0 .../stm32h7/spi/SpiCookie.cpp | 0 .../hal => fsfw-hal}/stm32h7/spi/SpiCookie.h | 0 .../hal => fsfw-hal}/stm32h7/spi/mspInit.cpp | 0 .../hal => fsfw-hal}/stm32h7/spi/mspInit.h | 0 .../hal => fsfw-hal}/stm32h7/spi/spiCore.cpp | 0 .../hal => fsfw-hal}/stm32h7/spi/spiCore.h | 0 .../stm32h7/spi/spiDefinitions.cpp | 0 .../stm32h7/spi/spiDefinitions.h | 0 .../stm32h7/spi/spiInterrupts.cpp | 0 .../stm32h7/spi/spiInterrupts.h | 0 .../stm32h7/spi/stm32h743ziSpi.cpp | 0 .../stm32h7/spi/stm32h743ziSpi.h | 0 .../stm32h7/uart/CMakeLists.txt | 0 hal/src/fsfw/CMakeLists.txt | 1 - tests/src/CMakeLists.txt | 2 +- .../{fsfw/tests => fsfw-tests}/CMakeLists.txt | 0 .../internal/CMakeLists.txt | 0 .../internal/InternalUnitTester.cpp | 0 .../internal/InternalUnitTester.h | 0 .../internal/UnittDefinitions.cpp | 0 .../internal/UnittDefinitions.h | 0 .../internal/globalfunctions/CMakeLists.txt | 0 .../globalfunctions/TestArrayPrinter.cpp | 0 .../globalfunctions/TestArrayPrinter.h | 0 .../internal/osal/CMakeLists.txt | 0 .../internal/osal/IntTestMq.cpp | 0 .../internal/osal/IntTestMq.h | 0 .../internal/osal/IntTestMutex.cpp | 0 .../internal/osal/IntTestMutex.h | 0 .../internal/osal/IntTestSemaphore.cpp | 0 .../internal/osal/IntTestSemaphore.h | 0 .../internal/serialize/CMakeLists.txt | 0 .../serialize/IntTestSerialization.cpp | 0 .../internal/serialize/IntTestSerialization.h | 0 .../tests => fsfw-tests}/unit/CMakeLists.txt | 0 .../unit/action/CMakeLists.txt | 0 .../unit/action/TestActionHelper.cpp | 0 .../unit/action/TestActionHelper.h | 0 .../unit/container/CMakeLists.txt | 0 .../unit/container/RingBufferTest.cpp | 0 .../unit/container/TestArrayList.cpp | 0 .../unit/container/TestDynamicFifo.cpp | 0 .../unit/container/TestFifo.cpp | 0 .../unit/container/TestFixedArrayList.cpp | 0 .../unit/container/TestFixedMap.cpp | 0 .../container/TestFixedOrderedMultimap.cpp | 0 .../unit/container/TestPlacementFactory.cpp | 0 .../unit/datapoollocal/CMakeLists.txt | 0 .../unit/datapoollocal/DataSetTest.cpp | 0 .../datapoollocal/LocalPoolManagerTest.cpp | 0 .../unit/datapoollocal/LocalPoolOwnerBase.cpp | 0 .../unit/datapoollocal/LocalPoolOwnerBase.h | 0 .../datapoollocal/LocalPoolVariableTest.cpp | 0 .../datapoollocal/LocalPoolVectorTest.cpp | 0 .../unit/globalfunctions/CMakeLists.txt | 0 .../unit/mocks/HkReceiverMock.h | 0 .../unit/mocks/MessageQueueMockBase.h | 0 .../unit/osal/CMakeLists.txt | 0 .../unit/osal/TestMessageQueue.cpp | 0 .../unit/osal/TestSemaphore.cpp | 0 .../unit/serialize/CMakeLists.txt | 0 .../serialize/TestSerialBufferAdapter.cpp | 0 .../unit/serialize/TestSerialLinkedPacket.cpp | 0 .../unit/serialize/TestSerialLinkedPacket.h | 0 .../unit/serialize/TestSerialization.cpp | 0 .../unit/storagemanager/CMakeLists.txt | 0 .../unit/storagemanager/TestNewAccessor.cpp | 0 .../unit/storagemanager/TestPool.cpp | 0 .../unit/tmtcpacket/CMakeLists.txt | 0 .../unit/tmtcpacket/PusTmTest.cpp | 0 tests/src/fsfw/CMakeLists.txt | 1 - 131 files changed, 22 insertions(+), 15 deletions(-) create mode 100644 contrib/fsfw-contrib/CMakeLists.txt rename contrib/{ => fsfw-contrib}/sgp4/LICENSE (100%) rename contrib/{ => fsfw-contrib}/sgp4/sgp4unit.cpp (100%) rename contrib/{ => fsfw-contrib}/sgp4/sgp4unit.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/gpio/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/gpio/GpioCookie.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/gpio/GpioCookie.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/gpio/GpioIF.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/gpio/gpioDefinitions.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/common/spi/spiCommon.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/devicehandlers/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/devicehandlers/GyroL3GD20Handler.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/devicehandlers/GyroL3GD20Handler.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/host/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/UnixFileGuard.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/UnixFileGuard.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/gpio/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/gpio/LinuxLibgpioIF.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/gpio/LinuxLibgpioIF.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/i2c/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/i2c/I2cComIF.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/i2c/I2cComIF.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/i2c/I2cCookie.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/i2c/I2cCookie.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/rpi/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/rpi/GpioRPi.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/rpi/GpioRPi.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/spi/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/spi/SpiComIF.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/spi/SpiComIF.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/spi/SpiCookie.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/spi/SpiCookie.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/spi/spiDefinitions.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/uart/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/uart/UartComIF.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/uart/UartComIF.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/uart/UartCookie.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/uart/UartCookie.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/utility.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/linux/utility.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/devicetest/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/devicetest/GyroL3GD20H.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/devicetest/GyroL3GD20H.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/dma.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/dma.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/gpio/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/gpio/gpio.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/gpio/gpio.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/i2c/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/interrupts.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/CMakeLists.txt (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/SpiComIF.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/SpiComIF.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/SpiCookie.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/SpiCookie.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/mspInit.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/mspInit.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/spiCore.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/spiCore.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/spiDefinitions.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/spiDefinitions.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/spiInterrupts.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/spiInterrupts.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/stm32h743ziSpi.cpp (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/spi/stm32h743ziSpi.h (100%) rename hal/src/{fsfw/hal => fsfw-hal}/stm32h7/uart/CMakeLists.txt (100%) delete mode 100644 hal/src/fsfw/CMakeLists.txt rename tests/src/{fsfw/tests => fsfw-tests}/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/InternalUnitTester.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/InternalUnitTester.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/UnittDefinitions.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/UnittDefinitions.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/globalfunctions/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/globalfunctions/TestArrayPrinter.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/globalfunctions/TestArrayPrinter.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/IntTestMq.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/IntTestMq.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/IntTestMutex.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/IntTestMutex.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/IntTestSemaphore.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/osal/IntTestSemaphore.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/serialize/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/serialize/IntTestSerialization.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/internal/serialize/IntTestSerialization.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/action/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/action/TestActionHelper.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/action/TestActionHelper.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/RingBufferTest.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestArrayList.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestDynamicFifo.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestFifo.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestFixedArrayList.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestFixedMap.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestFixedOrderedMultimap.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/container/TestPlacementFactory.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/DataSetTest.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/LocalPoolManagerTest.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/LocalPoolOwnerBase.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/LocalPoolOwnerBase.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/LocalPoolVariableTest.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/datapoollocal/LocalPoolVectorTest.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/globalfunctions/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/mocks/HkReceiverMock.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/mocks/MessageQueueMockBase.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/osal/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/osal/TestMessageQueue.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/osal/TestSemaphore.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/serialize/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/serialize/TestSerialBufferAdapter.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/serialize/TestSerialLinkedPacket.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/serialize/TestSerialLinkedPacket.h (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/serialize/TestSerialization.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/storagemanager/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/storagemanager/TestNewAccessor.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/storagemanager/TestPool.cpp (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/tmtcpacket/CMakeLists.txt (100%) rename tests/src/{fsfw/tests => fsfw-tests}/unit/tmtcpacket/PusTmTest.cpp (100%) delete mode 100644 tests/src/fsfw/CMakeLists.txt diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 3a987228a..8c252e82d 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -1,11 +1,9 @@ -if(FSFW_ADD_SPG4_PROPAGATOR) - target_sources(${LIB_FSFW_NAME} PRIVATE - sgp4/sgp4unit.cpp - ) - target_include_directories(${LIB_FSFW_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/sgp4 - ) - target_include_directories(${LIB_FSFW_NAME} INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR}/sgp4 - ) -endif() +target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) + +target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR} +) + +add_subdirectory(fsfw-contrib) diff --git a/contrib/fsfw-contrib/CMakeLists.txt b/contrib/fsfw-contrib/CMakeLists.txt new file mode 100644 index 000000000..3a987228a --- /dev/null +++ b/contrib/fsfw-contrib/CMakeLists.txt @@ -0,0 +1,11 @@ +if(FSFW_ADD_SPG4_PROPAGATOR) + target_sources(${LIB_FSFW_NAME} PRIVATE + sgp4/sgp4unit.cpp + ) + target_include_directories(${LIB_FSFW_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/sgp4 + ) + target_include_directories(${LIB_FSFW_NAME} INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR}/sgp4 + ) +endif() diff --git a/contrib/sgp4/LICENSE b/contrib/fsfw-contrib/sgp4/LICENSE similarity index 100% rename from contrib/sgp4/LICENSE rename to contrib/fsfw-contrib/sgp4/LICENSE diff --git a/contrib/sgp4/sgp4unit.cpp b/contrib/fsfw-contrib/sgp4/sgp4unit.cpp similarity index 100% rename from contrib/sgp4/sgp4unit.cpp rename to contrib/fsfw-contrib/sgp4/sgp4unit.cpp diff --git a/contrib/sgp4/sgp4unit.h b/contrib/fsfw-contrib/sgp4/sgp4unit.h similarity index 100% rename from contrib/sgp4/sgp4unit.h rename to contrib/fsfw-contrib/sgp4/sgp4unit.h diff --git a/hal/src/CMakeLists.txt b/hal/src/CMakeLists.txt index ed2f2522e..ff3f1beb5 100644 --- a/hal/src/CMakeLists.txt +++ b/hal/src/CMakeLists.txt @@ -6,4 +6,4 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) -add_subdirectory(fsfw) +add_subdirectory(fsfw-hal) diff --git a/hal/src/fsfw/hal/CMakeLists.txt b/hal/src/fsfw-hal/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/CMakeLists.txt rename to hal/src/fsfw-hal/CMakeLists.txt diff --git a/hal/src/fsfw/hal/common/CMakeLists.txt b/hal/src/fsfw-hal/common/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/common/CMakeLists.txt rename to hal/src/fsfw-hal/common/CMakeLists.txt diff --git a/hal/src/fsfw/hal/common/gpio/CMakeLists.txt b/hal/src/fsfw-hal/common/gpio/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/common/gpio/CMakeLists.txt rename to hal/src/fsfw-hal/common/gpio/CMakeLists.txt diff --git a/hal/src/fsfw/hal/common/gpio/GpioCookie.cpp b/hal/src/fsfw-hal/common/gpio/GpioCookie.cpp similarity index 100% rename from hal/src/fsfw/hal/common/gpio/GpioCookie.cpp rename to hal/src/fsfw-hal/common/gpio/GpioCookie.cpp diff --git a/hal/src/fsfw/hal/common/gpio/GpioCookie.h b/hal/src/fsfw-hal/common/gpio/GpioCookie.h similarity index 100% rename from hal/src/fsfw/hal/common/gpio/GpioCookie.h rename to hal/src/fsfw-hal/common/gpio/GpioCookie.h diff --git a/hal/src/fsfw/hal/common/gpio/GpioIF.h b/hal/src/fsfw-hal/common/gpio/GpioIF.h similarity index 100% rename from hal/src/fsfw/hal/common/gpio/GpioIF.h rename to hal/src/fsfw-hal/common/gpio/GpioIF.h diff --git a/hal/src/fsfw/hal/common/gpio/gpioDefinitions.h b/hal/src/fsfw-hal/common/gpio/gpioDefinitions.h similarity index 100% rename from hal/src/fsfw/hal/common/gpio/gpioDefinitions.h rename to hal/src/fsfw-hal/common/gpio/gpioDefinitions.h diff --git a/hal/src/fsfw/hal/common/spi/spiCommon.h b/hal/src/fsfw-hal/common/spi/spiCommon.h similarity index 100% rename from hal/src/fsfw/hal/common/spi/spiCommon.h rename to hal/src/fsfw-hal/common/spi/spiCommon.h diff --git a/hal/src/fsfw/hal/devicehandlers/CMakeLists.txt b/hal/src/fsfw-hal/devicehandlers/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/devicehandlers/CMakeLists.txt rename to hal/src/fsfw-hal/devicehandlers/CMakeLists.txt diff --git a/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp similarity index 100% rename from hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.cpp rename to hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp diff --git a/hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.h similarity index 100% rename from hal/src/fsfw/hal/devicehandlers/GyroL3GD20Handler.h rename to hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.h diff --git a/hal/src/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h b/hal/src/fsfw-hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h similarity index 100% rename from hal/src/fsfw/hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h rename to hal/src/fsfw-hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h diff --git a/hal/src/fsfw/hal/host/CMakeLists.txt b/hal/src/fsfw-hal/host/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/host/CMakeLists.txt rename to hal/src/fsfw-hal/host/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/CMakeLists.txt b/hal/src/fsfw-hal/linux/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/linux/CMakeLists.txt rename to hal/src/fsfw-hal/linux/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/UnixFileGuard.cpp b/hal/src/fsfw-hal/linux/UnixFileGuard.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/UnixFileGuard.cpp rename to hal/src/fsfw-hal/linux/UnixFileGuard.cpp diff --git a/hal/src/fsfw/hal/linux/UnixFileGuard.h b/hal/src/fsfw-hal/linux/UnixFileGuard.h similarity index 100% rename from hal/src/fsfw/hal/linux/UnixFileGuard.h rename to hal/src/fsfw-hal/linux/UnixFileGuard.h diff --git a/hal/src/fsfw/hal/linux/gpio/CMakeLists.txt b/hal/src/fsfw-hal/linux/gpio/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/linux/gpio/CMakeLists.txt rename to hal/src/fsfw-hal/linux/gpio/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.cpp rename to hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp diff --git a/hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h b/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.h similarity index 100% rename from hal/src/fsfw/hal/linux/gpio/LinuxLibgpioIF.h rename to hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.h diff --git a/hal/src/fsfw/hal/linux/i2c/CMakeLists.txt b/hal/src/fsfw-hal/linux/i2c/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/linux/i2c/CMakeLists.txt rename to hal/src/fsfw-hal/linux/i2c/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/i2c/I2cComIF.cpp b/hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/i2c/I2cComIF.cpp rename to hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp diff --git a/hal/src/fsfw/hal/linux/i2c/I2cComIF.h b/hal/src/fsfw-hal/linux/i2c/I2cComIF.h similarity index 100% rename from hal/src/fsfw/hal/linux/i2c/I2cComIF.h rename to hal/src/fsfw-hal/linux/i2c/I2cComIF.h diff --git a/hal/src/fsfw/hal/linux/i2c/I2cCookie.cpp b/hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/i2c/I2cCookie.cpp rename to hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp diff --git a/hal/src/fsfw/hal/linux/i2c/I2cCookie.h b/hal/src/fsfw-hal/linux/i2c/I2cCookie.h similarity index 100% rename from hal/src/fsfw/hal/linux/i2c/I2cCookie.h rename to hal/src/fsfw-hal/linux/i2c/I2cCookie.h diff --git a/hal/src/fsfw/hal/linux/rpi/CMakeLists.txt b/hal/src/fsfw-hal/linux/rpi/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/linux/rpi/CMakeLists.txt rename to hal/src/fsfw-hal/linux/rpi/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/rpi/GpioRPi.cpp b/hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/rpi/GpioRPi.cpp rename to hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp diff --git a/hal/src/fsfw/hal/linux/rpi/GpioRPi.h b/hal/src/fsfw-hal/linux/rpi/GpioRPi.h similarity index 100% rename from hal/src/fsfw/hal/linux/rpi/GpioRPi.h rename to hal/src/fsfw-hal/linux/rpi/GpioRPi.h diff --git a/hal/src/fsfw/hal/linux/spi/CMakeLists.txt b/hal/src/fsfw-hal/linux/spi/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/linux/spi/CMakeLists.txt rename to hal/src/fsfw-hal/linux/spi/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw-hal/linux/spi/SpiComIF.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/spi/SpiComIF.cpp rename to hal/src/fsfw-hal/linux/spi/SpiComIF.cpp diff --git a/hal/src/fsfw/hal/linux/spi/SpiComIF.h b/hal/src/fsfw-hal/linux/spi/SpiComIF.h similarity index 100% rename from hal/src/fsfw/hal/linux/spi/SpiComIF.h rename to hal/src/fsfw-hal/linux/spi/SpiComIF.h diff --git a/hal/src/fsfw/hal/linux/spi/SpiCookie.cpp b/hal/src/fsfw-hal/linux/spi/SpiCookie.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/spi/SpiCookie.cpp rename to hal/src/fsfw-hal/linux/spi/SpiCookie.cpp diff --git a/hal/src/fsfw/hal/linux/spi/SpiCookie.h b/hal/src/fsfw-hal/linux/spi/SpiCookie.h similarity index 100% rename from hal/src/fsfw/hal/linux/spi/SpiCookie.h rename to hal/src/fsfw-hal/linux/spi/SpiCookie.h diff --git a/hal/src/fsfw/hal/linux/spi/spiDefinitions.h b/hal/src/fsfw-hal/linux/spi/spiDefinitions.h similarity index 100% rename from hal/src/fsfw/hal/linux/spi/spiDefinitions.h rename to hal/src/fsfw-hal/linux/spi/spiDefinitions.h diff --git a/hal/src/fsfw/hal/linux/uart/CMakeLists.txt b/hal/src/fsfw-hal/linux/uart/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/linux/uart/CMakeLists.txt rename to hal/src/fsfw-hal/linux/uart/CMakeLists.txt diff --git a/hal/src/fsfw/hal/linux/uart/UartComIF.cpp b/hal/src/fsfw-hal/linux/uart/UartComIF.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/uart/UartComIF.cpp rename to hal/src/fsfw-hal/linux/uart/UartComIF.cpp diff --git a/hal/src/fsfw/hal/linux/uart/UartComIF.h b/hal/src/fsfw-hal/linux/uart/UartComIF.h similarity index 100% rename from hal/src/fsfw/hal/linux/uart/UartComIF.h rename to hal/src/fsfw-hal/linux/uart/UartComIF.h diff --git a/hal/src/fsfw/hal/linux/uart/UartCookie.cpp b/hal/src/fsfw-hal/linux/uart/UartCookie.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/uart/UartCookie.cpp rename to hal/src/fsfw-hal/linux/uart/UartCookie.cpp diff --git a/hal/src/fsfw/hal/linux/uart/UartCookie.h b/hal/src/fsfw-hal/linux/uart/UartCookie.h similarity index 100% rename from hal/src/fsfw/hal/linux/uart/UartCookie.h rename to hal/src/fsfw-hal/linux/uart/UartCookie.h diff --git a/hal/src/fsfw/hal/linux/utility.cpp b/hal/src/fsfw-hal/linux/utility.cpp similarity index 100% rename from hal/src/fsfw/hal/linux/utility.cpp rename to hal/src/fsfw-hal/linux/utility.cpp diff --git a/hal/src/fsfw/hal/linux/utility.h b/hal/src/fsfw-hal/linux/utility.h similarity index 100% rename from hal/src/fsfw/hal/linux/utility.h rename to hal/src/fsfw-hal/linux/utility.h diff --git a/hal/src/fsfw/hal/stm32h7/CMakeLists.txt b/hal/src/fsfw-hal/stm32h7/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/stm32h7/CMakeLists.txt rename to hal/src/fsfw-hal/stm32h7/CMakeLists.txt diff --git a/hal/src/fsfw/hal/stm32h7/devicetest/CMakeLists.txt b/hal/src/fsfw-hal/stm32h7/devicetest/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/stm32h7/devicetest/CMakeLists.txt rename to hal/src/fsfw-hal/stm32h7/devicetest/CMakeLists.txt diff --git a/hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.cpp rename to hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp diff --git a/hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h b/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h rename to hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.h diff --git a/hal/src/fsfw/hal/stm32h7/dma.cpp b/hal/src/fsfw-hal/stm32h7/dma.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/dma.cpp rename to hal/src/fsfw-hal/stm32h7/dma.cpp diff --git a/hal/src/fsfw/hal/stm32h7/dma.h b/hal/src/fsfw-hal/stm32h7/dma.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/dma.h rename to hal/src/fsfw-hal/stm32h7/dma.h diff --git a/hal/src/fsfw/hal/stm32h7/gpio/CMakeLists.txt b/hal/src/fsfw-hal/stm32h7/gpio/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/stm32h7/gpio/CMakeLists.txt rename to hal/src/fsfw-hal/stm32h7/gpio/CMakeLists.txt diff --git a/hal/src/fsfw/hal/stm32h7/gpio/gpio.cpp b/hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/gpio/gpio.cpp rename to hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp diff --git a/hal/src/fsfw/hal/stm32h7/gpio/gpio.h b/hal/src/fsfw-hal/stm32h7/gpio/gpio.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/gpio/gpio.h rename to hal/src/fsfw-hal/stm32h7/gpio/gpio.h diff --git a/hal/src/fsfw/hal/stm32h7/i2c/CMakeLists.txt b/hal/src/fsfw-hal/stm32h7/i2c/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/stm32h7/i2c/CMakeLists.txt rename to hal/src/fsfw-hal/stm32h7/i2c/CMakeLists.txt diff --git a/hal/src/fsfw/hal/stm32h7/interrupts.h b/hal/src/fsfw-hal/stm32h7/interrupts.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/interrupts.h rename to hal/src/fsfw-hal/stm32h7/interrupts.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/CMakeLists.txt b/hal/src/fsfw-hal/stm32h7/spi/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/CMakeLists.txt rename to hal/src/fsfw-hal/stm32h7/spi/CMakeLists.txt diff --git a/hal/src/fsfw/hal/stm32h7/spi/SpiComIF.cpp b/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/SpiComIF.cpp rename to hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/SpiComIF.h b/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/SpiComIF.h rename to hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/SpiCookie.cpp b/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/SpiCookie.cpp rename to hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/SpiCookie.h b/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/SpiCookie.h rename to hal/src/fsfw-hal/stm32h7/spi/SpiCookie.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/mspInit.cpp b/hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/mspInit.cpp rename to hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/mspInit.h b/hal/src/fsfw-hal/stm32h7/spi/mspInit.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/mspInit.h rename to hal/src/fsfw-hal/stm32h7/spi/mspInit.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/spiCore.cpp b/hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/spiCore.cpp rename to hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/spiCore.h b/hal/src/fsfw-hal/stm32h7/spi/spiCore.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/spiCore.h rename to hal/src/fsfw-hal/stm32h7/spi/spiCore.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.cpp b/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.cpp rename to hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h b/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/spiDefinitions.h rename to hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.cpp b/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.cpp rename to hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.h b/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/spiInterrupts.h rename to hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.h diff --git a/hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.cpp rename to hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp diff --git a/hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h b/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.h similarity index 100% rename from hal/src/fsfw/hal/stm32h7/spi/stm32h743ziSpi.h rename to hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.h diff --git a/hal/src/fsfw/hal/stm32h7/uart/CMakeLists.txt b/hal/src/fsfw-hal/stm32h7/uart/CMakeLists.txt similarity index 100% rename from hal/src/fsfw/hal/stm32h7/uart/CMakeLists.txt rename to hal/src/fsfw-hal/stm32h7/uart/CMakeLists.txt diff --git a/hal/src/fsfw/CMakeLists.txt b/hal/src/fsfw/CMakeLists.txt deleted file mode 100644 index c034e0b73..000000000 --- a/hal/src/fsfw/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(hal) diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index ed2f2522e..18bf7f8ca 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -6,4 +6,4 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) -add_subdirectory(fsfw) +add_subdirectory(fsfw-tests) diff --git a/tests/src/fsfw/tests/CMakeLists.txt b/tests/src/fsfw-tests/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/CMakeLists.txt rename to tests/src/fsfw-tests/CMakeLists.txt diff --git a/tests/src/fsfw/tests/internal/CMakeLists.txt b/tests/src/fsfw-tests/internal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/internal/CMakeLists.txt rename to tests/src/fsfw-tests/internal/CMakeLists.txt diff --git a/tests/src/fsfw/tests/internal/InternalUnitTester.cpp b/tests/src/fsfw-tests/internal/InternalUnitTester.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/InternalUnitTester.cpp rename to tests/src/fsfw-tests/internal/InternalUnitTester.cpp diff --git a/tests/src/fsfw/tests/internal/InternalUnitTester.h b/tests/src/fsfw-tests/internal/InternalUnitTester.h similarity index 100% rename from tests/src/fsfw/tests/internal/InternalUnitTester.h rename to tests/src/fsfw-tests/internal/InternalUnitTester.h diff --git a/tests/src/fsfw/tests/internal/UnittDefinitions.cpp b/tests/src/fsfw-tests/internal/UnittDefinitions.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/UnittDefinitions.cpp rename to tests/src/fsfw-tests/internal/UnittDefinitions.cpp diff --git a/tests/src/fsfw/tests/internal/UnittDefinitions.h b/tests/src/fsfw-tests/internal/UnittDefinitions.h similarity index 100% rename from tests/src/fsfw/tests/internal/UnittDefinitions.h rename to tests/src/fsfw-tests/internal/UnittDefinitions.h diff --git a/tests/src/fsfw/tests/internal/globalfunctions/CMakeLists.txt b/tests/src/fsfw-tests/internal/globalfunctions/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/internal/globalfunctions/CMakeLists.txt rename to tests/src/fsfw-tests/internal/globalfunctions/CMakeLists.txt diff --git a/tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.cpp b/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.cpp rename to tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp diff --git a/tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h b/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.h similarity index 100% rename from tests/src/fsfw/tests/internal/globalfunctions/TestArrayPrinter.h rename to tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.h diff --git a/tests/src/fsfw/tests/internal/osal/CMakeLists.txt b/tests/src/fsfw-tests/internal/osal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/internal/osal/CMakeLists.txt rename to tests/src/fsfw-tests/internal/osal/CMakeLists.txt diff --git a/tests/src/fsfw/tests/internal/osal/IntTestMq.cpp b/tests/src/fsfw-tests/internal/osal/IntTestMq.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/osal/IntTestMq.cpp rename to tests/src/fsfw-tests/internal/osal/IntTestMq.cpp diff --git a/tests/src/fsfw/tests/internal/osal/IntTestMq.h b/tests/src/fsfw-tests/internal/osal/IntTestMq.h similarity index 100% rename from tests/src/fsfw/tests/internal/osal/IntTestMq.h rename to tests/src/fsfw-tests/internal/osal/IntTestMq.h diff --git a/tests/src/fsfw/tests/internal/osal/IntTestMutex.cpp b/tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/osal/IntTestMutex.cpp rename to tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp diff --git a/tests/src/fsfw/tests/internal/osal/IntTestMutex.h b/tests/src/fsfw-tests/internal/osal/IntTestMutex.h similarity index 100% rename from tests/src/fsfw/tests/internal/osal/IntTestMutex.h rename to tests/src/fsfw-tests/internal/osal/IntTestMutex.h diff --git a/tests/src/fsfw/tests/internal/osal/IntTestSemaphore.cpp b/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/osal/IntTestSemaphore.cpp rename to tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp diff --git a/tests/src/fsfw/tests/internal/osal/IntTestSemaphore.h b/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.h similarity index 100% rename from tests/src/fsfw/tests/internal/osal/IntTestSemaphore.h rename to tests/src/fsfw-tests/internal/osal/IntTestSemaphore.h diff --git a/tests/src/fsfw/tests/internal/serialize/CMakeLists.txt b/tests/src/fsfw-tests/internal/serialize/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/internal/serialize/CMakeLists.txt rename to tests/src/fsfw-tests/internal/serialize/CMakeLists.txt diff --git a/tests/src/fsfw/tests/internal/serialize/IntTestSerialization.cpp b/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp similarity index 100% rename from tests/src/fsfw/tests/internal/serialize/IntTestSerialization.cpp rename to tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp diff --git a/tests/src/fsfw/tests/internal/serialize/IntTestSerialization.h b/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.h similarity index 100% rename from tests/src/fsfw/tests/internal/serialize/IntTestSerialization.h rename to tests/src/fsfw-tests/internal/serialize/IntTestSerialization.h diff --git a/tests/src/fsfw/tests/unit/CMakeLists.txt b/tests/src/fsfw-tests/unit/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/CMakeLists.txt rename to tests/src/fsfw-tests/unit/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/action/CMakeLists.txt b/tests/src/fsfw-tests/unit/action/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/action/CMakeLists.txt rename to tests/src/fsfw-tests/unit/action/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/action/TestActionHelper.cpp b/tests/src/fsfw-tests/unit/action/TestActionHelper.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/action/TestActionHelper.cpp rename to tests/src/fsfw-tests/unit/action/TestActionHelper.cpp diff --git a/tests/src/fsfw/tests/unit/action/TestActionHelper.h b/tests/src/fsfw-tests/unit/action/TestActionHelper.h similarity index 100% rename from tests/src/fsfw/tests/unit/action/TestActionHelper.h rename to tests/src/fsfw-tests/unit/action/TestActionHelper.h diff --git a/tests/src/fsfw/tests/unit/container/CMakeLists.txt b/tests/src/fsfw-tests/unit/container/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/container/CMakeLists.txt rename to tests/src/fsfw-tests/unit/container/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/container/RingBufferTest.cpp b/tests/src/fsfw-tests/unit/container/RingBufferTest.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/RingBufferTest.cpp rename to tests/src/fsfw-tests/unit/container/RingBufferTest.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestArrayList.cpp b/tests/src/fsfw-tests/unit/container/TestArrayList.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestArrayList.cpp rename to tests/src/fsfw-tests/unit/container/TestArrayList.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestDynamicFifo.cpp b/tests/src/fsfw-tests/unit/container/TestDynamicFifo.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestDynamicFifo.cpp rename to tests/src/fsfw-tests/unit/container/TestDynamicFifo.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestFifo.cpp b/tests/src/fsfw-tests/unit/container/TestFifo.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestFifo.cpp rename to tests/src/fsfw-tests/unit/container/TestFifo.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestFixedArrayList.cpp b/tests/src/fsfw-tests/unit/container/TestFixedArrayList.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestFixedArrayList.cpp rename to tests/src/fsfw-tests/unit/container/TestFixedArrayList.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestFixedMap.cpp b/tests/src/fsfw-tests/unit/container/TestFixedMap.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestFixedMap.cpp rename to tests/src/fsfw-tests/unit/container/TestFixedMap.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestFixedOrderedMultimap.cpp b/tests/src/fsfw-tests/unit/container/TestFixedOrderedMultimap.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestFixedOrderedMultimap.cpp rename to tests/src/fsfw-tests/unit/container/TestFixedOrderedMultimap.cpp diff --git a/tests/src/fsfw/tests/unit/container/TestPlacementFactory.cpp b/tests/src/fsfw-tests/unit/container/TestPlacementFactory.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/container/TestPlacementFactory.cpp rename to tests/src/fsfw-tests/unit/container/TestPlacementFactory.cpp diff --git a/tests/src/fsfw/tests/unit/datapoollocal/CMakeLists.txt b/tests/src/fsfw-tests/unit/datapoollocal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/CMakeLists.txt rename to tests/src/fsfw-tests/unit/datapoollocal/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/datapoollocal/DataSetTest.cpp b/tests/src/fsfw-tests/unit/datapoollocal/DataSetTest.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/DataSetTest.cpp rename to tests/src/fsfw-tests/unit/datapoollocal/DataSetTest.cpp diff --git a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolManagerTest.cpp b/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolManagerTest.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/LocalPoolManagerTest.cpp rename to tests/src/fsfw-tests/unit/datapoollocal/LocalPoolManagerTest.cpp diff --git a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.cpp b/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.cpp rename to tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.cpp diff --git a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h b/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.h similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/LocalPoolOwnerBase.h rename to tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.h diff --git a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVariableTest.cpp b/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVariableTest.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVariableTest.cpp rename to tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVariableTest.cpp diff --git a/tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVectorTest.cpp b/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVectorTest.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/datapoollocal/LocalPoolVectorTest.cpp rename to tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVectorTest.cpp diff --git a/tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt b/tests/src/fsfw-tests/unit/globalfunctions/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/globalfunctions/CMakeLists.txt rename to tests/src/fsfw-tests/unit/globalfunctions/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/mocks/HkReceiverMock.h b/tests/src/fsfw-tests/unit/mocks/HkReceiverMock.h similarity index 100% rename from tests/src/fsfw/tests/unit/mocks/HkReceiverMock.h rename to tests/src/fsfw-tests/unit/mocks/HkReceiverMock.h diff --git a/tests/src/fsfw/tests/unit/mocks/MessageQueueMockBase.h b/tests/src/fsfw-tests/unit/mocks/MessageQueueMockBase.h similarity index 100% rename from tests/src/fsfw/tests/unit/mocks/MessageQueueMockBase.h rename to tests/src/fsfw-tests/unit/mocks/MessageQueueMockBase.h diff --git a/tests/src/fsfw/tests/unit/osal/CMakeLists.txt b/tests/src/fsfw-tests/unit/osal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/osal/CMakeLists.txt rename to tests/src/fsfw-tests/unit/osal/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/osal/TestMessageQueue.cpp b/tests/src/fsfw-tests/unit/osal/TestMessageQueue.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/osal/TestMessageQueue.cpp rename to tests/src/fsfw-tests/unit/osal/TestMessageQueue.cpp diff --git a/tests/src/fsfw/tests/unit/osal/TestSemaphore.cpp b/tests/src/fsfw-tests/unit/osal/TestSemaphore.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/osal/TestSemaphore.cpp rename to tests/src/fsfw-tests/unit/osal/TestSemaphore.cpp diff --git a/tests/src/fsfw/tests/unit/serialize/CMakeLists.txt b/tests/src/fsfw-tests/unit/serialize/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/serialize/CMakeLists.txt rename to tests/src/fsfw-tests/unit/serialize/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/serialize/TestSerialBufferAdapter.cpp b/tests/src/fsfw-tests/unit/serialize/TestSerialBufferAdapter.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/serialize/TestSerialBufferAdapter.cpp rename to tests/src/fsfw-tests/unit/serialize/TestSerialBufferAdapter.cpp diff --git a/tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.cpp b/tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.cpp rename to tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.cpp diff --git a/tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.h b/tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.h similarity index 100% rename from tests/src/fsfw/tests/unit/serialize/TestSerialLinkedPacket.h rename to tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.h diff --git a/tests/src/fsfw/tests/unit/serialize/TestSerialization.cpp b/tests/src/fsfw-tests/unit/serialize/TestSerialization.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/serialize/TestSerialization.cpp rename to tests/src/fsfw-tests/unit/serialize/TestSerialization.cpp diff --git a/tests/src/fsfw/tests/unit/storagemanager/CMakeLists.txt b/tests/src/fsfw-tests/unit/storagemanager/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/storagemanager/CMakeLists.txt rename to tests/src/fsfw-tests/unit/storagemanager/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/storagemanager/TestNewAccessor.cpp b/tests/src/fsfw-tests/unit/storagemanager/TestNewAccessor.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/storagemanager/TestNewAccessor.cpp rename to tests/src/fsfw-tests/unit/storagemanager/TestNewAccessor.cpp diff --git a/tests/src/fsfw/tests/unit/storagemanager/TestPool.cpp b/tests/src/fsfw-tests/unit/storagemanager/TestPool.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/storagemanager/TestPool.cpp rename to tests/src/fsfw-tests/unit/storagemanager/TestPool.cpp diff --git a/tests/src/fsfw/tests/unit/tmtcpacket/CMakeLists.txt b/tests/src/fsfw-tests/unit/tmtcpacket/CMakeLists.txt similarity index 100% rename from tests/src/fsfw/tests/unit/tmtcpacket/CMakeLists.txt rename to tests/src/fsfw-tests/unit/tmtcpacket/CMakeLists.txt diff --git a/tests/src/fsfw/tests/unit/tmtcpacket/PusTmTest.cpp b/tests/src/fsfw-tests/unit/tmtcpacket/PusTmTest.cpp similarity index 100% rename from tests/src/fsfw/tests/unit/tmtcpacket/PusTmTest.cpp rename to tests/src/fsfw-tests/unit/tmtcpacket/PusTmTest.cpp diff --git a/tests/src/fsfw/CMakeLists.txt b/tests/src/fsfw/CMakeLists.txt deleted file mode 100644 index 571a126ee..000000000 --- a/tests/src/fsfw/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(tests) \ No newline at end of file From aabc729e77622de9d80cddd8dedd3cb5690f8f8a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 2 Aug 2021 15:47:12 +0200 Subject: [PATCH 064/136] include changes --- CMakeLists.txt | 2 +- contrib/fsfw-contrib/CMakeLists.txt | 2 +- hal/src/fsfw-hal/common/gpio/GpioCookie.cpp | 2 +- .../fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp | 2 +- hal/src/fsfw-hal/linux/UnixFileGuard.cpp | 2 +- hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp | 6 +++--- hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp | 6 +++--- hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp | 2 +- hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp | 4 ++-- hal/src/fsfw-hal/linux/spi/SpiComIF.cpp | 8 ++++---- hal/src/fsfw-hal/linux/spi/SpiComIF.h | 2 +- hal/src/fsfw-hal/linux/spi/SpiCookie.cpp | 2 +- hal/src/fsfw-hal/linux/uart/UartComIF.cpp | 2 +- hal/src/fsfw-hal/linux/uart/UartCookie.cpp | 2 +- hal/src/fsfw-hal/linux/utility.cpp | 2 +- .../fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp | 12 ++++++------ hal/src/fsfw-hal/stm32h7/dma.cpp | 2 +- hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp | 2 +- hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp | 12 ++++++------ hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h | 2 +- hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp | 2 +- hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp | 8 ++++---- hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp | 4 ++-- hal/src/fsfw-hal/stm32h7/spi/spiCore.h | 4 ++-- hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp | 2 +- hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp | 4 ++-- hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp | 6 +++--- src/fsfw/FSFW.h.in | 1 + src/fsfw/coordinates/Sgp4Propagator.h | 2 +- src/fsfw/coordinates/coordinatesConf.h | 5 +++++ .../src/fsfw-tests/internal/InternalUnitTester.cpp | 14 +++++++------- tests/src/fsfw-tests/internal/UnittDefinitions.cpp | 2 +- .../internal/globalfunctions/TestArrayPrinter.cpp | 2 +- tests/src/fsfw-tests/internal/osal/IntTestMq.cpp | 4 ++-- .../src/fsfw-tests/internal/osal/IntTestMutex.cpp | 4 ++-- .../fsfw-tests/internal/osal/IntTestSemaphore.cpp | 4 ++-- .../internal/serialize/IntTestSerialization.cpp | 4 ++-- 37 files changed, 77 insertions(+), 71 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c75d711fe..e3a526f5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ option(FSFW_ADD_COORDINATES "Compile with coordinate components" OFF) option(FSFW_ADD_TMSTORAGE "Compile with tm storage components" OFF) # Contrib sources -option(FSFW_ADD_SPG4_PROPAGATOR "Add SPG4 propagator code" OFF) +option(FSFW_ADD_SGP4_PROPAGATOR "Add SGP4 propagator code" OFF) set(LIB_FSFW_NAME fsfw) add_library(${LIB_FSFW_NAME}) diff --git a/contrib/fsfw-contrib/CMakeLists.txt b/contrib/fsfw-contrib/CMakeLists.txt index 3a987228a..3a7e4182a 100644 --- a/contrib/fsfw-contrib/CMakeLists.txt +++ b/contrib/fsfw-contrib/CMakeLists.txt @@ -1,4 +1,4 @@ -if(FSFW_ADD_SPG4_PROPAGATOR) +if(FSFW_ADD_SGP4_PROPAGATOR) target_sources(${LIB_FSFW_NAME} PRIVATE sgp4/sgp4unit.cpp ) diff --git a/hal/src/fsfw-hal/common/gpio/GpioCookie.cpp b/hal/src/fsfw-hal/common/gpio/GpioCookie.cpp index 31832070a..4d221ed9c 100644 --- a/hal/src/fsfw-hal/common/gpio/GpioCookie.cpp +++ b/hal/src/fsfw-hal/common/gpio/GpioCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/common/gpio/GpioCookie.h" +#include "fsfw-hal/common/gpio/GpioCookie.h" #include "fsfw/serviceinterface/ServiceInterface.h" GpioCookie::GpioCookie() { diff --git a/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp index 11f7e92d0..539877cc4 100644 --- a/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp +++ b/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/devicehandlers/GyroL3GD20Handler.h" +#include "fsfw-hal/devicehandlers/GyroL3GD20Handler.h" #include "fsfw/datapool/PoolReadGuard.h" diff --git a/hal/src/fsfw-hal/linux/UnixFileGuard.cpp b/hal/src/fsfw-hal/linux/UnixFileGuard.cpp index c47e35b19..31280844b 100644 --- a/hal/src/fsfw-hal/linux/UnixFileGuard.cpp +++ b/hal/src/fsfw-hal/linux/UnixFileGuard.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/linux/UnixFileGuard.h" +#include "fsfw-hal/linux/UnixFileGuard.h" UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, std::string diagnosticPrefix): diff --git a/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp index 98e027964..573961691 100644 --- a/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp +++ b/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp @@ -1,6 +1,6 @@ -#include "fsfw/hal/linux/gpio/LinuxLibgpioIF.h" -#include "fsfw/hal/common/gpio/gpioDefinitions.h" -#include "fsfw/hal/common/gpio/GpioCookie.h" +#include "fsfw-hal/linux/gpio/LinuxLibgpioIF.h" +#include "fsfw-hal/common/gpio/gpioDefinitions.h" +#include "fsfw-hal/common/gpio/GpioCookie.h" #include diff --git a/hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp b/hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp index d756e75ea..b1d3da9eb 100644 --- a/hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp +++ b/hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp @@ -1,6 +1,6 @@ -#include "fsfw/hal/linux/i2c/I2cComIF.h" -#include "fsfw/hal/linux/utility.h" -#include "fsfw/hal/linux/UnixFileGuard.h" +#include "fsfw-hal/linux/i2c/I2cComIF.h" +#include "fsfw-hal/linux/utility.h" +#include "fsfw-hal/linux/UnixFileGuard.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp b/hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp index fd0f654d7..c3297f1e6 100644 --- a/hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp +++ b/hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/linux/i2c/I2cCookie.h" +#include "fsfw-hal/linux/i2c/I2cCookie.h" I2cCookie::I2cCookie(address_t i2cAddress_, size_t maxReplyLen_, std::string deviceFile_) : diff --git a/hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp b/hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp index 277a9fb2b..c4cc51ff1 100644 --- a/hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp +++ b/hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp @@ -1,7 +1,7 @@ #include "fsfw/FSFW.h" -#include "fsfw/hal/linux/rpi/GpioRPi.h" -#include "fsfw/hal/common/gpio/GpioCookie.h" +#include "fsfw-hal/linux/rpi/GpioRPi.h" +#include "fsfw-hal/common/gpio/GpioCookie.h" #include diff --git a/hal/src/fsfw-hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw-hal/linux/spi/SpiComIF.cpp index f3d8ab09c..35aa6c296 100644 --- a/hal/src/fsfw-hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw-hal/linux/spi/SpiComIF.cpp @@ -1,8 +1,8 @@ #include "fsfw/FSFW.h" -#include "fsfw/hal/linux/spi/SpiComIF.h" -#include "fsfw/hal/linux/spi/SpiCookie.h" -#include "fsfw/hal/linux/utility.h" -#include "fsfw/hal/linux/UnixFileGuard.h" +#include "fsfw-hal/linux/spi/SpiComIF.h" +#include "fsfw-hal/linux/spi/SpiCookie.h" +#include "fsfw-hal/linux/utility.h" +#include "fsfw-hal/linux/UnixFileGuard.h" #include #include diff --git a/hal/src/fsfw-hal/linux/spi/SpiComIF.h b/hal/src/fsfw-hal/linux/spi/SpiComIF.h index 7f66b8e50..daabf6be4 100644 --- a/hal/src/fsfw-hal/linux/spi/SpiComIF.h +++ b/hal/src/fsfw-hal/linux/spi/SpiComIF.h @@ -3,7 +3,7 @@ #include "spiDefinitions.h" #include "returnvalues/classIds.h" -#include "fsfw/hal/common/gpio/GpioIF.h" +#include "fsfw-hal/common/gpio/GpioIF.h" #include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include "fsfw/objectmanager/SystemObject.h" diff --git a/hal/src/fsfw-hal/linux/spi/SpiCookie.cpp b/hal/src/fsfw-hal/linux/spi/SpiCookie.cpp index a74bc419e..1f1806c23 100644 --- a/hal/src/fsfw-hal/linux/spi/SpiCookie.cpp +++ b/hal/src/fsfw-hal/linux/spi/SpiCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/linux/spi/SpiCookie.h" +#include "fsfw-hal/linux/spi/SpiCookie.h" SpiCookie::SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed): diff --git a/hal/src/fsfw-hal/linux/uart/UartComIF.cpp b/hal/src/fsfw-hal/linux/uart/UartComIF.cpp index e5fc90c3f..c6e192c50 100644 --- a/hal/src/fsfw-hal/linux/uart/UartComIF.cpp +++ b/hal/src/fsfw-hal/linux/uart/UartComIF.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/linux/uart/UartComIF.h" +#include "fsfw-hal/linux/uart/UartComIF.h" #include "OBSWConfig.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/fsfw-hal/linux/uart/UartCookie.cpp b/hal/src/fsfw-hal/linux/uart/UartCookie.cpp index bfd091a8c..5156d9b8a 100644 --- a/hal/src/fsfw-hal/linux/uart/UartCookie.cpp +++ b/hal/src/fsfw-hal/linux/uart/UartCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/linux/uart/UartCookie.h" +#include "fsfw-hal/linux/uart/UartCookie.h" #include diff --git a/hal/src/fsfw-hal/linux/utility.cpp b/hal/src/fsfw-hal/linux/utility.cpp index 04fded6c6..6120f9838 100644 --- a/hal/src/fsfw-hal/linux/utility.cpp +++ b/hal/src/fsfw-hal/linux/utility.cpp @@ -1,6 +1,6 @@ #include "fsfw/FSFW.h" #include "fsfw/serviceinterface/ServiceInterface.h" -#include "fsfw/hal/linux/utility.h" +#include "fsfw-hal/linux/utility.h" #include #include diff --git a/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp index 04b1de3bc..7e5d0d513 100644 --- a/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp +++ b/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp @@ -1,10 +1,10 @@ -#include "fsfw/hal/stm32h7/devicetest/GyroL3GD20H.h" +#include "fsfw-hal/stm32h7/devicetest/GyroL3GD20H.h" -#include "fsfw/hal/stm32h7/spi/mspInit.h" -#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" -#include "fsfw/hal/stm32h7/spi/spiCore.h" -#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw/hal/stm32h7/spi/stm32h743ziSpi.h" +#include "fsfw-hal/stm32h7/spi/mspInit.h" +#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw-hal/stm32h7/spi/spiCore.h" +#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw-hal/stm32h7/spi/stm32h743ziSpi.h" #include "fsfw/tasks/TaskFactory.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/fsfw-hal/stm32h7/dma.cpp b/hal/src/fsfw-hal/stm32h7/dma.cpp index 288e42944..97cd93a29 100644 --- a/hal/src/fsfw-hal/stm32h7/dma.cpp +++ b/hal/src/fsfw-hal/stm32h7/dma.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp b/hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp index 927588a37..d8b24270e 100644 --- a/hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp +++ b/hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/stm32h7/gpio/gpio.h" +#include "fsfw-hal/stm32h7/gpio/gpio.h" #include "stm32h7xx_hal_rcc.h" diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp b/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp index da34c4c0c..f91602f9a 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp @@ -1,11 +1,11 @@ -#include "fsfw/hal/stm32h7/spi/SpiComIF.h" -#include "fsfw/hal/stm32h7/spi/SpiCookie.h" +#include "fsfw-hal/stm32h7/spi/SpiComIF.h" +#include "fsfw-hal/stm32h7/spi/SpiCookie.h" #include "fsfw/tasks/SemaphoreFactory.h" -#include "fsfw/hal/stm32h7/spi/spiCore.h" -#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw/hal/stm32h7/spi/mspInit.h" -#include "fsfw/hal/stm32h7/gpio/gpio.h" +#include "fsfw-hal/stm32h7/spi/spiCore.h" +#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw-hal/stm32h7/spi/mspInit.h" +#include "fsfw-hal/stm32h7/gpio/gpio.h" // FreeRTOS required special Semaphore handling from an ISR. Therefore, we use the concrete // instance here, because RTEMS and FreeRTOS are the only relevant OSALs currently diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h b/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h index 00625b34d..e97aebe70 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h +++ b/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h @@ -5,7 +5,7 @@ #include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include "fsfw/objectmanager/SystemObject.h" -#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" #include "stm32h7xx_hal_spi.h" #include "stm32h743xx.h" diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp b/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp index 82d705c21..b37d3ae92 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/stm32h7/spi/SpiCookie.h" +#include "fsfw-hal/stm32h7/spi/SpiCookie.h" SpiCookie::SpiCookie(address_t deviceAddress, spi::SpiBus spiIdx, spi::TransferModes transferMode, diff --git a/hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp b/hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp index 424a8bfb9..17ff45f9e 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp @@ -1,7 +1,7 @@ -#include "fsfw/hal/stm32h7/dma.h" -#include "fsfw/hal/stm32h7/spi/mspInit.h" -#include "fsfw/hal/stm32h7/spi/spiCore.h" -#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw-hal/stm32h7/dma.h" +#include "fsfw-hal/stm32h7/spi/mspInit.h" +#include "fsfw-hal/stm32h7/spi/spiCore.h" +#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" #include "stm32h743xx.h" #include "stm32h7xx_hal_spi.h" diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp b/hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp index a72bf12b6..aa3c32ce0 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp @@ -1,5 +1,5 @@ -#include "fsfw/hal/stm32h7/spi/spiCore.h" -#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw-hal/stm32h7/spi/spiCore.h" +#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" #include diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiCore.h b/hal/src/fsfw-hal/stm32h7/spi/spiCore.h index bff90a5b0..ba4e1430a 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/spiCore.h +++ b/hal/src/fsfw-hal/stm32h7/spi/spiCore.h @@ -1,8 +1,8 @@ #ifndef FSFW_HAL_STM32H7_SPI_SPICORE_H_ #define FSFW_HAL_STM32H7_SPI_SPICORE_H_ -#include "fsfw/hal/stm32h7/dma.h" -#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw-hal/stm32h7/dma.h" +#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_dma.h" diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp b/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp index 6a83ae42b..7573640c6 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp @@ -1,4 +1,4 @@ -#include "fsfw/hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" void spi::assignSpiMode(SpiModes spiMode, SPI_HandleTypeDef& spiHandle) { switch(spiMode) { diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp b/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp index 90cfe7065..c3ca66036 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp @@ -1,5 +1,5 @@ -#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw/hal/stm32h7/spi/spiCore.h" +#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw-hal/stm32h7/spi/spiCore.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_dma.h" diff --git a/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp index f1f2815ef..c6be862f3 100644 --- a/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp +++ b/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp @@ -1,6 +1,6 @@ -#include "fsfw/hal/stm32h7/spi/stm32h743ziSpi.h" -#include "fsfw/hal/stm32h7/spi/spiCore.h" -#include "fsfw/hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw-hal/stm32h7/spi/stm32h743ziSpi.h" +#include "fsfw-hal/stm32h7/spi/spiCore.h" +#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_rcc.h" diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in index 9b74d04c8..01379c5f2 100644 --- a/src/fsfw/FSFW.h.in +++ b/src/fsfw/FSFW.h.in @@ -9,5 +9,6 @@ #cmakedefine FSFW_ADD_COORDINATES #cmakedefine FSFW_ADD_PUS #cmakedefine FSFW_ADD_MONITORING +#cmakedefine FSFW_ADD_SGP4_PROPAGATOR #endif /* FSFW_FSFW_H_ */ diff --git a/src/fsfw/coordinates/Sgp4Propagator.h b/src/fsfw/coordinates/Sgp4Propagator.h index 4f29509fb..aa1e821fc 100644 --- a/src/fsfw/coordinates/Sgp4Propagator.h +++ b/src/fsfw/coordinates/Sgp4Propagator.h @@ -7,7 +7,7 @@ #ifndef PLATFORM_WIN #include #endif -#include "fsfw/contrib/sgp4/sgp4unit.h" +#include "fsfw-contrib/sgp4/sgp4unit.h" #include "fsfw/returnvalues/HasReturnvaluesIF.h" class Sgp4Propagator { diff --git a/src/fsfw/coordinates/coordinatesConf.h b/src/fsfw/coordinates/coordinatesConf.h index ce798e6f1..9c1c37549 100644 --- a/src/fsfw/coordinates/coordinatesConf.h +++ b/src/fsfw/coordinates/coordinatesConf.h @@ -8,4 +8,9 @@ not enabled with FSFW_ADD_COORDINATES #endif +#ifndef FSFW_ADD_SGP4_PROPAGATOR +#warning Coordinates files were included but SGP4 contributed code compilation was \ + not enabled with FSFW_ADD_SGP4_PROPAGATOR +#endif + #endif /* FSFW_SRC_FSFW_COORDINATES_COORDINATESCONF_H_ */ diff --git a/tests/src/fsfw-tests/internal/InternalUnitTester.cpp b/tests/src/fsfw-tests/internal/InternalUnitTester.cpp index 8631ce0d4..8fc7cb68f 100644 --- a/tests/src/fsfw-tests/internal/InternalUnitTester.cpp +++ b/tests/src/fsfw-tests/internal/InternalUnitTester.cpp @@ -1,11 +1,11 @@ -#include "fsfw/tests/internal/InternalUnitTester.h" -#include "fsfw/tests/internal/UnittDefinitions.h" +#include "fsfw-tests/internal/InternalUnitTester.h" +#include "fsfw-tests/internal/UnittDefinitions.h" -#include "fsfw/tests/internal/osal/IntTestMq.h" -#include "fsfw/tests/internal/osal/IntTestSemaphore.h" -#include "fsfw/tests/internal/osal/IntTestMutex.h" -#include "fsfw/tests/internal/serialize/IntTestSerialization.h" -#include "fsfw/tests/internal/globalfunctions/TestArrayPrinter.h" +#include "fsfw-tests/internal/osal/IntTestMq.h" +#include "fsfw-tests/internal/osal/IntTestSemaphore.h" +#include "fsfw-tests/internal/osal/IntTestMutex.h" +#include "fsfw-tests/internal/serialize/IntTestSerialization.h" +#include "fsfw-tests/internal/globalfunctions/TestArrayPrinter.h" #include diff --git a/tests/src/fsfw-tests/internal/UnittDefinitions.cpp b/tests/src/fsfw-tests/internal/UnittDefinitions.cpp index 74fd53be8..eaef0bfe7 100644 --- a/tests/src/fsfw-tests/internal/UnittDefinitions.cpp +++ b/tests/src/fsfw-tests/internal/UnittDefinitions.cpp @@ -1,4 +1,4 @@ -#include "fsfw/tests/internal/UnittDefinitions.h" +#include "fsfw-tests/internal/UnittDefinitions.h" ReturnValue_t unitt::put_error(std::string errorId) { #if FSFW_CPP_OSTREAM_ENABLED == 1 diff --git a/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp b/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp index 905780955..f1a0378e7 100644 --- a/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp +++ b/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp @@ -1,4 +1,4 @@ -#include "fsfw/tests/internal/globalfunctions/TestArrayPrinter.h" +#include "fsfw-tests/internal/globalfunctions/TestArrayPrinter.h" void arrayprinter::testArrayPrinter() { { diff --git a/tests/src/fsfw-tests/internal/osal/IntTestMq.cpp b/tests/src/fsfw-tests/internal/osal/IntTestMq.cpp index 91bc2c6d6..5ea3ec34e 100644 --- a/tests/src/fsfw-tests/internal/osal/IntTestMq.cpp +++ b/tests/src/fsfw-tests/internal/osal/IntTestMq.cpp @@ -1,5 +1,5 @@ -#include "fsfw/tests/internal/osal/IntTestMq.h" -#include "fsfw/tests/internal/UnittDefinitions.h" +#include "fsfw-tests/internal/osal/IntTestMq.h" +#include "fsfw-tests/internal/UnittDefinitions.h" #include #include diff --git a/tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp b/tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp index 9e7c1481f..2d8a50c2e 100644 --- a/tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp +++ b/tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp @@ -1,5 +1,5 @@ -#include "fsfw/tests/internal/osal/IntTestMutex.h" -#include "fsfw/tests/internal/UnittDefinitions.h" +#include "fsfw-tests/internal/osal/IntTestMutex.h" +#include "fsfw-tests/internal/UnittDefinitions.h" #include diff --git a/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp b/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp index e278e3c1c..8a848d92b 100644 --- a/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp +++ b/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp @@ -1,5 +1,5 @@ -#include "fsfw/tests/internal/osal/IntTestSemaphore.h" -#include "fsfw/tests/internal/UnittDefinitions.h" +#include "fsfw-tests/internal/osal/IntTestSemaphore.h" +#include "fsfw-tests/internal/UnittDefinitions.h" #include #include diff --git a/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp b/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp index 3489c759f..42b4861fa 100644 --- a/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp +++ b/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp @@ -1,5 +1,5 @@ -#include "fsfw/tests/internal/serialize/IntTestSerialization.h" -#include "fsfw/tests/internal/UnittDefinitions.h" +#include "fsfw-tests/internal/serialize/IntTestSerialization.h" +#include "fsfw-tests/internal/UnittDefinitions.h" #include #include From 0e5cfcf28f0183d7286d1160a40dcff2017f7795 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 2 Aug 2021 16:19:37 +0200 Subject: [PATCH 065/136] minor improvement for printout --- src/fsfw/osal/linux/unixUtility.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fsfw/osal/linux/unixUtility.cpp b/src/fsfw/osal/linux/unixUtility.cpp index 40d8c2129..57e1f17a3 100644 --- a/src/fsfw/osal/linux/unixUtility.cpp +++ b/src/fsfw/osal/linux/unixUtility.cpp @@ -14,7 +14,7 @@ void utility::printUnixErrorGeneric(const char* const className, #if FSFW_VERBOSE_LEVEL >= 1 if(outputType == sif::OutputTypes::OUT_ERROR) { #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::error << className << "::" << function << ":" << failString << " error: " + sif::error << className << "::" << function << ": " << failString << " error: " << strerror(errno) << std::endl; #else sif::printError("%s::%s: %s error: %s\n", className, function, failString, strerror(errno)); @@ -22,7 +22,7 @@ void utility::printUnixErrorGeneric(const char* const className, } else { #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::warning << className << "::" << function << ":" << failString << " error: " + sif::warning << className << "::" << function << ": " << failString << " error: " << strerror(errno) << std::endl; #else sif::printWarning("%s::%s: %s error: %s\n", className, function, failString, strerror(errno)); From f1f167c2d1ae2111cbbc750d3bbc411b89f950a5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 2 Aug 2021 20:55:03 +0200 Subject: [PATCH 066/136] using _ instead of - now --- contrib/CMakeLists.txt | 2 +- contrib/{fsfw-contrib => fsfw_contrib}/CMakeLists.txt | 0 contrib/{fsfw-contrib => fsfw_contrib}/sgp4/LICENSE | 0 contrib/{fsfw-contrib => fsfw_contrib}/sgp4/sgp4unit.cpp | 0 contrib/{fsfw-contrib => fsfw_contrib}/sgp4/sgp4unit.h | 0 hal/src/CMakeLists.txt | 2 +- hal/src/{fsfw-hal => fsfw_hal}/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/common/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/common/gpio/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/common/gpio/GpioCookie.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/common/gpio/GpioCookie.h | 0 hal/src/{fsfw-hal => fsfw_hal}/common/gpio/GpioIF.h | 0 hal/src/{fsfw-hal => fsfw_hal}/common/gpio/gpioDefinitions.h | 0 hal/src/{fsfw-hal => fsfw_hal}/common/spi/spiCommon.h | 0 hal/src/{fsfw-hal => fsfw_hal}/devicehandlers/CMakeLists.txt | 0 .../{fsfw-hal => fsfw_hal}/devicehandlers/GyroL3GD20Handler.cpp | 0 .../{fsfw-hal => fsfw_hal}/devicehandlers/GyroL3GD20Handler.h | 0 .../devicehandlers/devicedefinitions/GyroL3GD20Definitions.h | 0 hal/src/{fsfw-hal => fsfw_hal}/host/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/UnixFileGuard.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/UnixFileGuard.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/gpio/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/gpio/LinuxLibgpioIF.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/gpio/LinuxLibgpioIF.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cComIF.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cComIF.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cCookie.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cCookie.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/rpi/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/rpi/GpioRPi.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/rpi/GpioRPi.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/spi/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiComIF.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiComIF.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiCookie.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiCookie.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/spi/spiDefinitions.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/uart/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartComIF.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartComIF.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartCookie.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartCookie.h | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/utility.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/linux/utility.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/CMakeLists.txt | 0 .../{fsfw-hal => fsfw_hal}/stm32h7/devicetest/CMakeLists.txt | 0 .../{fsfw-hal => fsfw_hal}/stm32h7/devicetest/GyroL3GD20H.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/devicetest/GyroL3GD20H.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/dma.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/dma.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/gpio/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/gpio/gpio.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/gpio/gpio.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/i2c/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/interrupts.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/CMakeLists.txt | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiComIF.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiComIF.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiCookie.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiCookie.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/mspInit.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/mspInit.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiCore.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiCore.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiDefinitions.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiDefinitions.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiInterrupts.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiInterrupts.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/stm32h743ziSpi.cpp | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/stm32h743ziSpi.h | 0 hal/src/{fsfw-hal => fsfw_hal}/stm32h7/uart/CMakeLists.txt | 0 tests/src/CMakeLists.txt | 2 +- tests/src/{fsfw-tests => fsfw_tests}/CMakeLists.txt | 0 tests/src/{fsfw-tests => fsfw_tests}/internal/CMakeLists.txt | 0 .../{fsfw-tests => fsfw_tests}/internal/InternalUnitTester.cpp | 0 .../{fsfw-tests => fsfw_tests}/internal/InternalUnitTester.h | 0 .../{fsfw-tests => fsfw_tests}/internal/UnittDefinitions.cpp | 0 .../src/{fsfw-tests => fsfw_tests}/internal/UnittDefinitions.h | 0 .../internal/globalfunctions/CMakeLists.txt | 0 .../internal/globalfunctions/TestArrayPrinter.cpp | 0 .../internal/globalfunctions/TestArrayPrinter.h | 0 .../src/{fsfw-tests => fsfw_tests}/internal/osal/CMakeLists.txt | 0 .../src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMq.cpp | 0 tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMq.h | 0 .../{fsfw-tests => fsfw_tests}/internal/osal/IntTestMutex.cpp | 0 .../src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMutex.h | 0 .../internal/osal/IntTestSemaphore.cpp | 0 .../{fsfw-tests => fsfw_tests}/internal/osal/IntTestSemaphore.h | 0 .../internal/serialize/CMakeLists.txt | 0 .../internal/serialize/IntTestSerialization.cpp | 0 .../internal/serialize/IntTestSerialization.h | 0 tests/src/{fsfw-tests => fsfw_tests}/unit/CMakeLists.txt | 0 tests/src/{fsfw-tests => fsfw_tests}/unit/action/CMakeLists.txt | 0 .../{fsfw-tests => fsfw_tests}/unit/action/TestActionHelper.cpp | 0 .../{fsfw-tests => fsfw_tests}/unit/action/TestActionHelper.h | 0 .../{fsfw-tests => fsfw_tests}/unit/container/CMakeLists.txt | 0 .../unit/container/RingBufferTest.cpp | 0 .../{fsfw-tests => fsfw_tests}/unit/container/TestArrayList.cpp | 0 .../unit/container/TestDynamicFifo.cpp | 0 .../src/{fsfw-tests => fsfw_tests}/unit/container/TestFifo.cpp | 0 .../unit/container/TestFixedArrayList.cpp | 0 .../{fsfw-tests => fsfw_tests}/unit/container/TestFixedMap.cpp | 0 .../unit/container/TestFixedOrderedMultimap.cpp | 0 .../unit/container/TestPlacementFactory.cpp | 0 .../unit/datapoollocal/CMakeLists.txt | 0 .../unit/datapoollocal/DataSetTest.cpp | 0 .../unit/datapoollocal/LocalPoolManagerTest.cpp | 0 .../unit/datapoollocal/LocalPoolOwnerBase.cpp | 0 .../unit/datapoollocal/LocalPoolOwnerBase.h | 0 .../unit/datapoollocal/LocalPoolVariableTest.cpp | 0 .../unit/datapoollocal/LocalPoolVectorTest.cpp | 0 .../unit/globalfunctions/CMakeLists.txt | 0 .../src/{fsfw-tests => fsfw_tests}/unit/mocks/HkReceiverMock.h | 0 .../unit/mocks/MessageQueueMockBase.h | 0 tests/src/{fsfw-tests => fsfw_tests}/unit/osal/CMakeLists.txt | 0 .../{fsfw-tests => fsfw_tests}/unit/osal/TestMessageQueue.cpp | 0 .../src/{fsfw-tests => fsfw_tests}/unit/osal/TestSemaphore.cpp | 0 .../{fsfw-tests => fsfw_tests}/unit/serialize/CMakeLists.txt | 0 .../unit/serialize/TestSerialBufferAdapter.cpp | 0 .../unit/serialize/TestSerialLinkedPacket.cpp | 0 .../unit/serialize/TestSerialLinkedPacket.h | 0 .../unit/serialize/TestSerialization.cpp | 0 .../unit/storagemanager/CMakeLists.txt | 0 .../unit/storagemanager/TestNewAccessor.cpp | 0 .../{fsfw-tests => fsfw_tests}/unit/storagemanager/TestPool.cpp | 0 .../{fsfw-tests => fsfw_tests}/unit/tmtcpacket/CMakeLists.txt | 0 .../{fsfw-tests => fsfw_tests}/unit/tmtcpacket/PusTmTest.cpp | 0 129 files changed, 3 insertions(+), 3 deletions(-) rename contrib/{fsfw-contrib => fsfw_contrib}/CMakeLists.txt (100%) rename contrib/{fsfw-contrib => fsfw_contrib}/sgp4/LICENSE (100%) rename contrib/{fsfw-contrib => fsfw_contrib}/sgp4/sgp4unit.cpp (100%) rename contrib/{fsfw-contrib => fsfw_contrib}/sgp4/sgp4unit.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/gpio/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/gpio/GpioCookie.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/gpio/GpioCookie.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/gpio/GpioIF.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/gpio/gpioDefinitions.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/common/spi/spiCommon.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/devicehandlers/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/devicehandlers/GyroL3GD20Handler.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/devicehandlers/GyroL3GD20Handler.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/host/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/UnixFileGuard.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/UnixFileGuard.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/gpio/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/gpio/LinuxLibgpioIF.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/gpio/LinuxLibgpioIF.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cComIF.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cComIF.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cCookie.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/i2c/I2cCookie.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/rpi/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/rpi/GpioRPi.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/rpi/GpioRPi.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/spi/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiComIF.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiComIF.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiCookie.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/spi/SpiCookie.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/spi/spiDefinitions.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/uart/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartComIF.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartComIF.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartCookie.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/uart/UartCookie.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/utility.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/linux/utility.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/devicetest/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/devicetest/GyroL3GD20H.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/devicetest/GyroL3GD20H.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/dma.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/dma.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/gpio/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/gpio/gpio.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/gpio/gpio.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/i2c/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/interrupts.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/CMakeLists.txt (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiComIF.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiComIF.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiCookie.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/SpiCookie.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/mspInit.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/mspInit.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiCore.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiCore.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiDefinitions.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiDefinitions.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiInterrupts.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/spiInterrupts.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/stm32h743ziSpi.cpp (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/spi/stm32h743ziSpi.h (100%) rename hal/src/{fsfw-hal => fsfw_hal}/stm32h7/uart/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/InternalUnitTester.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/InternalUnitTester.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/UnittDefinitions.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/UnittDefinitions.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/globalfunctions/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/globalfunctions/TestArrayPrinter.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/globalfunctions/TestArrayPrinter.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMq.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMq.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMutex.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestMutex.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestSemaphore.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/osal/IntTestSemaphore.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/serialize/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/serialize/IntTestSerialization.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/internal/serialize/IntTestSerialization.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/action/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/action/TestActionHelper.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/action/TestActionHelper.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/RingBufferTest.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestArrayList.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestDynamicFifo.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestFifo.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestFixedArrayList.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestFixedMap.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestFixedOrderedMultimap.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/container/TestPlacementFactory.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/DataSetTest.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/LocalPoolManagerTest.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/LocalPoolOwnerBase.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/LocalPoolOwnerBase.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/LocalPoolVariableTest.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/datapoollocal/LocalPoolVectorTest.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/globalfunctions/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/mocks/HkReceiverMock.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/mocks/MessageQueueMockBase.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/osal/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/osal/TestMessageQueue.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/osal/TestSemaphore.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/serialize/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/serialize/TestSerialBufferAdapter.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/serialize/TestSerialLinkedPacket.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/serialize/TestSerialLinkedPacket.h (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/serialize/TestSerialization.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/storagemanager/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/storagemanager/TestNewAccessor.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/storagemanager/TestPool.cpp (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/tmtcpacket/CMakeLists.txt (100%) rename tests/src/{fsfw-tests => fsfw_tests}/unit/tmtcpacket/PusTmTest.cpp (100%) diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 8c252e82d..e83da6afa 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -6,4 +6,4 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) -add_subdirectory(fsfw-contrib) +add_subdirectory(fsfw_contrib) diff --git a/contrib/fsfw-contrib/CMakeLists.txt b/contrib/fsfw_contrib/CMakeLists.txt similarity index 100% rename from contrib/fsfw-contrib/CMakeLists.txt rename to contrib/fsfw_contrib/CMakeLists.txt diff --git a/contrib/fsfw-contrib/sgp4/LICENSE b/contrib/fsfw_contrib/sgp4/LICENSE similarity index 100% rename from contrib/fsfw-contrib/sgp4/LICENSE rename to contrib/fsfw_contrib/sgp4/LICENSE diff --git a/contrib/fsfw-contrib/sgp4/sgp4unit.cpp b/contrib/fsfw_contrib/sgp4/sgp4unit.cpp similarity index 100% rename from contrib/fsfw-contrib/sgp4/sgp4unit.cpp rename to contrib/fsfw_contrib/sgp4/sgp4unit.cpp diff --git a/contrib/fsfw-contrib/sgp4/sgp4unit.h b/contrib/fsfw_contrib/sgp4/sgp4unit.h similarity index 100% rename from contrib/fsfw-contrib/sgp4/sgp4unit.h rename to contrib/fsfw_contrib/sgp4/sgp4unit.h diff --git a/hal/src/CMakeLists.txt b/hal/src/CMakeLists.txt index ff3f1beb5..76ee45c6d 100644 --- a/hal/src/CMakeLists.txt +++ b/hal/src/CMakeLists.txt @@ -6,4 +6,4 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) -add_subdirectory(fsfw-hal) +add_subdirectory(fsfw_hal) diff --git a/hal/src/fsfw-hal/CMakeLists.txt b/hal/src/fsfw_hal/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/CMakeLists.txt rename to hal/src/fsfw_hal/CMakeLists.txt diff --git a/hal/src/fsfw-hal/common/CMakeLists.txt b/hal/src/fsfw_hal/common/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/common/CMakeLists.txt rename to hal/src/fsfw_hal/common/CMakeLists.txt diff --git a/hal/src/fsfw-hal/common/gpio/CMakeLists.txt b/hal/src/fsfw_hal/common/gpio/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/common/gpio/CMakeLists.txt rename to hal/src/fsfw_hal/common/gpio/CMakeLists.txt diff --git a/hal/src/fsfw-hal/common/gpio/GpioCookie.cpp b/hal/src/fsfw_hal/common/gpio/GpioCookie.cpp similarity index 100% rename from hal/src/fsfw-hal/common/gpio/GpioCookie.cpp rename to hal/src/fsfw_hal/common/gpio/GpioCookie.cpp diff --git a/hal/src/fsfw-hal/common/gpio/GpioCookie.h b/hal/src/fsfw_hal/common/gpio/GpioCookie.h similarity index 100% rename from hal/src/fsfw-hal/common/gpio/GpioCookie.h rename to hal/src/fsfw_hal/common/gpio/GpioCookie.h diff --git a/hal/src/fsfw-hal/common/gpio/GpioIF.h b/hal/src/fsfw_hal/common/gpio/GpioIF.h similarity index 100% rename from hal/src/fsfw-hal/common/gpio/GpioIF.h rename to hal/src/fsfw_hal/common/gpio/GpioIF.h diff --git a/hal/src/fsfw-hal/common/gpio/gpioDefinitions.h b/hal/src/fsfw_hal/common/gpio/gpioDefinitions.h similarity index 100% rename from hal/src/fsfw-hal/common/gpio/gpioDefinitions.h rename to hal/src/fsfw_hal/common/gpio/gpioDefinitions.h diff --git a/hal/src/fsfw-hal/common/spi/spiCommon.h b/hal/src/fsfw_hal/common/spi/spiCommon.h similarity index 100% rename from hal/src/fsfw-hal/common/spi/spiCommon.h rename to hal/src/fsfw_hal/common/spi/spiCommon.h diff --git a/hal/src/fsfw-hal/devicehandlers/CMakeLists.txt b/hal/src/fsfw_hal/devicehandlers/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/devicehandlers/CMakeLists.txt rename to hal/src/fsfw_hal/devicehandlers/CMakeLists.txt diff --git a/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp similarity index 100% rename from hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.cpp rename to hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp diff --git a/hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h similarity index 100% rename from hal/src/fsfw-hal/devicehandlers/GyroL3GD20Handler.h rename to hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h diff --git a/hal/src/fsfw-hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h similarity index 100% rename from hal/src/fsfw-hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h rename to hal/src/fsfw_hal/devicehandlers/devicedefinitions/GyroL3GD20Definitions.h diff --git a/hal/src/fsfw-hal/host/CMakeLists.txt b/hal/src/fsfw_hal/host/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/host/CMakeLists.txt rename to hal/src/fsfw_hal/host/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/CMakeLists.txt b/hal/src/fsfw_hal/linux/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/linux/CMakeLists.txt rename to hal/src/fsfw_hal/linux/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/UnixFileGuard.cpp b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/UnixFileGuard.cpp rename to hal/src/fsfw_hal/linux/UnixFileGuard.cpp diff --git a/hal/src/fsfw-hal/linux/UnixFileGuard.h b/hal/src/fsfw_hal/linux/UnixFileGuard.h similarity index 100% rename from hal/src/fsfw-hal/linux/UnixFileGuard.h rename to hal/src/fsfw_hal/linux/UnixFileGuard.h diff --git a/hal/src/fsfw-hal/linux/gpio/CMakeLists.txt b/hal/src/fsfw_hal/linux/gpio/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/linux/gpio/CMakeLists.txt rename to hal/src/fsfw_hal/linux/gpio/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.cpp rename to hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp diff --git a/hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.h b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h similarity index 100% rename from hal/src/fsfw-hal/linux/gpio/LinuxLibgpioIF.h rename to hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h diff --git a/hal/src/fsfw-hal/linux/i2c/CMakeLists.txt b/hal/src/fsfw_hal/linux/i2c/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/linux/i2c/CMakeLists.txt rename to hal/src/fsfw_hal/linux/i2c/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp b/hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/i2c/I2cComIF.cpp rename to hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp diff --git a/hal/src/fsfw-hal/linux/i2c/I2cComIF.h b/hal/src/fsfw_hal/linux/i2c/I2cComIF.h similarity index 100% rename from hal/src/fsfw-hal/linux/i2c/I2cComIF.h rename to hal/src/fsfw_hal/linux/i2c/I2cComIF.h diff --git a/hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp b/hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/i2c/I2cCookie.cpp rename to hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp diff --git a/hal/src/fsfw-hal/linux/i2c/I2cCookie.h b/hal/src/fsfw_hal/linux/i2c/I2cCookie.h similarity index 100% rename from hal/src/fsfw-hal/linux/i2c/I2cCookie.h rename to hal/src/fsfw_hal/linux/i2c/I2cCookie.h diff --git a/hal/src/fsfw-hal/linux/rpi/CMakeLists.txt b/hal/src/fsfw_hal/linux/rpi/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/linux/rpi/CMakeLists.txt rename to hal/src/fsfw_hal/linux/rpi/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp b/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/rpi/GpioRPi.cpp rename to hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp diff --git a/hal/src/fsfw-hal/linux/rpi/GpioRPi.h b/hal/src/fsfw_hal/linux/rpi/GpioRPi.h similarity index 100% rename from hal/src/fsfw-hal/linux/rpi/GpioRPi.h rename to hal/src/fsfw_hal/linux/rpi/GpioRPi.h diff --git a/hal/src/fsfw-hal/linux/spi/CMakeLists.txt b/hal/src/fsfw_hal/linux/spi/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/linux/spi/CMakeLists.txt rename to hal/src/fsfw_hal/linux/spi/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/spi/SpiComIF.cpp rename to hal/src/fsfw_hal/linux/spi/SpiComIF.cpp diff --git a/hal/src/fsfw-hal/linux/spi/SpiComIF.h b/hal/src/fsfw_hal/linux/spi/SpiComIF.h similarity index 100% rename from hal/src/fsfw-hal/linux/spi/SpiComIF.h rename to hal/src/fsfw_hal/linux/spi/SpiComIF.h diff --git a/hal/src/fsfw-hal/linux/spi/SpiCookie.cpp b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/spi/SpiCookie.cpp rename to hal/src/fsfw_hal/linux/spi/SpiCookie.cpp diff --git a/hal/src/fsfw-hal/linux/spi/SpiCookie.h b/hal/src/fsfw_hal/linux/spi/SpiCookie.h similarity index 100% rename from hal/src/fsfw-hal/linux/spi/SpiCookie.h rename to hal/src/fsfw_hal/linux/spi/SpiCookie.h diff --git a/hal/src/fsfw-hal/linux/spi/spiDefinitions.h b/hal/src/fsfw_hal/linux/spi/spiDefinitions.h similarity index 100% rename from hal/src/fsfw-hal/linux/spi/spiDefinitions.h rename to hal/src/fsfw_hal/linux/spi/spiDefinitions.h diff --git a/hal/src/fsfw-hal/linux/uart/CMakeLists.txt b/hal/src/fsfw_hal/linux/uart/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/linux/uart/CMakeLists.txt rename to hal/src/fsfw_hal/linux/uart/CMakeLists.txt diff --git a/hal/src/fsfw-hal/linux/uart/UartComIF.cpp b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/uart/UartComIF.cpp rename to hal/src/fsfw_hal/linux/uart/UartComIF.cpp diff --git a/hal/src/fsfw-hal/linux/uart/UartComIF.h b/hal/src/fsfw_hal/linux/uart/UartComIF.h similarity index 100% rename from hal/src/fsfw-hal/linux/uart/UartComIF.h rename to hal/src/fsfw_hal/linux/uart/UartComIF.h diff --git a/hal/src/fsfw-hal/linux/uart/UartCookie.cpp b/hal/src/fsfw_hal/linux/uart/UartCookie.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/uart/UartCookie.cpp rename to hal/src/fsfw_hal/linux/uart/UartCookie.cpp diff --git a/hal/src/fsfw-hal/linux/uart/UartCookie.h b/hal/src/fsfw_hal/linux/uart/UartCookie.h similarity index 100% rename from hal/src/fsfw-hal/linux/uart/UartCookie.h rename to hal/src/fsfw_hal/linux/uart/UartCookie.h diff --git a/hal/src/fsfw-hal/linux/utility.cpp b/hal/src/fsfw_hal/linux/utility.cpp similarity index 100% rename from hal/src/fsfw-hal/linux/utility.cpp rename to hal/src/fsfw_hal/linux/utility.cpp diff --git a/hal/src/fsfw-hal/linux/utility.h b/hal/src/fsfw_hal/linux/utility.h similarity index 100% rename from hal/src/fsfw-hal/linux/utility.h rename to hal/src/fsfw_hal/linux/utility.h diff --git a/hal/src/fsfw-hal/stm32h7/CMakeLists.txt b/hal/src/fsfw_hal/stm32h7/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/stm32h7/CMakeLists.txt rename to hal/src/fsfw_hal/stm32h7/CMakeLists.txt diff --git a/hal/src/fsfw-hal/stm32h7/devicetest/CMakeLists.txt b/hal/src/fsfw_hal/stm32h7/devicetest/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/stm32h7/devicetest/CMakeLists.txt rename to hal/src/fsfw_hal/stm32h7/devicetest/CMakeLists.txt diff --git a/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.cpp rename to hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp diff --git a/hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.h b/hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/devicetest/GyroL3GD20H.h rename to hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.h diff --git a/hal/src/fsfw-hal/stm32h7/dma.cpp b/hal/src/fsfw_hal/stm32h7/dma.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/dma.cpp rename to hal/src/fsfw_hal/stm32h7/dma.cpp diff --git a/hal/src/fsfw-hal/stm32h7/dma.h b/hal/src/fsfw_hal/stm32h7/dma.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/dma.h rename to hal/src/fsfw_hal/stm32h7/dma.h diff --git a/hal/src/fsfw-hal/stm32h7/gpio/CMakeLists.txt b/hal/src/fsfw_hal/stm32h7/gpio/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/stm32h7/gpio/CMakeLists.txt rename to hal/src/fsfw_hal/stm32h7/gpio/CMakeLists.txt diff --git a/hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp b/hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/gpio/gpio.cpp rename to hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp diff --git a/hal/src/fsfw-hal/stm32h7/gpio/gpio.h b/hal/src/fsfw_hal/stm32h7/gpio/gpio.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/gpio/gpio.h rename to hal/src/fsfw_hal/stm32h7/gpio/gpio.h diff --git a/hal/src/fsfw-hal/stm32h7/i2c/CMakeLists.txt b/hal/src/fsfw_hal/stm32h7/i2c/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/stm32h7/i2c/CMakeLists.txt rename to hal/src/fsfw_hal/stm32h7/i2c/CMakeLists.txt diff --git a/hal/src/fsfw-hal/stm32h7/interrupts.h b/hal/src/fsfw_hal/stm32h7/interrupts.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/interrupts.h rename to hal/src/fsfw_hal/stm32h7/interrupts.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/CMakeLists.txt b/hal/src/fsfw_hal/stm32h7/spi/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/CMakeLists.txt rename to hal/src/fsfw_hal/stm32h7/spi/CMakeLists.txt diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp b/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/SpiComIF.cpp rename to hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h b/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/SpiComIF.h rename to hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp b/hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/SpiCookie.cpp rename to hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/SpiCookie.h b/hal/src/fsfw_hal/stm32h7/spi/SpiCookie.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/SpiCookie.h rename to hal/src/fsfw_hal/stm32h7/spi/SpiCookie.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp b/hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/mspInit.cpp rename to hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/mspInit.h b/hal/src/fsfw_hal/stm32h7/spi/mspInit.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/mspInit.h rename to hal/src/fsfw_hal/stm32h7/spi/mspInit.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp b/hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/spiCore.cpp rename to hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiCore.h b/hal/src/fsfw_hal/stm32h7/spi/spiCore.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/spiCore.h rename to hal/src/fsfw_hal/stm32h7/spi/spiCore.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp b/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.cpp rename to hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.h b/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/spiDefinitions.h rename to hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp b/hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.cpp rename to hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.h b/hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/spiInterrupts.h rename to hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.h diff --git a/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.cpp rename to hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp diff --git a/hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.h b/hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.h similarity index 100% rename from hal/src/fsfw-hal/stm32h7/spi/stm32h743ziSpi.h rename to hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.h diff --git a/hal/src/fsfw-hal/stm32h7/uart/CMakeLists.txt b/hal/src/fsfw_hal/stm32h7/uart/CMakeLists.txt similarity index 100% rename from hal/src/fsfw-hal/stm32h7/uart/CMakeLists.txt rename to hal/src/fsfw_hal/stm32h7/uart/CMakeLists.txt diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index 18bf7f8ca..6673f1e41 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -6,4 +6,4 @@ target_include_directories(${LIB_FSFW_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) -add_subdirectory(fsfw-tests) +add_subdirectory(fsfw_tests) diff --git a/tests/src/fsfw-tests/CMakeLists.txt b/tests/src/fsfw_tests/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/CMakeLists.txt rename to tests/src/fsfw_tests/CMakeLists.txt diff --git a/tests/src/fsfw-tests/internal/CMakeLists.txt b/tests/src/fsfw_tests/internal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/internal/CMakeLists.txt rename to tests/src/fsfw_tests/internal/CMakeLists.txt diff --git a/tests/src/fsfw-tests/internal/InternalUnitTester.cpp b/tests/src/fsfw_tests/internal/InternalUnitTester.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/InternalUnitTester.cpp rename to tests/src/fsfw_tests/internal/InternalUnitTester.cpp diff --git a/tests/src/fsfw-tests/internal/InternalUnitTester.h b/tests/src/fsfw_tests/internal/InternalUnitTester.h similarity index 100% rename from tests/src/fsfw-tests/internal/InternalUnitTester.h rename to tests/src/fsfw_tests/internal/InternalUnitTester.h diff --git a/tests/src/fsfw-tests/internal/UnittDefinitions.cpp b/tests/src/fsfw_tests/internal/UnittDefinitions.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/UnittDefinitions.cpp rename to tests/src/fsfw_tests/internal/UnittDefinitions.cpp diff --git a/tests/src/fsfw-tests/internal/UnittDefinitions.h b/tests/src/fsfw_tests/internal/UnittDefinitions.h similarity index 100% rename from tests/src/fsfw-tests/internal/UnittDefinitions.h rename to tests/src/fsfw_tests/internal/UnittDefinitions.h diff --git a/tests/src/fsfw-tests/internal/globalfunctions/CMakeLists.txt b/tests/src/fsfw_tests/internal/globalfunctions/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/internal/globalfunctions/CMakeLists.txt rename to tests/src/fsfw_tests/internal/globalfunctions/CMakeLists.txt diff --git a/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp b/tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.cpp rename to tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.cpp diff --git a/tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.h b/tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.h similarity index 100% rename from tests/src/fsfw-tests/internal/globalfunctions/TestArrayPrinter.h rename to tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.h diff --git a/tests/src/fsfw-tests/internal/osal/CMakeLists.txt b/tests/src/fsfw_tests/internal/osal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/internal/osal/CMakeLists.txt rename to tests/src/fsfw_tests/internal/osal/CMakeLists.txt diff --git a/tests/src/fsfw-tests/internal/osal/IntTestMq.cpp b/tests/src/fsfw_tests/internal/osal/IntTestMq.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/osal/IntTestMq.cpp rename to tests/src/fsfw_tests/internal/osal/IntTestMq.cpp diff --git a/tests/src/fsfw-tests/internal/osal/IntTestMq.h b/tests/src/fsfw_tests/internal/osal/IntTestMq.h similarity index 100% rename from tests/src/fsfw-tests/internal/osal/IntTestMq.h rename to tests/src/fsfw_tests/internal/osal/IntTestMq.h diff --git a/tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp b/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/osal/IntTestMutex.cpp rename to tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp diff --git a/tests/src/fsfw-tests/internal/osal/IntTestMutex.h b/tests/src/fsfw_tests/internal/osal/IntTestMutex.h similarity index 100% rename from tests/src/fsfw-tests/internal/osal/IntTestMutex.h rename to tests/src/fsfw_tests/internal/osal/IntTestMutex.h diff --git a/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp b/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/osal/IntTestSemaphore.cpp rename to tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp diff --git a/tests/src/fsfw-tests/internal/osal/IntTestSemaphore.h b/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.h similarity index 100% rename from tests/src/fsfw-tests/internal/osal/IntTestSemaphore.h rename to tests/src/fsfw_tests/internal/osal/IntTestSemaphore.h diff --git a/tests/src/fsfw-tests/internal/serialize/CMakeLists.txt b/tests/src/fsfw_tests/internal/serialize/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/internal/serialize/CMakeLists.txt rename to tests/src/fsfw_tests/internal/serialize/CMakeLists.txt diff --git a/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp b/tests/src/fsfw_tests/internal/serialize/IntTestSerialization.cpp similarity index 100% rename from tests/src/fsfw-tests/internal/serialize/IntTestSerialization.cpp rename to tests/src/fsfw_tests/internal/serialize/IntTestSerialization.cpp diff --git a/tests/src/fsfw-tests/internal/serialize/IntTestSerialization.h b/tests/src/fsfw_tests/internal/serialize/IntTestSerialization.h similarity index 100% rename from tests/src/fsfw-tests/internal/serialize/IntTestSerialization.h rename to tests/src/fsfw_tests/internal/serialize/IntTestSerialization.h diff --git a/tests/src/fsfw-tests/unit/CMakeLists.txt b/tests/src/fsfw_tests/unit/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/CMakeLists.txt rename to tests/src/fsfw_tests/unit/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/action/CMakeLists.txt b/tests/src/fsfw_tests/unit/action/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/action/CMakeLists.txt rename to tests/src/fsfw_tests/unit/action/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/action/TestActionHelper.cpp b/tests/src/fsfw_tests/unit/action/TestActionHelper.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/action/TestActionHelper.cpp rename to tests/src/fsfw_tests/unit/action/TestActionHelper.cpp diff --git a/tests/src/fsfw-tests/unit/action/TestActionHelper.h b/tests/src/fsfw_tests/unit/action/TestActionHelper.h similarity index 100% rename from tests/src/fsfw-tests/unit/action/TestActionHelper.h rename to tests/src/fsfw_tests/unit/action/TestActionHelper.h diff --git a/tests/src/fsfw-tests/unit/container/CMakeLists.txt b/tests/src/fsfw_tests/unit/container/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/container/CMakeLists.txt rename to tests/src/fsfw_tests/unit/container/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/container/RingBufferTest.cpp b/tests/src/fsfw_tests/unit/container/RingBufferTest.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/RingBufferTest.cpp rename to tests/src/fsfw_tests/unit/container/RingBufferTest.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestArrayList.cpp b/tests/src/fsfw_tests/unit/container/TestArrayList.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestArrayList.cpp rename to tests/src/fsfw_tests/unit/container/TestArrayList.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestDynamicFifo.cpp b/tests/src/fsfw_tests/unit/container/TestDynamicFifo.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestDynamicFifo.cpp rename to tests/src/fsfw_tests/unit/container/TestDynamicFifo.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestFifo.cpp b/tests/src/fsfw_tests/unit/container/TestFifo.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestFifo.cpp rename to tests/src/fsfw_tests/unit/container/TestFifo.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestFixedArrayList.cpp b/tests/src/fsfw_tests/unit/container/TestFixedArrayList.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestFixedArrayList.cpp rename to tests/src/fsfw_tests/unit/container/TestFixedArrayList.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestFixedMap.cpp b/tests/src/fsfw_tests/unit/container/TestFixedMap.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestFixedMap.cpp rename to tests/src/fsfw_tests/unit/container/TestFixedMap.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestFixedOrderedMultimap.cpp b/tests/src/fsfw_tests/unit/container/TestFixedOrderedMultimap.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestFixedOrderedMultimap.cpp rename to tests/src/fsfw_tests/unit/container/TestFixedOrderedMultimap.cpp diff --git a/tests/src/fsfw-tests/unit/container/TestPlacementFactory.cpp b/tests/src/fsfw_tests/unit/container/TestPlacementFactory.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/container/TestPlacementFactory.cpp rename to tests/src/fsfw_tests/unit/container/TestPlacementFactory.cpp diff --git a/tests/src/fsfw-tests/unit/datapoollocal/CMakeLists.txt b/tests/src/fsfw_tests/unit/datapoollocal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/CMakeLists.txt rename to tests/src/fsfw_tests/unit/datapoollocal/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/datapoollocal/DataSetTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/DataSetTest.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/DataSetTest.cpp rename to tests/src/fsfw_tests/unit/datapoollocal/DataSetTest.cpp diff --git a/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolManagerTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolManagerTest.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/LocalPoolManagerTest.cpp rename to tests/src/fsfw_tests/unit/datapoollocal/LocalPoolManagerTest.cpp diff --git a/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.cpp rename to tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.cpp diff --git a/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.h b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.h similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/LocalPoolOwnerBase.h rename to tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.h diff --git a/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVariableTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVariableTest.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVariableTest.cpp rename to tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVariableTest.cpp diff --git a/tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVectorTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVectorTest.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/datapoollocal/LocalPoolVectorTest.cpp rename to tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVectorTest.cpp diff --git a/tests/src/fsfw-tests/unit/globalfunctions/CMakeLists.txt b/tests/src/fsfw_tests/unit/globalfunctions/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/globalfunctions/CMakeLists.txt rename to tests/src/fsfw_tests/unit/globalfunctions/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/mocks/HkReceiverMock.h b/tests/src/fsfw_tests/unit/mocks/HkReceiverMock.h similarity index 100% rename from tests/src/fsfw-tests/unit/mocks/HkReceiverMock.h rename to tests/src/fsfw_tests/unit/mocks/HkReceiverMock.h diff --git a/tests/src/fsfw-tests/unit/mocks/MessageQueueMockBase.h b/tests/src/fsfw_tests/unit/mocks/MessageQueueMockBase.h similarity index 100% rename from tests/src/fsfw-tests/unit/mocks/MessageQueueMockBase.h rename to tests/src/fsfw_tests/unit/mocks/MessageQueueMockBase.h diff --git a/tests/src/fsfw-tests/unit/osal/CMakeLists.txt b/tests/src/fsfw_tests/unit/osal/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/osal/CMakeLists.txt rename to tests/src/fsfw_tests/unit/osal/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/osal/TestMessageQueue.cpp b/tests/src/fsfw_tests/unit/osal/TestMessageQueue.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/osal/TestMessageQueue.cpp rename to tests/src/fsfw_tests/unit/osal/TestMessageQueue.cpp diff --git a/tests/src/fsfw-tests/unit/osal/TestSemaphore.cpp b/tests/src/fsfw_tests/unit/osal/TestSemaphore.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/osal/TestSemaphore.cpp rename to tests/src/fsfw_tests/unit/osal/TestSemaphore.cpp diff --git a/tests/src/fsfw-tests/unit/serialize/CMakeLists.txt b/tests/src/fsfw_tests/unit/serialize/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/serialize/CMakeLists.txt rename to tests/src/fsfw_tests/unit/serialize/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/serialize/TestSerialBufferAdapter.cpp b/tests/src/fsfw_tests/unit/serialize/TestSerialBufferAdapter.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/serialize/TestSerialBufferAdapter.cpp rename to tests/src/fsfw_tests/unit/serialize/TestSerialBufferAdapter.cpp diff --git a/tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.cpp b/tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.cpp rename to tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.cpp diff --git a/tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.h b/tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.h similarity index 100% rename from tests/src/fsfw-tests/unit/serialize/TestSerialLinkedPacket.h rename to tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.h diff --git a/tests/src/fsfw-tests/unit/serialize/TestSerialization.cpp b/tests/src/fsfw_tests/unit/serialize/TestSerialization.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/serialize/TestSerialization.cpp rename to tests/src/fsfw_tests/unit/serialize/TestSerialization.cpp diff --git a/tests/src/fsfw-tests/unit/storagemanager/CMakeLists.txt b/tests/src/fsfw_tests/unit/storagemanager/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/storagemanager/CMakeLists.txt rename to tests/src/fsfw_tests/unit/storagemanager/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/storagemanager/TestNewAccessor.cpp b/tests/src/fsfw_tests/unit/storagemanager/TestNewAccessor.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/storagemanager/TestNewAccessor.cpp rename to tests/src/fsfw_tests/unit/storagemanager/TestNewAccessor.cpp diff --git a/tests/src/fsfw-tests/unit/storagemanager/TestPool.cpp b/tests/src/fsfw_tests/unit/storagemanager/TestPool.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/storagemanager/TestPool.cpp rename to tests/src/fsfw_tests/unit/storagemanager/TestPool.cpp diff --git a/tests/src/fsfw-tests/unit/tmtcpacket/CMakeLists.txt b/tests/src/fsfw_tests/unit/tmtcpacket/CMakeLists.txt similarity index 100% rename from tests/src/fsfw-tests/unit/tmtcpacket/CMakeLists.txt rename to tests/src/fsfw_tests/unit/tmtcpacket/CMakeLists.txt diff --git a/tests/src/fsfw-tests/unit/tmtcpacket/PusTmTest.cpp b/tests/src/fsfw_tests/unit/tmtcpacket/PusTmTest.cpp similarity index 100% rename from tests/src/fsfw-tests/unit/tmtcpacket/PusTmTest.cpp rename to tests/src/fsfw_tests/unit/tmtcpacket/PusTmTest.cpp From c3fbe04fc675c6cf928e9d2326127af3c66ae53f Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 2 Aug 2021 20:58:56 +0200 Subject: [PATCH 067/136] all include corrections --- hal/src/fsfw_hal/common/gpio/GpioCookie.cpp | 2 +- .../fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp | 2 +- hal/src/fsfw_hal/linux/UnixFileGuard.cpp | 2 +- hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp | 6 +++--- hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp | 6 +++--- hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp | 2 +- hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp | 4 ++-- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 8 ++++---- hal/src/fsfw_hal/linux/spi/SpiComIF.h | 2 +- hal/src/fsfw_hal/linux/spi/SpiCookie.cpp | 2 +- hal/src/fsfw_hal/linux/uart/UartComIF.cpp | 2 +- hal/src/fsfw_hal/linux/uart/UartCookie.cpp | 2 +- hal/src/fsfw_hal/linux/utility.cpp | 2 +- .../fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp | 12 ++++++------ hal/src/fsfw_hal/stm32h7/dma.cpp | 2 +- hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp | 2 +- hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp | 12 ++++++------ hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h | 2 +- hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp | 2 +- hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp | 8 ++++---- hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp | 4 ++-- hal/src/fsfw_hal/stm32h7/spi/spiCore.h | 4 ++-- hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp | 2 +- hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp | 4 ++-- hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp | 6 +++--- .../src/fsfw_tests/internal/InternalUnitTester.cpp | 14 +++++++------- tests/src/fsfw_tests/internal/UnittDefinitions.cpp | 2 +- .../internal/globalfunctions/TestArrayPrinter.cpp | 2 +- tests/src/fsfw_tests/internal/osal/IntTestMq.cpp | 4 ++-- .../src/fsfw_tests/internal/osal/IntTestMutex.cpp | 4 ++-- .../fsfw_tests/internal/osal/IntTestSemaphore.cpp | 4 ++-- .../internal/serialize/IntTestSerialization.cpp | 4 ++-- 32 files changed, 68 insertions(+), 68 deletions(-) diff --git a/hal/src/fsfw_hal/common/gpio/GpioCookie.cpp b/hal/src/fsfw_hal/common/gpio/GpioCookie.cpp index 4d221ed9c..7c56ebcfe 100644 --- a/hal/src/fsfw_hal/common/gpio/GpioCookie.cpp +++ b/hal/src/fsfw_hal/common/gpio/GpioCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/common/gpio/GpioCookie.h" +#include "fsfw_hal/common/gpio/GpioCookie.h" #include "fsfw/serviceinterface/ServiceInterface.h" GpioCookie::GpioCookie() { diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp index 539877cc4..96d284e18 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/devicehandlers/GyroL3GD20Handler.h" +#include "fsfw_hal/devicehandlers/GyroL3GD20Handler.h" #include "fsfw/datapool/PoolReadGuard.h" diff --git a/hal/src/fsfw_hal/linux/UnixFileGuard.cpp b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp index 31280844b..f79010189 100644 --- a/hal/src/fsfw_hal/linux/UnixFileGuard.cpp +++ b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/linux/UnixFileGuard.h" +#include "fsfw_hal/linux/UnixFileGuard.h" UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, std::string diagnosticPrefix): diff --git a/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp index 573961691..eef61e582 100644 --- a/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp +++ b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp @@ -1,6 +1,6 @@ -#include "fsfw-hal/linux/gpio/LinuxLibgpioIF.h" -#include "fsfw-hal/common/gpio/gpioDefinitions.h" -#include "fsfw-hal/common/gpio/GpioCookie.h" +#include "fsfw_hal/linux/gpio/LinuxLibgpioIF.h" +#include "fsfw_hal/common/gpio/gpioDefinitions.h" +#include "fsfw_hal/common/gpio/GpioCookie.h" #include diff --git a/hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp b/hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp index b1d3da9eb..98d9a5107 100644 --- a/hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp +++ b/hal/src/fsfw_hal/linux/i2c/I2cComIF.cpp @@ -1,6 +1,6 @@ -#include "fsfw-hal/linux/i2c/I2cComIF.h" -#include "fsfw-hal/linux/utility.h" -#include "fsfw-hal/linux/UnixFileGuard.h" +#include "fsfw_hal/linux/i2c/I2cComIF.h" +#include "fsfw_hal/linux/utility.h" +#include "fsfw_hal/linux/UnixFileGuard.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp b/hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp index c3297f1e6..aebffedba 100644 --- a/hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp +++ b/hal/src/fsfw_hal/linux/i2c/I2cCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/linux/i2c/I2cCookie.h" +#include "fsfw_hal/linux/i2c/I2cCookie.h" I2cCookie::I2cCookie(address_t i2cAddress_, size_t maxReplyLen_, std::string deviceFile_) : diff --git a/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp b/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp index c4cc51ff1..6a71f291c 100644 --- a/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp +++ b/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp @@ -1,7 +1,7 @@ #include "fsfw/FSFW.h" -#include "fsfw-hal/linux/rpi/GpioRPi.h" -#include "fsfw-hal/common/gpio/GpioCookie.h" +#include "fsfw_hal/linux/rpi/GpioRPi.h" +#include "fsfw_hal/common/gpio/GpioCookie.h" #include diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index 35aa6c296..7273dfc27 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -1,8 +1,8 @@ #include "fsfw/FSFW.h" -#include "fsfw-hal/linux/spi/SpiComIF.h" -#include "fsfw-hal/linux/spi/SpiCookie.h" -#include "fsfw-hal/linux/utility.h" -#include "fsfw-hal/linux/UnixFileGuard.h" +#include "fsfw_hal/linux/spi/SpiComIF.h" +#include "fsfw_hal/linux/spi/SpiCookie.h" +#include "fsfw_hal/linux/utility.h" +#include "fsfw_hal/linux/UnixFileGuard.h" #include #include diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.h b/hal/src/fsfw_hal/linux/spi/SpiComIF.h index daabf6be4..d43e25054 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.h +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.h @@ -3,7 +3,7 @@ #include "spiDefinitions.h" #include "returnvalues/classIds.h" -#include "fsfw-hal/common/gpio/GpioIF.h" +#include "fsfw_hal/common/gpio/GpioIF.h" #include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include "fsfw/objectmanager/SystemObject.h" diff --git a/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp index 1f1806c23..54d8aa161 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/linux/spi/SpiCookie.h" +#include "fsfw_hal/linux/spi/SpiCookie.h" SpiCookie::SpiCookie(address_t spiAddress, gpioId_t chipSelect, std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed): diff --git a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp index c6e192c50..2b1da314e 100644 --- a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp +++ b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/linux/uart/UartComIF.h" +#include "fsfw_hal/linux/uart/UartComIF.h" #include "OBSWConfig.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/fsfw_hal/linux/uart/UartCookie.cpp b/hal/src/fsfw_hal/linux/uart/UartCookie.cpp index 5156d9b8a..339c74511 100644 --- a/hal/src/fsfw_hal/linux/uart/UartCookie.cpp +++ b/hal/src/fsfw_hal/linux/uart/UartCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/linux/uart/UartCookie.h" +#include "fsfw_hal/linux/uart/UartCookie.h" #include diff --git a/hal/src/fsfw_hal/linux/utility.cpp b/hal/src/fsfw_hal/linux/utility.cpp index 6120f9838..99489e3f7 100644 --- a/hal/src/fsfw_hal/linux/utility.cpp +++ b/hal/src/fsfw_hal/linux/utility.cpp @@ -1,6 +1,6 @@ #include "fsfw/FSFW.h" #include "fsfw/serviceinterface/ServiceInterface.h" -#include "fsfw-hal/linux/utility.h" +#include "fsfw_hal/linux/utility.h" #include #include diff --git a/hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp b/hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp index 7e5d0d513..051be3449 100644 --- a/hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp +++ b/hal/src/fsfw_hal/stm32h7/devicetest/GyroL3GD20H.cpp @@ -1,10 +1,10 @@ -#include "fsfw-hal/stm32h7/devicetest/GyroL3GD20H.h" +#include "fsfw_hal/stm32h7/devicetest/GyroL3GD20H.h" -#include "fsfw-hal/stm32h7/spi/mspInit.h" -#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" -#include "fsfw-hal/stm32h7/spi/spiCore.h" -#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw-hal/stm32h7/spi/stm32h743ziSpi.h" +#include "fsfw_hal/stm32h7/spi/mspInit.h" +#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw_hal/stm32h7/spi/stm32h743ziSpi.h" #include "fsfw/tasks/TaskFactory.h" #include "fsfw/serviceinterface/ServiceInterface.h" diff --git a/hal/src/fsfw_hal/stm32h7/dma.cpp b/hal/src/fsfw_hal/stm32h7/dma.cpp index 97cd93a29..bedf4aa49 100644 --- a/hal/src/fsfw_hal/stm32h7/dma.cpp +++ b/hal/src/fsfw_hal/stm32h7/dma.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp b/hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp index d8b24270e..5a890d7f9 100644 --- a/hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp +++ b/hal/src/fsfw_hal/stm32h7/gpio/gpio.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/stm32h7/gpio/gpio.h" +#include "fsfw_hal/stm32h7/gpio/gpio.h" #include "stm32h7xx_hal_rcc.h" diff --git a/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp b/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp index f91602f9a..1813aac02 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.cpp @@ -1,11 +1,11 @@ -#include "fsfw-hal/stm32h7/spi/SpiComIF.h" -#include "fsfw-hal/stm32h7/spi/SpiCookie.h" +#include "fsfw_hal/stm32h7/spi/SpiComIF.h" +#include "fsfw_hal/stm32h7/spi/SpiCookie.h" #include "fsfw/tasks/SemaphoreFactory.h" -#include "fsfw-hal/stm32h7/spi/spiCore.h" -#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw-hal/stm32h7/spi/mspInit.h" -#include "fsfw-hal/stm32h7/gpio/gpio.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw_hal/stm32h7/spi/mspInit.h" +#include "fsfw_hal/stm32h7/gpio/gpio.h" // FreeRTOS required special Semaphore handling from an ISR. Therefore, we use the concrete // instance here, because RTEMS and FreeRTOS are the only relevant OSALs currently diff --git a/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h b/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h index e97aebe70..9548e102a 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h +++ b/hal/src/fsfw_hal/stm32h7/spi/SpiComIF.h @@ -5,7 +5,7 @@ #include "fsfw/devicehandlers/DeviceCommunicationIF.h" #include "fsfw/objectmanager/SystemObject.h" -#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" #include "stm32h7xx_hal_spi.h" #include "stm32h743xx.h" diff --git a/hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp b/hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp index b37d3ae92..88f1e1f14 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/SpiCookie.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/stm32h7/spi/SpiCookie.h" +#include "fsfw_hal/stm32h7/spi/SpiCookie.h" SpiCookie::SpiCookie(address_t deviceAddress, spi::SpiBus spiIdx, spi::TransferModes transferMode, diff --git a/hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp b/hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp index 17ff45f9e..4df61f9b8 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/mspInit.cpp @@ -1,7 +1,7 @@ -#include "fsfw-hal/stm32h7/dma.h" -#include "fsfw-hal/stm32h7/spi/mspInit.h" -#include "fsfw-hal/stm32h7/spi/spiCore.h" -#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw_hal/stm32h7/dma.h" +#include "fsfw_hal/stm32h7/spi/mspInit.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" #include "stm32h743xx.h" #include "stm32h7xx_hal_spi.h" diff --git a/hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp b/hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp index aa3c32ce0..e569c9f46 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/spiCore.cpp @@ -1,5 +1,5 @@ -#include "fsfw-hal/stm32h7/spi/spiCore.h" -#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" #include diff --git a/hal/src/fsfw_hal/stm32h7/spi/spiCore.h b/hal/src/fsfw_hal/stm32h7/spi/spiCore.h index ba4e1430a..1ad5c6935 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/spiCore.h +++ b/hal/src/fsfw_hal/stm32h7/spi/spiCore.h @@ -1,8 +1,8 @@ #ifndef FSFW_HAL_STM32H7_SPI_SPICORE_H_ #define FSFW_HAL_STM32H7_SPI_SPICORE_H_ -#include "fsfw-hal/stm32h7/dma.h" -#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw_hal/stm32h7/dma.h" +#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_dma.h" diff --git a/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp b/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp index 7573640c6..11655f5ec 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/spiDefinitions.cpp @@ -1,4 +1,4 @@ -#include "fsfw-hal/stm32h7/spi/spiDefinitions.h" +#include "fsfw_hal/stm32h7/spi/spiDefinitions.h" void spi::assignSpiMode(SpiModes spiMode, SPI_HandleTypeDef& spiHandle) { switch(spiMode) { diff --git a/hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp b/hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp index c3ca66036..5d84208d9 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/spiInterrupts.cpp @@ -1,5 +1,5 @@ -#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" -#include "fsfw-hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_dma.h" diff --git a/hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp b/hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp index c6be862f3..43194704f 100644 --- a/hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp +++ b/hal/src/fsfw_hal/stm32h7/spi/stm32h743ziSpi.cpp @@ -1,6 +1,6 @@ -#include "fsfw-hal/stm32h7/spi/stm32h743ziSpi.h" -#include "fsfw-hal/stm32h7/spi/spiCore.h" -#include "fsfw-hal/stm32h7/spi/spiInterrupts.h" +#include "fsfw_hal/stm32h7/spi/stm32h743ziSpi.h" +#include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/spi/spiInterrupts.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_rcc.h" diff --git a/tests/src/fsfw_tests/internal/InternalUnitTester.cpp b/tests/src/fsfw_tests/internal/InternalUnitTester.cpp index 8fc7cb68f..f9fc19327 100644 --- a/tests/src/fsfw_tests/internal/InternalUnitTester.cpp +++ b/tests/src/fsfw_tests/internal/InternalUnitTester.cpp @@ -1,11 +1,11 @@ -#include "fsfw-tests/internal/InternalUnitTester.h" -#include "fsfw-tests/internal/UnittDefinitions.h" +#include "fsfw_tests/internal/InternalUnitTester.h" +#include "fsfw_tests/internal/UnittDefinitions.h" -#include "fsfw-tests/internal/osal/IntTestMq.h" -#include "fsfw-tests/internal/osal/IntTestSemaphore.h" -#include "fsfw-tests/internal/osal/IntTestMutex.h" -#include "fsfw-tests/internal/serialize/IntTestSerialization.h" -#include "fsfw-tests/internal/globalfunctions/TestArrayPrinter.h" +#include "fsfw_tests/internal/osal/IntTestMq.h" +#include "fsfw_tests/internal/osal/IntTestSemaphore.h" +#include "fsfw_tests/internal/osal/IntTestMutex.h" +#include "fsfw_tests/internal/serialize/IntTestSerialization.h" +#include "fsfw_tests/internal/globalfunctions/TestArrayPrinter.h" #include diff --git a/tests/src/fsfw_tests/internal/UnittDefinitions.cpp b/tests/src/fsfw_tests/internal/UnittDefinitions.cpp index eaef0bfe7..7f754a0a4 100644 --- a/tests/src/fsfw_tests/internal/UnittDefinitions.cpp +++ b/tests/src/fsfw_tests/internal/UnittDefinitions.cpp @@ -1,4 +1,4 @@ -#include "fsfw-tests/internal/UnittDefinitions.h" +#include "fsfw_tests/internal/UnittDefinitions.h" ReturnValue_t unitt::put_error(std::string errorId) { #if FSFW_CPP_OSTREAM_ENABLED == 1 diff --git a/tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.cpp b/tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.cpp index f1a0378e7..b43113433 100644 --- a/tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.cpp +++ b/tests/src/fsfw_tests/internal/globalfunctions/TestArrayPrinter.cpp @@ -1,4 +1,4 @@ -#include "fsfw-tests/internal/globalfunctions/TestArrayPrinter.h" +#include "fsfw_tests/internal/globalfunctions/TestArrayPrinter.h" void arrayprinter::testArrayPrinter() { { diff --git a/tests/src/fsfw_tests/internal/osal/IntTestMq.cpp b/tests/src/fsfw_tests/internal/osal/IntTestMq.cpp index 5ea3ec34e..6c31b3541 100644 --- a/tests/src/fsfw_tests/internal/osal/IntTestMq.cpp +++ b/tests/src/fsfw_tests/internal/osal/IntTestMq.cpp @@ -1,5 +1,5 @@ -#include "fsfw-tests/internal/osal/IntTestMq.h" -#include "fsfw-tests/internal/UnittDefinitions.h" +#include "fsfw_tests/internal/osal/IntTestMq.h" +#include "fsfw_tests/internal/UnittDefinitions.h" #include #include diff --git a/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp b/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp index 2d8a50c2e..b1699a46e 100644 --- a/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp +++ b/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp @@ -1,5 +1,5 @@ -#include "fsfw-tests/internal/osal/IntTestMutex.h" -#include "fsfw-tests/internal/UnittDefinitions.h" +#include "fsfw_tests/internal/osal/IntTestMutex.h" +#include "fsfw_tests/internal/UnittDefinitions.h" #include diff --git a/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp b/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp index 8a848d92b..8b79f33ba 100644 --- a/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp +++ b/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp @@ -1,5 +1,5 @@ -#include "fsfw-tests/internal/osal/IntTestSemaphore.h" -#include "fsfw-tests/internal/UnittDefinitions.h" +#include "fsfw_tests/internal/osal/IntTestSemaphore.h" +#include "fsfw_tests/internal/UnittDefinitions.h" #include #include diff --git a/tests/src/fsfw_tests/internal/serialize/IntTestSerialization.cpp b/tests/src/fsfw_tests/internal/serialize/IntTestSerialization.cpp index 42b4861fa..4720f706c 100644 --- a/tests/src/fsfw_tests/internal/serialize/IntTestSerialization.cpp +++ b/tests/src/fsfw_tests/internal/serialize/IntTestSerialization.cpp @@ -1,5 +1,5 @@ -#include "fsfw-tests/internal/serialize/IntTestSerialization.h" -#include "fsfw-tests/internal/UnittDefinitions.h" +#include "fsfw_tests/internal/serialize/IntTestSerialization.h" +#include "fsfw_tests/internal/UnittDefinitions.h" #include #include From 4d9c07a1ecaff8a570c98201de2bf57a41545347 Mon Sep 17 00:00:00 2001 From: Ulrich Mohr Date: Mon, 2 Aug 2021 21:22:56 +0200 Subject: [PATCH 068/136] wrong path for sgp4 include --- src/fsfw/coordinates/Sgp4Propagator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fsfw/coordinates/Sgp4Propagator.h b/src/fsfw/coordinates/Sgp4Propagator.h index aa1e821fc..7c7a0a8c9 100644 --- a/src/fsfw/coordinates/Sgp4Propagator.h +++ b/src/fsfw/coordinates/Sgp4Propagator.h @@ -7,7 +7,7 @@ #ifndef PLATFORM_WIN #include #endif -#include "fsfw-contrib/sgp4/sgp4unit.h" +#include "fsfw_contrib/sgp4/sgp4unit.h" #include "fsfw/returnvalues/HasReturnvaluesIF.h" class Sgp4Propagator { From ec00a84b294621bded139fa76446dc7cfad8f761 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 3 Aug 2021 18:46:50 +0200 Subject: [PATCH 069/136] update README for moved logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 484d65c07..48d2b8e7f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![FSFW Logo](logo/FSFW_Logo_V3_bw.png) +![FSFW Logo](misc/logo/FSFW_Logo_V3_bw.png) # Flight Software Framework (FSFW) From 2706b8fa248f9ac2516aa4a0975f629727888003 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 6 Aug 2021 11:06:33 +0200 Subject: [PATCH 070/136] Printer updates 1. Only prefix is colored now 2. Minor formatting change --- .../serviceinterface/ServiceInterfaceBuffer.cpp | 4 ++-- .../serviceinterface/ServiceInterfacePrinter.cpp | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/fsfw/serviceinterface/ServiceInterfaceBuffer.cpp b/src/fsfw/serviceinterface/ServiceInterfaceBuffer.cpp index 25828fe38..0411e6744 100644 --- a/src/fsfw/serviceinterface/ServiceInterfaceBuffer.cpp +++ b/src/fsfw/serviceinterface/ServiceInterfaceBuffer.cpp @@ -146,8 +146,8 @@ std::string* ServiceInterfaceBuffer::getPreamble(size_t * preambleSize) { #endif int32_t charCount = sprintf(parsePosition, - "%s: | %02" SCNu32 ":%02" SCNu32 ":%02" SCNu32 ".%03" SCNu32 " | ", - this->logMessage.c_str(), loggerTime.hour, + "%s%s | %02" SCNu32 ":%02" SCNu32 ":%02" SCNu32 ".%03" SCNu32 " | ", + this->logMessage.c_str(), sif::ANSI_COLOR_RESET, loggerTime.hour, loggerTime.minute, loggerTime.second, loggerTime.usecond /1000); diff --git a/src/fsfw/serviceinterface/ServiceInterfacePrinter.cpp b/src/fsfw/serviceinterface/ServiceInterfacePrinter.cpp index 9b62e91da..e42e515d7 100644 --- a/src/fsfw/serviceinterface/ServiceInterfacePrinter.cpp +++ b/src/fsfw/serviceinterface/ServiceInterfacePrinter.cpp @@ -56,25 +56,29 @@ void fsfwPrint(sif::PrintLevel printType, const char* fmt, va_list arg) { #endif if (printType == sif::PrintLevel::INFO_LEVEL) { - len += sprintf(bufferPosition + len, "INFO: "); + len += sprintf(bufferPosition + len, "INFO"); } if(printType == sif::PrintLevel::DEBUG_LEVEL) { - len += sprintf(bufferPosition + len, "DEBUG: "); + len += sprintf(bufferPosition + len, "DEBUG"); } if(printType == sif::PrintLevel::WARNING_LEVEL) { - len += sprintf(bufferPosition + len, "WARNING: "); + len += sprintf(bufferPosition + len, "WARNING"); } if(printType == sif::PrintLevel::ERROR_LEVEL) { - len += sprintf(bufferPosition + len, "ERROR: "); + len += sprintf(bufferPosition + len, "ERROR"); } +#if FSFW_COLORED_OUTPUT == 1 + len += sprintf(bufferPosition + len, sif::ANSI_COLOR_RESET); +#endif + Clock::TimeOfDay_t now; Clock::getDateAndTime(&now); /* * Log current time to terminal if desired. */ - len += sprintf(bufferPosition + len, "| %lu:%02lu:%02lu.%03lu | ", + len += sprintf(bufferPosition + len, " | %lu:%02lu:%02lu.%03lu | ", (unsigned long) now.hour, (unsigned long) now.minute, (unsigned long) now.second, From 90a1571707b4d75244ca641f0a70e2bfe9f7c764 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 6 Aug 2021 11:23:31 +0200 Subject: [PATCH 071/136] Linux HAL updates 1. The type correction was merged as part of https://egit.irs.uni-stuttgart.de/eive/fsfw/pulls/7 in the EIVE project. Quotation of PR definition of getSpiParameters is `void getSpiParameters(spi::SpiModes& spiMode, uint32_t& spiSpeed, UncommonParameters* parameters = nullptr) const;`. Here, size_t spiSpeed is passed, which implicitely gets converted to a temporary, which can not be bound to uint32_t& and, at least in gcc 9.3.0, leads to a compiler error. 2. Allow flushing the UART buffers --- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 2 +- hal/src/fsfw_hal/linux/uart/UartComIF.cpp | 45 +++++++++++++++++++++++ hal/src/fsfw_hal/linux/uart/UartComIF.h | 15 ++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index 7273dfc27..fafe67bee 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -82,7 +82,7 @@ ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) { gpioComIF->pullHigh(gpioId); } - size_t spiSpeed = 0; + uint32_t spiSpeed = 0; spi::SpiModes spiMode = spi::SpiModes::MODE_0; SpiCookie::UncommonParameters params; diff --git a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp index 2b1da314e..3c9757356 100644 --- a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp +++ b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp @@ -443,6 +443,51 @@ ReturnValue_t UartComIF::readReceivedMessage(CookieIF *cookie, return RETURN_OK; } +ReturnValue_t UartComIF::flushUartRxBuffer(CookieIF *cookie) { + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + UartCookie* uartCookie = dynamic_cast(cookie); + if(uartCookie == nullptr) { + sif::warning << "UartComIF::flushUartRxBuffer: Invalid uart cookie!" << std::endl; + return NULLPOINTER; + } + deviceFile = uartCookie->getDeviceFile(); + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + int fd = uartDeviceMapIter->second.fileDescriptor; + tcflush(fd, TCIFLUSH); + return RETURN_OK; +} + +ReturnValue_t UartComIF::flushUartTxBuffer(CookieIF *cookie) { + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + UartCookie* uartCookie = dynamic_cast(cookie); + if(uartCookie == nullptr) { + sif::warning << "UartComIF::flushUartTxBuffer: Invalid uart cookie!" << std::endl; + return NULLPOINTER; + } + deviceFile = uartCookie->getDeviceFile(); + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + int fd = uartDeviceMapIter->second.fileDescriptor; + tcflush(fd, TCOFLUSH); + return RETURN_OK; +} + +ReturnValue_t UartComIF::flushUartTxAndRxBuf(CookieIF *cookie) { + std::string deviceFile; + UartDeviceMapIter uartDeviceMapIter; + UartCookie* uartCookie = dynamic_cast(cookie); + if(uartCookie == nullptr) { + sif::warning << "UartComIF::flushUartTxAndRxBuf: Invalid uart cookie!" << std::endl; + return NULLPOINTER; + } + deviceFile = uartCookie->getDeviceFile(); + uartDeviceMapIter = uartDeviceMap.find(deviceFile); + int fd = uartDeviceMapIter->second.fileDescriptor; + tcflush(fd, TCIOFLUSH); + return RETURN_OK; +} + void UartComIF::setUartMode(struct termios *options, UartCookie &uartCookie) { UartModes uartMode = uartCookie.getUartMode(); if(uartMode == UartModes::NON_CANONICAL) { diff --git a/hal/src/fsfw_hal/linux/uart/UartComIF.h b/hal/src/fsfw_hal/linux/uart/UartComIF.h index e513aa869..68d2b9f5f 100644 --- a/hal/src/fsfw_hal/linux/uart/UartComIF.h +++ b/hal/src/fsfw_hal/linux/uart/UartComIF.h @@ -41,6 +41,21 @@ public: ReturnValue_t readReceivedMessage(CookieIF *cookie, uint8_t **buffer, size_t *size) override; + /** + * @brief This function discards all data received but not read in the UART buffer. + */ + ReturnValue_t flushUartRxBuffer(CookieIF *cookie); + + /** + * @brief This function discards all data in the transmit buffer of the UART driver. + */ + ReturnValue_t flushUartTxBuffer(CookieIF *cookie); + + /** + * @brief This function discards both data in the transmit and receive buffer of the UART. + */ + ReturnValue_t flushUartTxAndRxBuf(CookieIF *cookie); + private: using UartDeviceFile_t = std::string; From 20adc1c9813697744a37c375027114370131695c Mon Sep 17 00:00:00 2001 From: "Jakob.Meier" <–meierj@irs.uni-stuttgart.de> Date: Sat, 7 Aug 2021 14:28:12 +0200 Subject: [PATCH 072/136] queue nullptr check in action helper --- action/ActionHelper.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/action/ActionHelper.cpp b/action/ActionHelper.cpp index 73007ea36..aaa19ac4e 100644 --- a/action/ActionHelper.cpp +++ b/action/ActionHelper.cpp @@ -33,6 +33,17 @@ ReturnValue_t ActionHelper::initialize(MessageQueueIF* queueToUse_) { setQueueToUse(queueToUse_); } + if(queueToUse == nullptr) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "ActionHelper::initialize: No queue set" << std::endl; +#else + sif::printWarning("ActionHelper::initialize: No queue set\n"); +#endif +#endif /* FSFW_VERBOSE_LEVEL >= 1 */ + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; } From 62873c31188e38ac28df369de36bb3684a371e95 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 9 Aug 2021 15:37:12 +0200 Subject: [PATCH 073/136] UartComIF check iter validity --- hal/src/fsfw_hal/linux/uart/UartComIF.cpp | 27 +++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp index 3c9757356..f52b6b1e4 100644 --- a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp +++ b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp @@ -453,9 +453,12 @@ ReturnValue_t UartComIF::flushUartRxBuffer(CookieIF *cookie) { } deviceFile = uartCookie->getDeviceFile(); uartDeviceMapIter = uartDeviceMap.find(deviceFile); - int fd = uartDeviceMapIter->second.fileDescriptor; - tcflush(fd, TCIFLUSH); - return RETURN_OK; + if(uartDeviceMapIter != uartDeviceMap.end()) { + int fd = uartDeviceMapIter->second.fileDescriptor; + tcflush(fd, TCIFLUSH); + return RETURN_OK; + } + return RETURN_FAILED; } ReturnValue_t UartComIF::flushUartTxBuffer(CookieIF *cookie) { @@ -468,9 +471,12 @@ ReturnValue_t UartComIF::flushUartTxBuffer(CookieIF *cookie) { } deviceFile = uartCookie->getDeviceFile(); uartDeviceMapIter = uartDeviceMap.find(deviceFile); - int fd = uartDeviceMapIter->second.fileDescriptor; - tcflush(fd, TCOFLUSH); - return RETURN_OK; + if(uartDeviceMapIter != uartDeviceMap.end()) { + int fd = uartDeviceMapIter->second.fileDescriptor; + tcflush(fd, TCOFLUSH); + return RETURN_OK; + } + return RETURN_FAILED; } ReturnValue_t UartComIF::flushUartTxAndRxBuf(CookieIF *cookie) { @@ -483,9 +489,12 @@ ReturnValue_t UartComIF::flushUartTxAndRxBuf(CookieIF *cookie) { } deviceFile = uartCookie->getDeviceFile(); uartDeviceMapIter = uartDeviceMap.find(deviceFile); - int fd = uartDeviceMapIter->second.fileDescriptor; - tcflush(fd, TCIOFLUSH); - return RETURN_OK; + if(uartDeviceMapIter != uartDeviceMap.end()) { + int fd = uartDeviceMapIter->second.fileDescriptor; + tcflush(fd, TCIOFLUSH); + return RETURN_OK; + } + return RETURN_FAILED; } void UartComIF::setUartMode(struct termios *options, UartCookie &uartCookie) { From ccaa0aa24f75ff26b59ae75f4a57d476aaa22d18 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 9 Aug 2021 16:57:24 +0200 Subject: [PATCH 074/136] Cleaning up TCP and UDP code Same port number used as before, but some inconsistencies fixed --- src/fsfw/osal/common/TcpTmTcBridge.cpp | 2 +- src/fsfw/osal/common/TcpTmTcBridge.h | 2 +- src/fsfw/osal/common/TcpTmTcServer.cpp | 4 ++-- src/fsfw/osal/common/TcpTmTcServer.h | 3 +-- src/fsfw/osal/common/UdpTmTcBridge.cpp | 4 ++-- src/fsfw/osal/common/UdpTmTcBridge.h | 2 +- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/fsfw/osal/common/TcpTmTcBridge.cpp b/src/fsfw/osal/common/TcpTmTcBridge.cpp index 24f1a2813..f873d5c78 100644 --- a/src/fsfw/osal/common/TcpTmTcBridge.cpp +++ b/src/fsfw/osal/common/TcpTmTcBridge.cpp @@ -17,7 +17,7 @@ #endif -const std::string TcpTmTcBridge::DEFAULT_UDP_SERVER_PORT = tcpip::DEFAULT_SERVER_PORT; +const std::string TcpTmTcBridge::DEFAULT_SERVER_PORT = tcpip::DEFAULT_SERVER_PORT; TcpTmTcBridge::TcpTmTcBridge(object_id_t objectId, object_id_t tcDestination, object_id_t tmStoreId, object_id_t tcStoreId): diff --git a/src/fsfw/osal/common/TcpTmTcBridge.h b/src/fsfw/osal/common/TcpTmTcBridge.h index 6cfacb9fa..be0d0d52f 100644 --- a/src/fsfw/osal/common/TcpTmTcBridge.h +++ b/src/fsfw/osal/common/TcpTmTcBridge.h @@ -30,7 +30,7 @@ class TcpTmTcBridge: friend class TcpTmTcServer; public: /* The ports chosen here should not be used by any other process. */ - static const std::string DEFAULT_UDP_SERVER_PORT; + static const std::string DEFAULT_SERVER_PORT; /** * Constructor diff --git a/src/fsfw/osal/common/TcpTmTcServer.cpp b/src/fsfw/osal/common/TcpTmTcServer.cpp index f94449bb8..057cd5382 100644 --- a/src/fsfw/osal/common/TcpTmTcServer.cpp +++ b/src/fsfw/osal/common/TcpTmTcServer.cpp @@ -22,14 +22,14 @@ #define FSFW_TCP_RECV_WIRETAPPING_ENABLED 0 #endif -const std::string TcpTmTcServer::DEFAULT_TCP_SERVER_PORT = "7303"; +const std::string TcpTmTcServer::DEFAULT_SERVER_PORT = TcpTmTcBridge::DEFAULT_SERVER_PORT; TcpTmTcServer::TcpTmTcServer(object_id_t objectId, object_id_t tmtcTcpBridge, size_t receptionBufferSize, std::string customTcpServerPort): SystemObject(objectId), tmtcBridgeId(tmtcTcpBridge), tcpPort(customTcpServerPort), receptionBuffer(receptionBufferSize) { if(tcpPort == "") { - tcpPort = DEFAULT_TCP_SERVER_PORT; + tcpPort = DEFAULT_SERVER_PORT; } } diff --git a/src/fsfw/osal/common/TcpTmTcServer.h b/src/fsfw/osal/common/TcpTmTcServer.h index f7c36d69c..6588f111c 100644 --- a/src/fsfw/osal/common/TcpTmTcServer.h +++ b/src/fsfw/osal/common/TcpTmTcServer.h @@ -41,8 +41,7 @@ class TcpTmTcServer: public TcpIpBase, public ExecutableObjectIF { public: - /* The ports chosen here should not be used by any other process. */ - static const std::string DEFAULT_TCP_SERVER_PORT; + static const std::string DEFAULT_SERVER_PORT; static constexpr size_t ETHERNET_MTU_SIZE = 1500; diff --git a/src/fsfw/osal/common/UdpTmTcBridge.cpp b/src/fsfw/osal/common/UdpTmTcBridge.cpp index 7015cf4a5..db2546cde 100644 --- a/src/fsfw/osal/common/UdpTmTcBridge.cpp +++ b/src/fsfw/osal/common/UdpTmTcBridge.cpp @@ -17,13 +17,13 @@ #define FSFW_UDP_SEND_WIRETAPPING_ENABLED 0 #endif -const std::string UdpTmTcBridge::DEFAULT_UDP_SERVER_PORT = tcpip::DEFAULT_SERVER_PORT; +const std::string UdpTmTcBridge::DEFAULT_SERVER_PORT = tcpip::DEFAULT_SERVER_PORT; UdpTmTcBridge::UdpTmTcBridge(object_id_t objectId, object_id_t tcDestination, std::string udpServerPort, object_id_t tmStoreId, object_id_t tcStoreId): TmTcBridge(objectId, tcDestination, tmStoreId, tcStoreId) { if(udpServerPort == "") { - this->udpServerPort = DEFAULT_UDP_SERVER_PORT; + this->udpServerPort = DEFAULT_SERVER_PORT; } else { this->udpServerPort = udpServerPort; diff --git a/src/fsfw/osal/common/UdpTmTcBridge.h b/src/fsfw/osal/common/UdpTmTcBridge.h index 7a346de57..93c7511e1 100644 --- a/src/fsfw/osal/common/UdpTmTcBridge.h +++ b/src/fsfw/osal/common/UdpTmTcBridge.h @@ -28,7 +28,7 @@ class UdpTmTcBridge: friend class UdpTcPollingTask; public: /* The ports chosen here should not be used by any other process. */ - static const std::string DEFAULT_UDP_SERVER_PORT; + static const std::string DEFAULT_SERVER_PORT; UdpTmTcBridge(object_id_t objectId, object_id_t tcDestination, std::string udpServerPort = "", object_id_t tmStoreId = objects::TM_STORE, From 14a30f30db15805cca98c984d238a3bccd32882b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 9 Aug 2021 18:12:25 +0200 Subject: [PATCH 075/136] More improvements for TCP/UDP port definition --- src/fsfw/osal/common/TcpTmTcBridge.cpp | 3 --- src/fsfw/osal/common/TcpTmTcBridge.h | 4 +--- src/fsfw/osal/common/TcpTmTcServer.cpp | 6 +++++- src/fsfw/osal/common/TcpTmTcServer.h | 19 +++++++++++-------- src/fsfw/osal/common/UdpTmTcBridge.h | 4 ++-- src/fsfw/osal/common/tcpipCommon.h | 4 ++-- 6 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/fsfw/osal/common/TcpTmTcBridge.cpp b/src/fsfw/osal/common/TcpTmTcBridge.cpp index f873d5c78..3cd03c368 100644 --- a/src/fsfw/osal/common/TcpTmTcBridge.cpp +++ b/src/fsfw/osal/common/TcpTmTcBridge.cpp @@ -1,6 +1,5 @@ #include "fsfw/platform.h" #include "fsfw/osal/common/TcpTmTcBridge.h" -#include "fsfw/osal/common/tcpipHelpers.h" #include "fsfw/serviceinterface/ServiceInterface.h" #include "fsfw/ipc/MutexGuard.h" @@ -17,8 +16,6 @@ #endif -const std::string TcpTmTcBridge::DEFAULT_SERVER_PORT = tcpip::DEFAULT_SERVER_PORT; - TcpTmTcBridge::TcpTmTcBridge(object_id_t objectId, object_id_t tcDestination, object_id_t tmStoreId, object_id_t tcStoreId): TmTcBridge(objectId, tcDestination, tmStoreId, tcStoreId) { diff --git a/src/fsfw/osal/common/TcpTmTcBridge.h b/src/fsfw/osal/common/TcpTmTcBridge.h index be0d0d52f..dc46f1f01 100644 --- a/src/fsfw/osal/common/TcpTmTcBridge.h +++ b/src/fsfw/osal/common/TcpTmTcBridge.h @@ -2,7 +2,7 @@ #define FSFW_OSAL_COMMON_TCPTMTCBRIDGE_H_ #include "TcpIpBase.h" -#include "../../tmtcservices/TmTcBridge.h" +#include "fsfw/tmtcservices/TmTcBridge.h" #ifdef _WIN32 @@ -29,8 +29,6 @@ class TcpTmTcBridge: public TmTcBridge { friend class TcpTmTcServer; public: - /* The ports chosen here should not be used by any other process. */ - static const std::string DEFAULT_SERVER_PORT; /** * Constructor diff --git a/src/fsfw/osal/common/TcpTmTcServer.cpp b/src/fsfw/osal/common/TcpTmTcServer.cpp index 057cd5382..11ab71af8 100644 --- a/src/fsfw/osal/common/TcpTmTcServer.cpp +++ b/src/fsfw/osal/common/TcpTmTcServer.cpp @@ -22,7 +22,7 @@ #define FSFW_TCP_RECV_WIRETAPPING_ENABLED 0 #endif -const std::string TcpTmTcServer::DEFAULT_SERVER_PORT = TcpTmTcBridge::DEFAULT_SERVER_PORT; +const std::string TcpTmTcServer::DEFAULT_SERVER_PORT = tcpip::DEFAULT_SERVER_PORT; TcpTmTcServer::TcpTmTcServer(object_id_t objectId, object_id_t tmtcTcpBridge, size_t receptionBufferSize, std::string customTcpServerPort): @@ -200,6 +200,10 @@ void TcpTmTcServer::setTcpBacklog(uint8_t tcpBacklog) { this->tcpBacklog = tcpBacklog; } +std::string TcpTmTcServer::getTcpPort() const { + return tcpPort; +} + ReturnValue_t TcpTmTcServer::handleTmSending(socket_t connSocket) { // Access to the FIFO is mutex protected because it is filled by the bridge MutexGuard(tmtcBridge->mutex, tmtcBridge->timeoutType, tmtcBridge->mutexTimeoutMs); diff --git a/src/fsfw/osal/common/TcpTmTcServer.h b/src/fsfw/osal/common/TcpTmTcServer.h index 6588f111c..c69160807 100644 --- a/src/fsfw/osal/common/TcpTmTcServer.h +++ b/src/fsfw/osal/common/TcpTmTcServer.h @@ -3,13 +3,14 @@ #include "TcpIpBase.h" -#include "../../platform.h" -#include "../../ipc/messageQueueDefinitions.h" -#include "../../ipc/MessageQueueIF.h" -#include "../../objectmanager/frameworkObjects.h" -#include "../../objectmanager/SystemObject.h" -#include "../../storagemanager/StorageManagerIF.h" -#include "../../tasks/ExecutableObjectIF.h" +#include "fsfw/platform.h" +#include "fsfw/osal/common/tcpipHelpers.h" +#include "fsfw/ipc/messageQueueDefinitions.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/objectmanager/frameworkObjects.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/tasks/ExecutableObjectIF.h" #ifdef PLATFORM_UNIX #include @@ -43,7 +44,7 @@ class TcpTmTcServer: public: static const std::string DEFAULT_SERVER_PORT; - static constexpr size_t ETHERNET_MTU_SIZE = 1500; + static constexpr size_t ETHERNET_MTU_SIZE = 1500; /** * TCP Server Constructor @@ -64,6 +65,8 @@ public: ReturnValue_t performOperation(uint8_t opCode) override; ReturnValue_t initializeAfterTaskCreation() override; + std::string getTcpPort() const; + protected: StorageManagerIF* tcStore = nullptr; StorageManagerIF* tmStore = nullptr; diff --git a/src/fsfw/osal/common/UdpTmTcBridge.h b/src/fsfw/osal/common/UdpTmTcBridge.h index 93c7511e1..dc695c81e 100644 --- a/src/fsfw/osal/common/UdpTmTcBridge.h +++ b/src/fsfw/osal/common/UdpTmTcBridge.h @@ -2,8 +2,8 @@ #define FSFW_OSAL_COMMON_TMTCUDPBRIDGE_H_ #include "TcpIpBase.h" -#include "../../platform.h" -#include "../../tmtcservices/TmTcBridge.h" +#include "fsfw/platform.h" +#include "fsfw/tmtcservices/TmTcBridge.h" #ifdef PLATFORM_WIN #include diff --git a/src/fsfw/osal/common/tcpipCommon.h b/src/fsfw/osal/common/tcpipCommon.h index ce7a90cd1..5a04144e1 100644 --- a/src/fsfw/osal/common/tcpipCommon.h +++ b/src/fsfw/osal/common/tcpipCommon.h @@ -1,7 +1,7 @@ #ifndef FSFW_OSAL_COMMON_TCPIPCOMMON_H_ #define FSFW_OSAL_COMMON_TCPIPCOMMON_H_ -#include "../../timemanager/clockDefinitions.h" +#include "fsfw/timemanager/clockDefinitions.h" #include #ifdef _WIN32 @@ -13,7 +13,7 @@ namespace tcpip { -const char* const DEFAULT_SERVER_PORT = "7301"; +static constexpr char DEFAULT_SERVER_PORT[] = "7301"; enum class Protocol { UDP, From eecb69d230399b2e05c0729cfad9d8cdf00e25b4 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 9 Aug 2021 18:22:22 +0200 Subject: [PATCH 076/136] getter function for UDP port --- src/fsfw/osal/common/UdpTmTcBridge.cpp | 4 ++++ src/fsfw/osal/common/UdpTmTcBridge.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/fsfw/osal/common/UdpTmTcBridge.cpp b/src/fsfw/osal/common/UdpTmTcBridge.cpp index db2546cde..734a2b15b 100644 --- a/src/fsfw/osal/common/UdpTmTcBridge.cpp +++ b/src/fsfw/osal/common/UdpTmTcBridge.cpp @@ -108,6 +108,10 @@ UdpTmTcBridge::~UdpTmTcBridge() { } } +std::string UdpTmTcBridge::getUdpPort() const { + return udpServerPort; +} + ReturnValue_t UdpTmTcBridge::sendTm(const uint8_t *data, size_t dataLen) { int flags = 0; diff --git a/src/fsfw/osal/common/UdpTmTcBridge.h b/src/fsfw/osal/common/UdpTmTcBridge.h index dc695c81e..4d634e649 100644 --- a/src/fsfw/osal/common/UdpTmTcBridge.h +++ b/src/fsfw/osal/common/UdpTmTcBridge.h @@ -44,6 +44,8 @@ public: void checkAndSetClientAddress(sockaddr& clientAddress); + std::string getUdpPort() const; + protected: virtual ReturnValue_t sendTm(const uint8_t * data, size_t dataLen) override; From a18706ec5351db0ae638380ba806cbce44c8ece3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 10:49:07 +0200 Subject: [PATCH 077/136] Make FSFW tests accessible from outside 1. Further reduces the amount of code the user needs to copy and paste 2. Makes FSFW tests more accessible. This can be used to simplify moving mission unit tests to the FSFW 3. A lot of include improvements --- CMakeLists.txt | 3 ++- tests/src/fsfw_tests/unit/CMakeLists.txt | 13 ++++++++++ .../fsfw_tests/unit}/CatchDefinitions.cpp | 0 .../fsfw_tests/unit}/CatchDefinitions.h | 0 .../fsfw_tests/unit}/CatchFactory.cpp | 16 +++++++------ tests/src/fsfw_tests/unit/CatchFactory.h | 24 +++++++++++++++++++ .../fsfw_tests/unit}/CatchRunner.cpp | 6 ++--- tests/src/fsfw_tests/unit/CatchRunner.h | 14 +++++++++++ .../fsfw_tests/unit}/CatchSetup.cpp | 15 +++++------- .../unit/action/TestActionHelper.cpp | 5 +--- .../fsfw_tests/unit/action/TestActionHelper.h | 3 +-- .../unit/container/RingBufferTest.cpp | 2 +- .../unit/container/TestArrayList.cpp | 3 ++- .../unit/container/TestDynamicFifo.cpp | 3 ++- .../fsfw_tests/unit/container/TestFifo.cpp | 3 ++- .../unit/container/TestFixedArrayList.cpp | 3 ++- .../unit/container/TestFixedMap.cpp | 3 ++- .../container/TestFixedOrderedMultimap.cpp | 3 ++- .../unit/container/TestPlacementFactory.cpp | 3 ++- .../unit/datapoollocal/DataSetTest.cpp | 7 +++--- .../datapoollocal/LocalPoolManagerTest.cpp | 9 +++---- .../unit/datapoollocal/LocalPoolOwnerBase.h | 2 +- .../datapoollocal/LocalPoolVariableTest.cpp | 4 ++-- .../datapoollocal/LocalPoolVectorTest.cpp | 3 ++- .../unit/mocks/MessageQueueMockBase.h | 9 ++++--- .../fsfw_tests/unit/osal/TestMessageQueue.cpp | 3 ++- .../fsfw_tests/unit}/printChar.cpp | 0 .../core => src/fsfw_tests/unit}/printChar.h | 0 .../serialize/TestSerialBufferAdapter.cpp | 4 +++- .../unit/serialize/TestSerialLinkedPacket.cpp | 3 +-- .../unit/serialize/TestSerialization.cpp | 2 +- .../unit/storagemanager/TestNewAccessor.cpp | 5 +++- .../unit/storagemanager/TestPool.cpp | 3 ++- tests/user/CMakeLists.txt | 4 ++-- tests/user/testcfg/TestsConfig.h.in | 2 ++ tests/user/unittest/CMakeLists.txt | 1 - tests/user/unittest/core/CMakeLists.txt | 13 ---------- tests/user/unittest/core/CatchFactory.h | 16 ------------- tests/user/unittest/core/core.mk | 3 --- 39 files changed, 124 insertions(+), 91 deletions(-) rename tests/{user/unittest/core => src/fsfw_tests/unit}/CatchDefinitions.cpp (100%) rename tests/{user/unittest/core => src/fsfw_tests/unit}/CatchDefinitions.h (100%) rename tests/{user/unittest/core => src/fsfw_tests/unit}/CatchFactory.cpp (91%) create mode 100644 tests/src/fsfw_tests/unit/CatchFactory.h rename tests/{user/unittest/core => src/fsfw_tests/unit}/CatchRunner.cpp (78%) create mode 100644 tests/src/fsfw_tests/unit/CatchRunner.h rename tests/{user/unittest/core => src/fsfw_tests/unit}/CatchSetup.cpp (57%) rename tests/{user/unittest/core => src/fsfw_tests/unit}/printChar.cpp (100%) rename tests/{user/unittest/core => src/fsfw_tests/unit}/printChar.h (100%) delete mode 100644 tests/user/unittest/CMakeLists.txt delete mode 100644 tests/user/unittest/core/CMakeLists.txt delete mode 100644 tests/user/unittest/core/CatchFactory.h delete mode 100644 tests/user/unittest/core/core.mk diff --git a/CMakeLists.txt b/CMakeLists.txt index b78653009..feaa4b810 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ endif() option(FSFW_WARNING_SHADOW_LOCAL_GCC "Enable -Wshadow=local warning in GCC" ON) # Options to exclude parts of the FSFW from compilation. option(FSFW_ADD_INTERNAL_TESTS "Add internal unit tests" ON) +option(FSFW_ADD_UNITTESTS "Add regular unittests. Requires Catch2" OFF) option(FSFW_ADD_HAL "Add Hardware Abstraction Layer" ON) # Optional sources @@ -38,7 +39,7 @@ elseif(${CMAKE_CXX_STANDARD} LESS 11) endif() # Backwards comptability -if(OS_FSFW) +if(OS_FSFW AND NOT FSFW_OSAL) message(WARNING "Please pass the FSFW OSAL as FSFW_OSAL instead of OS_FSFW") set(FSFW_OSAL OS_FSFW) endif() diff --git a/tests/src/fsfw_tests/unit/CMakeLists.txt b/tests/src/fsfw_tests/unit/CMakeLists.txt index 255063f3a..01e4d19c3 100644 --- a/tests/src/fsfw_tests/unit/CMakeLists.txt +++ b/tests/src/fsfw_tests/unit/CMakeLists.txt @@ -1,3 +1,16 @@ +target_sources(${TARGET_NAME} PRIVATE + CatchDefinitions.cpp + CatchFactory.cpp + printChar.cpp +) + +if(FSFW_CUSTOM_UNITTEST_RUNNER) + target_sources(${TARGET_NAME} PRIVATE + CatchRunner.cpp + CatchSetup.cpp + ) +endif() + add_subdirectory(action) add_subdirectory(container) add_subdirectory(osal) diff --git a/tests/user/unittest/core/CatchDefinitions.cpp b/tests/src/fsfw_tests/unit/CatchDefinitions.cpp similarity index 100% rename from tests/user/unittest/core/CatchDefinitions.cpp rename to tests/src/fsfw_tests/unit/CatchDefinitions.cpp diff --git a/tests/user/unittest/core/CatchDefinitions.h b/tests/src/fsfw_tests/unit/CatchDefinitions.h similarity index 100% rename from tests/user/unittest/core/CatchDefinitions.h rename to tests/src/fsfw_tests/unit/CatchDefinitions.h diff --git a/tests/user/unittest/core/CatchFactory.cpp b/tests/src/fsfw_tests/unit/CatchFactory.cpp similarity index 91% rename from tests/user/unittest/core/CatchFactory.cpp rename to tests/src/fsfw_tests/unit/CatchFactory.cpp index ff591b8e1..010ab5ddd 100644 --- a/tests/user/unittest/core/CatchFactory.cpp +++ b/tests/src/fsfw_tests/unit/CatchFactory.cpp @@ -1,17 +1,21 @@ #include "CatchFactory.h" +#include "datapoollocal/LocalPoolOwnerBase.h" +#include "mocks/HkReceiverMock.h" + #include #include #include #include -#include +#include #include #include #include #include #include -#include -#include + + +#if FSFW_ADD_DEFAULT_FACTORY_FUNCTIONS == 1 /** * @brief Produces system objects. @@ -26,7 +30,7 @@ * * @ingroup init */ -void Factory::produce(void) { +void Factory::produceFrameworkObjects(void* args) { setStaticFrameworkObjectIds(); new EventManager(objects::EVENT_MANAGER); new HealthTable(objects::HEALTH_TABLE); @@ -55,7 +59,6 @@ void Factory::produce(void) { }; new PoolManager(objects::IPC_STORE, poolCfg); } - } void Factory::setStaticFrameworkObjectIds() { @@ -77,5 +80,4 @@ void Factory::setStaticFrameworkObjectIds() { TmPacketBase::timeStamperId = objects::NO_OBJECT; } - - +#endif diff --git a/tests/src/fsfw_tests/unit/CatchFactory.h b/tests/src/fsfw_tests/unit/CatchFactory.h new file mode 100644 index 000000000..ae0629e5d --- /dev/null +++ b/tests/src/fsfw_tests/unit/CatchFactory.h @@ -0,0 +1,24 @@ +#ifndef FSFW_CATCHFACTORY_H_ +#define FSFW_CATCHFACTORY_H_ + +#include "TestConfig.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/objectmanager/ObjectManager.h" + +// TODO: It is possible to solve this more cleanly using a special class which +// is allowed to set the object IDs and has virtual functions. +#if FSFW_ADD_DEFAULT_FACTORY_FUNCTIONS == 1 + +namespace Factory { + /** + * @brief Creates all SystemObject elements which are persistent + * during execution. + */ + void produceFrameworkObjects(void* args); + void setStaticFrameworkObjectIds(); + +} + +#endif /* FSFW_ADD_DEFAULT_FSFW_FACTORY == 1 */ + +#endif /* FSFW_CATCHFACTORY_H_ */ diff --git a/tests/user/unittest/core/CatchRunner.cpp b/tests/src/fsfw_tests/unit/CatchRunner.cpp similarity index 78% rename from tests/user/unittest/core/CatchRunner.cpp rename to tests/src/fsfw_tests/unit/CatchRunner.cpp index 886d641f3..c96db7f41 100644 --- a/tests/user/unittest/core/CatchRunner.cpp +++ b/tests/src/fsfw_tests/unit/CatchRunner.cpp @@ -6,7 +6,7 @@ * from the eclipse market place to get colored characters. */ -#include +#include "CatchRunner.h" #define CATCH_CONFIG_COLOUR_WINDOWS @@ -14,11 +14,11 @@ extern int customSetup(); -int main( int argc, char* argv[] ) { +int fsfwtest::customMain(int argc, char* argv[]) { customSetup(); // Catch internal function call - int result = Catch::Session().run( argc, argv ); + int result = Catch::Session().run(argc, argv); // global clean-up return result; diff --git a/tests/src/fsfw_tests/unit/CatchRunner.h b/tests/src/fsfw_tests/unit/CatchRunner.h new file mode 100644 index 000000000..720625c63 --- /dev/null +++ b/tests/src/fsfw_tests/unit/CatchRunner.h @@ -0,0 +1,14 @@ +#ifndef FSFW_TESTS_USER_UNITTEST_CORE_CATCHRUNNER_H_ +#define FSFW_TESTS_USER_UNITTEST_CORE_CATCHRUNNER_H_ + +namespace fsfwtest { + +/** + * Can be called by upper level main() if default Catch2 main is overriden + * @return + */ +int customMain(int argc, char* argv[]); + +} + +#endif /* FSFW_TESTS_USER_UNITTEST_CORE_CATCHRUNNER_H_ */ diff --git a/tests/user/unittest/core/CatchSetup.cpp b/tests/src/fsfw_tests/unit/CatchSetup.cpp similarity index 57% rename from tests/user/unittest/core/CatchSetup.cpp rename to tests/src/fsfw_tests/unit/CatchSetup.cpp index bda314003..a0791bc9e 100644 --- a/tests/user/unittest/core/CatchSetup.cpp +++ b/tests/src/fsfw_tests/unit/CatchSetup.cpp @@ -5,10 +5,9 @@ #include #endif -#include -#include -#include -#include +#include "fsfw/objectmanager/ObjectManager.h" +#include "fsfw/storagemanager/StorageManagerIF.h" +#include "fsfw/serviceinterface/ServiceInterface.h" /* Global instantiations normally done in main.cpp */ @@ -24,13 +23,11 @@ ServiceInterfaceStream warning("WARNING"); } #endif -/* Global object manager */ -ObjectManagerIF *objectManager; - int customSetup() { // global setup - objectManager = new ObjectManager(Factory::produce); - objectManager -> initialize(); + ObjectManager* objMan = ObjectManager::instance(); + objMan->setObjectFactoryFunction(Factory::produceFrameworkObjects, nullptr); + objMan->initialize(); return 0; } diff --git a/tests/src/fsfw_tests/unit/action/TestActionHelper.cpp b/tests/src/fsfw_tests/unit/action/TestActionHelper.cpp index 126979f64..3129b0019 100644 --- a/tests/src/fsfw_tests/unit/action/TestActionHelper.cpp +++ b/tests/src/fsfw_tests/unit/action/TestActionHelper.cpp @@ -1,13 +1,10 @@ #include "TestActionHelper.h" - -#include +#include "fsfw_tests/unit/mocks/MessageQueueMockBase.h" #include #include -#include #include - #include diff --git a/tests/src/fsfw_tests/unit/action/TestActionHelper.h b/tests/src/fsfw_tests/unit/action/TestActionHelper.h index 641ea2c63..34b228c05 100644 --- a/tests/src/fsfw_tests/unit/action/TestActionHelper.h +++ b/tests/src/fsfw_tests/unit/action/TestActionHelper.h @@ -1,12 +1,11 @@ #ifndef UNITTEST_HOSTED_TESTACTIONHELPER_H_ #define UNITTEST_HOSTED_TESTACTIONHELPER_H_ +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include -#include #include - class ActionHelperOwnerMockBase: public HasActionsIF { public: bool getCommandQueueCalled = false; diff --git a/tests/src/fsfw_tests/unit/container/RingBufferTest.cpp b/tests/src/fsfw_tests/unit/container/RingBufferTest.cpp index 32a2502d0..819401ab3 100644 --- a/tests/src/fsfw_tests/unit/container/RingBufferTest.cpp +++ b/tests/src/fsfw_tests/unit/container/RingBufferTest.cpp @@ -1,4 +1,4 @@ -#include +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include diff --git a/tests/src/fsfw_tests/unit/container/TestArrayList.cpp b/tests/src/fsfw_tests/unit/container/TestArrayList.cpp index 1fd330b67..9417144ce 100644 --- a/tests/src/fsfw_tests/unit/container/TestArrayList.cpp +++ b/tests/src/fsfw_tests/unit/container/TestArrayList.cpp @@ -1,8 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include -#include /** * @brief Array List test diff --git a/tests/src/fsfw_tests/unit/container/TestDynamicFifo.cpp b/tests/src/fsfw_tests/unit/container/TestDynamicFifo.cpp index 2b572d520..a1bab3ba0 100644 --- a/tests/src/fsfw_tests/unit/container/TestDynamicFifo.cpp +++ b/tests/src/fsfw_tests/unit/container/TestDynamicFifo.cpp @@ -1,9 +1,10 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include #include -#include TEST_CASE( "Dynamic Fifo Tests", "[TestDynamicFifo]") { INFO("Dynamic Fifo Tests"); diff --git a/tests/src/fsfw_tests/unit/container/TestFifo.cpp b/tests/src/fsfw_tests/unit/container/TestFifo.cpp index fbcd40cc6..311dd8fd9 100644 --- a/tests/src/fsfw_tests/unit/container/TestFifo.cpp +++ b/tests/src/fsfw_tests/unit/container/TestFifo.cpp @@ -1,9 +1,10 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include #include -#include TEST_CASE( "Static Fifo Tests", "[TestFifo]") { INFO("Fifo Tests"); diff --git a/tests/src/fsfw_tests/unit/container/TestFixedArrayList.cpp b/tests/src/fsfw_tests/unit/container/TestFixedArrayList.cpp index 1a85f30d8..ed597f73a 100644 --- a/tests/src/fsfw_tests/unit/container/TestFixedArrayList.cpp +++ b/tests/src/fsfw_tests/unit/container/TestFixedArrayList.cpp @@ -1,8 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include -#include TEST_CASE( "FixedArrayList Tests", "[TestFixedArrayList]") { diff --git a/tests/src/fsfw_tests/unit/container/TestFixedMap.cpp b/tests/src/fsfw_tests/unit/container/TestFixedMap.cpp index 297171ca0..488418b93 100644 --- a/tests/src/fsfw_tests/unit/container/TestFixedMap.cpp +++ b/tests/src/fsfw_tests/unit/container/TestFixedMap.cpp @@ -1,8 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include -#include template class FixedMap; diff --git a/tests/src/fsfw_tests/unit/container/TestFixedOrderedMultimap.cpp b/tests/src/fsfw_tests/unit/container/TestFixedOrderedMultimap.cpp index a47d6efb0..23d917443 100644 --- a/tests/src/fsfw_tests/unit/container/TestFixedOrderedMultimap.cpp +++ b/tests/src/fsfw_tests/unit/container/TestFixedOrderedMultimap.cpp @@ -1,8 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include -#include TEST_CASE( "FixedOrderedMultimap Tests", "[TestFixedOrderedMultimap]") { INFO("FixedOrderedMultimap Tests"); diff --git a/tests/src/fsfw_tests/unit/container/TestPlacementFactory.cpp b/tests/src/fsfw_tests/unit/container/TestPlacementFactory.cpp index 14cf8eb4c..1e328fc74 100644 --- a/tests/src/fsfw_tests/unit/container/TestPlacementFactory.cpp +++ b/tests/src/fsfw_tests/unit/container/TestPlacementFactory.cpp @@ -1,10 +1,11 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include #include #include -#include TEST_CASE( "PlacementFactory Tests", "[TestPlacementFactory]") { INFO("PlacementFactory Tests"); diff --git a/tests/src/fsfw_tests/unit/datapoollocal/DataSetTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/DataSetTest.cpp index b8748eb43..94b13f2f5 100644 --- a/tests/src/fsfw_tests/unit/datapoollocal/DataSetTest.cpp +++ b/tests/src/fsfw_tests/unit/datapoollocal/DataSetTest.cpp @@ -1,7 +1,5 @@ #include "LocalPoolOwnerBase.h" - -#include -#include +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include @@ -10,7 +8,8 @@ #include #include -#include +#include +#include TEST_CASE("DataSetTest" , "[DataSetTest]") { LocalPoolOwnerBase* poolOwner = ObjectManager::instance()-> diff --git a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolManagerTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolManagerTest.cpp index 4a4d08fb2..7b2f9412d 100644 --- a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolManagerTest.cpp +++ b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolManagerTest.cpp @@ -1,7 +1,5 @@ #include "LocalPoolOwnerBase.h" - -#include -#include +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include @@ -10,7 +8,10 @@ #include #include #include -#include + +#include +#include + #include diff --git a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.h b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.h index c0e41ddf6..ea5bb7e0d 100644 --- a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.h +++ b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolOwnerBase.h @@ -2,6 +2,7 @@ #define FSFW_UNITTEST_TESTS_DATAPOOLLOCAL_LOCALPOOLOWNERBASE_H_ #include "objects/systemObjectList.h" +#include "../mocks/MessageQueueMockBase.h" #include #include @@ -10,7 +11,6 @@ #include #include #include -#include #include namespace lpool { diff --git a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVariableTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVariableTest.cpp index 514d81258..648a76e29 100644 --- a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVariableTest.cpp +++ b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVariableTest.cpp @@ -1,10 +1,10 @@ #include "LocalPoolOwnerBase.h" +#include "fsfw_tests/unit/CatchDefinitions.h" -#include #include #include -#include +#include TEST_CASE("LocalPoolVariable" , "[LocPoolVarTest]") { LocalPoolOwnerBase* poolOwner = ObjectManager::instance()-> diff --git a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVectorTest.cpp b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVectorTest.cpp index 5b3dd105a..3f846dec4 100644 --- a/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVectorTest.cpp +++ b/tests/src/fsfw_tests/unit/datapoollocal/LocalPoolVectorTest.cpp @@ -1,9 +1,10 @@ #include "LocalPoolOwnerBase.h" +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include #include -#include + TEST_CASE("LocalPoolVector" , "[LocPoolVecTest]") { LocalPoolOwnerBase* poolOwner = ObjectManager::instance()-> diff --git a/tests/src/fsfw_tests/unit/mocks/MessageQueueMockBase.h b/tests/src/fsfw_tests/unit/mocks/MessageQueueMockBase.h index 3000f7fb5..93a00b7a6 100644 --- a/tests/src/fsfw_tests/unit/mocks/MessageQueueMockBase.h +++ b/tests/src/fsfw_tests/unit/mocks/MessageQueueMockBase.h @@ -1,9 +1,12 @@ #ifndef FSFW_UNITTEST_TESTS_MOCKS_MESSAGEQUEUEMOCKBASE_H_ #define FSFW_UNITTEST_TESTS_MOCKS_MESSAGEQUEUEMOCKBASE_H_ -#include -#include -#include +#include "fsfw_tests/unit/CatchDefinitions.h" + +#include "fsfw/ipc/CommandMessage.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/ipc/MessageQueueMessage.h" + #include #include diff --git a/tests/src/fsfw_tests/unit/osal/TestMessageQueue.cpp b/tests/src/fsfw_tests/unit/osal/TestMessageQueue.cpp index e33b72404..07197bf70 100644 --- a/tests/src/fsfw_tests/unit/osal/TestMessageQueue.cpp +++ b/tests/src/fsfw_tests/unit/osal/TestMessageQueue.cpp @@ -1,8 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include -#include #include diff --git a/tests/user/unittest/core/printChar.cpp b/tests/src/fsfw_tests/unit/printChar.cpp similarity index 100% rename from tests/user/unittest/core/printChar.cpp rename to tests/src/fsfw_tests/unit/printChar.cpp diff --git a/tests/user/unittest/core/printChar.h b/tests/src/fsfw_tests/unit/printChar.h similarity index 100% rename from tests/user/unittest/core/printChar.h rename to tests/src/fsfw_tests/unit/printChar.h diff --git a/tests/src/fsfw_tests/unit/serialize/TestSerialBufferAdapter.cpp b/tests/src/fsfw_tests/unit/serialize/TestSerialBufferAdapter.cpp index 1938746d7..01d75881e 100644 --- a/tests/src/fsfw_tests/unit/serialize/TestSerialBufferAdapter.cpp +++ b/tests/src/fsfw_tests/unit/serialize/TestSerialBufferAdapter.cpp @@ -1,7 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include -#include + #include diff --git a/tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.cpp b/tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.cpp index b90ae9f86..b6bb214d7 100644 --- a/tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.cpp +++ b/tests/src/fsfw_tests/unit/serialize/TestSerialLinkedPacket.cpp @@ -1,10 +1,9 @@ #include "TestSerialLinkedPacket.h" -#include +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include -#include #include diff --git a/tests/src/fsfw_tests/unit/serialize/TestSerialization.cpp b/tests/src/fsfw_tests/unit/serialize/TestSerialization.cpp index 3de581ec9..64deae3b2 100644 --- a/tests/src/fsfw_tests/unit/serialize/TestSerialization.cpp +++ b/tests/src/fsfw_tests/unit/serialize/TestSerialization.cpp @@ -1,8 +1,8 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" #include #include #include -#include #include diff --git a/tests/src/fsfw_tests/unit/storagemanager/TestNewAccessor.cpp b/tests/src/fsfw_tests/unit/storagemanager/TestNewAccessor.cpp index 10d05c6b1..bd1634b7c 100644 --- a/tests/src/fsfw_tests/unit/storagemanager/TestNewAccessor.cpp +++ b/tests/src/fsfw_tests/unit/storagemanager/TestNewAccessor.cpp @@ -1,6 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include + #include -#include + #include #include diff --git a/tests/src/fsfw_tests/unit/storagemanager/TestPool.cpp b/tests/src/fsfw_tests/unit/storagemanager/TestPool.cpp index d05a3dd6e..013ecf86c 100644 --- a/tests/src/fsfw_tests/unit/storagemanager/TestPool.cpp +++ b/tests/src/fsfw_tests/unit/storagemanager/TestPool.cpp @@ -1,8 +1,9 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" + #include #include #include -#include #include diff --git a/tests/user/CMakeLists.txt b/tests/user/CMakeLists.txt index df16c7567..2e1fdee31 100644 --- a/tests/user/CMakeLists.txt +++ b/tests/user/CMakeLists.txt @@ -32,7 +32,7 @@ if(NOT FSFW_OSAL) set(FSFW_OSAL host CACHE STRING "OS for the FSFW.") endif() -option(CUSTOM_UNITTEST_RUNNER +option(FSFW_CUSTOM_UNITTEST_RUNNER "Specify whether custom main or Catch2 main is used" TRUE ) @@ -49,7 +49,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) # Set names and variables set(TARGET_NAME ${CMAKE_PROJECT_NAME}) -if(CUSTOM_UNITTEST_RUNNER) +if(FSFW_CUSTOM_UNITTEST_RUNNER) set(CATCH2_TARGET Catch2) else() set(CATCH2_TARGET Catch2WithMain) diff --git a/tests/user/testcfg/TestsConfig.h.in b/tests/user/testcfg/TestsConfig.h.in index 0341583de..7d9500702 100644 --- a/tests/user/testcfg/TestsConfig.h.in +++ b/tests/user/testcfg/TestsConfig.h.in @@ -1,6 +1,8 @@ #ifndef FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ #define FSFW_UNITTEST_CONFIG_TESTSCONFIG_H_ +#define FSFW_ADD_DEFAULT_FACTORY_FUNCTIONS 1 + #ifdef __cplusplus #include "objects/systemObjectList.h" diff --git a/tests/user/unittest/CMakeLists.txt b/tests/user/unittest/CMakeLists.txt deleted file mode 100644 index ad6d4787c..000000000 --- a/tests/user/unittest/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(core) diff --git a/tests/user/unittest/core/CMakeLists.txt b/tests/user/unittest/core/CMakeLists.txt deleted file mode 100644 index 0989926c3..000000000 --- a/tests/user/unittest/core/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -target_sources(${TARGET_NAME} PRIVATE - CatchDefinitions.cpp - CatchFactory.cpp - CatchRunner.cpp - CatchSetup.cpp - printChar.cpp -) - -if(CUSTOM_UNITTEST_RUNNER) - target_sources(${TARGET_NAME} PRIVATE - CatchRunner.cpp - ) -endif() \ No newline at end of file diff --git a/tests/user/unittest/core/CatchFactory.h b/tests/user/unittest/core/CatchFactory.h deleted file mode 100644 index 024f762ee..000000000 --- a/tests/user/unittest/core/CatchFactory.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef FSFW_CATCHFACTORY_H_ -#define FSFW_CATCHFACTORY_H_ - -#include - -namespace Factory { - /** - * @brief Creates all SystemObject elements which are persistent - * during execution. - */ - void produce(void* args); - void setStaticFrameworkObjectIds(); - -} - -#endif /* FSFW_CATCHFACTORY_H_ */ diff --git a/tests/user/unittest/core/core.mk b/tests/user/unittest/core/core.mk deleted file mode 100644 index 3e5626d33..000000000 --- a/tests/user/unittest/core/core.mk +++ /dev/null @@ -1,3 +0,0 @@ -CXXSRC += $(wildcard $(CURRENTPATH)/*.cpp) - -INCLUDES += $(CURRENTPATH) \ No newline at end of file From cfb8bc5dfdb146f66187e38eafe9af8b18a0d031 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 11:20:15 +0200 Subject: [PATCH 078/136] fsfw version update --- src/fsfw/FSFWVersion.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/fsfw/FSFWVersion.h b/src/fsfw/FSFWVersion.h index df2d49a51..1d0da280b 100644 --- a/src/fsfw/FSFWVersion.h +++ b/src/fsfw/FSFWVersion.h @@ -1,12 +1,10 @@ -#ifndef FSFW_DEFAULTCFG_VERSION_H_ -#define FSFW_DEFAULTCFG_VERSION_H_ +#ifndef FSFW_VERSION_H_ +#define FSFW_VERSION_H_ const char* const FSFW_VERSION_NAME = "ASTP"; #define FSFW_VERSION 1 -#define FSFW_SUBVERSION 0 -#define FSFW_REVISION 0 +#define FSFW_SUBVERSION 3 +#define FSFW_REVISION 0 - - -#endif /* FSFW_DEFAULTCFG_VERSION_H_ */ +#endif /* FSFW_VERSION_H_ */ From 6e9a0ddcf46d8988e96a6aa6de97178625462993 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 11:23:44 +0200 Subject: [PATCH 079/136] cmakedefine for OSAL type --- CMakeLists.txt | 37 +++++++++++++++---------------------- src/fsfw/FSFW.h.in | 5 +++++ 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b78653009..9a1f7d1a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,35 +62,28 @@ endif() set(FSFW_OSAL_DEFINITION FSFW_OSAL_HOST) if(FSFW_OSAL MATCHES host) - set(OS_FSFW_NAME "Host") + set(OS_FSFW_NAME "Host") + set(FSFW_OSAL_HOST ON) elseif(FSFW_OSAL MATCHES linux) - set(OS_FSFW_NAME "Linux") - set(FSFW_OSAL_DEFINITION FSFW_OSAL_LINUX) + set(OS_FSFW_NAME "Linux") + set(FSFW_OSAL_LINUX ON) elseif(FSFW_OSAL MATCHES freertos) - set(OS_FSFW_NAME "FreeRTOS") - set(FSFW_OSAL_DEFINITION FSFW_OSAL_FREERTOS) - target_link_libraries(${LIB_FSFW_NAME} PRIVATE + set(OS_FSFW_NAME "FreeRTOS") + set(FSFW_OSAL_FREERTOS ON) + target_link_libraries(${LIB_FSFW_NAME} PRIVATE ${LIB_OS_NAME} - ) + ) elseif(FSFW_OSAL STREQUAL rtems) - set(OS_FSFW_NAME "RTEMS") - set(FSFW_OSAL_DEFINITION FSFW_OSAL_RTEMS) + set(OS_FSFW_NAME "RTEMS") + set(FSFW_OSAL_RTEMS ON) else() - message(WARNING - "Invalid operating system for FSFW specified! Setting to host.." - ) - set(OS_FSFW_NAME "Host") - set(OS_FSFW "host") + message(WARNING + "Invalid operating system for FSFW specified! Setting to host.." + ) + set(OS_FSFW_NAME "Host") + set(OS_FSFW "host") endif() -target_compile_definitions(${LIB_FSFW_NAME} PRIVATE - ${FSFW_OSAL_DEFINITION} -) - -target_compile_definitions(${LIB_FSFW_NAME} INTERFACE - ${FSFW_OSAL_DEFINITION} -) - message(STATUS "Compiling FSFW for the ${OS_FSFW_NAME} operating system.") add_subdirectory(src) diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in index 4d4b8aee1..f0eb93656 100644 --- a/src/fsfw/FSFW.h.in +++ b/src/fsfw/FSFW.h.in @@ -3,6 +3,11 @@ #include "FSFWConfig.h" +#cmakedefine FSFW_OSAL_RTEMS +#cmakedefine FSFW_OSAL_FREERTOS +#cmakedefine FSFW_OSAL_LINUX +#cmakedefine FSFW_OSAL_HOST + #cmakedefine FSFW_ADD_RMAP #cmakedefine FSFW_ADD_DATALINKLAYER #cmakedefine FSFW_ADD_TMSTORAGE From 517d52f55df804ef22fab9c7be6708e2560b180d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 11:27:46 +0200 Subject: [PATCH 080/136] using better defines --- .../src/fsfw_tests/internal/InternalUnitTester.cpp | 9 ++++++--- tests/src/fsfw_tests/internal/InternalUnitTester.h | 1 + tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp | 11 ++++++----- .../fsfw_tests/internal/osal/IntTestSemaphore.cpp | 13 +++++++------ 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/tests/src/fsfw_tests/internal/InternalUnitTester.cpp b/tests/src/fsfw_tests/internal/InternalUnitTester.cpp index f9fc19327..20998d64d 100644 --- a/tests/src/fsfw_tests/internal/InternalUnitTester.cpp +++ b/tests/src/fsfw_tests/internal/InternalUnitTester.cpp @@ -16,15 +16,18 @@ InternalUnitTester::~InternalUnitTester() {} ReturnValue_t InternalUnitTester::performTests( const struct InternalUnitTester::TestConfig& testConfig) { #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::info << "Running internal unit tests.." << std::endl; + sif::info << "Running internal unit tests.. Error messages might follow" << + std::endl; #else sif::printInfo("Running internal unit tests..\n"); #endif testserialize::test_serialization(); testmq::testMq(); - testsemaph::testBinSemaph(); - testsemaph::testCountingSemaph(); + if(testConfig.testSemaphores) { + testsemaph::testBinSemaph(); + testsemaph::testCountingSemaph(); + } testmutex::testMutex(); if(testConfig.testArrayPrinter) { arrayprinter::testArrayPrinter(); diff --git a/tests/src/fsfw_tests/internal/InternalUnitTester.h b/tests/src/fsfw_tests/internal/InternalUnitTester.h index 50c89d775..433a0f1f8 100644 --- a/tests/src/fsfw_tests/internal/InternalUnitTester.h +++ b/tests/src/fsfw_tests/internal/InternalUnitTester.h @@ -18,6 +18,7 @@ class InternalUnitTester: public HasReturnvaluesIF { public: struct TestConfig { bool testArrayPrinter = false; + bool testSemaphores = true; }; InternalUnitTester(); diff --git a/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp b/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp index b1699a46e..d9184cd83 100644 --- a/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp +++ b/tests/src/fsfw_tests/internal/osal/IntTestMutex.cpp @@ -1,10 +1,12 @@ #include "fsfw_tests/internal/osal/IntTestMutex.h" #include "fsfw_tests/internal/UnittDefinitions.h" +#include "fsfw/platform.h" #include -#if defined(WIN32) || defined(UNIX) -#include +#if defined PLATFORM_WIN || defined PLATFORM_UNIX +#include "fsfw/osal/host/Mutex.h" + #include #include #endif @@ -20,7 +22,7 @@ void testmutex::testMutex() { // timed_mutex from the C++ library specifies undefined behaviour if // the timed mutex is locked twice from the same thread. // TODO: we should pass a define like FSFW_OSAL_HOST to the build. -#if defined(WIN32) || defined(UNIX) +#if defined PLATFORM_WIN || defined PLATFORM_UNIX // This calls the function from // another thread and stores the returnvalue in a future. auto future = std::async(&MutexIF::lockMutex, mutex, MutexIF::TimeoutType::WAITING, 1); @@ -37,8 +39,7 @@ void testmutex::testMutex() { unitt::put_error(id); } - // TODO: we should pass a define like FSFW_OSAL_HOST to the build. -#if !defined(WIN32) && !defined(UNIX) +#if !defined PLATFORM_WIN && !defined PLATFORM_UNIX result = mutex->unlockMutex(); if(result != MutexIF::CURR_THREAD_DOES_NOT_OWN_MUTEX) { unitt::put_error(id); diff --git a/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp b/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp index 8b79f33ba..4b28f961b 100644 --- a/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp +++ b/tests/src/fsfw_tests/internal/osal/IntTestSemaphore.cpp @@ -1,9 +1,10 @@ +#include "fsfw/FSFW.h" #include "fsfw_tests/internal/osal/IntTestSemaphore.h" #include "fsfw_tests/internal/UnittDefinitions.h" -#include -#include -#include +#include "fsfw/tasks/SemaphoreFactory.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/timemanager/Stopwatch.h" #include @@ -16,7 +17,7 @@ void testsemaph::testBinSemaph() { } testBinSemaphoreImplementation(binSemaph, id); SemaphoreFactory::instance()->deleteSemaphore(binSemaph); -#if defined(freeRTOS) +#if defined FSFW_OSAL_FREERTOS SemaphoreIF* binSemaphUsingTask = SemaphoreFactory::instance()->createBinarySemaphore(1); testBinSemaphoreImplementation(binSemaphUsingTask, id); @@ -36,7 +37,7 @@ void testsemaph::testCountingSemaph() { } testBinSemaphoreImplementation(countingSemaph, id); SemaphoreFactory::instance()->deleteSemaphore(countingSemaph); -#if defined(freeRTOS) +#if defined FSFW_OSAL_FREERTOS countingSemaph = SemaphoreFactory::instance()-> createCountingSemaphore(1, 1, 1); testBinSemaphoreImplementation(countingSemaph, id); @@ -50,7 +51,7 @@ void testsemaph::testCountingSemaph() { createCountingSemaphore(3,3); testCountingSemaphImplementation(countingSemaph, id); SemaphoreFactory::instance()->deleteSemaphore(countingSemaph); -#if defined(freeRTOS) +#if defined FSFW_OSAL_FREERTOS countingSemaph = SemaphoreFactory::instance()-> createCountingSemaphore(3, 0, 1); uint8_t semaphCount = countingSemaph->getSemaphoreCounter(); From db3284c2b8cc6492a50476025a93cab509e02d77 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 14:52:11 +0200 Subject: [PATCH 081/136] subversion update --- src/fsfw/FSFWVersion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fsfw/FSFWVersion.h b/src/fsfw/FSFWVersion.h index 1d0da280b..f8e896940 100644 --- a/src/fsfw/FSFWVersion.h +++ b/src/fsfw/FSFWVersion.h @@ -4,7 +4,7 @@ const char* const FSFW_VERSION_NAME = "ASTP"; #define FSFW_VERSION 1 -#define FSFW_SUBVERSION 3 +#define FSFW_SUBVERSION 2 #define FSFW_REVISION 0 #endif /* FSFW_VERSION_H_ */ From fa14ebbe1f0aa5f8888e53d3476b93acf1a82cdb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 15:19:03 +0200 Subject: [PATCH 082/136] additional check --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a1f7d1a5..4a1ec8c42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ elseif(${CMAKE_CXX_STANDARD} LESS 11) endif() # Backwards comptability -if(OS_FSFW) +if(OS_FSFW AND NOT FSFW_OSAL) message(WARNING "Please pass the FSFW OSAL as FSFW_OSAL instead of OS_FSFW") set(FSFW_OSAL OS_FSFW) endif() From 92d3f0743b3b765e8da028b4aba712f751eda201 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Aug 2021 15:26:28 +0200 Subject: [PATCH 083/136] moved change to another PR --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index feaa4b810..4882db545 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,7 @@ elseif(${CMAKE_CXX_STANDARD} LESS 11) endif() # Backwards comptability -if(OS_FSFW AND NOT FSFW_OSAL) +if(OS_FSFW) message(WARNING "Please pass the FSFW OSAL as FSFW_OSAL instead of OS_FSFW") set(FSFW_OSAL OS_FSFW) endif() From 4b72e246c36bab632d9efd92ff1d8e6cd533b6a9 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Aug 2021 15:05:29 +0200 Subject: [PATCH 084/136] improved DLE encoder --- src/fsfw/globalfunctions/DleEncoder.cpp | 67 ++++++++++++++----------- src/fsfw/globalfunctions/DleEncoder.h | 66 +++++++++++++++--------- 2 files changed, 79 insertions(+), 54 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 11df8ad71..d6f3cc87c 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -1,6 +1,7 @@ #include "fsfw/globalfunctions/DleEncoder.h" -DleEncoder::DleEncoder() {} +DleEncoder::DleEncoder(bool escapeStxEtx, bool escapeCr): escapeStxEtx(escapeStxEtx), + escapeCr(escapeCr) {} DleEncoder::~DleEncoder() {} @@ -17,26 +18,28 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, ++encodedIndex; } - while (encodedIndex < maxDestLen and sourceIndex < sourceLen) - { + while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { nextByte = sourceStream[sourceIndex]; // STX, ETX and CR characters in the stream need to be escaped with DLE - if (nextByte == STX_CHAR or nextByte == ETX_CHAR or nextByte == CARRIAGE_RETURN) { - if (encodedIndex + 1 >= maxDestLen) { - return STREAM_TOO_SHORT; - } - else { - destStream[encodedIndex] = DLE_CHAR; - ++encodedIndex; - /* Escaped byte will be actual byte + 0x40. This prevents - * STX, ETX, and carriage return characters from appearing - * in the encoded data stream at all, so when polling an - * encoded stream, the transmission can be stopped at ETX. - * 0x40 was chosen at random with special requirements: - * - Prevent going from one control char to another - * - Prevent overflow for common characters */ - destStream[encodedIndex] = nextByte + 0x40; - } + if ((nextByte == STX_CHAR or nextByte == ETX_CHAR) or + (this->escapeCr and nextByte == CARRIAGE_RETURN)) { + if(this->escapeStxEtx) { + if (encodedIndex + 1 >= maxDestLen) { + return STREAM_TOO_SHORT; + } + else { + destStream[encodedIndex] = DLE_CHAR; + ++encodedIndex; + /* Escaped byte will be actual byte + 0x40. This prevents + * STX, ETX, and carriage return characters from appearing + * in the encoded data stream at all, so when polling an + * encoded stream, the transmission can be stopped at ETX. + * 0x40 was chosen at random with special requirements: + * - Prevent going from one control char to another + * - Prevent overflow for common characters */ + destStream[encodedIndex] = nextByte + 0x40; + } + } } // DLE characters are simply escaped with DLE. else if (nextByte == DLE_CHAR) { @@ -90,16 +93,22 @@ ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, destStream[decodedIndex] = nextByte; } else { - /* The next byte is a STX, DTX or 0x0D character which - * was escaped by a DLE character. The actual byte was - * also encoded by adding + 0x40 to prevent having control chars, - * in the stream at all, so we convert it back. */ - if (nextByte == 0x42 or nextByte == 0x43 or nextByte == 0x4D) { - destStream[decodedIndex] = nextByte - 0x40; - } - else { - return DECODING_ERROR; - } + if(this->escapeStxEtx) { + /* The next byte is a STX, DTX or 0x0D character which + * was escaped by a DLE character. The actual byte was + * also encoded by adding + 0x40 to prevent having control chars, + * in the stream at all, so we convert it back. */ + if ((nextByte == STX_CHAR + 0x40 or nextByte == ETX_CHAR + 0x40) or + (this->escapeCr and nextByte == CARRIAGE_RETURN + 0x40)) { + destStream[decodedIndex] = nextByte - 0x40; + } + else { + return DECODING_ERROR; + } + } + else { + return DECODING_ERROR; + } } ++encodedIndex; } diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index 6d073f9a2..38d4dc758 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -1,7 +1,7 @@ #ifndef FRAMEWORK_GLOBALFUNCTIONS_DLEENCODER_H_ #define FRAMEWORK_GLOBALFUNCTIONS_DLEENCODER_H_ -#include "../returnvalues/HasReturnvaluesIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" #include /** @@ -13,9 +13,9 @@ * * This encoder can be used to achieve a basic transport layer when using * char based transmission systems. - * The passed source strean is converted into a encoded stream by adding + * The passed source stream is converted into a encoded stream by adding * a STX marker at the start of the stream and an ETX marker at the end of - * the stream. Any STX, ETX, DLE and CR occurrences in the source stream are + * the stream. Any STX, ETX, DLE and CR occurrences in the source stream can be * escaped by a DLE character. The encoder also replaces escaped control chars * by another char, so STX, ETX and CR should not appear anywhere in the actual * encoded data stream. @@ -26,38 +26,45 @@ */ class DleEncoder: public HasReturnvaluesIF { private: - DleEncoder(); - virtual ~DleEncoder(); + DleEncoder(bool escapeStxEtx = true, bool escapeCr = false); + virtual ~DleEncoder(); public: - static constexpr uint8_t INTERFACE_ID = CLASS_ID::DLE_ENCODER; - static constexpr ReturnValue_t STREAM_TOO_SHORT = MAKE_RETURN_CODE(0x01); - static constexpr ReturnValue_t DECODING_ERROR = MAKE_RETURN_CODE(0x02); + static constexpr uint8_t INTERFACE_ID = CLASS_ID::DLE_ENCODER; + static constexpr ReturnValue_t STREAM_TOO_SHORT = MAKE_RETURN_CODE(0x01); + static constexpr ReturnValue_t DECODING_ERROR = MAKE_RETURN_CODE(0x02); - //! Start Of Text character. First character is encoded stream - static constexpr uint8_t STX_CHAR = 0x02; - //! End Of Text character. Last character in encoded stream - static constexpr uint8_t ETX_CHAR = 0x03; - //! Data Link Escape character. Used to escape STX, ETX and DLE occurrences - //! in the source stream. - static constexpr uint8_t DLE_CHAR = 0x10; - static constexpr uint8_t CARRIAGE_RETURN = 0x0D; + //! Start Of Text character. First character is encoded stream + static constexpr uint8_t STX_CHAR = 0x02; + //! End Of Text character. Last character in encoded stream + static constexpr uint8_t ETX_CHAR = 0x03; + //! Data Link Escape character. Used to escape STX, ETX and DLE occurrences + //! in the source stream. + static constexpr uint8_t DLE_CHAR = 0x10; + static constexpr uint8_t CARRIAGE_RETURN = 0x0D; /** * Encodes the give data stream by preceding it with the STX marker - * and ending it with an ETX marker. STX, ETX and DLE characters inside - * the stream are escaped by DLE characters and also replaced by adding - * 0x40 (which is reverted in the decoding process). + * and ending it with an ETX marker. DLE characters inside + * the stream are escaped by DLE characters. STX, ETX and CR characters can be escaped with a + * DLE character as well. The escaped characters are also encoded by adding + * 0x40 (which is reverted in the decoding process). This is performed so the source stream + * does not have STX/ETX/CR occurrences anymore, so the receiving side can simply parse for + * start and end markers * @param sourceStream * @param sourceLen * @param destStream * @param maxDestLen * @param encodedLen - * @param addStxEtx - * Adding STX and ETX can be omitted, if they are added manually. + * @param addStxEtx Adding STX start marker and ETX end marker can be omitted, + * if they are added manually + * @param escapeStxEtx STX and ETX occurrences in the given source stream will be escaped and + * encoded by adding 0x40 + * @param escapeCr CR characters in the given source stream will be escaped and encoded + * by adding 0x40 * @return */ - static ReturnValue_t encode(const uint8_t *sourceStream, size_t sourceLen, + ReturnValue_t encode(const uint8_t *sourceStream, size_t sourceLen, uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx = true); @@ -69,11 +76,20 @@ public: * @param destStream * @param maxDestStreamlen * @param decodedLen + * @param escapeStxEtx STX and ETX characters were escaped in the encoded stream and need to + * be decoded back as well + * @param escapeCr CR characters were escaped in the encoded stream and need to + * be decoded back as well by subtracting 0x40 * @return */ - static ReturnValue_t decode(const uint8_t *sourceStream, - size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, - size_t maxDestStreamlen, size_t *decodedLen); + ReturnValue_t decode(const uint8_t *sourceStream, + size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, + size_t maxDestStreamlen, size_t *decodedLen); + +private: + + bool escapeStxEtx; + bool escapeCr; }; #endif /* FRAMEWORK_GLOBALFUNCTIONS_DLEENCODER_H_ */ From ece7dce6f7ee33b04473a41f698ff15414520a02 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Aug 2021 15:13:58 +0200 Subject: [PATCH 085/136] ctor and dtor public now --- src/fsfw/globalfunctions/DleEncoder.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index 38d4dc758..c78fe197f 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -25,11 +25,15 @@ * while ETX can be used to notify the reader that the data has ended. */ class DleEncoder: public HasReturnvaluesIF { -private: +public: + /** + * Create an encoder instance with the given configuration. + * @param escapeStxEtx + * @param escapeCr + */ DleEncoder(bool escapeStxEtx = true, bool escapeCr = false); virtual ~DleEncoder(); -public: static constexpr uint8_t INTERFACE_ID = CLASS_ID::DLE_ENCODER; static constexpr ReturnValue_t STREAM_TOO_SHORT = MAKE_RETURN_CODE(0x01); static constexpr ReturnValue_t DECODING_ERROR = MAKE_RETURN_CODE(0x02); From 5fcac4d85b5eba9f28f9f7fae8dedb8f1f39928a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Aug 2021 15:39:24 +0200 Subject: [PATCH 086/136] added proper non-escaped variant --- src/fsfw/globalfunctions/DleEncoder.cpp | 159 +++++++++++++++++------- src/fsfw/globalfunctions/DleEncoder.h | 8 ++ 2 files changed, 121 insertions(+), 46 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index d6f3cc87c..0cc3ad2a5 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -14,6 +14,10 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, size_t encodedIndex = 0, sourceIndex = 0; uint8_t nextByte; if (addStxEtx) { + if(not escapeStxEtx) { + destStream[0] = DLE_CHAR; + ++encodedIndex; + } destStream[0] = STX_CHAR; ++encodedIndex; } @@ -61,6 +65,10 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { if (addStxEtx) { + if(not escapeStxEtx) { + destStream[encodedIndex] = DLE_CHAR; + ++encodedIndex; + } destStream[encodedIndex] = ETX_CHAR; ++encodedIndex; } @@ -72,62 +80,121 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, } } +ReturnValue_t DleEncoder::encodeEscaped(const uint8_t *sourceStream, size_t sourceLen, + uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { +} + +ReturnValue_t DleEncoder::encodeNonEscaped(const uint8_t *sourceStream, size_t sourceLen, + uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { +} + ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { size_t encodedIndex = 0, decodedIndex = 0; uint8_t nextByte; - if (*sourceStream != STX_CHAR) { - return DECODING_ERROR; + if(not escapeStxEtx) { + if (*sourceStream != DLE_CHAR) { + return DECODING_ERROR; + } + ++encodedIndex; } + if (sourceStream[encodedIndex] != STX_CHAR) { + return DECODING_ERROR; + } + ++encodedIndex; - while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen) - && (sourceStream[encodedIndex] != ETX_CHAR) - && (sourceStream[encodedIndex] != STX_CHAR)) { - if (sourceStream[encodedIndex] == DLE_CHAR) { - nextByte = sourceStream[encodedIndex + 1]; - // The next byte is a DLE character that was escaped by another - // DLE character, so we can write it to the destination stream. - if (nextByte == DLE_CHAR) { - destStream[decodedIndex] = nextByte; - } - else { - if(this->escapeStxEtx) { - /* The next byte is a STX, DTX or 0x0D character which - * was escaped by a DLE character. The actual byte was - * also encoded by adding + 0x40 to prevent having control chars, - * in the stream at all, so we convert it back. */ - if ((nextByte == STX_CHAR + 0x40 or nextByte == ETX_CHAR + 0x40) or - (this->escapeCr and nextByte == CARRIAGE_RETURN + 0x40)) { - destStream[decodedIndex] = nextByte - 0x40; - } - else { - return DECODING_ERROR; - } - } - else { - return DECODING_ERROR; - } - } - ++encodedIndex; - } - else { - destStream[decodedIndex] = sourceStream[encodedIndex]; - } - - ++encodedIndex; - ++decodedIndex; - } - - if (sourceStream[encodedIndex] != ETX_CHAR) { - *readLen = ++encodedIndex; - return DECODING_ERROR; + if(escapeStxEtx) { + return decodeStreamEscaped(encodedIndex, decodedIndex, sourceStream, sourceStreamLen, + readLen, destStream, maxDestStreamlen, decodedLen); } else { - *readLen = ++encodedIndex; - *decodedLen = decodedIndex; - return RETURN_OK; + return decodeStreamNonEscaped(encodedIndex, decodedIndex, sourceStream, sourceStreamLen, + readLen, destStream, maxDestStreamlen, decodedLen); } } +ReturnValue_t DleEncoder::decodeStreamEscaped(size_t encodedIndex, size_t decodedIndex, + const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, + size_t maxDestStreamlen, size_t *decodedLen) { + uint8_t nextByte; + while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen) + && (sourceStream[encodedIndex] != ETX_CHAR) + && (sourceStream[encodedIndex] != STX_CHAR)) { + if (sourceStream[encodedIndex] == DLE_CHAR) { + nextByte = sourceStream[encodedIndex + 1]; + // The next byte is a DLE character that was escaped by another + // DLE character, so we can write it to the destination stream. + if (nextByte == DLE_CHAR) { + destStream[decodedIndex] = nextByte; + } + else { + if(this->escapeStxEtx) { + /* The next byte is a STX, DTX or 0x0D character which + * was escaped by a DLE character. The actual byte was + * also encoded by adding + 0x40 to prevent having control chars, + * in the stream at all, so we convert it back. */ + if ((nextByte == STX_CHAR + 0x40 or nextByte == ETX_CHAR + 0x40) or + (this->escapeCr and nextByte == CARRIAGE_RETURN + 0x40)) { + destStream[decodedIndex] = nextByte - 0x40; + } + else { + return DECODING_ERROR; + } + } + else { + return DECODING_ERROR; + } + } + ++encodedIndex; + } + else { + destStream[decodedIndex] = sourceStream[encodedIndex]; + } + + ++encodedIndex; + ++decodedIndex; + } + if (sourceStream[encodedIndex] != ETX_CHAR) { + *readLen = ++encodedIndex; + return DECODING_ERROR; + } + else { + *readLen = ++encodedIndex; + *decodedLen = decodedIndex; + return RETURN_OK; + } +} + +ReturnValue_t DleEncoder::decodeStreamNonEscaped(size_t encodedIndex, size_t decodedIndex, + const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, + size_t maxDestStreamlen, size_t *decodedLen) { + uint8_t nextByte; + while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen)) { + if (sourceStream[encodedIndex] == DLE_CHAR) { + nextByte = sourceStream[encodedIndex + 1]; + if(nextByte == STX_CHAR) { + *readLen = ++encodedIndex; + return DECODING_ERROR; + } + else if(nextByte == DLE_CHAR) { + // The next byte is a DLE character that was escaped by another + // DLE character, so we can write it to the destination stream. + destStream[decodedIndex] = nextByte; + ++encodedIndex; + } + else if(nextByte == ETX_CHAR) { + // End of stream reached + return RETURN_OK; + } + } + else { + destStream[decodedIndex] = sourceStream[encodedIndex]; + } + ++encodedIndex; + ++decodedIndex; + } + return DECODING_ERROR; +} + diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index c78fe197f..47bb2a691 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -90,6 +90,14 @@ public: size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); + ReturnValue_t decodeStreamEscaped(size_t encodedIndex, size_t decodedIndex, + const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, + uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); + + ReturnValue_t decodeStreamNonEscaped(size_t encodedIndex, size_t decodedIndex, + const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, + uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); + private: bool escapeStxEtx; From 28f2db2c113bb2e34b641c9fbed8dd3568ca83c4 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Aug 2021 15:40:51 +0200 Subject: [PATCH 087/136] some fixes --- src/fsfw/globalfunctions/DleEncoder.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 0cc3ad2a5..81131910e 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -80,19 +80,10 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, } } -ReturnValue_t DleEncoder::encodeEscaped(const uint8_t *sourceStream, size_t sourceLen, - uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { -} - -ReturnValue_t DleEncoder::encodeNonEscaped(const uint8_t *sourceStream, size_t sourceLen, - uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { -} - ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { size_t encodedIndex = 0, decodedIndex = 0; - uint8_t nextByte; if(not escapeStxEtx) { if (*sourceStream != DLE_CHAR) { return DECODING_ERROR; From 654b23869f607c6c89b78dc3bebdab8a2b7be291 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Aug 2021 16:00:39 +0200 Subject: [PATCH 088/136] several imporovements --- src/fsfw/globalfunctions/DleEncoder.cpp | 24 ++++++++------ src/fsfw/globalfunctions/DleEncoder.h | 43 +++++++++++-------------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 81131910e..6ad5e5fa5 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -83,7 +83,7 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { - size_t encodedIndex = 0, decodedIndex = 0; + size_t encodedIndex = 0; if(not escapeStxEtx) { if (*sourceStream != DLE_CHAR) { return DECODING_ERROR; @@ -94,21 +94,22 @@ ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, return DECODING_ERROR; } - ++encodedIndex; - if(escapeStxEtx) { - return decodeStreamEscaped(encodedIndex, decodedIndex, sourceStream, sourceStreamLen, + return decodeStreamEscaped(sourceStream, sourceStreamLen, readLen, destStream, maxDestStreamlen, decodedLen); } else { - return decodeStreamNonEscaped(encodedIndex, decodedIndex, sourceStream, sourceStreamLen, + return decodeStreamNonEscaped(sourceStream, sourceStreamLen, readLen, destStream, maxDestStreamlen, decodedLen); } } -ReturnValue_t DleEncoder::decodeStreamEscaped(size_t encodedIndex, size_t decodedIndex, - const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, +ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, + size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { + // Skip start marker, was already checked + size_t encodedIndex = 1; + size_t decodedIndex = 0; uint8_t nextByte; while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen) && (sourceStream[encodedIndex] != ETX_CHAR) @@ -158,9 +159,12 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(size_t encodedIndex, size_t decode } } -ReturnValue_t DleEncoder::decodeStreamNonEscaped(size_t encodedIndex, size_t decodedIndex, - const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, +ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, + size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { + // Skip start marker, was already checked + size_t encodedIndex = 2; + size_t decodedIndex = 0; uint8_t nextByte; while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen)) { if (sourceStream[encodedIndex] == DLE_CHAR) { @@ -177,6 +181,8 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(size_t encodedIndex, size_t dec } else if(nextByte == ETX_CHAR) { // End of stream reached + *readLen = encodedIndex + 2; + *decodedLen = decodedIndex; return RETURN_OK; } } diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index 47bb2a691..cc7dbc22c 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -12,24 +12,29 @@ * https://en.wikipedia.org/wiki/C0_and_C1_control_codes * * This encoder can be used to achieve a basic transport layer when using - * char based transmission systems. - * The passed source stream is converted into a encoded stream by adding - * a STX marker at the start of the stream and an ETX marker at the end of - * the stream. Any STX, ETX, DLE and CR occurrences in the source stream can be - * escaped by a DLE character. The encoder also replaces escaped control chars - * by another char, so STX, ETX and CR should not appear anywhere in the actual - * encoded data stream. + * char based transmission systems. There are two implemented variants: * - * When using a strictly char based reception of packets encoded with DLE, + * 1. Escaped variant + * + * The encoded stream starts with a STX marker and ends with an ETX marker. + * STX and ETX occurrences in the stream are escaped and internally encoded as well so the + * receiver side can simply check for STX and ETX markers as frame delimiters. When using a + * strictly char based reception of packets encoded with DLE, * STX can be used to notify a reader that actual data will start to arrive * while ETX can be used to notify the reader that the data has ended. + * + * 2. Non-escaped variant + * + * The encoded stream starts with DLE STX and ends with DLE ETX. All DLE occurrences in the stream + * are escaped with DLE. If the received detects a DLE char, it needs to read the next char + * and to determine whether a start (STX) or end (ETX) of a frame has been detected. */ class DleEncoder: public HasReturnvaluesIF { public: /** * Create an encoder instance with the given configuration. - * @param escapeStxEtx - * @param escapeCr + * @param escapeStxEtx Determines whether the algorithm works in escaped or non-escaped mode + * @param escapeCr In escaped mode, escape all CR occurrences as well */ DleEncoder(bool escapeStxEtx = true, bool escapeCr = false); virtual ~DleEncoder(); @@ -62,10 +67,6 @@ public: * @param encodedLen * @param addStxEtx Adding STX start marker and ETX end marker can be omitted, * if they are added manually - * @param escapeStxEtx STX and ETX occurrences in the given source stream will be escaped and - * encoded by adding 0x40 - * @param escapeCr CR characters in the given source stream will be escaped and encoded - * by adding 0x40 * @return */ ReturnValue_t encode(const uint8_t *sourceStream, size_t sourceLen, @@ -80,23 +81,17 @@ public: * @param destStream * @param maxDestStreamlen * @param decodedLen - * @param escapeStxEtx STX and ETX characters were escaped in the encoded stream and need to - * be decoded back as well - * @param escapeCr CR characters were escaped in the encoded stream and need to - * be decoded back as well by subtracting 0x40 * @return */ ReturnValue_t decode(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); - ReturnValue_t decodeStreamEscaped(size_t encodedIndex, size_t decodedIndex, - const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, - uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); + ReturnValue_t decodeStreamEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, + size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); - ReturnValue_t decodeStreamNonEscaped(size_t encodedIndex, size_t decodedIndex, - const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, - uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); + ReturnValue_t decodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, + size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); private: From 8780c5ddcdb055052ab27ddae55c498d59455d24 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Aug 2021 16:02:54 +0200 Subject: [PATCH 089/136] comment typos --- src/fsfw/globalfunctions/DleEncoder.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index cc7dbc22c..cd2164f8b 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -26,8 +26,8 @@ * 2. Non-escaped variant * * The encoded stream starts with DLE STX and ends with DLE ETX. All DLE occurrences in the stream - * are escaped with DLE. If the received detects a DLE char, it needs to read the next char - * and to determine whether a start (STX) or end (ETX) of a frame has been detected. + * are escaped with DLE. If the receiver detects a DLE char, it needs to read the next char + * to determine whether a start (STX) or end (ETX) of a frame has been detected. */ class DleEncoder: public HasReturnvaluesIF { public: From 845c00044ecbb36683c7dbc1c662d24e49bad380 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 18 Aug 2021 11:27:39 +0200 Subject: [PATCH 090/136] printout fixes for UnixFileGuard --- hal/src/fsfw_hal/linux/UnixFileGuard.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hal/src/fsfw_hal/linux/UnixFileGuard.cpp b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp index f79010189..ad8756238 100644 --- a/hal/src/fsfw_hal/linux/UnixFileGuard.cpp +++ b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp @@ -1,5 +1,10 @@ +#include "fsfw/FSFW.h" +#include "fsfw/serviceinterface.h" #include "fsfw_hal/linux/UnixFileGuard.h" +#include +#include + UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, std::string diagnosticPrefix): fileDescriptor(fileDescriptor) { @@ -10,12 +15,11 @@ UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, if (*fileDescriptor < 0) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::warning << diagnosticPrefix <<"Opening device failed with error code " << errno << - "." << std::endl; - sif::warning << "Error description: " << strerror(errno) << std::endl; + sif::warning << diagnosticPrefix << "Opening device failed with error code " << + errno << ": " << strerror(errno) << std::endl; #else - sif::printError("%sOpening device failed with error code %d.\n", diagnosticPrefix); - sif::printWarning("Error description: %s\n", strerror(errno)); + sif::printWarning("%sOpening device failed with error code %d: %s\n", + diagnosticPrefix, errno, strerror(errno)); #endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ #endif /* FSFW_VERBOSE_LEVEL >= 1 */ openStatus = OPEN_FILE_FAILED; From 3cec9f5f8054e2003c66affc39f45ed73cba2398 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 18 Aug 2021 13:18:42 +0200 Subject: [PATCH 091/136] Made two functions private, small tweak --- src/fsfw/globalfunctions/DleEncoder.cpp | 19 +++++++------------ src/fsfw/globalfunctions/DleEncoder.h | 4 ++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 6ad5e5fa5..e30eee22b 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -122,18 +122,13 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ destStream[decodedIndex] = nextByte; } else { - if(this->escapeStxEtx) { - /* The next byte is a STX, DTX or 0x0D character which - * was escaped by a DLE character. The actual byte was - * also encoded by adding + 0x40 to prevent having control chars, - * in the stream at all, so we convert it back. */ - if ((nextByte == STX_CHAR + 0x40 or nextByte == ETX_CHAR + 0x40) or - (this->escapeCr and nextByte == CARRIAGE_RETURN + 0x40)) { - destStream[decodedIndex] = nextByte - 0x40; - } - else { - return DECODING_ERROR; - } + /* The next byte is a STX, DTX or 0x0D character which + * was escaped by a DLE character. The actual byte was + * also encoded by adding + 0x40 to prevent having control chars, + * in the stream at all, so we convert it back. */ + if ((nextByte == STX_CHAR + 0x40 or nextByte == ETX_CHAR + 0x40) or + (this->escapeCr and nextByte == CARRIAGE_RETURN + 0x40)) { + destStream[decodedIndex] = nextByte - 0x40; } else { return DECODING_ERROR; diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index cd2164f8b..292e00f8c 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -87,14 +87,14 @@ public: size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); +private: + ReturnValue_t decodeStreamEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); ReturnValue_t decodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); -private: - bool escapeStxEtx; bool escapeCr; }; From 5dcf0e44b65f5d986b71881c731207f8bbc47029 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 18 Aug 2021 13:33:31 +0200 Subject: [PATCH 092/136] encoder functions split up --- src/fsfw/globalfunctions/DleEncoder.cpp | 179 ++++++++++++++++-------- src/fsfw/globalfunctions/DleEncoder.h | 8 ++ 2 files changed, 125 insertions(+), 62 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index e30eee22b..a043cbf7f 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -8,76 +8,131 @@ DleEncoder::~DleEncoder() {} ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, size_t sourceLen, uint8_t* destStream, size_t maxDestLen, size_t* encodedLen, bool addStxEtx) { - if (maxDestLen < 2) { - return STREAM_TOO_SHORT; - } - size_t encodedIndex = 0, sourceIndex = 0; - uint8_t nextByte; + size_t minAllowedLen = 0; + if(escapeStxEtx) { + minAllowedLen = 2; + + } + else { + minAllowedLen = 1; + + } + if(maxDestLen < minAllowedLen) { + return STREAM_TOO_SHORT; + } if (addStxEtx) { if(not escapeStxEtx) { destStream[0] = DLE_CHAR; - ++encodedIndex; } destStream[0] = STX_CHAR; - ++encodedIndex; } - while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { - nextByte = sourceStream[sourceIndex]; - // STX, ETX and CR characters in the stream need to be escaped with DLE - if ((nextByte == STX_CHAR or nextByte == ETX_CHAR) or - (this->escapeCr and nextByte == CARRIAGE_RETURN)) { - if(this->escapeStxEtx) { - if (encodedIndex + 1 >= maxDestLen) { - return STREAM_TOO_SHORT; - } - else { - destStream[encodedIndex] = DLE_CHAR; - ++encodedIndex; - /* Escaped byte will be actual byte + 0x40. This prevents - * STX, ETX, and carriage return characters from appearing - * in the encoded data stream at all, so when polling an - * encoded stream, the transmission can be stopped at ETX. - * 0x40 was chosen at random with special requirements: - * - Prevent going from one control char to another - * - Prevent overflow for common characters */ - destStream[encodedIndex] = nextByte + 0x40; - } - } - } - // DLE characters are simply escaped with DLE. - else if (nextByte == DLE_CHAR) { - if (encodedIndex + 1 >= maxDestLen) { - return STREAM_TOO_SHORT; - } - else { - destStream[encodedIndex] = DLE_CHAR; - ++encodedIndex; - destStream[encodedIndex] = DLE_CHAR; - } - } - else { - destStream[encodedIndex] = nextByte; - } - ++encodedIndex; - ++sourceIndex; - } + if(escapeStxEtx) { + return encodeStreamEscaped(sourceStream, sourceLen, + destStream, maxDestLen, encodedLen, addStxEtx); + } + else { + return encodeStreamNonEscaped(sourceStream, sourceLen, + destStream, maxDestLen, encodedLen, addStxEtx); + } - if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { - if (addStxEtx) { - if(not escapeStxEtx) { - destStream[encodedIndex] = DLE_CHAR; - ++encodedIndex; - } - destStream[encodedIndex] = ETX_CHAR; - ++encodedIndex; - } - *encodedLen = encodedIndex; - return RETURN_OK; - } - else { - return STREAM_TOO_SHORT; - } +} + +ReturnValue_t DleEncoder::encodeStreamEscaped(const uint8_t *sourceStream, size_t sourceLen, + uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, + bool addStxEtx) { + size_t encodedIndex = 2; + size_t sourceIndex = 0; + uint8_t nextByte = 0; + while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { + nextByte = sourceStream[sourceIndex]; + // STX, ETX and CR characters in the stream need to be escaped with DLE + if ((nextByte == STX_CHAR or nextByte == ETX_CHAR) or + (this->escapeCr and nextByte == CARRIAGE_RETURN)) { + if (encodedIndex + 1 >= maxDestLen) { + return STREAM_TOO_SHORT; + } + else { + destStream[encodedIndex] = DLE_CHAR; + ++encodedIndex; + /* Escaped byte will be actual byte + 0x40. This prevents + * STX, ETX, and carriage return characters from appearing + * in the encoded data stream at all, so when polling an + * encoded stream, the transmission can be stopped at ETX. + * 0x40 was chosen at random with special requirements: + * - Prevent going from one control char to another + * - Prevent overflow for common characters */ + destStream[encodedIndex] = nextByte + 0x40; + } + } + // DLE characters are simply escaped with DLE. + else if (nextByte == DLE_CHAR) { + if (encodedIndex + 1 >= maxDestLen) { + return STREAM_TOO_SHORT; + } + else { + destStream[encodedIndex] = DLE_CHAR; + ++encodedIndex; + destStream[encodedIndex] = DLE_CHAR; + } + } + else { + destStream[encodedIndex] = nextByte; + } + ++encodedIndex; + ++sourceIndex; + } + + if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { + if (addStxEtx) { + destStream[encodedIndex] = ETX_CHAR; + ++encodedIndex; + } + *encodedLen = encodedIndex; + return RETURN_OK; + } + else { + return STREAM_TOO_SHORT; + } +} + +ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceLen, + uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, + bool addStxEtx) { + size_t encodedIndex = 1; + size_t sourceIndex = 0; + uint8_t nextByte = 0; + while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { + nextByte = sourceStream[sourceIndex]; + // DLE characters are simply escaped with DLE. + if (nextByte == DLE_CHAR) { + if (encodedIndex + 1 >= maxDestLen) { + return STREAM_TOO_SHORT; + } + else { + destStream[encodedIndex] = DLE_CHAR; + ++encodedIndex; + destStream[encodedIndex] = DLE_CHAR; + } + } + else { + destStream[encodedIndex] = nextByte; + } + ++encodedIndex; + ++sourceIndex; + } + + if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { + if (addStxEtx) { + destStream[encodedIndex] = ETX_CHAR; + ++encodedIndex; + } + *encodedLen = encodedIndex; + return RETURN_OK; + } + else { + return STREAM_TOO_SHORT; + } } ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index 292e00f8c..dc178a0e9 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -89,6 +89,14 @@ public: private: + ReturnValue_t encodeStreamEscaped(const uint8_t *sourceStream, size_t sourceLen, + uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, + bool addStxEtx = true); + + ReturnValue_t encodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceLen, + uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, + bool addStxEtx = true); + ReturnValue_t decodeStreamEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen); From b6aebb3061a8417ffe09111eced07b8f17dddd3d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 19 Aug 2021 17:08:35 +0200 Subject: [PATCH 093/136] format adapted --- hal/src/fsfw_hal/linux/UnixFileGuard.cpp | 4 ++-- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hal/src/fsfw_hal/linux/UnixFileGuard.cpp b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp index ad8756238..5019343e8 100644 --- a/hal/src/fsfw_hal/linux/UnixFileGuard.cpp +++ b/hal/src/fsfw_hal/linux/UnixFileGuard.cpp @@ -15,10 +15,10 @@ UnixFileGuard::UnixFileGuard(std::string device, int* fileDescriptor, int flags, if (*fileDescriptor < 0) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::warning << diagnosticPrefix << "Opening device failed with error code " << + sif::warning << diagnosticPrefix << ": Opening device failed with error code " << errno << ": " << strerror(errno) << std::endl; #else - sif::printWarning("%sOpening device failed with error code %d: %s\n", + sif::printWarning("%s: Opening device failed with error code %d: %s\n", diagnosticPrefix, errno, strerror(errno)); #endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ #endif /* FSFW_VERBOSE_LEVEL >= 1 */ diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index fafe67bee..6697bc920 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -184,7 +184,7 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie *spiCookie, const /* Prepare transfer */ int fileDescriptor = 0; std::string device = spiCookie->getSpiDevice(); - UnixFileGuard fileHelper(device, &fileDescriptor, O_RDWR, "SpiComIF::sendMessage: "); + UnixFileGuard fileHelper(device, &fileDescriptor, O_RDWR, "SpiComIF::sendMessage"); if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { return OPENING_FILE_FAILED; } @@ -273,7 +273,7 @@ ReturnValue_t SpiComIF::performHalfDuplexReception(SpiCookie* spiCookie) { std::string device = spiCookie->getSpiDevice(); int fileDescriptor = 0; UnixFileGuard fileHelper(device, &fileDescriptor, O_RDWR, - "SpiComIF::requestReceiveMessage: "); + "SpiComIF::requestReceiveMessage"); if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { return OPENING_FILE_FAILED; } From 98e3ed897c9f81837cffa24da41d4cbb50cea72d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 19 Aug 2021 17:17:19 +0200 Subject: [PATCH 094/136] small tweak --- 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 6697bc920..48bf74491 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -90,7 +90,7 @@ ReturnValue_t SpiComIF::initializeInterface(CookieIF *cookie) { int fileDescriptor = 0; UnixFileGuard fileHelper(spiCookie->getSpiDevice(), &fileDescriptor, O_RDWR, - "SpiComIF::initializeInterface: "); + "SpiComIF::initializeInterface"); if(fileHelper.getOpenResult() != HasReturnvaluesIF::RETURN_OK) { return fileHelper.getOpenResult(); } From a6d744c9c8df4e2cd69c170a4bd6806f54b835f9 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 6 Sep 2021 12:05:30 +0200 Subject: [PATCH 095/136] Possible bugfix in DHB The delayCycles variables needs to be initialized differently for periodic replies. It is initialized to the maxDelayCycles value now --- devicehandlers/DeviceHandlerBase.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/devicehandlers/DeviceHandlerBase.cpp b/devicehandlers/DeviceHandlerBase.cpp index 5665b101b..733701b27 100644 --- a/devicehandlers/DeviceHandlerBase.cpp +++ b/devicehandlers/DeviceHandlerBase.cpp @@ -430,7 +430,12 @@ ReturnValue_t DeviceHandlerBase::insertInReplyMap(DeviceCommandId_t replyId, DeviceReplyInfo info; info.maxDelayCycles = maxDelayCycles; info.periodic = periodic; - info.delayCycles = 0; + if(info.periodic) { + info.delayCycles = info.maxDelayCycles; + } + else { + info.delayCycles = 0; + } info.replyLen = replyLen; info.dataSet = dataSet; info.command = deviceCommandMap.end(); From c42eb59d2e6947c51dcc6e952e7e626e5a1531ea Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 8 Sep 2021 16:10:18 +0200 Subject: [PATCH 096/136] UART bugfixes and improvements --- hal/src/fsfw_hal/linux/uart/UartComIF.cpp | 42 ++++++++++++++++------ hal/src/fsfw_hal/linux/uart/UartCookie.cpp | 4 +-- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp index f52b6b1e4..f5754c6ea 100644 --- a/hal/src/fsfw_hal/linux/uart/UartComIF.cpp +++ b/hal/src/fsfw_hal/linux/uart/UartComIF.cpp @@ -1,6 +1,7 @@ -#include "fsfw_hal/linux/uart/UartComIF.h" +#include "UartComIF.h" #include "OBSWConfig.h" +#include "fsfw_hal/linux/utility.h" #include "fsfw/serviceinterface/ServiceInterface.h" #include @@ -60,7 +61,13 @@ int UartComIF::configureUartPort(UartCookie* uartCookie) { struct termios options = {}; std::string deviceFile = uartCookie->getDeviceFile(); - int fd = open(deviceFile.c_str(), O_RDWR); + int flags = O_RDWR; + if(uartCookie->getUartMode() == UartModes::CANONICAL) { + // In non-canonical mode, don't specify O_NONBLOCK because these properties will be + // controlled by the VTIME and VMIN parameters and O_NONBLOCK would override this + flags |= O_NONBLOCK; + } + int fd = open(deviceFile.c_str(), flags); if (fd < 0) { sif::warning << "UartComIF::configureUartPort: Failed to open uart " << deviceFile << @@ -259,23 +266,22 @@ void UartComIF::configureBaudrate(struct termios* options, UartCookie* uartCooki ReturnValue_t UartComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, size_t sendLen) { - int fd = 0; std::string deviceFile; UartDeviceMapIter uartDeviceMapIter; - if(sendData == nullptr) { - sif::debug << "UartComIF::sendMessage: Send Data is nullptr" << std::endl; - return RETURN_FAILED; - } - if(sendLen == 0) { return RETURN_OK; } + if(sendData == nullptr) { + sif::warning << "UartComIF::sendMessage: Send data is nullptr" << std::endl; + return RETURN_FAILED; + } + UartCookie* uartCookie = dynamic_cast(cookie); if(uartCookie == nullptr) { - sif::debug << "UartComIF::sendMessasge: Invalid UART Cookie!" << std::endl; + sif::warning << "UartComIF::sendMessasge: Invalid UART Cookie!" << std::endl; return NULLPOINTER; } @@ -347,12 +353,13 @@ ReturnValue_t UartComIF::handleCanonicalRead(UartCookie& uartCookie, UartDeviceM size_t maxReplySize = uartCookie.getMaxReplyLen(); int fd = iter->second.fileDescriptor; auto bufferPtr = iter->second.replyBuffer.data(); + iter->second.replyLen = 0; do { size_t allowedReadSize = 0; if(currentBytesRead >= maxReplySize) { // Overflow risk. Emit warning, trigger event and break. If this happens, // the reception buffer is not large enough or data is not polled often enough. -#if OBSW_VERBOSE_LEVEL >= 1 +#if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::warning << "UartComIF::requestReceiveMessage: Next read would cause overflow!" << std::endl; @@ -370,7 +377,20 @@ ReturnValue_t UartComIF::handleCanonicalRead(UartCookie& uartCookie, UartDeviceM bytesRead = read(fd, bufferPtr, allowedReadSize); if (bytesRead < 0) { - return RETURN_FAILED; + // EAGAIN: No data available in non-blocking mode + if(errno != EAGAIN) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "UartComIF::handleCanonicalRead: read failed with code" << + errno << ": " << strerror(errno) << std::endl; +#else + sif::printWarning("UartComIF::handleCanonicalRead: read failed with code %d: %s\n", + errno, strerror(errno)); +#endif +#endif + return RETURN_FAILED; + } + } else if(bytesRead > 0) { iter->second.replyLen += bytesRead; diff --git a/hal/src/fsfw_hal/linux/uart/UartCookie.cpp b/hal/src/fsfw_hal/linux/uart/UartCookie.cpp index 339c74511..1c52e9cd1 100644 --- a/hal/src/fsfw_hal/linux/uart/UartCookie.cpp +++ b/hal/src/fsfw_hal/linux/uart/UartCookie.cpp @@ -4,8 +4,8 @@ UartCookie::UartCookie(object_id_t handlerId, std::string deviceFile, UartModes uartMode, uint32_t baudrate, size_t maxReplyLen): - handlerId(handlerId), deviceFile(deviceFile), uartMode(uartMode), baudrate(baudrate), - maxReplyLen(maxReplyLen) { + handlerId(handlerId), deviceFile(deviceFile), uartMode(uartMode), + baudrate(baudrate), maxReplyLen(maxReplyLen) { } UartCookie::~UartCookie() {} From dfc44fce071a29ce1de05eaecd76e795b09ea8fc Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 8 Sep 2021 23:33:10 +0200 Subject: [PATCH 097/136] added DLE encoder test files --- .../unit/globalfunctions/CMakeLists.txt | 1 + .../unit/globalfunctions/testDleEncoder.cpp | 69 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp diff --git a/tests/src/fsfw_tests/unit/globalfunctions/CMakeLists.txt b/tests/src/fsfw_tests/unit/globalfunctions/CMakeLists.txt index 8e57e01be..617c7f5a0 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/CMakeLists.txt +++ b/tests/src/fsfw_tests/unit/globalfunctions/CMakeLists.txt @@ -1,2 +1,3 @@ target_sources(${TARGET_NAME} PRIVATE + testDleEncoder.cpp ) diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp new file mode 100644 index 000000000..01ac35688 --- /dev/null +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -0,0 +1,69 @@ +#include "fsfw/globalfunctions/DleEncoder.h" +#include "fsfw_tests/unit/CatchDefinitions.h" +#include "catch2/catch_test_macros.hpp" + +#include + +const std::array TEST_ARRAY_0 = { 0 }; +const std::array TEST_ARRAY_1 = { 0, DleEncoder::DLE_CHAR, 5}; +const std::array TEST_ARRAY_2 = { 0, DleEncoder::STX_CHAR, 5}; +const std::array TEST_ARRAY_3 = { 0, DleEncoder::CARRIAGE_RETURN, DleEncoder::ETX_CHAR}; + +TEST_CASE("DleEncoder" , "[DleEncoder]") { + + DleEncoder dleEncoder; + std::array buffer; + SECTION("Encoding") { + size_t encodedLen = 0; + ReturnValue_t result = dleEncoder.encode(TEST_ARRAY_0.data(), TEST_ARRAY_0.size(), + buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == retval::CATCH_OK); + std::vector expected = {DleEncoder::STX_CHAR, 0, 0, 0, 0, 0, + DleEncoder::ETX_CHAR}; + for(size_t idx = 0; idx < expected.size(); idx++) { + REQUIRE(buffer[idx] == expected[idx]); + } + REQUIRE(encodedLen == 7); + + result = dleEncoder.encode(TEST_ARRAY_1.data(), TEST_ARRAY_1.size(), + buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == retval::CATCH_OK); + expected = std::vector{DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, + DleEncoder::DLE_CHAR, 5, DleEncoder::ETX_CHAR}; + for(size_t idx = 0; idx < expected.size(); idx++) { + REQUIRE(buffer[idx] == expected[idx]); + } + REQUIRE(encodedLen == expected.size()); + + result = dleEncoder.encode(TEST_ARRAY_2.data(), TEST_ARRAY_2.size(), + buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == retval::CATCH_OK); + expected = std::vector{DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, + DleEncoder::STX_CHAR + 0x40, 5, DleEncoder::ETX_CHAR}; + for(size_t idx = 0; idx < expected.size(); idx++) { + REQUIRE(buffer[idx] == expected[idx]); + } + REQUIRE(encodedLen == expected.size()); + + result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), + buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == retval::CATCH_OK); + expected = std::vector{DleEncoder::STX_CHAR, 0, DleEncoder::CARRIAGE_RETURN, + DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::ETX_CHAR}; + for(size_t idx = 0; idx < expected.size(); idx++) { + REQUIRE(buffer[idx] == expected[idx]); + } + REQUIRE(encodedLen == expected.size()); + + result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), + buffer.data(), 0, &encodedLen); + REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); + result = dleEncoder.encode(TEST_ARRAY_1.data(), TEST_ARRAY_1.size(), + buffer.data(), 4, &encodedLen); + REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); + } + + SECTION("Decoding") { + + } +} From b5063117f62393be273dbbcdf10532055a848ec3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 9 Sep 2021 00:02:17 +0200 Subject: [PATCH 098/136] added check to avoid seg fault --- src/fsfw/globalfunctions/DleEncoder.cpp | 20 +++++++++++--------- tests/src/fsfw_tests/unit/CatchFactory.h | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index a043cbf7f..5ab9fae65 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -10,12 +10,10 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, size_t* encodedLen, bool addStxEtx) { size_t minAllowedLen = 0; if(escapeStxEtx) { - minAllowedLen = 2; - + minAllowedLen = 1; } else { - minAllowedLen = 1; - + minAllowedLen = 2; } if(maxDestLen < minAllowedLen) { return STREAM_TOO_SHORT; @@ -41,7 +39,7 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, ReturnValue_t DleEncoder::encodeStreamEscaped(const uint8_t *sourceStream, size_t sourceLen, uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { - size_t encodedIndex = 2; + size_t encodedIndex = 1; size_t sourceIndex = 0; uint8_t nextByte = 0; while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { @@ -99,7 +97,7 @@ ReturnValue_t DleEncoder::encodeStreamEscaped(const uint8_t *sourceStream, size_ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceLen, uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { - size_t encodedIndex = 1; + size_t encodedIndex = 2; size_t sourceIndex = 0; uint8_t nextByte = 0; while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { @@ -166,10 +164,14 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ size_t encodedIndex = 1; size_t decodedIndex = 0; uint8_t nextByte; - while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen) - && (sourceStream[encodedIndex] != ETX_CHAR) - && (sourceStream[encodedIndex] != STX_CHAR)) { + while ((encodedIndex < sourceStreamLen) + and (decodedIndex < maxDestStreamlen) + and (sourceStream[encodedIndex] != ETX_CHAR) + and (sourceStream[encodedIndex] != STX_CHAR)) { if (sourceStream[encodedIndex] == DLE_CHAR) { + if(encodedIndex + 1 >= sourceStreamLen) { + return DECODING_ERROR; + } nextByte = sourceStream[encodedIndex + 1]; // The next byte is a DLE character that was escaped by another // DLE character, so we can write it to the destination stream. diff --git a/tests/src/fsfw_tests/unit/CatchFactory.h b/tests/src/fsfw_tests/unit/CatchFactory.h index ae0629e5d..38ec46bd0 100644 --- a/tests/src/fsfw_tests/unit/CatchFactory.h +++ b/tests/src/fsfw_tests/unit/CatchFactory.h @@ -1,7 +1,7 @@ #ifndef FSFW_CATCHFACTORY_H_ #define FSFW_CATCHFACTORY_H_ -#include "TestConfig.h" +#include "TestsConfig.h" #include "fsfw/objectmanager/SystemObjectIF.h" #include "fsfw/objectmanager/ObjectManager.h" From 35b53e9a1707dd4502f1d58ac912564be23557aa Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 9 Sep 2021 01:06:54 +0200 Subject: [PATCH 099/136] continuing tests --- src/fsfw/globalfunctions/DleEncoder.cpp | 8 +- src/fsfw/globalfunctions/DleEncoder.h | 3 + .../unit/globalfunctions/testDleEncoder.cpp | 120 +++++++++++------- 3 files changed, 84 insertions(+), 47 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 5ab9fae65..02e4aba4a 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -22,7 +22,7 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, if(not escapeStxEtx) { destStream[0] = DLE_CHAR; } - destStream[0] = STX_CHAR; + destStream[1] = STX_CHAR; } if(escapeStxEtx) { @@ -220,6 +220,9 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, uint8_t nextByte; while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen)) { if (sourceStream[encodedIndex] == DLE_CHAR) { + if(encodedIndex + 1 >= sourceStreamLen) { + return DECODING_ERROR; + } nextByte = sourceStream[encodedIndex + 1]; if(nextByte == STX_CHAR) { *readLen = ++encodedIndex; @@ -247,3 +250,6 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, return DECODING_ERROR; } +void DleEncoder::setEscapeMode(bool escapeStxEtx) { + this->escapeStxEtx = escapeStxEtx; +} diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index dc178a0e9..e4871bf0b 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -37,6 +37,9 @@ public: * @param escapeCr In escaped mode, escape all CR occurrences as well */ DleEncoder(bool escapeStxEtx = true, bool escapeCr = false); + + void setEscapeMode(bool escapeStxEtx); + virtual ~DleEncoder(); static constexpr uint8_t INTERFACE_ID = CLASS_ID::DLE_ENCODER; diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index 01ac35688..91eb9052c 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -4,58 +4,82 @@ #include -const std::array TEST_ARRAY_0 = { 0 }; -const std::array TEST_ARRAY_1 = { 0, DleEncoder::DLE_CHAR, 5}; -const std::array TEST_ARRAY_2 = { 0, DleEncoder::STX_CHAR, 5}; -const std::array TEST_ARRAY_3 = { 0, DleEncoder::CARRIAGE_RETURN, DleEncoder::ETX_CHAR}; +const std::vector TEST_ARRAY_0 = { 0, 0, 0, 0, 0 }; +const std::vector TEST_ARRAY_1 = { 0, DleEncoder::DLE_CHAR, 5}; +const std::vector TEST_ARRAY_2 = { 0, DleEncoder::STX_CHAR, 5}; +const std::vector TEST_ARRAY_3 = { 0, DleEncoder::CARRIAGE_RETURN, DleEncoder::ETX_CHAR}; +const std::vector TEST_ARRAY_4 = { DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR, + DleEncoder::STX_CHAR }; + +const std::vector TEST_ARRAY_0_ENCODED_ESCAPED = { + DleEncoder::STX_CHAR, 0, 0, 0, 0, 0, DleEncoder::ETX_CHAR +}; +const std::vector TEST_ARRAY_0_ENCODED_NON_ESCAPED = { + DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR, 0, 0, 0, 0, 0, + DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR +}; + +const std::vector TEST_ARRAY_1_ENCODED_ESCAPED = { + DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, 5, DleEncoder::ETX_CHAR +}; +const std::vector TEST_ARRAY_2_ENCODED_ESCAPED = { + DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR + 0x40, + 5, DleEncoder::ETX_CHAR +}; +const std::vector TEST_ARRAY_3_ENCODED_ESCAPED = { + DleEncoder::STX_CHAR, 0, DleEncoder::CARRIAGE_RETURN, + DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::ETX_CHAR +}; +const std::vector TEST_ARRAY_4_ENCODED_ESCAPED = { + DleEncoder::STX_CHAR, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, + DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::DLE_CHAR, + DleEncoder::STX_CHAR + 0x40, DleEncoder::ETX_CHAR +}; + TEST_CASE("DleEncoder" , "[DleEncoder]") { - DleEncoder dleEncoder; std::array buffer; + + size_t encodedLen = 0; + size_t readLen = 0; + size_t decodedLen = 0; + + auto testLambdaEncode = [&](DleEncoder& encoder, const std::vector& vecToEncode, + const std::vector& expectedVec) { + ReturnValue_t result = encoder.encode(vecToEncode.data(), vecToEncode.size(), + buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == retval::CATCH_OK); + for(size_t idx = 0; idx < expectedVec.size(); idx++) { + REQUIRE(buffer[idx] == expectedVec[idx]); + } + REQUIRE(encodedLen == expectedVec.size()); + }; + + auto testLambdaDecode = [&](DleEncoder& encoder, const std::vector& testVecEncoded, + const std::vector& expectedVec) { + ReturnValue_t result = encoder.decode(testVecEncoded.data(), + testVecEncoded.size(), + &readLen, buffer.data(), buffer.size(), &decodedLen); + REQUIRE(result == retval::CATCH_OK); + REQUIRE(readLen == testVecEncoded.size()); + REQUIRE(decodedLen == expectedVec.size()); + for(size_t idx = 0; idx < decodedLen; idx++) { + REQUIRE(buffer[idx] == expectedVec[idx]); + } + }; + SECTION("Encoding") { - size_t encodedLen = 0; - ReturnValue_t result = dleEncoder.encode(TEST_ARRAY_0.data(), TEST_ARRAY_0.size(), - buffer.data(), buffer.size(), &encodedLen); - REQUIRE(result == retval::CATCH_OK); - std::vector expected = {DleEncoder::STX_CHAR, 0, 0, 0, 0, 0, - DleEncoder::ETX_CHAR}; - for(size_t idx = 0; idx < expected.size(); idx++) { - REQUIRE(buffer[idx] == expected[idx]); - } - REQUIRE(encodedLen == 7); + testLambdaEncode(dleEncoder, TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_1, TEST_ARRAY_1_ENCODED_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_ESCAPED); - result = dleEncoder.encode(TEST_ARRAY_1.data(), TEST_ARRAY_1.size(), - buffer.data(), buffer.size(), &encodedLen); - REQUIRE(result == retval::CATCH_OK); - expected = std::vector{DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, - DleEncoder::DLE_CHAR, 5, DleEncoder::ETX_CHAR}; - for(size_t idx = 0; idx < expected.size(); idx++) { - REQUIRE(buffer[idx] == expected[idx]); - } - REQUIRE(encodedLen == expected.size()); + dleEncoder.setEscapeMode(false); + testLambdaEncode(dleEncoder, TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_NON_ESCAPED); - result = dleEncoder.encode(TEST_ARRAY_2.data(), TEST_ARRAY_2.size(), - buffer.data(), buffer.size(), &encodedLen); - REQUIRE(result == retval::CATCH_OK); - expected = std::vector{DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, - DleEncoder::STX_CHAR + 0x40, 5, DleEncoder::ETX_CHAR}; - for(size_t idx = 0; idx < expected.size(); idx++) { - REQUIRE(buffer[idx] == expected[idx]); - } - REQUIRE(encodedLen == expected.size()); - - result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), - buffer.data(), buffer.size(), &encodedLen); - REQUIRE(result == retval::CATCH_OK); - expected = std::vector{DleEncoder::STX_CHAR, 0, DleEncoder::CARRIAGE_RETURN, - DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::ETX_CHAR}; - for(size_t idx = 0; idx < expected.size(); idx++) { - REQUIRE(buffer[idx] == expected[idx]); - } - REQUIRE(encodedLen == expected.size()); - - result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), + ReturnValue_t result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), buffer.data(), 0, &encodedLen); REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); result = dleEncoder.encode(TEST_ARRAY_1.data(), TEST_ARRAY_1.size(), @@ -64,6 +88,10 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { } SECTION("Decoding") { - + testLambdaDecode(dleEncoder, TEST_ARRAY_0_ENCODED_ESCAPED, TEST_ARRAY_0); + testLambdaDecode(dleEncoder, TEST_ARRAY_1_ENCODED_ESCAPED, TEST_ARRAY_1); + testLambdaDecode(dleEncoder, TEST_ARRAY_2_ENCODED_ESCAPED, TEST_ARRAY_2); + testLambdaDecode(dleEncoder, TEST_ARRAY_3_ENCODED_ESCAPED, TEST_ARRAY_3); + testLambdaDecode(dleEncoder, TEST_ARRAY_4_ENCODED_ESCAPED, TEST_ARRAY_4); } } From d05eb23ea73499f37b9dc3d7c6b5389c43a53c2c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 9 Sep 2021 01:28:21 +0200 Subject: [PATCH 100/136] debugged and tested non-escaped encoder --- src/fsfw/globalfunctions/DleEncoder.cpp | 9 ++--- .../unit/globalfunctions/testDleEncoder.cpp | 34 ++++++++++++++++--- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 02e4aba4a..f17df0559 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -19,10 +19,11 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, return STREAM_TOO_SHORT; } if (addStxEtx) { + size_t currentIdx = 0; if(not escapeStxEtx) { - destStream[0] = DLE_CHAR; + destStream[currentIdx++] = DLE_CHAR; } - destStream[1] = STX_CHAR; + destStream[currentIdx] = STX_CHAR; } if(escapeStxEtx) { @@ -122,8 +123,8 @@ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, si if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { if (addStxEtx) { - destStream[encodedIndex] = ETX_CHAR; - ++encodedIndex; + destStream[encodedIndex++] = DLE_CHAR; + destStream[encodedIndex++] = ETX_CHAR; } *encodedLen = encodedIndex; return RETURN_OK; diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index 91eb9052c..bb8ee40f4 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -22,19 +22,39 @@ const std::vector TEST_ARRAY_0_ENCODED_NON_ESCAPED = { const std::vector TEST_ARRAY_1_ENCODED_ESCAPED = { DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, 5, DleEncoder::ETX_CHAR }; +const std::vector TEST_ARRAY_1_ENCODED_NON_ESCAPED = { + DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, + 5, DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR +}; + const std::vector TEST_ARRAY_2_ENCODED_ESCAPED = { DleEncoder::STX_CHAR, 0, DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR + 0x40, 5, DleEncoder::ETX_CHAR }; +const std::vector TEST_ARRAY_2_ENCODED_NON_ESCAPED = { + DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR, 0, + DleEncoder::STX_CHAR, 5, DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR +}; + const std::vector TEST_ARRAY_3_ENCODED_ESCAPED = { DleEncoder::STX_CHAR, 0, DleEncoder::CARRIAGE_RETURN, - DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::ETX_CHAR + DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::ETX_CHAR }; +const std::vector TEST_ARRAY_3_ENCODED_NON_ESCAPED = { + DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR, 0, + DleEncoder::CARRIAGE_RETURN, DleEncoder::ETX_CHAR, DleEncoder::DLE_CHAR, + DleEncoder::ETX_CHAR +}; + const std::vector TEST_ARRAY_4_ENCODED_ESCAPED = { DleEncoder::STX_CHAR, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR + 0x40, DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR + 0x40, DleEncoder::ETX_CHAR }; +const std::vector TEST_ARRAY_4_ENCODED_NON_ESCAPED = { + DleEncoder::DLE_CHAR, DleEncoder::STX_CHAR, DleEncoder::DLE_CHAR, DleEncoder::DLE_CHAR, + DleEncoder::ETX_CHAR, DleEncoder::STX_CHAR, DleEncoder::DLE_CHAR, DleEncoder::ETX_CHAR +}; TEST_CASE("DleEncoder" , "[DleEncoder]") { @@ -75,16 +95,20 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { testLambdaEncode(dleEncoder, TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_ESCAPED); testLambdaEncode(dleEncoder, TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_ESCAPED); testLambdaEncode(dleEncoder, TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_ESCAPED); - - dleEncoder.setEscapeMode(false); - testLambdaEncode(dleEncoder, TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_NON_ESCAPED); - ReturnValue_t result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), buffer.data(), 0, &encodedLen); REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); result = dleEncoder.encode(TEST_ARRAY_1.data(), TEST_ARRAY_1.size(), buffer.data(), 4, &encodedLen); REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); + + dleEncoder.setEscapeMode(false); + testLambdaEncode(dleEncoder, TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_NON_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_1, TEST_ARRAY_1_ENCODED_NON_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_NON_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_NON_ESCAPED); + testLambdaEncode(dleEncoder, TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_NON_ESCAPED); + dleEncoder.setEscapeMode(true); } SECTION("Decoding") { From 3d336c08f20cbae3703660787c1169bc8d31bcb8 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 9 Sep 2021 10:47:54 +0200 Subject: [PATCH 101/136] tests almost complete --- src/fsfw/globalfunctions/DleEncoder.cpp | 5 +- .../unit/globalfunctions/testDleEncoder.cpp | 69 ++++++++++++++++--- 2 files changed, 65 insertions(+), 9 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index f17df0559..e9e5e856a 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -15,7 +15,7 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, else { minAllowedLen = 2; } - if(maxDestLen < minAllowedLen) { + if(minAllowedLen > maxDestLen) { return STREAM_TOO_SHORT; } if (addStxEtx) { @@ -123,6 +123,9 @@ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, si if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { if (addStxEtx) { + if(encodedIndex + 2 >= maxDestLen) { + return STREAM_TOO_SHORT; + } destStream[encodedIndex++] = DLE_CHAR; destStream[encodedIndex++] = ETX_CHAR; } diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index bb8ee40f4..427013778 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -59,6 +59,7 @@ const std::vector TEST_ARRAY_4_ENCODED_NON_ESCAPED = { TEST_CASE("DleEncoder" , "[DleEncoder]") { DleEncoder dleEncoder; + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; std::array buffer; size_t encodedLen = 0; @@ -67,7 +68,7 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { auto testLambdaEncode = [&](DleEncoder& encoder, const std::vector& vecToEncode, const std::vector& expectedVec) { - ReturnValue_t result = encoder.encode(vecToEncode.data(), vecToEncode.size(), + result = encoder.encode(vecToEncode.data(), vecToEncode.size(), buffer.data(), buffer.size(), &encodedLen); REQUIRE(result == retval::CATCH_OK); for(size_t idx = 0; idx < expectedVec.size(); idx++) { @@ -78,7 +79,7 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { auto testLambdaDecode = [&](DleEncoder& encoder, const std::vector& testVecEncoded, const std::vector& expectedVec) { - ReturnValue_t result = encoder.decode(testVecEncoded.data(), + result = encoder.decode(testVecEncoded.data(), testVecEncoded.size(), &readLen, buffer.data(), buffer.size(), &decodedLen); REQUIRE(result == retval::CATCH_OK); @@ -95,12 +96,25 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { testLambdaEncode(dleEncoder, TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_ESCAPED); testLambdaEncode(dleEncoder, TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_ESCAPED); testLambdaEncode(dleEncoder, TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_ESCAPED); - ReturnValue_t result = dleEncoder.encode(TEST_ARRAY_3.data(), TEST_ARRAY_3.size(), - buffer.data(), 0, &encodedLen); - REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); - result = dleEncoder.encode(TEST_ARRAY_1.data(), TEST_ARRAY_1.size(), - buffer.data(), 4, &encodedLen); - REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); + + auto testFaultyEncoding = [&](const std::vector& vecToEncode, + const std::vector& expectedVec) { + + for(size_t faultyDestSize = 0; faultyDestSize < expectedVec.size(); faultyDestSize ++) { + if(faultyDestSize == 8) { + + } + result = dleEncoder.encode(vecToEncode.data(), vecToEncode.size(), + buffer.data(), faultyDestSize, &encodedLen); + REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); + } + }; + + testFaultyEncoding(TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_ESCAPED); + testFaultyEncoding(TEST_ARRAY_1, TEST_ARRAY_1_ENCODED_ESCAPED); + testFaultyEncoding(TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_ESCAPED); + testFaultyEncoding(TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_ESCAPED); + testFaultyEncoding(TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_ESCAPED); dleEncoder.setEscapeMode(false); testLambdaEncode(dleEncoder, TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_NON_ESCAPED); @@ -108,6 +122,12 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { testLambdaEncode(dleEncoder, TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_NON_ESCAPED); testLambdaEncode(dleEncoder, TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_NON_ESCAPED); testLambdaEncode(dleEncoder, TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_NON_ESCAPED); + + testFaultyEncoding(TEST_ARRAY_0, TEST_ARRAY_0_ENCODED_NON_ESCAPED); + testFaultyEncoding(TEST_ARRAY_1, TEST_ARRAY_1_ENCODED_NON_ESCAPED); + testFaultyEncoding(TEST_ARRAY_2, TEST_ARRAY_2_ENCODED_NON_ESCAPED); + testFaultyEncoding(TEST_ARRAY_3, TEST_ARRAY_3_ENCODED_NON_ESCAPED); + testFaultyEncoding(TEST_ARRAY_4, TEST_ARRAY_4_ENCODED_NON_ESCAPED); dleEncoder.setEscapeMode(true); } @@ -117,5 +137,38 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { testLambdaDecode(dleEncoder, TEST_ARRAY_2_ENCODED_ESCAPED, TEST_ARRAY_2); testLambdaDecode(dleEncoder, TEST_ARRAY_3_ENCODED_ESCAPED, TEST_ARRAY_3); testLambdaDecode(dleEncoder, TEST_ARRAY_4_ENCODED_ESCAPED, TEST_ARRAY_4); + + auto testFaultyDecoding = [&](const std::vector& vecToDecode, + const std::vector& expectedVec) { + for(size_t faultyDestSizes = 0; + faultyDestSizes < expectedVec.size(); + faultyDestSizes ++) { + result = dleEncoder.decode(vecToDecode.data(), + vecToDecode.size(), &readLen, + buffer.data(), faultyDestSizes, &decodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + } + }; + + testFaultyDecoding(TEST_ARRAY_0_ENCODED_ESCAPED, TEST_ARRAY_0); + testFaultyDecoding(TEST_ARRAY_1_ENCODED_ESCAPED, TEST_ARRAY_1); + testFaultyDecoding(TEST_ARRAY_2_ENCODED_ESCAPED, TEST_ARRAY_2); + testFaultyDecoding(TEST_ARRAY_3_ENCODED_ESCAPED, TEST_ARRAY_3); + testFaultyDecoding(TEST_ARRAY_4_ENCODED_ESCAPED, TEST_ARRAY_4); + + dleEncoder.setEscapeMode(false); + testLambdaDecode(dleEncoder, TEST_ARRAY_0_ENCODED_NON_ESCAPED, TEST_ARRAY_0); + testLambdaDecode(dleEncoder, TEST_ARRAY_1_ENCODED_NON_ESCAPED, TEST_ARRAY_1); + testLambdaDecode(dleEncoder, TEST_ARRAY_2_ENCODED_NON_ESCAPED, TEST_ARRAY_2); + testLambdaDecode(dleEncoder, TEST_ARRAY_3_ENCODED_NON_ESCAPED, TEST_ARRAY_3); + testLambdaDecode(dleEncoder, TEST_ARRAY_4_ENCODED_NON_ESCAPED, TEST_ARRAY_4); + + testFaultyDecoding(TEST_ARRAY_0_ENCODED_NON_ESCAPED, TEST_ARRAY_0); + testFaultyDecoding(TEST_ARRAY_1_ENCODED_NON_ESCAPED, TEST_ARRAY_1); + testFaultyDecoding(TEST_ARRAY_2_ENCODED_NON_ESCAPED, TEST_ARRAY_2); + testFaultyDecoding(TEST_ARRAY_3_ENCODED_NON_ESCAPED, TEST_ARRAY_3); + testFaultyDecoding(TEST_ARRAY_4_ENCODED_NON_ESCAPED, TEST_ARRAY_4); + + dleEncoder.setEscapeMode(true); } } From ea573b0523ea205ef36c8f4c91c61d948bab29c7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 9 Sep 2021 11:12:42 +0200 Subject: [PATCH 102/136] a few more tests with faulty source data --- src/fsfw/globalfunctions/DleEncoder.cpp | 3 ++ .../unit/globalfunctions/testDleEncoder.cpp | 54 +++++++++++++++++-- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index e9e5e856a..0db557b6a 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -244,6 +244,9 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, *decodedLen = decodedIndex; return RETURN_OK; } + else { + return DECODING_ERROR; + } } else { destStream[decodedIndex] = sourceStream[encodedIndex]; diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index 427013778..4cc3326ea 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -101,9 +101,6 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { const std::vector& expectedVec) { for(size_t faultyDestSize = 0; faultyDestSize < expectedVec.size(); faultyDestSize ++) { - if(faultyDestSize == 8) { - - } result = dleEncoder.encode(vecToEncode.data(), vecToEncode.size(), buffer.data(), faultyDestSize, &encodedLen); REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); @@ -138,6 +135,28 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { testLambdaDecode(dleEncoder, TEST_ARRAY_3_ENCODED_ESCAPED, TEST_ARRAY_3); testLambdaDecode(dleEncoder, TEST_ARRAY_4_ENCODED_ESCAPED, TEST_ARRAY_4); + // Faulty source data + auto testArray1EncodedFaulty = TEST_ARRAY_1_ENCODED_ESCAPED; + testArray1EncodedFaulty[3] = 0; + result = dleEncoder.decode(testArray1EncodedFaulty.data(), testArray1EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + auto testArray2EncodedFaulty = TEST_ARRAY_2_ENCODED_ESCAPED; + testArray2EncodedFaulty[5] = 0; + result = dleEncoder.decode(testArray2EncodedFaulty.data(), testArray2EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + auto testArray4EncodedFaulty = TEST_ARRAY_4_ENCODED_ESCAPED; + testArray4EncodedFaulty[2] = 0; + result = dleEncoder.decode(testArray4EncodedFaulty.data(), testArray4EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + auto testArray4EncodedFaulty2 = TEST_ARRAY_4_ENCODED_ESCAPED; + testArray4EncodedFaulty2[4] = 0; + result = dleEncoder.decode(testArray4EncodedFaulty2.data(), testArray4EncodedFaulty2.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + auto testFaultyDecoding = [&](const std::vector& vecToDecode, const std::vector& expectedVec) { for(size_t faultyDestSizes = 0; @@ -169,6 +188,35 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { testFaultyDecoding(TEST_ARRAY_3_ENCODED_NON_ESCAPED, TEST_ARRAY_3); testFaultyDecoding(TEST_ARRAY_4_ENCODED_NON_ESCAPED, TEST_ARRAY_4); + // Faulty source data + testArray1EncodedFaulty = TEST_ARRAY_1_ENCODED_NON_ESCAPED; + auto prevVal = testArray1EncodedFaulty[0]; + testArray1EncodedFaulty[0] = 0; + result = dleEncoder.decode(testArray1EncodedFaulty.data(), testArray1EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + testArray1EncodedFaulty[0] = prevVal; + testArray1EncodedFaulty[1] = 0; + result = dleEncoder.decode(testArray1EncodedFaulty.data(), testArray1EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + + testArray1EncodedFaulty = TEST_ARRAY_1_ENCODED_NON_ESCAPED; + testArray1EncodedFaulty[6] = 0; + result = dleEncoder.decode(testArray1EncodedFaulty.data(), testArray1EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + testArray1EncodedFaulty = TEST_ARRAY_1_ENCODED_NON_ESCAPED; + testArray1EncodedFaulty[7] = 0; + result = dleEncoder.decode(testArray1EncodedFaulty.data(), testArray1EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + testArray4EncodedFaulty = TEST_ARRAY_4_ENCODED_NON_ESCAPED; + testArray4EncodedFaulty[3] = 0; + result = dleEncoder.decode(testArray4EncodedFaulty.data(), testArray4EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + dleEncoder.setEscapeMode(true); } } From c9bfc8464aede0f79c167e18c5c0c79ded2444ce Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 11 Sep 2021 17:39:42 +0200 Subject: [PATCH 103/136] added function to enable periodic reply --- src/fsfw/devicehandlers/DeviceHandlerBase.cpp | 23 +++++++++++------ src/fsfw/devicehandlers/DeviceHandlerBase.h | 25 +++++++++++++------ 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp index 1a7fbc911..95e25b74a 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp @@ -430,12 +430,7 @@ ReturnValue_t DeviceHandlerBase::insertInReplyMap(DeviceCommandId_t replyId, DeviceReplyInfo info; info.maxDelayCycles = maxDelayCycles; info.periodic = periodic; - if(info.periodic) { - info.delayCycles = info.maxDelayCycles; - } - else { - info.delayCycles = 0; - } + info.delayCycles = 0; info.replyLen = replyLen; info.dataSet = dataSet; info.command = deviceCommandMap.end(); @@ -474,7 +469,7 @@ ReturnValue_t DeviceHandlerBase::updateReplyMapEntry(DeviceCommandId_t deviceRep auto replyIter = deviceReplyMap.find(deviceReply); if (replyIter == deviceReplyMap.end()) { triggerEvent(INVALID_DEVICE_COMMAND, deviceReply); - return RETURN_FAILED; + return COMMAND_NOT_SUPPORTED; } else { DeviceReplyInfo *info = &(replyIter->second); if (maxDelayCycles != 0) { @@ -486,6 +481,20 @@ ReturnValue_t DeviceHandlerBase::updateReplyMapEntry(DeviceCommandId_t deviceRep } } +ReturnValue_t DeviceHandlerBase::enablePeriodicReply(DeviceCommandId_t deviceReply) { + auto replyIter = deviceReplyMap.find(deviceReply); + if (replyIter == deviceReplyMap.end()) { + triggerEvent(INVALID_DEVICE_COMMAND, deviceReply); + return COMMAND_NOT_SUPPORTED; + } else { + DeviceReplyInfo *info = &(replyIter->second); + if(not info->periodic) { + return COMMAND_NOT_SUPPORTED; + } + info->delayCycles = info->maxDelayCycles; + } + return HasReturnvaluesIF::RETURN_OK; +} ReturnValue_t DeviceHandlerBase::setReplyDataset(DeviceCommandId_t replyId, LocalPoolDataSetBase *dataSet) { diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.h b/src/fsfw/devicehandlers/DeviceHandlerBase.h index 53bd1e653..d478b0fa7 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.h +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.h @@ -449,7 +449,9 @@ protected: * @param replyLen Will be supplied to the requestReceiveMessage call of * the communication interface. * @param periodic Indicates if the command is periodic (i.e. it is sent - * by the device repeatedly without request) or not. Default is aperiodic (0) + * by the device repeatedly without request) or not. Default is aperiodic (0). + * Please note that periodic replies are disabled by default. You can enable them with + * #enablePeriodicReplies * @return - @c RETURN_OK when the command was successfully inserted, * - @c RETURN_FAILED else. */ @@ -464,7 +466,9 @@ protected: * @param maxDelayCycles The maximum number of delay cycles the reply waits * until it times out. * @param periodic Indicates if the command is periodic (i.e. it is sent - * by the device repeatedly without request) or not. Default is aperiodic (0) + * by the device repeatedly without request) or not. Default is aperiodic (0). + * Please note that periodic replies are disabled by default. You can enable them with + * #enablePeriodicReplies * @return - @c RETURN_OK when the command was successfully inserted, * - @c RETURN_FAILED else. */ @@ -480,6 +484,13 @@ protected: */ ReturnValue_t insertInCommandMap(DeviceCommandId_t deviceCommand); + /** + * Enables a periodic reply for a given command. It sets to delay cycles to the specified + * maximum delay cycles for a given reply ID. + * @return + */ + ReturnValue_t enablePeriodicReply(DeviceCommandId_t deviceReply); + /** * @brief This function returns the reply length of the next reply to read. * @@ -493,16 +504,14 @@ protected: virtual size_t getNextReplyLength(DeviceCommandId_t deviceCommand); /** - * @brief This is a helper method to facilitate updating entries - * in the reply map. + * @brief This is a helper method to facilitate updating entries in the reply map. * @param deviceCommand Identifier of the reply to update. - * @param delayCycles The current number of delay cycles to wait. - * As stated in #fillCommandAndCookieMap, to disable periodic commands, - * this is set to zero. + * @param delayCycles The current number of delay cycles to wait. As stated in + * #fillCommandAndReplyMap, to disable periodic commands, this is set to zero. * @param maxDelayCycles The maximum number of delay cycles the reply waits * until it times out. By passing 0 the entry remains untouched. * @param periodic Indicates if the command is periodic (i.e. it is sent - * by the device repeatedly without request) or not.Default is aperiodic (0). + * by the device repeatedly without request) or not. Default is aperiodic (0). * Warning: The setting always overrides the value that was entered in the map. * @return - @c RETURN_OK when the command was successfully inserted, * - @c RETURN_FAILED else. From 11a3c8c21f8a80d5c0872e99e39bd655f18acfa7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 11 Sep 2021 17:42:29 +0200 Subject: [PATCH 104/136] added option to disable it as well --- src/fsfw/devicehandlers/DeviceHandlerBase.cpp | 9 +++++++-- src/fsfw/devicehandlers/DeviceHandlerBase.h | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp index 95e25b74a..aab3aa16c 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp @@ -481,7 +481,7 @@ ReturnValue_t DeviceHandlerBase::updateReplyMapEntry(DeviceCommandId_t deviceRep } } -ReturnValue_t DeviceHandlerBase::enablePeriodicReply(DeviceCommandId_t deviceReply) { +ReturnValue_t DeviceHandlerBase::enablePeriodicReply(bool enable, DeviceCommandId_t deviceReply) { auto replyIter = deviceReplyMap.find(deviceReply); if (replyIter == deviceReplyMap.end()) { triggerEvent(INVALID_DEVICE_COMMAND, deviceReply); @@ -491,7 +491,12 @@ ReturnValue_t DeviceHandlerBase::enablePeriodicReply(DeviceCommandId_t deviceRep if(not info->periodic) { return COMMAND_NOT_SUPPORTED; } - info->delayCycles = info->maxDelayCycles; + if(enable) { + info->delayCycles = info->maxDelayCycles; + } + else { + info->delayCycles = 0; + } } return HasReturnvaluesIF::RETURN_OK; } diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.h b/src/fsfw/devicehandlers/DeviceHandlerBase.h index d478b0fa7..138b429eb 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.h +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.h @@ -486,10 +486,11 @@ protected: /** * Enables a periodic reply for a given command. It sets to delay cycles to the specified - * maximum delay cycles for a given reply ID. + * maximum delay cycles for a given reply ID if enabled or to 0 if disabled. + * @param enable Specify whether to enable or disable a given periodic reply * @return */ - ReturnValue_t enablePeriodicReply(DeviceCommandId_t deviceReply); + ReturnValue_t enablePeriodicReply(bool enable, DeviceCommandId_t deviceReply); /** * @brief This function returns the reply length of the next reply to read. From 134deb3f433988513617a0d510fbbf8629b34fbc Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 11 Sep 2021 17:43:58 +0200 Subject: [PATCH 105/136] renamed function --- src/fsfw/devicehandlers/DeviceHandlerBase.cpp | 2 +- src/fsfw/devicehandlers/DeviceHandlerBase.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp index aab3aa16c..c3fc023e9 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp @@ -481,7 +481,7 @@ ReturnValue_t DeviceHandlerBase::updateReplyMapEntry(DeviceCommandId_t deviceRep } } -ReturnValue_t DeviceHandlerBase::enablePeriodicReply(bool enable, DeviceCommandId_t deviceReply) { +ReturnValue_t DeviceHandlerBase::updatePeriodicReply(bool enable, DeviceCommandId_t deviceReply) { auto replyIter = deviceReplyMap.find(deviceReply); if (replyIter == deviceReplyMap.end()) { triggerEvent(INVALID_DEVICE_COMMAND, deviceReply); diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.h b/src/fsfw/devicehandlers/DeviceHandlerBase.h index 138b429eb..30d36ef0a 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.h +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.h @@ -451,7 +451,7 @@ protected: * @param periodic Indicates if the command is periodic (i.e. it is sent * by the device repeatedly without request) or not. Default is aperiodic (0). * Please note that periodic replies are disabled by default. You can enable them with - * #enablePeriodicReplies + * #updatePeriodicReply * @return - @c RETURN_OK when the command was successfully inserted, * - @c RETURN_FAILED else. */ @@ -468,7 +468,7 @@ protected: * @param periodic Indicates if the command is periodic (i.e. it is sent * by the device repeatedly without request) or not. Default is aperiodic (0). * Please note that periodic replies are disabled by default. You can enable them with - * #enablePeriodicReplies + * #updatePeriodicReply * @return - @c RETURN_OK when the command was successfully inserted, * - @c RETURN_FAILED else. */ @@ -490,7 +490,7 @@ protected: * @param enable Specify whether to enable or disable a given periodic reply * @return */ - ReturnValue_t enablePeriodicReply(bool enable, DeviceCommandId_t deviceReply); + ReturnValue_t updatePeriodicReply(bool enable, DeviceCommandId_t deviceReply); /** * @brief This function returns the reply length of the next reply to read. From 7c7a8a5df7510e9a35f6bd6f88d21cad54454548 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 11 Sep 2021 19:18:18 +0200 Subject: [PATCH 106/136] added improvements from code review --- src/fsfw/globalfunctions/DleEncoder.cpp | 93 ++++++++++++------- src/fsfw/globalfunctions/DleEncoder.h | 5 + .../unit/globalfunctions/testDleEncoder.cpp | 2 +- 3 files changed, 65 insertions(+), 35 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 0db557b6a..35ba84d52 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -8,22 +8,12 @@ DleEncoder::~DleEncoder() {} ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, size_t sourceLen, uint8_t* destStream, size_t maxDestLen, size_t* encodedLen, bool addStxEtx) { - size_t minAllowedLen = 0; - if(escapeStxEtx) { - minAllowedLen = 1; - } - else { - minAllowedLen = 2; - } - if(minAllowedLen > maxDestLen) { - return STREAM_TOO_SHORT; - } if (addStxEtx) { size_t currentIdx = 0; if(not escapeStxEtx) { destStream[currentIdx++] = DLE_CHAR; } - destStream[currentIdx] = STX_CHAR; + } if(escapeStxEtx) { @@ -40,9 +30,15 @@ ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, ReturnValue_t DleEncoder::encodeStreamEscaped(const uint8_t *sourceStream, size_t sourceLen, uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { - size_t encodedIndex = 1; + size_t encodedIndex = 0; size_t sourceIndex = 0; uint8_t nextByte = 0; + if(addStxEtx) { + if(maxDestLen < 1) { + return STREAM_TOO_SHORT; + } + destStream[encodedIndex++] = STX_CHAR; + } while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { nextByte = sourceStream[sourceIndex]; // STX, ETX and CR characters in the stream need to be escaped with DLE @@ -82,8 +78,11 @@ ReturnValue_t DleEncoder::encodeStreamEscaped(const uint8_t *sourceStream, size_ ++sourceIndex; } - if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { + if (sourceIndex == sourceLen) { if (addStxEtx) { + if(encodedIndex + 1 >= maxDestLen) { + return STREAM_TOO_SHORT; + } destStream[encodedIndex] = ETX_CHAR; ++encodedIndex; } @@ -98,9 +97,16 @@ ReturnValue_t DleEncoder::encodeStreamEscaped(const uint8_t *sourceStream, size_ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceLen, uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, bool addStxEtx) { - size_t encodedIndex = 2; + size_t encodedIndex = 0; size_t sourceIndex = 0; uint8_t nextByte = 0; + if(addStxEtx) { + if(maxDestLen < 2) { + return STREAM_TOO_SHORT; + } + destStream[encodedIndex++] = DLE_CHAR; + destStream[encodedIndex++] = STX_CHAR; + } while (encodedIndex < maxDestLen and sourceIndex < sourceLen) { nextByte = sourceStream[sourceIndex]; // DLE characters are simply escaped with DLE. @@ -121,7 +127,7 @@ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, si ++sourceIndex; } - if (sourceIndex == sourceLen and encodedIndex < maxDestLen) { + if (sourceIndex == sourceLen) { if (addStxEtx) { if(encodedIndex + 2 >= maxDestLen) { return STREAM_TOO_SHORT; @@ -140,17 +146,6 @@ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, si ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { - size_t encodedIndex = 0; - if(not escapeStxEtx) { - if (*sourceStream != DLE_CHAR) { - return DECODING_ERROR; - } - ++encodedIndex; - } - if (sourceStream[encodedIndex] != STX_CHAR) { - return DECODING_ERROR; - } - if(escapeStxEtx) { return decodeStreamEscaped(sourceStream, sourceStreamLen, readLen, destStream, maxDestStreamlen, decodedLen); @@ -164,10 +159,15 @@ ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { - // Skip start marker, was already checked - size_t encodedIndex = 1; + size_t encodedIndex = 0; size_t decodedIndex = 0; uint8_t nextByte; + if(maxDestStreamlen < 1) { + return STREAM_TOO_SHORT; + } + if (sourceStream[encodedIndex++] != STX_CHAR) { + return DECODING_ERROR; + } while ((encodedIndex < sourceStreamLen) and (decodedIndex < maxDestStreamlen) and (sourceStream[encodedIndex] != ETX_CHAR) @@ -192,6 +192,8 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ destStream[decodedIndex] = nextByte - 0x40; } else { + // Set readLen so user can resume parsing after incorrect data + *readLen = encodedIndex + 2; return DECODING_ERROR; } } @@ -205,8 +207,13 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ ++decodedIndex; } if (sourceStream[encodedIndex] != ETX_CHAR) { - *readLen = ++encodedIndex; - return DECODING_ERROR; + if(decodedIndex == maxDestStreamlen) { + return STREAM_TOO_SHORT; + } + else { + *readLen = ++encodedIndex; + return DECODING_ERROR; + } } else { *readLen = ++encodedIndex; @@ -218,18 +225,29 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, size_t maxDestStreamlen, size_t *decodedLen) { - // Skip start marker, was already checked - size_t encodedIndex = 2; + size_t encodedIndex = 0; size_t decodedIndex = 0; uint8_t nextByte; + if(maxDestStreamlen < 2) { + return STREAM_TOO_SHORT; + } + if (sourceStream[encodedIndex++] != DLE_CHAR) { + return DECODING_ERROR; + } + if (sourceStream[encodedIndex++] != STX_CHAR) { + return DECODING_ERROR; + } while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen)) { if (sourceStream[encodedIndex] == DLE_CHAR) { if(encodedIndex + 1 >= sourceStreamLen) { + *readLen = encodedIndex; return DECODING_ERROR; } nextByte = sourceStream[encodedIndex + 1]; if(nextByte == STX_CHAR) { - *readLen = ++encodedIndex; + // Set readLen so the DLE/STX char combination is preserved. Could be start of + // another frame + *readLen = encodedIndex; return DECODING_ERROR; } else if(nextByte == DLE_CHAR) { @@ -245,6 +263,7 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, return RETURN_OK; } else { + *readLen = encodedIndex; return DECODING_ERROR; } } @@ -254,7 +273,13 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, ++encodedIndex; ++decodedIndex; } - return DECODING_ERROR; + *readLen = encodedIndex; + if(decodedIndex == maxDestStreamlen) { + return STREAM_TOO_SHORT; + } + else { + return DECODING_ERROR; + } } void DleEncoder::setEscapeMode(bool escapeStxEtx) { diff --git a/src/fsfw/globalfunctions/DleEncoder.h b/src/fsfw/globalfunctions/DleEncoder.h index e4871bf0b..09fa27262 100644 --- a/src/fsfw/globalfunctions/DleEncoder.h +++ b/src/fsfw/globalfunctions/DleEncoder.h @@ -71,6 +71,8 @@ public: * @param addStxEtx Adding STX start marker and ETX end marker can be omitted, * if they are added manually * @return + * - RETURN_OK for successful encoding operation + * - STREAM_TOO_SHORT if the destination stream is too short */ ReturnValue_t encode(const uint8_t *sourceStream, size_t sourceLen, uint8_t *destStream, size_t maxDestLen, size_t *encodedLen, @@ -85,6 +87,9 @@ public: * @param maxDestStreamlen * @param decodedLen * @return + * - RETURN_OK for successful decode operation + * - DECODE_ERROR if the source stream is invalid + * - STREAM_TOO_SHORT if the destination stream is too short */ ReturnValue_t decode(const uint8_t *sourceStream, size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index 4cc3326ea..a82ac73a9 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -165,7 +165,7 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { result = dleEncoder.decode(vecToDecode.data(), vecToDecode.size(), &readLen, buffer.data(), faultyDestSizes, &decodedLen); - REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); + REQUIRE(result == static_cast(DleEncoder::STREAM_TOO_SHORT)); } }; From d36d849e6994356c045e17924a60a00b13ae75e3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 11 Sep 2021 19:21:21 +0200 Subject: [PATCH 107/136] removed part which is now not necessary anymore --- src/fsfw/globalfunctions/DleEncoder.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 35ba84d52..04e4985c7 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -8,14 +8,6 @@ DleEncoder::~DleEncoder() {} ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, size_t sourceLen, uint8_t* destStream, size_t maxDestLen, size_t* encodedLen, bool addStxEtx) { - if (addStxEtx) { - size_t currentIdx = 0; - if(not escapeStxEtx) { - destStream[currentIdx++] = DLE_CHAR; - } - - } - if(escapeStxEtx) { return encodeStreamEscaped(sourceStream, sourceLen, destStream, maxDestLen, encodedLen, addStxEtx); From dae27a8e105a5d0e9c0f8bd5bda6b6d2826441b3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 11 Sep 2021 19:22:51 +0200 Subject: [PATCH 108/136] indentation --- src/fsfw/globalfunctions/DleEncoder.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 04e4985c7..df9a909ea 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -1,13 +1,13 @@ #include "fsfw/globalfunctions/DleEncoder.h" -DleEncoder::DleEncoder(bool escapeStxEtx, bool escapeCr): escapeStxEtx(escapeStxEtx), - escapeCr(escapeCr) {} +DleEncoder::DleEncoder(bool escapeStxEtx, bool escapeCr): + escapeStxEtx(escapeStxEtx), escapeCr(escapeCr) {} DleEncoder::~DleEncoder() {} ReturnValue_t DleEncoder::encode(const uint8_t* sourceStream, - size_t sourceLen, uint8_t* destStream, size_t maxDestLen, - size_t* encodedLen, bool addStxEtx) { + size_t sourceLen, uint8_t* destStream, size_t maxDestLen, + size_t* encodedLen, bool addStxEtx) { if(escapeStxEtx) { return encodeStreamEscaped(sourceStream, sourceLen, destStream, maxDestLen, encodedLen, addStxEtx); @@ -136,16 +136,16 @@ ReturnValue_t DleEncoder::encodeStreamNonEscaped(const uint8_t *sourceStream, si } ReturnValue_t DleEncoder::decode(const uint8_t *sourceStream, - size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, - size_t maxDestStreamlen, size_t *decodedLen) { - if(escapeStxEtx) { - return decodeStreamEscaped(sourceStream, sourceStreamLen, - readLen, destStream, maxDestStreamlen, decodedLen); - } - else { + size_t sourceStreamLen, size_t *readLen, uint8_t *destStream, + size_t maxDestStreamlen, size_t *decodedLen) { + if(escapeStxEtx) { + return decodeStreamEscaped(sourceStream, sourceStreamLen, + readLen, destStream, maxDestStreamlen, decodedLen); + } + else { return decodeStreamNonEscaped(sourceStream, sourceStreamLen, readLen, destStream, maxDestStreamlen, decodedLen); - } + } } ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_t sourceStreamLen, From abacfbf2d5550c189e5c0b48f3eb794eb8525f02 Mon Sep 17 00:00:00 2001 From: Ulrich Mohr Date: Mon, 13 Sep 2021 10:38:36 +0200 Subject: [PATCH 109/136] added setting of readLen according to review --- src/fsfw/globalfunctions/DleEncoder.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index df9a909ea..47ea5c4e5 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -154,6 +154,11 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ size_t encodedIndex = 0; size_t decodedIndex = 0; uint8_t nextByte; + + //init to 0 so that we can just return in the first checks (which do not consume anything from + //the source stream) + *readLen = 0; + if(maxDestStreamlen < 1) { return STREAM_TOO_SHORT; } @@ -166,6 +171,8 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ and (sourceStream[encodedIndex] != STX_CHAR)) { if (sourceStream[encodedIndex] == DLE_CHAR) { if(encodedIndex + 1 >= sourceStreamLen) { + //reached the end of the sourceStream + *readLen = sourceStreamLen; return DECODING_ERROR; } nextByte = sourceStream[encodedIndex + 1]; @@ -200,6 +207,8 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ } if (sourceStream[encodedIndex] != ETX_CHAR) { if(decodedIndex == maxDestStreamlen) { + //so far we did not find anything wrong here, so let user try again + *readLen = 0; return STREAM_TOO_SHORT; } else { @@ -220,6 +229,11 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, size_t encodedIndex = 0; size_t decodedIndex = 0; uint8_t nextByte; + + //init to 0 so that we can just return in the first checks (which do not consume anything from + //the source stream) + *readLen = 0; + if(maxDestStreamlen < 2) { return STREAM_TOO_SHORT; } @@ -227,6 +241,7 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, return DECODING_ERROR; } if (sourceStream[encodedIndex++] != STX_CHAR) { + *readLen = 1; return DECODING_ERROR; } while ((encodedIndex < sourceStreamLen) && (decodedIndex < maxDestStreamlen)) { @@ -265,11 +280,13 @@ ReturnValue_t DleEncoder::decodeStreamNonEscaped(const uint8_t *sourceStream, ++encodedIndex; ++decodedIndex; } - *readLen = encodedIndex; + if(decodedIndex == maxDestStreamlen) { + //so far we did not find anything wrong here, so let user try again + *readLen = 0; return STREAM_TOO_SHORT; - } - else { + } else { + *readLen = encodedIndex; return DECODING_ERROR; } } From 21b5eaa891c58f3e52de3acbf138c3ec128a1789 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 15 Sep 2021 17:09:42 +0200 Subject: [PATCH 110/136] Some changes and improvements for DHB 1. Renamed getCommanderId to getCommanderQueueId. 2. Some indentation 3. Correct preprocessor define for warning printout used now --- src/fsfw/devicehandlers/DeviceHandlerBase.cpp | 28 ++++++++++----- src/fsfw/devicehandlers/DeviceHandlerBase.h | 34 +++++++++---------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp index c3fc023e9..535113fd4 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.cpp +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.cpp @@ -461,7 +461,7 @@ size_t DeviceHandlerBase::getNextReplyLength(DeviceCommandId_t commandId){ return iter->second.replyLen; }else{ return 0; - } + } } ReturnValue_t DeviceHandlerBase::updateReplyMapEntry(DeviceCommandId_t deviceReply, @@ -612,15 +612,15 @@ void DeviceHandlerBase::replyToReply(const DeviceCommandId_t command, DeviceRepl } DeviceCommandInfo* info = &replyInfo.command->second; if (info == nullptr){ - printWarningOrError(sif::OutputTypes::OUT_ERROR, - "replyToReply", HasReturnvaluesIF::RETURN_FAILED, - "Command pointer not found"); - return; + printWarningOrError(sif::OutputTypes::OUT_ERROR, + "replyToReply", HasReturnvaluesIF::RETURN_FAILED, + "Command pointer not found"); + return; } if (info->expectedReplies > 0){ - // Check before to avoid underflow - info->expectedReplies--; + // Check before to avoid underflow + info->expectedReplies--; } // Check if more replies are expected. If so, do nothing. if (info->expectedReplies == 0) { @@ -1355,10 +1355,20 @@ void DeviceHandlerBase::buildInternalCommand(void) { DeviceCommandMap::iterator iter = deviceCommandMap.find( deviceCommandId); if (iter == deviceCommandMap.end()) { +#if FSFW_VERBOSE_LEVEL >= 1 + char output[36]; + sprintf(output, "Command 0x%08x unknown", + static_cast(deviceCommandId)); + // so we can track misconfigurations + printWarningOrError(sif::OutputTypes::OUT_WARNING, + "buildInternalCommand", + COMMAND_NOT_SUPPORTED, + output); +#endif result = COMMAND_NOT_SUPPORTED; } else if (iter->second.isExecuting) { -#if FSFW_DISABLE_PRINTOUT == 0 +#if FSFW_VERBOSE_LEVEL >= 1 char output[36]; sprintf(output, "Command 0x%08x is executing", static_cast(deviceCommandId)); @@ -1569,7 +1579,7 @@ LocalDataPoolManager* DeviceHandlerBase::getHkManagerHandle() { return &poolManager; } -MessageQueueId_t DeviceHandlerBase::getCommanderId(DeviceCommandId_t replyId) const { +MessageQueueId_t DeviceHandlerBase::getCommanderQueueId(DeviceCommandId_t replyId) const { auto commandIter = deviceCommandMap.find(replyId); if(commandIter == deviceCommandMap.end()) { return MessageQueueIF::NO_QUEUE; diff --git a/src/fsfw/devicehandlers/DeviceHandlerBase.h b/src/fsfw/devicehandlers/DeviceHandlerBase.h index 30d36ef0a..b182b6114 100644 --- a/src/fsfw/devicehandlers/DeviceHandlerBase.h +++ b/src/fsfw/devicehandlers/DeviceHandlerBase.h @@ -6,22 +6,22 @@ #include "DeviceHandlerFailureIsolation.h" #include "DeviceHandlerThermalSet.h" -#include "../serviceinterface/ServiceInterface.h" -#include "../serviceinterface/serviceInterfaceDefintions.h" -#include "../objectmanager/SystemObject.h" -#include "../tasks/ExecutableObjectIF.h" -#include "../returnvalues/HasReturnvaluesIF.h" -#include "../action/HasActionsIF.h" -#include "../datapool/PoolVariableIF.h" -#include "../modes/HasModesIF.h" -#include "../power/PowerSwitchIF.h" -#include "../ipc/MessageQueueIF.h" -#include "../tasks/PeriodicTaskIF.h" -#include "../action/ActionHelper.h" -#include "../health/HealthHelper.h" -#include "../parameters/ParameterHelper.h" -#include "../datapoollocal/HasLocalDataPoolIF.h" -#include "../datapoollocal/LocalDataPoolManager.h" +#include "fsfw/serviceinterface/ServiceInterface.h" +#include "fsfw/serviceinterface/serviceInterfaceDefintions.h" +#include "fsfw/objectmanager/SystemObject.h" +#include "fsfw/tasks/ExecutableObjectIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" +#include "fsfw/action/HasActionsIF.h" +#include "fsfw/datapool/PoolVariableIF.h" +#include "fsfw/modes/HasModesIF.h" +#include "fsfw/power/PowerSwitchIF.h" +#include "fsfw/ipc/MessageQueueIF.h" +#include "fsfw/tasks/PeriodicTaskIF.h" +#include "fsfw/action/ActionHelper.h" +#include "fsfw/health/HealthHelper.h" +#include "fsfw/parameters/ParameterHelper.h" +#include "fsfw/datapoollocal/HasLocalDataPoolIF.h" +#include "fsfw/datapoollocal/LocalDataPoolManager.h" #include @@ -399,7 +399,7 @@ protected: */ virtual ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) = 0; - MessageQueueId_t getCommanderId(DeviceCommandId_t replyId) const; + MessageQueueId_t getCommanderQueueId(DeviceCommandId_t replyId) const; /** * Helper function to get pending command. This is useful for devices * like SPI sensors to identify the last sent command. From e5db64cbb91bc72c63f0f3963bba9d89df9e1e6c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 15 Sep 2021 17:15:18 +0200 Subject: [PATCH 111/136] set transfer size to 0, better name --- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 8 ++------ hal/src/fsfw_hal/linux/spi/SpiComIF.h | 1 + hal/src/fsfw_hal/linux/spi/SpiCookie.cpp | 2 +- hal/src/fsfw_hal/linux/spi/SpiCookie.h | 6 ++---- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index 48bf74491..6cf6675f2 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -15,11 +15,6 @@ #include #include -/* Can be used for low-level debugging of the SPI bus */ -#ifndef FSFW_HAL_LINUX_SPI_WIRETAPPING -#define FSFW_HAL_LINUX_SPI_WIRETAPPING 0 -#endif - SpiComIF::SpiComIF(object_id_t objectId, GpioIF* gpioComIF): SystemObject(objectId), gpioComIF(gpioComIF) { if(gpioComIF == nullptr) { @@ -193,7 +188,7 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie *spiCookie, const spiCookie->getSpiParameters(spiMode, spiSpeed, nullptr); setSpiSpeedAndMode(fileDescriptor, spiMode, spiSpeed); spiCookie->assignWriteBuffer(sendData); - spiCookie->assignTransferSize(sendLen); + spiCookie->setTransferSize(sendLen); bool fullDuplex = spiCookie->isFullDuplex(); gpioId_t gpioId = spiCookie->getChipSelectPin(); @@ -335,6 +330,7 @@ ReturnValue_t SpiComIF::readReceivedMessage(CookieIF *cookie, uint8_t **buffer, *buffer = rxBuf; *size = spiCookie->getCurrentTransferSize(); + spiCookie->setTransferSize(0); return HasReturnvaluesIF::RETURN_OK; } diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.h b/hal/src/fsfw_hal/linux/spi/SpiComIF.h index d43e25054..bcca7462d 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.h +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.h @@ -1,6 +1,7 @@ #ifndef LINUX_SPI_SPICOMIF_H_ #define LINUX_SPI_SPICOMIF_H_ +#include "fsfw/FSFW.h" #include "spiDefinitions.h" #include "returnvalues/classIds.h" #include "fsfw_hal/common/gpio/GpioIF.h" diff --git a/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp index 54d8aa161..f07954e95 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp @@ -121,7 +121,7 @@ bool SpiCookie::isFullDuplex() const { return not this->halfDuplex; } -void SpiCookie::assignTransferSize(size_t transferSize) { +void SpiCookie::setTransferSize(size_t transferSize) { spiTransferStruct.len = transferSize; } diff --git a/hal/src/fsfw_hal/linux/spi/SpiCookie.h b/hal/src/fsfw_hal/linux/spi/SpiCookie.h index acf7c77c3..844fd4219 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiCookie.h +++ b/hal/src/fsfw_hal/linux/spi/SpiCookie.h @@ -103,10 +103,10 @@ public: void assignReadBuffer(uint8_t* rx); void assignWriteBuffer(const uint8_t* tx); /** - * Assign size for the next transfer. + * Set size for the next transfer. Set to 0 for no transfer * @param transferSize */ - void assignTransferSize(size_t transferSize); + void setTransferSize(size_t transferSize); size_t getCurrentTransferSize() const; struct UncommonParameters { @@ -158,8 +158,6 @@ private: std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed, spi::send_callback_function_t callback, void* args); - size_t currentTransferSize = 0; - address_t spiAddress; gpioId_t chipSelectPin; std::string spiDevice; From a6e4eb9ad4f9c2367c09d72182176d43b67260a8 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 15 Sep 2021 17:18:47 +0200 Subject: [PATCH 112/136] improvements for L3GD20H device handler --- .../devicehandlers/GyroL3GD20Handler.cpp | 42 +++++++++---------- .../devicehandlers/GyroL3GD20Handler.h | 11 ++--- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp index 96d284e18..4a492e5df 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp @@ -3,9 +3,9 @@ #include "fsfw/datapool/PoolReadGuard.h" GyroHandlerL3GD20H::GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, - CookieIF *comCookie): + CookieIF *comCookie, uint8_t switchId, uint32_t transitionDelayMs): DeviceHandlerBase(objectId, deviceCommunication, comCookie), - dataset(this) { + switchId(switchId), transitionDelayMs(transitionDelayMs), dataset(this) { #if FSFW_HAL_L3GD20_GYRO_DEBUG == 1 debugDivider = new PeriodicOperationDivider(5); #endif @@ -47,7 +47,7 @@ ReturnValue_t GyroHandlerL3GD20H::buildTransitionDeviceCommand(DeviceCommandId_t switch(internalState) { case(InternalState::NONE): case(InternalState::NORMAL): { - return HasReturnvaluesIF::RETURN_OK; + return NOTHING_TO_SEND; } case(InternalState::CONFIGURE): { *id = L3GD20H::CONFIGURE_CTRL_REGS; @@ -66,10 +66,11 @@ ReturnValue_t GyroHandlerL3GD20H::buildTransitionDeviceCommand(DeviceCommandId_t default: #if FSFW_CPP_OSTREAM_ENABLED == 1 /* Might be a configuration error. */ - sif::debug << "GyroHandler::buildTransitionDeviceCommand: Unknown internal state!" << - std::endl; + sif::warning << "GyroL3GD20Handler::buildTransitionDeviceCommand: " + "Unknown internal state!" << std::endl; #else - sif::printDebug("GyroHandler::buildTransitionDeviceCommand: Unknown internal state!\n"); + sif::printDebug("GyroL3GD20Handler::buildTransitionDeviceCommand: " + "Unknown internal state!\n"); #endif return HasReturnvaluesIF::RETURN_OK; } @@ -144,7 +145,7 @@ ReturnValue_t GyroHandlerL3GD20H::buildCommandFromCommand( ReturnValue_t GyroHandlerL3GD20H::scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) { - /* For SPI, the ID will always be the one of the last sent command. */ + // For SPI, the ID will always be the one of the last sent command *foundId = this->getPendingCommand(); *foundLen = this->rawPacketLen; @@ -166,7 +167,7 @@ ReturnValue_t GyroHandlerL3GD20H::interpretDeviceReply(DeviceCommandId_t id, commandExecuted = true; } else { - /* Attempt reconfiguration. */ + // Attempt reconfiguration internalState = InternalState::CONFIGURE; return DeviceHandlerIF::DEVICE_REPLY_INVALID; } @@ -199,13 +200,12 @@ ReturnValue_t GyroHandlerL3GD20H::interpretDeviceReply(DeviceCommandId_t id, if(debugDivider->checkAndIncrement()) { /* Set terminal to utf-8 if there is an issue with micro printout. */ #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::info << "GyroHandlerL3GD20H: Angular velocities in degrees per second:" << - std::endl; - sif::info << "X: " << angVelocX << " \xC2\xB0" << std::endl; - sif::info << "Y: " << angVelocY << " \xC2\xB0" << std::endl; - sif::info << "Z: " << angVelocZ << " \xC2\xB0" << std::endl; + sif::info << "GyroHandlerL3GD20H: Angular velocities (deg/s):" << std::endl; + sif::info << "X: " << angVelocX << std::endl; + sif::info << "Y: " << angVelocY << std::endl; + sif::info << "Z: " << angVelocZ << std::endl; #else - sif::printInfo("GyroHandlerL3GD20H: Angular velocities in degrees per second:\n"); + sif::printInfo("GyroHandlerL3GD20H: Angular velocities (deg/s):\n"); sif::printInfo("X: %f\n", angVelocX); sif::printInfo("Y: %f\n", angVelocY); sif::printInfo("Z: %f\n", angVelocZ); @@ -231,7 +231,7 @@ ReturnValue_t GyroHandlerL3GD20H::interpretDeviceReply(DeviceCommandId_t id, uint32_t GyroHandlerL3GD20H::getTransitionDelayMs(Mode_t from, Mode_t to) { - return 10000; + return this->transitionDelayMs; } void GyroHandlerL3GD20H::setGoNormalModeAtStartup() { @@ -240,14 +240,10 @@ void GyroHandlerL3GD20H::setGoNormalModeAtStartup() { ReturnValue_t GyroHandlerL3GD20H::initializeLocalDataPool( localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { - localDataPoolMap.emplace(L3GD20H::ANG_VELOC_X, - new PoolEntry({0.0})); - localDataPoolMap.emplace(L3GD20H::ANG_VELOC_Y, - new PoolEntry({0.0})); - localDataPoolMap.emplace(L3GD20H::ANG_VELOC_Z, - new PoolEntry({0.0})); - localDataPoolMap.emplace(L3GD20H::TEMPERATURE, - new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::ANG_VELOC_X, new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::ANG_VELOC_Y, new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::ANG_VELOC_Z, new PoolEntry({0.0})); + localDataPoolMap.emplace(L3GD20H::TEMPERATURE, new PoolEntry({0.0})); return HasReturnvaluesIF::RETURN_OK; } diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h index 020c5a32e..bc1d9c1cf 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h @@ -7,10 +7,6 @@ #include #include -#ifndef FSFW_HAL_L3GD20_GYRO_DEBUG -#define FSFW_HAL_L3GD20_GYRO_DEBUG 0 -#endif /* FSFW_HAL_L3GD20_GYRO_DEBUG */ - /** * @brief Device Handler for the L3GD20H gyroscope sensor * (https://www.st.com/en/mems-and-sensors/l3gd20h.html) @@ -23,9 +19,12 @@ class GyroHandlerL3GD20H: public DeviceHandlerBase { public: GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, - CookieIF* comCookie); + CookieIF* comCookie, uint8_t switchId, uint32_t transitionDelayMs = 10000); virtual ~GyroHandlerL3GD20H(); + /** + * @brief Configure device handler to go to normal mode immediately + */ void setGoNormalModeAtStartup(); protected: @@ -51,6 +50,8 @@ protected: LocalDataPoolManager &poolManager) override; private: + uint8_t switchId = 0; + uint32_t transitionDelayMs = 0; GyroPrimaryDataset dataset; enum class InternalState { From 1732359f72766216acd7f8a719a51606cac66c33 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 15 Sep 2021 17:23:26 +0200 Subject: [PATCH 113/136] doc was wrong --- src/fsfw/pus/servicepackets/Service1Packets.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fsfw/pus/servicepackets/Service1Packets.h b/src/fsfw/pus/servicepackets/Service1Packets.h index 2249b4b0f..02ae339f8 100644 --- a/src/fsfw/pus/servicepackets/Service1Packets.h +++ b/src/fsfw/pus/servicepackets/Service1Packets.h @@ -13,10 +13,10 @@ /** * @brief FailureReport class to serialize a failure report - * @brief Subservice 1, 3, 5, 7 + * @brief Subservice 2, 4, 6, 8 * @ingroup spacepackets */ -class FailureReport: public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 1, 3, 5, 7 +class FailureReport: public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 2, 4, 6, 8 public: FailureReport(uint8_t failureSubtype_, uint16_t packetId_, uint16_t packetSequenceControl_, uint8_t stepNumber_, @@ -108,10 +108,10 @@ private: }; /** - * @brief Subservices 2, 4, 6, 8 + * @brief Subservices 1, 3, 5, 7 * @ingroup spacepackets */ -class SuccessReport: public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 2, 4, 6, 8 +class SuccessReport: public SerializeIF { //!< [EXPORT] : [SUBSERVICE] 1, 3, 5, 7 public: SuccessReport(uint8_t subtype_, uint16_t packetId_, uint16_t packetSequenceControl_,uint8_t stepNumber_) : From f40f783cb43ca11388ac557848980fcde5a1ac15 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 23 Sep 2021 17:58:44 +0200 Subject: [PATCH 114/136] GPIO code update Adds capability to define GPIO by label and by chip for Linux systems --- .../fsfw_hal/common/gpio/gpioDefinitions.h | 64 ++++++--- .../fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp | 127 ++++++++++++------ hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h | 11 +- hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp | 2 +- 4 files changed, 139 insertions(+), 65 deletions(-) diff --git a/hal/src/fsfw_hal/common/gpio/gpioDefinitions.h b/hal/src/fsfw_hal/common/gpio/gpioDefinitions.h index 710b2e2c1..688d9c9bf 100644 --- a/hal/src/fsfw_hal/common/gpio/gpioDefinitions.h +++ b/hal/src/fsfw_hal/common/gpio/gpioDefinitions.h @@ -26,7 +26,8 @@ enum GpioOperation { enum GpioTypes { NONE, - GPIO_REGULAR, + GPIO_REGULAR_BY_CHIP, + GPIO_REGULAR_BY_LABEL, CALLBACK }; @@ -68,28 +69,57 @@ public: int initValue = 0; }; -class GpiodRegular: public GpioBase { +class GpiodRegularBase: public GpioBase { public: - GpiodRegular() : - GpioBase(gpio::GpioTypes::GPIO_REGULAR, std::string(), gpio::Direction::IN, 0) { + GpiodRegularBase(gpio::GpioTypes gpioType, std::string consumer, gpio::Direction direction, + int initValue, int lineNum): GpioBase(gpioType, consumer, direction, initValue), + lineNum(lineNum) { } - ; - - GpiodRegular(std::string chipname_, int lineNum_, std::string consumer_, - gpio::Direction direction_, int initValue_) : - GpioBase(gpio::GpioTypes::GPIO_REGULAR, consumer_, direction_, initValue_), - chipname(chipname_), lineNum(lineNum_) { - } - - GpiodRegular(std::string chipname_, int lineNum_, std::string consumer_) : - GpioBase(gpio::GpioTypes::GPIO_REGULAR, consumer_, gpio::Direction::IN, 0), - chipname(chipname_), lineNum(lineNum_) { - } - std::string chipname; int lineNum = 0; struct gpiod_line* lineHandle = nullptr; }; +class GpiodRegularByChip: public GpiodRegularBase { +public: + GpiodRegularByChip() : + GpiodRegularBase(gpio::GpioTypes::GPIO_REGULAR_BY_CHIP, + std::string(), gpio::Direction::IN, gpio::LOW, 0) { + } + + GpiodRegularByChip(std::string chipname_, int lineNum_, std::string consumer_, + gpio::Direction direction_, int initValue_) : + GpiodRegularBase(gpio::GpioTypes::GPIO_REGULAR_BY_CHIP, + consumer_, direction_, initValue_, lineNum_), + chipname(chipname_){ + } + + GpiodRegularByChip(std::string chipname_, int lineNum_, std::string consumer_) : + GpiodRegularBase(gpio::GpioTypes::GPIO_REGULAR_BY_CHIP, consumer_, + gpio::Direction::IN, gpio::LOW, lineNum_), + chipname(chipname_) { + } + + std::string chipname; +}; + +class GpiodRegularByLabel: public GpiodRegularBase { +public: + GpiodRegularByLabel(std::string label_, int lineNum_, std::string consumer_, + gpio::Direction direction_, int initValue_) : + GpiodRegularBase(gpio::GpioTypes::GPIO_REGULAR_BY_LABEL, consumer_, + direction_, initValue_, lineNum_), + label(label_) { + } + + GpiodRegularByLabel(std::string label_, int lineNum_, std::string consumer_) : + GpiodRegularBase(gpio::GpioTypes::GPIO_REGULAR_BY_LABEL, consumer_, + gpio::Direction::IN, gpio::LOW, lineNum_), + label(label_) { + } + + std::string label; +}; + class GpioCallback: public GpioBase { public: GpioCallback(std::string consumer, gpio::Direction direction_, int initValue_, diff --git a/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp index eef61e582..15c3d1187 100644 --- a/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp +++ b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.cpp @@ -20,7 +20,7 @@ LinuxLibgpioIF::~LinuxLibgpioIF() { ReturnValue_t LinuxLibgpioIF::addGpios(GpioCookie* gpioCookie) { ReturnValue_t result; if(gpioCookie == nullptr) { - sif::error << "LinuxLibgpioIF::initialize: Invalid cookie" << std::endl; + sif::error << "LinuxLibgpioIF::addGpios: Invalid cookie" << std::endl; return RETURN_FAILED; } @@ -45,16 +45,25 @@ ReturnValue_t LinuxLibgpioIF::addGpios(GpioCookie* gpioCookie) { ReturnValue_t LinuxLibgpioIF::configureGpios(GpioMap& mapToAdd) { for(auto& gpioConfig: mapToAdd) { - switch(gpioConfig.second->gpioType) { + auto& gpioType = gpioConfig.second->gpioType; + switch(gpioType) { case(gpio::GpioTypes::NONE): { return GPIO_INVALID_INSTANCE; } - case(gpio::GpioTypes::GPIO_REGULAR): { - GpiodRegular* regularGpio = dynamic_cast(gpioConfig.second); + case(gpio::GpioTypes::GPIO_REGULAR_BY_CHIP): { + auto regularGpio = dynamic_cast(gpioConfig.second); if(regularGpio == nullptr) { return GPIO_INVALID_INSTANCE; } - configureRegularGpio(gpioConfig.first, regularGpio); + configureGpioByChip(gpioConfig.first, *regularGpio); + break; + } + case(gpio::GpioTypes::GPIO_REGULAR_BY_LABEL):{ + auto regularGpio = dynamic_cast(gpioConfig.second); + if(regularGpio == nullptr) { + return GPIO_INVALID_INSTANCE; + } + configureGpioByLabel(gpioConfig.first, *regularGpio); break; } case(gpio::GpioTypes::CALLBACK): { @@ -70,41 +79,59 @@ ReturnValue_t LinuxLibgpioIF::configureGpios(GpioMap& mapToAdd) { return RETURN_OK; } -ReturnValue_t LinuxLibgpioIF::configureRegularGpio(gpioId_t gpioId, GpiodRegular *regularGpio) { - std::string chipname; +ReturnValue_t LinuxLibgpioIF::configureGpioByLabel(gpioId_t gpioId, + GpiodRegularByLabel &gpioByLabel) { + std::string& label = gpioByLabel.label; + struct gpiod_chip* chip = gpiod_chip_open_by_label(label.c_str()); + if (chip == nullptr) { + sif::warning << "LinuxLibgpioIF::configureRegularGpio: Failed to open gpio from gpio " + << "group with label " << label << ". Gpio ID: " << gpioId << std::endl; + return RETURN_FAILED; + + } + std::string failOutput = "label: " + label; + return configureRegularGpio(gpioId, gpioByLabel.gpioType, chip, gpioByLabel, failOutput); +} + +ReturnValue_t LinuxLibgpioIF::configureGpioByChip(gpioId_t gpioId, + GpiodRegularByChip &gpioByChip) { + std::string& chipname = gpioByChip.chipname; + struct gpiod_chip* chip = gpiod_chip_open_by_name(chipname.c_str()); + if (chip == nullptr) { + sif::warning << "LinuxLibgpioIF::configureRegularGpio: Failed to open chip " + << chipname << ". Gpio ID: " << gpioId << std::endl; + return RETURN_FAILED; + } + std::string failOutput = "chipname: " + chipname; + return configureRegularGpio(gpioId, gpioByChip.gpioType, chip, gpioByChip, failOutput); +} + +ReturnValue_t LinuxLibgpioIF::configureRegularGpio(gpioId_t gpioId, gpio::GpioTypes gpioType, + struct gpiod_chip* chip, GpiodRegularBase& regularGpio, std::string failOutput) { unsigned int lineNum; - struct gpiod_chip *chip; gpio::Direction direction; std::string consumer; struct gpiod_line *lineHandle; int result = 0; - chipname = regularGpio->chipname; - chip = gpiod_chip_open_by_name(chipname.c_str()); - if (!chip) { - sif::warning << "LinuxLibgpioIF::configureRegularGpio: Failed to open chip " - << chipname << ". Gpio ID: " << gpioId << std::endl; - return RETURN_FAILED; - } - - lineNum = regularGpio->lineNum; + lineNum = regularGpio.lineNum; lineHandle = gpiod_chip_get_line(chip, lineNum); if (!lineHandle) { - sif::debug << "LinuxLibgpioIF::configureRegularGpio: Failed to open line " << std::endl; - sif::debug << "GPIO ID: " << gpioId << ", line number: " << lineNum << - ", chipname: " << chipname << std::endl; - sif::debug << "Check if linux GPIO configuration has changed. " << std::endl; + sif::warning << "LinuxLibgpioIF::configureRegularGpio: Failed to open line " << std::endl; + sif::warning << "GPIO ID: " << gpioId << ", line number: " << lineNum << + ", " << failOutput << std::endl; + sif::warning << "Check if Linux GPIO configuration has changed. " << std::endl; gpiod_chip_close(chip); return RETURN_FAILED; } - direction = regularGpio->direction; - consumer = regularGpio->consumer; + direction = regularGpio.direction; + consumer = regularGpio.consumer; /* Configure direction and add a description to the GPIO */ switch (direction) { case(gpio::OUT): { result = gpiod_line_request_output(lineHandle, consumer.c_str(), - regularGpio->initValue); + regularGpio.initValue); if (result < 0) { sif::error << "LinuxLibgpioIF::configureRegularGpio: Failed to request line " << lineNum << " from GPIO instance with ID: " << gpioId << std::endl; @@ -134,7 +161,7 @@ ReturnValue_t LinuxLibgpioIF::configureRegularGpio(gpioId_t gpioId, GpiodRegular * Write line handle to GPIO configuration instance so it can later be used to set or * read states of GPIOs. */ - regularGpio->lineHandle = lineHandle; + regularGpio.lineHandle = lineHandle; return RETURN_OK; } @@ -145,8 +172,14 @@ ReturnValue_t LinuxLibgpioIF::pullHigh(gpioId_t gpioId) { return UNKNOWN_GPIO_ID; } - if(gpioMapIter->second->gpioType == gpio::GpioTypes::GPIO_REGULAR) { - return driveGpio(gpioId, dynamic_cast(gpioMapIter->second), 1); + auto gpioType = gpioMapIter->second->gpioType; + if(gpioType == gpio::GpioTypes::GPIO_REGULAR_BY_CHIP or + gpioType == gpio::GpioTypes::GPIO_REGULAR_BY_LABEL) { + auto regularGpio = dynamic_cast(gpioMapIter->second); + if(regularGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + return driveGpio(gpioId, *regularGpio, gpio::HIGH); } else { auto gpioCallback = dynamic_cast(gpioMapIter->second); @@ -167,8 +200,14 @@ ReturnValue_t LinuxLibgpioIF::pullLow(gpioId_t gpioId) { return UNKNOWN_GPIO_ID; } - if(gpioMapIter->second->gpioType == gpio::GpioTypes::GPIO_REGULAR) { - return driveGpio(gpioId, dynamic_cast(gpioMapIter->second), 0); + auto& gpioType = gpioMapIter->second->gpioType; + if(gpioType == gpio::GpioTypes::GPIO_REGULAR_BY_CHIP or + gpioType == gpio::GpioTypes::GPIO_REGULAR_BY_LABEL) { + auto regularGpio = dynamic_cast(gpioMapIter->second); + if(regularGpio == nullptr) { + return GPIO_TYPE_FAILURE; + } + return driveGpio(gpioId, *regularGpio, gpio::LOW); } else { auto gpioCallback = dynamic_cast(gpioMapIter->second); @@ -183,12 +222,8 @@ ReturnValue_t LinuxLibgpioIF::pullLow(gpioId_t gpioId) { } ReturnValue_t LinuxLibgpioIF::driveGpio(gpioId_t gpioId, - GpiodRegular* regularGpio, unsigned int logicLevel) { - if(regularGpio == nullptr) { - return GPIO_TYPE_FAILURE; - } - - int result = gpiod_line_set_value(regularGpio->lineHandle, logicLevel); + GpiodRegularBase& regularGpio, gpio::Levels logicLevel) { + int result = gpiod_line_set_value(regularGpio.lineHandle, logicLevel); if (result < 0) { sif::warning << "LinuxLibgpioIF::driveGpio: Failed to pull GPIO with ID " << gpioId << " to logic level " << logicLevel << std::endl; @@ -204,9 +239,10 @@ ReturnValue_t LinuxLibgpioIF::readGpio(gpioId_t gpioId, int* gpioState) { sif::warning << "LinuxLibgpioIF::readGpio: Unknown GPIOD ID " << gpioId << std::endl; return UNKNOWN_GPIO_ID; } - - if(gpioMapIter->second->gpioType == gpio::GpioTypes::GPIO_REGULAR) { - GpiodRegular* regularGpio = dynamic_cast(gpioMapIter->second); + auto gpioType = gpioMapIter->second->gpioType; + if(gpioType == gpio::GpioTypes::GPIO_REGULAR_BY_CHIP or + gpioType == gpio::GpioTypes::GPIO_REGULAR_BY_LABEL) { + auto regularGpio = dynamic_cast(gpioMapIter->second); if(regularGpio == nullptr) { return GPIO_TYPE_FAILURE; } @@ -225,13 +261,14 @@ ReturnValue_t LinuxLibgpioIF::checkForConflicts(GpioMap& mapToAdd){ ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; for(auto& gpioConfig: mapToAdd) { switch(gpioConfig.second->gpioType) { - case(gpio::GpioTypes::GPIO_REGULAR): { - auto regularGpio = dynamic_cast(gpioConfig.second); + case(gpio::GpioTypes::GPIO_REGULAR_BY_CHIP): + case(gpio::GpioTypes::GPIO_REGULAR_BY_LABEL): { + auto regularGpio = dynamic_cast(gpioConfig.second); if(regularGpio == nullptr) { return GPIO_TYPE_FAILURE; } /* Check for conflicts and remove duplicates if necessary */ - result = checkForConflictsRegularGpio(gpioConfig.first, regularGpio, mapToAdd); + result = checkForConflictsRegularGpio(gpioConfig.first, *regularGpio, mapToAdd); if(result != HasReturnvaluesIF::RETURN_OK) { status = result; } @@ -259,17 +296,19 @@ ReturnValue_t LinuxLibgpioIF::checkForConflicts(GpioMap& mapToAdd){ ReturnValue_t LinuxLibgpioIF::checkForConflictsRegularGpio(gpioId_t gpioIdToCheck, - GpiodRegular* gpioToCheck, GpioMap& mapToAdd) { + GpiodRegularBase& gpioToCheck, GpioMap& mapToAdd) { /* Cross check with private map */ gpioMapIter = gpioMap.find(gpioIdToCheck); if(gpioMapIter != gpioMap.end()) { - if(gpioMapIter->second->gpioType != gpio::GpioTypes::GPIO_REGULAR) { + auto& gpioType = gpioMapIter->second->gpioType; + if(gpioType != gpio::GpioTypes::GPIO_REGULAR_BY_CHIP and + gpioType != gpio::GpioTypes::GPIO_REGULAR_BY_LABEL) { sif::warning << "LinuxLibgpioIF::checkForConflicts: ID already exists for different " "GPIO type" << gpioIdToCheck << ". Removing duplicate." << std::endl; mapToAdd.erase(gpioIdToCheck); return HasReturnvaluesIF::RETURN_OK; } - auto ownRegularGpio = dynamic_cast(gpioMapIter->second); + auto ownRegularGpio = dynamic_cast(gpioMapIter->second); if(ownRegularGpio == nullptr) { return GPIO_TYPE_FAILURE; } diff --git a/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h index 00e1bdfea..31e4a7e80 100644 --- a/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h +++ b/hal/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h @@ -6,6 +6,7 @@ #include class GpioCookie; +class GpiodRegularIF; /** * @brief This class implements the GpioIF for a linux based system. The @@ -47,9 +48,13 @@ private: * @param gpioId The GPIO ID of the GPIO to drive. * @param logiclevel The logic level to set. O or 1. */ - ReturnValue_t driveGpio(gpioId_t gpioId, GpiodRegular* regularGpio, unsigned int logiclevel); + ReturnValue_t driveGpio(gpioId_t gpioId, GpiodRegularBase& regularGpio, + gpio::Levels logicLevel); - ReturnValue_t configureRegularGpio(gpioId_t gpioId, GpiodRegular* regularGpio); + ReturnValue_t configureGpioByLabel(gpioId_t gpioId, GpiodRegularByLabel& gpioByLabel); + ReturnValue_t configureGpioByChip(gpioId_t gpioId, GpiodRegularByChip& gpioByChip); + ReturnValue_t configureRegularGpio(gpioId_t gpioId, gpio::GpioTypes gpioType, + struct gpiod_chip* chip, GpiodRegularBase& regularGpio, std::string failOutput); /** * @brief This function checks if GPIOs are already registered and whether @@ -62,7 +67,7 @@ private: */ ReturnValue_t checkForConflicts(GpioMap& mapToAdd); - ReturnValue_t checkForConflictsRegularGpio(gpioId_t gpiodId, GpiodRegular* regularGpio, + ReturnValue_t checkForConflictsRegularGpio(gpioId_t gpiodId, GpiodRegularBase& regularGpio, GpioMap& mapToAdd); ReturnValue_t checkForConflictsCallbackGpio(gpioId_t gpiodId, GpioCallback* regularGpio, GpioMap& mapToAdd); diff --git a/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp b/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp index 6a71f291c..e1c274c0c 100644 --- a/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp +++ b/hal/src/fsfw_hal/linux/rpi/GpioRPi.cpp @@ -12,7 +12,7 @@ ReturnValue_t gpio::createRpiGpioConfig(GpioCookie* cookie, gpioId_t gpioId, int return HasReturnvaluesIF::RETURN_FAILED; } - GpiodRegular* config = new GpiodRegular(); + auto config = new GpiodRegularByChip(); /* Default chipname for Raspberry Pi. There is still gpiochip1 for expansion, but most users will not need this */ config->chipname = "gpiochip0"; From bfae25ff2dc68362c639ea8080e9b42e0c1d4add Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 23 Sep 2021 18:06:04 +0200 Subject: [PATCH 115/136] Updates for SPI 1. Better names for functions 2. Reply size is set to 0 --- hal/src/fsfw_hal/linux/spi/SpiComIF.cpp | 34 +++++++++++++++--------- hal/src/fsfw_hal/linux/spi/SpiComIF.h | 1 + hal/src/fsfw_hal/linux/spi/SpiCookie.cpp | 2 +- hal/src/fsfw_hal/linux/spi/SpiCookie.h | 6 ++--- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp index 48bf74491..9c4e66ae1 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.cpp @@ -15,11 +15,6 @@ #include #include -/* Can be used for low-level debugging of the SPI bus */ -#ifndef FSFW_HAL_LINUX_SPI_WIRETAPPING -#define FSFW_HAL_LINUX_SPI_WIRETAPPING 0 -#endif - SpiComIF::SpiComIF(object_id_t objectId, GpioIF* gpioComIF): SystemObject(objectId), gpioComIF(gpioComIF) { if(gpioComIF == nullptr) { @@ -146,8 +141,8 @@ ReturnValue_t SpiComIF::sendMessage(CookieIF *cookie, const uint8_t *sendData, s if(sendLen > spiCookie->getMaxBufferSize()) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::warning << "SpiComIF::sendMessage: Too much data sent, send length" << sendLen << - "larger than maximum buffer length" << spiCookie->getMaxBufferSize() << std::endl; + sif::warning << "SpiComIF::sendMessage: Too much data sent, send length " << sendLen << + "larger than maximum buffer length " << spiCookie->getMaxBufferSize() << std::endl; #else sif::printWarning("SpiComIF::sendMessage: Too much data sent, send length %lu larger " "than maximum buffer length %lu!\n", static_cast(sendLen), @@ -193,7 +188,7 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie *spiCookie, const spiCookie->getSpiParameters(spiMode, spiSpeed, nullptr); setSpiSpeedAndMode(fileDescriptor, spiMode, spiSpeed); spiCookie->assignWriteBuffer(sendData); - spiCookie->assignTransferSize(sendLen); + spiCookie->setTransferSize(sendLen); bool fullDuplex = spiCookie->isFullDuplex(); gpioId_t gpioId = spiCookie->getChipSelectPin(); @@ -202,12 +197,26 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie *spiCookie, const if(gpioId != gpio::NO_GPIO) { result = spiMutex->lockMutex(timeoutType, timeoutMs); if (result != RETURN_OK) { +#if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::error << "SpiComIF::sendMessage: Failed to lock mutex" << std::endl; +#else + sif::printError("SpiComIF::sendMessage: Failed to lock mutex\n"); +#endif +#endif + return result; + } + ReturnValue_t result = gpioComIF->pullLow(gpioId); + if(result != HasReturnvaluesIF::RETURN_OK) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "SpiComIF::sendMessage: Pulling low CS pin failed" << std::endl; +#else + sif::printWarning("SpiComIF::sendMessage: Pulling low CS pin failed"); +#endif #endif return result; } - gpioComIF->pullLow(gpioId); } /* Execute transfer */ @@ -218,7 +227,7 @@ ReturnValue_t SpiComIF::performRegularSendOperation(SpiCookie *spiCookie, const utility::handleIoctlError("SpiComIF::sendMessage: ioctl error."); result = FULL_DUPLEX_TRANSFER_FAILED; } -#if FSFW_HAL_LINUX_SPI_WIRETAPPING == 1 +#if FSFW_HAL_SPI_WIRETAPPING == 1 performSpiWiretapping(spiCookie); #endif /* FSFW_LINUX_SPI_WIRETAPPING == 1 */ } @@ -335,6 +344,7 @@ ReturnValue_t SpiComIF::readReceivedMessage(CookieIF *cookie, uint8_t **buffer, *buffer = rxBuf; *size = spiCookie->getCurrentTransferSize(); + spiCookie->setTransferSize(0); return HasReturnvaluesIF::RETURN_OK; } @@ -388,11 +398,11 @@ GpioIF* SpiComIF::getGpioInterface() { void SpiComIF::setSpiSpeedAndMode(int spiFd, spi::SpiModes mode, uint32_t speed) { int retval = ioctl(spiFd, SPI_IOC_WR_MODE, reinterpret_cast(&mode)); if(retval != 0) { - utility::handleIoctlError("SpiTestClass::performRm3100Test: Setting SPI mode failed!"); + utility::handleIoctlError("SpiComIF::setSpiSpeedAndMode: Setting SPI mode failed"); } retval = ioctl(spiFd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); if(retval != 0) { - utility::handleIoctlError("SpiTestClass::performRm3100Test: Setting SPI speed failed!"); + utility::handleIoctlError("SpiComIF::setSpiSpeedAndMode: Setting SPI speed failed"); } } diff --git a/hal/src/fsfw_hal/linux/spi/SpiComIF.h b/hal/src/fsfw_hal/linux/spi/SpiComIF.h index d43e25054..bcca7462d 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiComIF.h +++ b/hal/src/fsfw_hal/linux/spi/SpiComIF.h @@ -1,6 +1,7 @@ #ifndef LINUX_SPI_SPICOMIF_H_ #define LINUX_SPI_SPICOMIF_H_ +#include "fsfw/FSFW.h" #include "spiDefinitions.h" #include "returnvalues/classIds.h" #include "fsfw_hal/common/gpio/GpioIF.h" diff --git a/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp index 54d8aa161..f07954e95 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp +++ b/hal/src/fsfw_hal/linux/spi/SpiCookie.cpp @@ -121,7 +121,7 @@ bool SpiCookie::isFullDuplex() const { return not this->halfDuplex; } -void SpiCookie::assignTransferSize(size_t transferSize) { +void SpiCookie::setTransferSize(size_t transferSize) { spiTransferStruct.len = transferSize; } diff --git a/hal/src/fsfw_hal/linux/spi/SpiCookie.h b/hal/src/fsfw_hal/linux/spi/SpiCookie.h index acf7c77c3..844fd4219 100644 --- a/hal/src/fsfw_hal/linux/spi/SpiCookie.h +++ b/hal/src/fsfw_hal/linux/spi/SpiCookie.h @@ -103,10 +103,10 @@ public: void assignReadBuffer(uint8_t* rx); void assignWriteBuffer(const uint8_t* tx); /** - * Assign size for the next transfer. + * Set size for the next transfer. Set to 0 for no transfer * @param transferSize */ - void assignTransferSize(size_t transferSize); + void setTransferSize(size_t transferSize); size_t getCurrentTransferSize() const; struct UncommonParameters { @@ -158,8 +158,6 @@ private: std::string spiDev, const size_t maxSize, spi::SpiModes spiMode, uint32_t spiSpeed, spi::send_callback_function_t callback, void* args); - size_t currentTransferSize = 0; - address_t spiAddress; gpioId_t chipSelectPin; std::string spiDevice; From fc9b85d5db29079ec96031a160a98f5caab65a81 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 23 Sep 2021 18:06:54 +0200 Subject: [PATCH 116/136] update FSFW.h.in --- src/fsfw/FSFW.h.in | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in index f0eb93656..96460ae4c 100644 --- a/src/fsfw/FSFW.h.in +++ b/src/fsfw/FSFW.h.in @@ -16,6 +16,11 @@ #cmakedefine FSFW_ADD_MONITORING #cmakedefine FSFW_ADD_SGP4_PROPAGATOR +// Can be used for low-level debugging of the SPI bus +#ifndef FSFW_HAL_SPI_WIRETAPPING +#define FSFW_HAL_SPI_WIRETAPPING 0 +#endif + #ifndef FSFW_HAL_L3GD20_GYRO_DEBUG #define FSFW_HAL_L3GD20_GYRO_DEBUG 0 #endif /* FSFW_HAL_L3GD20_GYRO_DEBUG */ From f2bc374f0ffd349c3c02552885433735eb632f92 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 23 Sep 2021 18:12:59 +0200 Subject: [PATCH 117/136] Device handler updates --- .../fsfw_hal/devicehandlers/CMakeLists.txt | 2 + .../devicehandlers/GyroL3GD20Handler.cpp | 43 ++++- .../devicehandlers/GyroL3GD20Handler.h | 21 ++- .../devicedefinitions/MgmLIS3HandlerDefs.h | 178 ++++++++++++++++++ .../devicedefinitions/MgmRM3100HandlerDefs.h | 132 +++++++++++++ 5 files changed, 364 insertions(+), 12 deletions(-) create mode 100644 hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h create mode 100644 hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h diff --git a/hal/src/fsfw_hal/devicehandlers/CMakeLists.txt b/hal/src/fsfw_hal/devicehandlers/CMakeLists.txt index cf542d8d9..94e67c722 100644 --- a/hal/src/fsfw_hal/devicehandlers/CMakeLists.txt +++ b/hal/src/fsfw_hal/devicehandlers/CMakeLists.txt @@ -1,3 +1,5 @@ target_sources(${LIB_FSFW_NAME} PRIVATE GyroL3GD20Handler.cpp + MgmRM3100Handler.cpp + MgmLIS3MDLHandler.cpp ) diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp index 4a492e5df..70ba49eb9 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp @@ -3,11 +3,11 @@ #include "fsfw/datapool/PoolReadGuard.h" GyroHandlerL3GD20H::GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, - CookieIF *comCookie, uint8_t switchId, uint32_t transitionDelayMs): + CookieIF *comCookie, uint32_t transitionDelayMs): DeviceHandlerBase(objectId, deviceCommunication, comCookie), - switchId(switchId), transitionDelayMs(transitionDelayMs), dataset(this) { + transitionDelayMs(transitionDelayMs), dataset(this) { #if FSFW_HAL_L3GD20_GYRO_DEBUG == 1 - debugDivider = new PeriodicOperationDivider(5); + debugDivider = new PeriodicOperationDivider(3); #endif } @@ -215,11 +215,32 @@ ReturnValue_t GyroHandlerL3GD20H::interpretDeviceReply(DeviceCommandId_t id, PoolReadGuard readSet(&dataset); if(readSet.getReadResult() == HasReturnvaluesIF::RETURN_OK) { - dataset.angVelocX = angVelocX; - dataset.angVelocY = angVelocY; - dataset.angVelocZ = angVelocZ; + if(std::abs(angVelocX) < this->absLimitX) { + dataset.angVelocX = angVelocX; + dataset.angVelocX.setValid(true); + } + else { + dataset.angVelocX.setValid(false); + } + + if(std::abs(angVelocY) < this->absLimitY) { + dataset.angVelocY = angVelocY; + dataset.angVelocY.setValid(true); + } + else { + dataset.angVelocY.setValid(false); + } + + if(std::abs(angVelocZ) < this->absLimitZ) { + dataset.angVelocZ = angVelocZ; + dataset.angVelocZ.setValid(true); + } + else { + dataset.angVelocZ.setValid(false); + } + dataset.temperature = temperature; - dataset.setValidity(true, true); + dataset.temperature.setValid(true); } break; } @@ -234,7 +255,7 @@ uint32_t GyroHandlerL3GD20H::getTransitionDelayMs(Mode_t from, Mode_t to) { return this->transitionDelayMs; } -void GyroHandlerL3GD20H::setGoNormalModeAtStartup() { +void GyroHandlerL3GD20H::setToGoToNormalMode(bool enable) { this->goNormalModeImmediately = true; } @@ -256,3 +277,9 @@ void GyroHandlerL3GD20H::fillCommandAndReplyMap() { void GyroHandlerL3GD20H::modeChanged() { internalState = InternalState::NONE; } + +void GyroHandlerL3GD20H::setAbsoluteLimits(float limitX, float limitY, float limitZ) { + this->absLimitX = limitX; + this->absLimitY = limitY; + this->absLimitZ = limitZ; +} diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h index bc1d9c1cf..870f551d2 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h @@ -19,13 +19,22 @@ class GyroHandlerL3GD20H: public DeviceHandlerBase { public: GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, - CookieIF* comCookie, uint8_t switchId, uint32_t transitionDelayMs = 10000); + CookieIF* comCookie, uint32_t transitionDelayMs); virtual ~GyroHandlerL3GD20H(); + /** + * Set the absolute limit for the values on the axis in degrees per second. + * The dataset values will be marked as invalid if that limit is exceeded + * @param xLimit + * @param yLimit + * @param zLimit + */ + void setAbsoluteLimits(float limitX, float limitY, float limitZ); + /** * @brief Configure device handler to go to normal mode immediately */ - void setGoNormalModeAtStartup(); + void setToGoToNormalMode(bool enable); protected: /* DeviceHandlerBase overrides */ @@ -40,12 +49,12 @@ protected: size_t commandDataLen) override; ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) override; - ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, + virtual ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override; void fillCommandAndReplyMap() override; void modeChanged() override; - uint32_t getTransitionDelayMs(Mode_t from, Mode_t to) override; + virtual uint32_t getTransitionDelayMs(Mode_t from, Mode_t to) override; ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) override; @@ -54,6 +63,10 @@ private: uint32_t transitionDelayMs = 0; GyroPrimaryDataset dataset; + float absLimitX = L3GD20H::RANGE_DPS_00; + float absLimitY = L3GD20H::RANGE_DPS_00; + float absLimitZ = L3GD20H::RANGE_DPS_00; + enum class InternalState { NONE, CONFIGURE, diff --git a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h new file mode 100644 index 000000000..b6f3fd844 --- /dev/null +++ b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h @@ -0,0 +1,178 @@ +#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_MGMLIS3HANDLERDEFS_H_ +#define MISSION_DEVICES_DEVICEDEFINITIONS_MGMLIS3HANDLERDEFS_H_ + +#include +#include +#include +#include + +namespace MGMLIS3MDL { + +enum Set { + ON, OFF +}; +enum OpMode { + LOW, MEDIUM, HIGH, ULTRA +}; + +enum Sensitivies: uint8_t { + GAUSS_4 = 4, + GAUSS_8 = 8, + GAUSS_12 = 12, + GAUSS_16 = 16 +}; + +/* Actually 15, we just round up a bit */ +static constexpr size_t MAX_BUFFER_SIZE = 16; + +/* Field data register scaling */ +static constexpr uint8_t GAUSS_TO_MICROTESLA_FACTOR = 100; +static constexpr float FIELD_LSB_PER_GAUSS_4_SENS = 1.0 / 6842.0; +static constexpr float FIELD_LSB_PER_GAUSS_8_SENS = 1.0 / 3421.0; +static constexpr float FIELD_LSB_PER_GAUSS_12_SENS = 1.0 / 2281.0; +static constexpr float FIELD_LSB_PER_GAUSS_16_SENS = 1.0 / 1711.0; + +static const DeviceCommandId_t READ_CONFIG_AND_DATA = 0x00; +static const DeviceCommandId_t SETUP_MGM = 0x01; +static const DeviceCommandId_t READ_TEMPERATURE = 0x02; +static const DeviceCommandId_t IDENTIFY_DEVICE = 0x03; +static const DeviceCommandId_t TEMP_SENSOR_ENABLE = 0x04; +static const DeviceCommandId_t ACCURACY_OP_MODE_SET = 0x05; + +/* Number of all control registers */ +static const uint8_t NR_OF_CTRL_REGISTERS = 5; +/* Number of registers in the MGM */ +static const uint8_t NR_OF_REGISTERS = 19; +/* Total number of adresses for all registers */ +static const uint8_t TOTAL_NR_OF_ADRESSES = 52; +static const uint8_t NR_OF_DATA_AND_CFG_REGISTERS = 14; +static const uint8_t TEMPERATURE_REPLY_LEN = 3; +static const uint8_t SETUP_REPLY_LEN = 6; + +/*------------------------------------------------------------------------*/ +/* Register adresses */ +/*------------------------------------------------------------------------*/ +/* Register adress returns identifier of device with default 0b00111101 */ +static const uint8_t IDENTIFY_DEVICE_REG_ADDR = 0b00001111; +static const uint8_t DEVICE_ID = 0b00111101; // Identifier for Device + +/* Register adress to access register 1 */ +static const uint8_t CTRL_REG1 = 0b00100000; +/* Register adress to access register 2 */ +static const uint8_t CTRL_REG2 = 0b00100001; +/* Register adress to access register 3 */ +static const uint8_t CTRL_REG3 = 0b00100010; +/* Register adress to access register 4 */ +static const uint8_t CTRL_REG4 = 0b00100011; +/* Register adress to access register 5 */ +static const uint8_t CTRL_REG5 = 0b00100100; + +/* Register adress to access status register */ +static const uint8_t STATUS_REG_IDX = 8; +static const uint8_t STATUS_REG = 0b00100111; + +/* Register adress to access low byte of x-axis */ +static const uint8_t X_LOWBYTE_IDX = 9; +static const uint8_t X_LOWBYTE = 0b00101000; +/* Register adress to access high byte of x-axis */ +static const uint8_t X_HIGHBYTE_IDX = 10; +static const uint8_t X_HIGHBYTE = 0b00101001; +/* Register adress to access low byte of y-axis */ +static const uint8_t Y_LOWBYTE_IDX = 11; +static const uint8_t Y_LOWBYTE = 0b00101010; +/* Register adress to access high byte of y-axis */ +static const uint8_t Y_HIGHBYTE_IDX = 12; +static const uint8_t Y_HIGHBYTE = 0b00101011; +/* Register adress to access low byte of z-axis */ +static const uint8_t Z_LOWBYTE_IDX = 13; +static const uint8_t Z_LOWBYTE = 0b00101100; +/* Register adress to access high byte of z-axis */ +static const uint8_t Z_HIGHBYTE_IDX = 14; +static const uint8_t Z_HIGHBYTE = 0b00101101; + +/* Register adress to access low byte of temperature sensor */ +static const uint8_t TEMP_LOWBYTE = 0b00101110; +/* Register adress to access high byte of temperature sensor */ +static const uint8_t TEMP_HIGHBYTE = 0b00101111; + +/*------------------------------------------------------------------------*/ +/* Initialize Setup Register set bits */ +/*------------------------------------------------------------------------*/ +/* General transfer bits */ +// Read=1 / Write=0 Bit +static const uint8_t RW_BIT = 7; +// Continous Read/Write Bit, increment adress +static const uint8_t MS_BIT = 6; + +/* CTRL_REG1 bits */ +static const uint8_t ST = 0; // Self test enable bit, enabled = 1 +// Enable rates higher than 80 Hz enabled = 1 +static const uint8_t FAST_ODR = 1; +static const uint8_t DO0 = 2; // Output data rate bit 2 +static const uint8_t DO1 = 3; // Output data rate bit 3 +static const uint8_t DO2 = 4; // Output data rate bit 4 +static const uint8_t OM0 = 5; // XY operating mode bit 5 +static const uint8_t OM1 = 6; // XY operating mode bit 6 +static const uint8_t TEMP_EN = 7; // Temperature sensor enable enabled = 1 +static const uint8_t CTRL_REG1_DEFAULT = (1 << TEMP_EN) | (1 << OM1) | + (1 << DO0) | (1 << DO1) | (1 << DO2); + +/* CTRL_REG2 bits */ +//reset configuration registers and user registers +static const uint8_t SOFT_RST = 2; +static const uint8_t REBOOT = 3; //reboot memory content +static const uint8_t FSO = 5; //full-scale selection bit 5 +static const uint8_t FS1 = 6; //full-scale selection bit 6 +static const uint8_t CTRL_REG2_DEFAULT = 0; + +/* CTRL_REG3 bits */ +static const uint8_t MD0 = 0; //Operating mode bit 0 +static const uint8_t MD1 = 1; //Operating mode bit 1 +//SPI serial interface mode selection enabled = 3-wire-mode +static const uint8_t SIM = 2; +static const uint8_t LP = 5; //low-power mode +static const uint8_t CTRL_REG3_DEFAULT = 0; + +/* CTRL_REG4 bits */ +//big/little endian data selection enabled = MSb at lower adress +static const uint8_t BLE = 1; +static const uint8_t OMZ0 = 2; //Z operating mode bit 2 +static const uint8_t OMZ1 = 3; //Z operating mode bit 3 +static const uint8_t CTRL_REG4_DEFAULT = (1 << OMZ1); + +/* CTRL_REG5 bits */ +static const uint8_t BDU = 6; //Block data update +static const uint8_t FAST_READ = 7; //Fast read enabled = 1 +static const uint8_t CTRL_REG5_DEFAULT = 0; + +static const uint32_t MGM_DATA_SET_ID = READ_CONFIG_AND_DATA; + +enum MgmPoolIds: lp_id_t { + FIELD_STRENGTH_X, + FIELD_STRENGTH_Y, + FIELD_STRENGTH_Z, + TEMPERATURE_CELCIUS +}; + +class MgmPrimaryDataset: public StaticLocalDataSet<5> { +public: + MgmPrimaryDataset(HasLocalDataPoolIF* hkOwner): + StaticLocalDataSet(hkOwner, MGM_DATA_SET_ID) {} + + MgmPrimaryDataset(object_id_t mgmId): + StaticLocalDataSet(sid_t(mgmId, MGM_DATA_SET_ID)) {} + + lp_var_t fieldStrengthX = lp_var_t(sid.objectId, + FIELD_STRENGTH_X, this); + lp_var_t fieldStrengthY = lp_var_t(sid.objectId, + FIELD_STRENGTH_Y, this); + lp_var_t fieldStrengthZ = lp_var_t(sid.objectId, + FIELD_STRENGTH_Z, this); + lp_var_t temperature = lp_var_t(sid.objectId, + TEMPERATURE_CELCIUS, this); +}; + +} + + +#endif /* MISSION_DEVICES_DEVICEDEFINITIONS_MGMLIS3HANDLERDEFS_H_ */ diff --git a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h new file mode 100644 index 000000000..08f80dd96 --- /dev/null +++ b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h @@ -0,0 +1,132 @@ +#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ +#define MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ + +#include +#include +#include +#include +#include + +namespace RM3100 { + +/* Actually 10, we round up a little bit */ +static constexpr size_t MAX_BUFFER_SIZE = 12; + +static constexpr uint8_t READ_MASK = 0x80; + +/*----------------------------------------------------------------------------*/ +/* CMM Register */ +/*----------------------------------------------------------------------------*/ +static constexpr uint8_t SET_CMM_CMZ = 1 << 6; +static constexpr uint8_t SET_CMM_CMY = 1 << 5; +static constexpr uint8_t SET_CMM_CMX = 1 << 4; +static constexpr uint8_t SET_CMM_DRDM = 1 << 2; +static constexpr uint8_t SET_CMM_START = 1; +static constexpr uint8_t CMM_REGISTER = 0x01; + +static constexpr uint8_t CMM_VALUE = SET_CMM_CMZ | SET_CMM_CMY | SET_CMM_CMX | + SET_CMM_DRDM | SET_CMM_START; + +/*----------------------------------------------------------------------------*/ +/* Cycle count register */ +/*----------------------------------------------------------------------------*/ +// Default value (200) +static constexpr uint8_t CYCLE_COUNT_VALUE = 0xC8; + +static constexpr float DEFAULT_GAIN = static_cast(CYCLE_COUNT_VALUE) / + 100 * 38; +static constexpr uint8_t CYCLE_COUNT_START_REGISTER = 0x04; + +/*----------------------------------------------------------------------------*/ +/* TMRC register */ +/*----------------------------------------------------------------------------*/ +static constexpr uint8_t TMRC_150HZ_VALUE = 0x94; +static constexpr uint8_t TMRC_75HZ_VALUE = 0x95; +static constexpr uint8_t TMRC_DEFAULT_37HZ_VALUE = 0x96; + +static constexpr uint8_t TMRC_REGISTER = 0x0B; +static constexpr uint8_t TMRC_DEFAULT_VALUE = TMRC_DEFAULT_37HZ_VALUE; + +static constexpr uint8_t MEASUREMENT_REG_START = 0x24; +static constexpr uint8_t BIST_REGISTER = 0x33; +static constexpr uint8_t DATA_READY_VAL = 0b1000'0000; +static constexpr uint8_t STATUS_REGISTER = 0x34; +static constexpr uint8_t REVID_REGISTER = 0x36; + +// Range in Microtesla. 1 T equals 10000 Gauss (for comparison with LIS3 MGM) +static constexpr uint16_t RANGE = 800; + +static constexpr DeviceCommandId_t READ_DATA = 0; + +static constexpr DeviceCommandId_t CONFIGURE_CMM = 1; +static constexpr DeviceCommandId_t READ_CMM = 2; + +static constexpr DeviceCommandId_t CONFIGURE_TMRC = 3; +static constexpr DeviceCommandId_t READ_TMRC = 4; + +static constexpr DeviceCommandId_t CONFIGURE_CYCLE_COUNT = 5; +static constexpr DeviceCommandId_t READ_CYCLE_COUNT = 6; + +class CycleCountCommand: public SerialLinkedListAdapter { +public: + CycleCountCommand(bool oneCycleCount = true): oneCycleCount(oneCycleCount) { + setLinks(oneCycleCount); + } + + ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size, + Endianness streamEndianness) override { + ReturnValue_t result = SerialLinkedListAdapter::deSerialize(buffer, + size, streamEndianness); + if(oneCycleCount) { + cycleCountY = cycleCountX; + cycleCountZ = cycleCountX; + } + return result; + } + + SerializeElement cycleCountX; + SerializeElement cycleCountY; + SerializeElement cycleCountZ; + +private: + void setLinks(bool oneCycleCount) { + setStart(&cycleCountX); + if(not oneCycleCount) { + cycleCountX.setNext(&cycleCountY); + cycleCountY.setNext(&cycleCountZ); + } + } + + bool oneCycleCount; +}; + +static constexpr uint32_t MGM_DATASET_ID = READ_DATA; + +enum MgmPoolIds: lp_id_t { + FIELD_STRENGTH_X, + FIELD_STRENGTH_Y, + FIELD_STRENGTH_Z, +}; + +class Rm3100PrimaryDataset: public StaticLocalDataSet<3 * sizeof(float)> { +public: + Rm3100PrimaryDataset(HasLocalDataPoolIF* hkOwner): + StaticLocalDataSet(hkOwner, MGM_DATASET_ID) {} + + Rm3100PrimaryDataset(object_id_t mgmId): + StaticLocalDataSet(sid_t(mgmId, MGM_DATASET_ID)) {} + + // Field strengths in micro Tesla. + lp_var_t fieldStrengthX = lp_var_t(sid.objectId, + FIELD_STRENGTH_X, this); + lp_var_t fieldStrengthY = lp_var_t(sid.objectId, + FIELD_STRENGTH_Y, this); + lp_var_t fieldStrengthZ = lp_var_t(sid.objectId, + FIELD_STRENGTH_Z, this); +}; + +} + + + +#endif /* MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ */ From a6bd7c0d6ea035c5acb38139ed9bac78228ab1ac Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 23 Sep 2021 18:13:51 +0200 Subject: [PATCH 118/136] added missing defines for debug output --- src/fsfw/FSFW.h.in | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/fsfw/FSFW.h.in b/src/fsfw/FSFW.h.in index f0eb93656..f124e6476 100644 --- a/src/fsfw/FSFW.h.in +++ b/src/fsfw/FSFW.h.in @@ -17,7 +17,15 @@ #cmakedefine FSFW_ADD_SGP4_PROPAGATOR #ifndef FSFW_HAL_L3GD20_GYRO_DEBUG -#define FSFW_HAL_L3GD20_GYRO_DEBUG 0 +#define FSFW_HAL_L3GD20_GYRO_DEBUG 0 #endif /* FSFW_HAL_L3GD20_GYRO_DEBUG */ +#ifndef FSFW_HAL_RM3100_MGM_DEBUG +#define FSFW_HAL_RM3100_MGM_DEBUG 0 +#endif /* FSFW_HAL_RM3100_MGM_DEBUG */ + +#ifndef FSFW_HAL_LIS3MDL_MGM_DEBUG +#define FSFW_HAL_LIS3MDL_MGM_DEBUG 0 +#endif /* FSFW_HAL_LIS3MDL_MGM_DEBUG */ + #endif /* FSFW_FSFW_H_ */ From f6b03dee6ab7755df53d415fe75802a30fd2c435 Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Fri, 24 Sep 2021 12:11:12 +0200 Subject: [PATCH 119/136] removed unused variable switchId from GyroL3GD20Handler class --- hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h | 1 - 1 file changed, 1 deletion(-) diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h index 870f551d2..e73d2fbbf 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.h @@ -59,7 +59,6 @@ protected: LocalDataPoolManager &poolManager) override; private: - uint8_t switchId = 0; uint32_t transitionDelayMs = 0; GyroPrimaryDataset dataset; From a37b6184fcddf7792aaa5b70b5882a6d838a65ab Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 25 Sep 2021 16:40:22 +0200 Subject: [PATCH 120/136] fix dataset sizes --- .../devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h | 2 +- .../devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h index b6f3fd844..9d65aae27 100644 --- a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h +++ b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmLIS3HandlerDefs.h @@ -154,7 +154,7 @@ enum MgmPoolIds: lp_id_t { TEMPERATURE_CELCIUS }; -class MgmPrimaryDataset: public StaticLocalDataSet<5> { +class MgmPrimaryDataset: public StaticLocalDataSet<4> { public: MgmPrimaryDataset(HasLocalDataPoolIF* hkOwner): StaticLocalDataSet(hkOwner, MGM_DATA_SET_ID) {} diff --git a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h index 08f80dd96..0ee2c7f62 100644 --- a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h +++ b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h @@ -108,7 +108,7 @@ enum MgmPoolIds: lp_id_t { FIELD_STRENGTH_Z, }; -class Rm3100PrimaryDataset: public StaticLocalDataSet<3 * sizeof(float)> { +class Rm3100PrimaryDataset: public StaticLocalDataSet<3> { public: Rm3100PrimaryDataset(HasLocalDataPoolIF* hkOwner): StaticLocalDataSet(hkOwner, MGM_DATASET_ID) {} From a84e60a37a6fef4147837bd6732d74722d4708c1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 26 Sep 2021 22:22:55 +0200 Subject: [PATCH 121/136] Added missing devicehandlers These devicehandlers were missing from the last PR --- .../devicehandlers/MgmLIS3MDLHandler.cpp | 518 ++++++++++++++++++ .../devicehandlers/MgmLIS3MDLHandler.h | 186 +++++++ .../devicehandlers/MgmRM3100Handler.cpp | 363 ++++++++++++ .../devicehandlers/MgmRM3100Handler.h | 111 ++++ 4 files changed, 1178 insertions(+) create mode 100644 hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp create mode 100644 hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h create mode 100644 hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp create mode 100644 hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h diff --git a/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp b/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp new file mode 100644 index 000000000..891d6fdc4 --- /dev/null +++ b/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp @@ -0,0 +1,518 @@ +#include "MgmLIS3MDLHandler.h" + +#include "fsfw/datapool/PoolReadGuard.h" +#if FSFW_HAL_LIS3MDL_MGM_DEBUG == 1 +#include "fsfw/globalfunctions/PeriodicOperationDivider.h" +#endif + +MgmLIS3MDLHandler::MgmLIS3MDLHandler(object_id_t objectId, object_id_t deviceCommunication, + CookieIF* comCookie, uint32_t transitionDelay): + DeviceHandlerBase(objectId, deviceCommunication, comCookie), + dataset(this), transitionDelay(transitionDelay) { +#if FSFW_HAL_LIS3MDL_MGM_DEBUG == 1 + debugDivider = new PeriodicOperationDivider(3); +#endif + // Set to default values right away + registers[0] = MGMLIS3MDL::CTRL_REG1_DEFAULT; + registers[1] = MGMLIS3MDL::CTRL_REG2_DEFAULT; + registers[2] = MGMLIS3MDL::CTRL_REG3_DEFAULT; + registers[3] = MGMLIS3MDL::CTRL_REG4_DEFAULT; + registers[4] = MGMLIS3MDL::CTRL_REG5_DEFAULT; + +} + +MgmLIS3MDLHandler::~MgmLIS3MDLHandler() { +} + + +void MgmLIS3MDLHandler::doStartUp() { + switch (internalState) { + case(InternalState::STATE_NONE): { + internalState = InternalState::STATE_FIRST_CONTACT; + break; + } + case(InternalState::STATE_FIRST_CONTACT): { + /* Will be set by checking device ID (WHO AM I register) */ + if(commandExecuted) { + commandExecuted = false; + internalState = InternalState::STATE_SETUP; + } + break; + } + case(InternalState::STATE_SETUP): { + internalState = InternalState::STATE_CHECK_REGISTERS; + break; + } + case(InternalState::STATE_CHECK_REGISTERS): { + /* Set up cached registers which will be used to configure the MGM. */ + if(commandExecuted) { + commandExecuted = false; + if(goToNormalMode) { + setMode(MODE_NORMAL); + } + else { + setMode(_MODE_TO_ON); + } + } + break; + } + default: + break; + } + +} + +void MgmLIS3MDLHandler::doShutDown() { + setMode(_MODE_POWER_DOWN); +} + +ReturnValue_t MgmLIS3MDLHandler::buildTransitionDeviceCommand( + DeviceCommandId_t *id) { + switch (internalState) { + case(InternalState::STATE_NONE): + case(InternalState::STATE_NORMAL): { + return HasReturnvaluesIF::RETURN_OK; + } + case(InternalState::STATE_FIRST_CONTACT): { + *id = MGMLIS3MDL::IDENTIFY_DEVICE; + break; + } + case(InternalState::STATE_SETUP): { + *id = MGMLIS3MDL::SETUP_MGM; + break; + } + case(InternalState::STATE_CHECK_REGISTERS): { + *id = MGMLIS3MDL::READ_CONFIG_AND_DATA; + break; + } + default: { + /* might be a configuration error. */ +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "GyroHandler::buildTransitionDeviceCommand: Unknown internal state!" << + std::endl; +#else + sif::printWarning("GyroHandler::buildTransitionDeviceCommand: Unknown internal state!\n"); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ + return HasReturnvaluesIF::RETURN_OK; + } + + } + return buildCommandFromCommand(*id, NULL, 0); +} + +uint8_t MgmLIS3MDLHandler::readCommand(uint8_t command, bool continuousCom) { + command |= (1 << MGMLIS3MDL::RW_BIT); + if (continuousCom == true) { + command |= (1 << MGMLIS3MDL::MS_BIT); + } + return command; +} + +uint8_t MgmLIS3MDLHandler::writeCommand(uint8_t command, bool continuousCom) { + command &= ~(1 << MGMLIS3MDL::RW_BIT); + if (continuousCom == true) { + command |= (1 << MGMLIS3MDL::MS_BIT); + } + return command; +} + +void MgmLIS3MDLHandler::setupMgm() { + + registers[0] = MGMLIS3MDL::CTRL_REG1_DEFAULT; + registers[1] = MGMLIS3MDL::CTRL_REG2_DEFAULT; + registers[2] = MGMLIS3MDL::CTRL_REG3_DEFAULT; + registers[3] = MGMLIS3MDL::CTRL_REG4_DEFAULT; + registers[4] = MGMLIS3MDL::CTRL_REG5_DEFAULT; + + prepareCtrlRegisterWrite(); +} + +ReturnValue_t MgmLIS3MDLHandler::buildNormalDeviceCommand( + DeviceCommandId_t *id) { + // Data/config register will be read in an alternating manner. + if(communicationStep == CommunicationStep::DATA) { + *id = MGMLIS3MDL::READ_CONFIG_AND_DATA; + communicationStep = CommunicationStep::TEMPERATURE; + return buildCommandFromCommand(*id, NULL, 0); + } + else { + *id = MGMLIS3MDL::READ_TEMPERATURE; + communicationStep = CommunicationStep::DATA; + return buildCommandFromCommand(*id, NULL, 0); + } + +} + +ReturnValue_t MgmLIS3MDLHandler::buildCommandFromCommand( + DeviceCommandId_t deviceCommand, const uint8_t *commandData, + size_t commandDataLen) { + switch(deviceCommand) { + case(MGMLIS3MDL::READ_CONFIG_AND_DATA): { + std::memset(commandBuffer, 0, sizeof(commandBuffer)); + commandBuffer[0] = readCommand(MGMLIS3MDL::CTRL_REG1, true); + + rawPacket = commandBuffer; + rawPacketLen = MGMLIS3MDL::NR_OF_DATA_AND_CFG_REGISTERS + 1; + return RETURN_OK; + } + case(MGMLIS3MDL::READ_TEMPERATURE): { + std::memset(commandBuffer, 0, 3); + commandBuffer[0] = readCommand(MGMLIS3MDL::TEMP_LOWBYTE, true); + + rawPacket = commandBuffer; + rawPacketLen = 3; + return RETURN_OK; + } + case(MGMLIS3MDL::IDENTIFY_DEVICE): { + return identifyDevice(); + } + case(MGMLIS3MDL::TEMP_SENSOR_ENABLE): { + return enableTemperatureSensor(commandData, commandDataLen); + } + case(MGMLIS3MDL::SETUP_MGM): { + setupMgm(); + return HasReturnvaluesIF::RETURN_OK; + } + case(MGMLIS3MDL::ACCURACY_OP_MODE_SET): { + return setOperatingMode(commandData, commandDataLen); + } + default: + return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED; + } + return HasReturnvaluesIF::RETURN_FAILED; +} + +ReturnValue_t MgmLIS3MDLHandler::identifyDevice() { + uint32_t size = 2; + commandBuffer[0] = readCommand(MGMLIS3MDL::IDENTIFY_DEVICE_REG_ADDR); + commandBuffer[1] = 0x00; + + rawPacket = commandBuffer; + rawPacketLen = size; + + return RETURN_OK; +} + +ReturnValue_t MgmLIS3MDLHandler::scanForReply(const uint8_t *start, + size_t len, DeviceCommandId_t *foundId, size_t *foundLen) { + *foundLen = len; + if (len == MGMLIS3MDL::NR_OF_DATA_AND_CFG_REGISTERS + 1) { + *foundLen = len; + *foundId = MGMLIS3MDL::READ_CONFIG_AND_DATA; + // Check validity by checking config registers + if (start[1] != registers[0] or start[2] != registers[1] or + start[3] != registers[2] or start[4] != registers[3] or + start[5] != registers[4]) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "MGMHandlerLIS3MDL::scanForReply: Invalid registers!" << std::endl; +#else + sif::printWarning("MGMHandlerLIS3MDL::scanForReply: Invalid registers!\n"); +#endif +#endif + return DeviceHandlerIF::INVALID_DATA; + } + if(mode == _MODE_START_UP) { + commandExecuted = true; + } + + } + else if(len == MGMLIS3MDL::TEMPERATURE_REPLY_LEN) { + *foundLen = len; + *foundId = MGMLIS3MDL::READ_TEMPERATURE; + } + else if (len == MGMLIS3MDL::SETUP_REPLY_LEN) { + *foundLen = len; + *foundId = MGMLIS3MDL::SETUP_MGM; + } + else if (len == SINGLE_COMMAND_ANSWER_LEN) { + *foundLen = len; + *foundId = getPendingCommand(); + if(*foundId == MGMLIS3MDL::IDENTIFY_DEVICE) { + if(start[1] != MGMLIS3MDL::DEVICE_ID) { +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::warning << "MGMHandlerLIS3MDL::scanForReply: " + "Device identification failed!" << std::endl; +#else + sif::printWarning("MGMHandlerLIS3MDL::scanForReply: " + "Device identification failed!\n"); +#endif +#endif + return DeviceHandlerIF::INVALID_DATA; + } + + if(mode == _MODE_START_UP) { + commandExecuted = true; + } + } + } + else { + return DeviceHandlerIF::INVALID_DATA; + } + + /* Data with SPI Interface always has this answer */ + if (start[0] == 0b11111111) { + return RETURN_OK; + } + else { + return DeviceHandlerIF::INVALID_DATA; + } + +} +ReturnValue_t MgmLIS3MDLHandler::interpretDeviceReply(DeviceCommandId_t id, + const uint8_t *packet) { + + switch (id) { + case MGMLIS3MDL::IDENTIFY_DEVICE: { + break; + } + case MGMLIS3MDL::SETUP_MGM: { + break; + } + case MGMLIS3MDL::READ_CONFIG_AND_DATA: { + // TODO: Store configuration in new local datasets. + float sensitivityFactor = getSensitivityFactor(getSensitivity(registers[2])); + + int16_t mgmMeasurementRawX = packet[MGMLIS3MDL::X_HIGHBYTE_IDX] << 8 + | packet[MGMLIS3MDL::X_LOWBYTE_IDX] ; + int16_t mgmMeasurementRawY = packet[MGMLIS3MDL::Y_HIGHBYTE_IDX] << 8 + | packet[MGMLIS3MDL::Y_LOWBYTE_IDX] ; + int16_t mgmMeasurementRawZ = packet[MGMLIS3MDL::Z_HIGHBYTE_IDX] << 8 + | packet[MGMLIS3MDL::Z_LOWBYTE_IDX] ; + + /* Target value in microtesla */ + float mgmX = static_cast(mgmMeasurementRawX) * sensitivityFactor + * MGMLIS3MDL::GAUSS_TO_MICROTESLA_FACTOR; + float mgmY = static_cast(mgmMeasurementRawY) * sensitivityFactor + * MGMLIS3MDL::GAUSS_TO_MICROTESLA_FACTOR; + float mgmZ = static_cast(mgmMeasurementRawZ) * sensitivityFactor + * MGMLIS3MDL::GAUSS_TO_MICROTESLA_FACTOR; + +#if FSFW_HAL_LIS3MDL_MGM_DEBUG == 1 + if(debugDivider->checkAndIncrement()) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::info << "MGMHandlerLIS3: Magnetic field strength in" + " microtesla:" << std::endl; + sif::info << "X: " << mgmX << " uT" << std::endl; + sif::info << "Y: " << mgmY << " uT" << std::endl; + sif::info << "Z: " << mgmZ << " uT" << std::endl; +#else + sif::printInfo("MGMHandlerLIS3: Magnetic field strength in microtesla:\n"); + sif::printInfo("X: %f uT\n", mgmX); + sif::printInfo("Y: %f uT\n", mgmY); + sif::printInfo("Z: %f uT\n", mgmZ); +#endif /* FSFW_CPP_OSTREAM_ENABLED == 0 */ + } +#endif /* OBSW_VERBOSE_LEVEL >= 1 */ + PoolReadGuard readHelper(&dataset); + if(readHelper.getReadResult() == HasReturnvaluesIF::RETURN_OK) { + if(std::abs(mgmX) < absLimitX) { + dataset.fieldStrengthX = mgmX; + dataset.fieldStrengthX.setValid(true); + } + else { + dataset.fieldStrengthX.setValid(false); + } + + if(std::abs(mgmY) < absLimitY) { + dataset.fieldStrengthY = mgmY; + dataset.fieldStrengthY.setValid(true); + } + else { + dataset.fieldStrengthY.setValid(false); + } + + if(std::abs(mgmZ) < absLimitZ) { + dataset.fieldStrengthZ = mgmZ; + dataset.fieldStrengthZ.setValid(true); + } + else { + dataset.fieldStrengthZ.setValid(false); + } + } + break; + } + + case MGMLIS3MDL::READ_TEMPERATURE: { + int16_t tempValueRaw = packet[2] << 8 | packet[1]; + float tempValue = 25.0 + ((static_cast(tempValueRaw)) / 8.0); + #if FSFW_HAL_LIS3MDL_MGM_DEBUG == 1 + if(debugDivider->check()) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::info << "MGMHandlerLIS3: Temperature: " << tempValue << " C" << + std::endl; +#else + sif::printInfo("MGMHandlerLIS3: Temperature: %f C\n"); +#endif + } +#endif + ReturnValue_t result = dataset.read(); + if(result == HasReturnvaluesIF::RETURN_OK) { + dataset.temperature = tempValue; + dataset.commit(); + } + break; + } + + default: { + return DeviceHandlerIF::UNKNOWN_DEVICE_REPLY; + } + + } + return RETURN_OK; +} + +MGMLIS3MDL::Sensitivies MgmLIS3MDLHandler::getSensitivity(uint8_t ctrlRegister2) { + bool fs0Set = ctrlRegister2 & (1 << MGMLIS3MDL::FSO); // Checks if FS0 bit is set + bool fs1Set = ctrlRegister2 & (1 << MGMLIS3MDL::FS1); // Checks if FS1 bit is set + + if (fs0Set && fs1Set) + return MGMLIS3MDL::Sensitivies::GAUSS_16; + else if (!fs0Set && fs1Set) + return MGMLIS3MDL::Sensitivies::GAUSS_12; + else if (fs0Set && !fs1Set) + return MGMLIS3MDL::Sensitivies::GAUSS_8; + else + return MGMLIS3MDL::Sensitivies::GAUSS_4; +} + +float MgmLIS3MDLHandler::getSensitivityFactor(MGMLIS3MDL::Sensitivies sens) { + switch(sens) { + case(MGMLIS3MDL::GAUSS_4): { + return MGMLIS3MDL::FIELD_LSB_PER_GAUSS_4_SENS; + } + case(MGMLIS3MDL::GAUSS_8): { + return MGMLIS3MDL::FIELD_LSB_PER_GAUSS_8_SENS; + } + case(MGMLIS3MDL::GAUSS_12): { + return MGMLIS3MDL::FIELD_LSB_PER_GAUSS_12_SENS; + } + case(MGMLIS3MDL::GAUSS_16): { + return MGMLIS3MDL::FIELD_LSB_PER_GAUSS_16_SENS; + } + default: { + // Should never happen + return MGMLIS3MDL::FIELD_LSB_PER_GAUSS_4_SENS; + } + } +} + + +ReturnValue_t MgmLIS3MDLHandler::enableTemperatureSensor( + const uint8_t *commandData, size_t commandDataLen) { + triggerEvent(CHANGE_OF_SETUP_PARAMETER); + uint32_t size = 2; + commandBuffer[0] = writeCommand(MGMLIS3MDL::CTRL_REG1); + if (commandDataLen > 1) { + return INVALID_NUMBER_OR_LENGTH_OF_PARAMETERS; + } + switch (*commandData) { + case (MGMLIS3MDL::ON): { + commandBuffer[1] = registers[0] | (1 << 7); + break; + } + case (MGMLIS3MDL::OFF): { + commandBuffer[1] = registers[0] & ~(1 << 7); + break; + } + default: + return INVALID_COMMAND_PARAMETER; + } + registers[0] = commandBuffer[1]; + + rawPacket = commandBuffer; + rawPacketLen = size; + + return RETURN_OK; +} + +ReturnValue_t MgmLIS3MDLHandler::setOperatingMode(const uint8_t *commandData, + size_t commandDataLen) { + triggerEvent(CHANGE_OF_SETUP_PARAMETER); + if (commandDataLen != 1) { + return INVALID_NUMBER_OR_LENGTH_OF_PARAMETERS; + } + + switch (commandData[0]) { + case MGMLIS3MDL::LOW: + registers[0] = (registers[0] & (~(1 << MGMLIS3MDL::OM1))) & (~(1 << MGMLIS3MDL::OM0)); + registers[3] = (registers[3] & (~(1 << MGMLIS3MDL::OMZ1))) & (~(1 << MGMLIS3MDL::OMZ0)); + break; + case MGMLIS3MDL::MEDIUM: + registers[0] = (registers[0] & (~(1 << MGMLIS3MDL::OM1))) | (1 << MGMLIS3MDL::OM0); + registers[3] = (registers[3] & (~(1 << MGMLIS3MDL::OMZ1))) | (1 << MGMLIS3MDL::OMZ0); + break; + + case MGMLIS3MDL::HIGH: + registers[0] = (registers[0] | (1 << MGMLIS3MDL::OM1)) & (~(1 << MGMLIS3MDL::OM0)); + registers[3] = (registers[3] | (1 << MGMLIS3MDL::OMZ1)) & (~(1 << MGMLIS3MDL::OMZ0)); + break; + + case MGMLIS3MDL::ULTRA: + registers[0] = (registers[0] | (1 << MGMLIS3MDL::OM1)) | (1 << MGMLIS3MDL::OM0); + registers[3] = (registers[3] | (1 << MGMLIS3MDL::OMZ1)) | (1 << MGMLIS3MDL::OMZ0); + break; + default: + break; + } + + return prepareCtrlRegisterWrite(); +} + +void MgmLIS3MDLHandler::fillCommandAndReplyMap() { + insertInCommandAndReplyMap(MGMLIS3MDL::READ_CONFIG_AND_DATA, 1, &dataset); + insertInCommandAndReplyMap(MGMLIS3MDL::READ_TEMPERATURE, 1); + insertInCommandAndReplyMap(MGMLIS3MDL::SETUP_MGM, 1); + insertInCommandAndReplyMap(MGMLIS3MDL::IDENTIFY_DEVICE, 1); + insertInCommandAndReplyMap(MGMLIS3MDL::TEMP_SENSOR_ENABLE, 1); + insertInCommandAndReplyMap(MGMLIS3MDL::ACCURACY_OP_MODE_SET, 1); +} + +void MgmLIS3MDLHandler::setToGoToNormalMode(bool enable) { + this->goToNormalMode = enable; +} + +ReturnValue_t MgmLIS3MDLHandler::prepareCtrlRegisterWrite() { + commandBuffer[0] = writeCommand(MGMLIS3MDL::CTRL_REG1, true); + + for (size_t i = 0; i < MGMLIS3MDL::NR_OF_CTRL_REGISTERS; i++) { + commandBuffer[i + 1] = registers[i]; + } + rawPacket = commandBuffer; + rawPacketLen = MGMLIS3MDL::NR_OF_CTRL_REGISTERS + 1; + + // We dont have to check if this is working because we just did i + return RETURN_OK; +} + +void MgmLIS3MDLHandler::doTransition(Mode_t modeFrom, Submode_t subModeFrom) { + +} + +uint32_t MgmLIS3MDLHandler::getTransitionDelayMs(Mode_t from, Mode_t to) { + return transitionDelay; +} + +void MgmLIS3MDLHandler::modeChanged(void) { + internalState = InternalState::STATE_NONE; +} + +ReturnValue_t MgmLIS3MDLHandler::initializeLocalDataPool( + localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { + localDataPoolMap.emplace(MGMLIS3MDL::FIELD_STRENGTH_X, + new PoolEntry({0.0})); + localDataPoolMap.emplace(MGMLIS3MDL::FIELD_STRENGTH_Y, + new PoolEntry({0.0})); + localDataPoolMap.emplace(MGMLIS3MDL::FIELD_STRENGTH_Z, + new PoolEntry({0.0})); + localDataPoolMap.emplace(MGMLIS3MDL::TEMPERATURE_CELCIUS, + new PoolEntry({0.0})); + return HasReturnvaluesIF::RETURN_OK; +} + +void MgmLIS3MDLHandler::setAbsoluteLimits(float xLimit, float yLimit, float zLimit) { + this->absLimitX = xLimit; + this->absLimitY = yLimit; + this->absLimitZ = zLimit; +} diff --git a/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h b/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h new file mode 100644 index 000000000..6bf89a494 --- /dev/null +++ b/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h @@ -0,0 +1,186 @@ +#ifndef MISSION_DEVICES_MGMLIS3MDLHANDLER_H_ +#define MISSION_DEVICES_MGMLIS3MDLHANDLER_H_ + +#include "fsfw/FSFW.h" +#include "events/subsystemIdRanges.h" +#include "devicedefinitions/MgmLIS3HandlerDefs.h" + +#include "fsfw/devicehandlers/DeviceHandlerBase.h" + +class PeriodicOperationDivider; + +/** + * @brief Device handler object for the LIS3MDL 3-axis magnetometer + * by STMicroeletronics + * @details + * Datasheet can be found online by googling LIS3MDL. + * Flight manual: + * https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/LIS3MDL_MGM + * @author L. Loidold, R. Mueller + */ +class MgmLIS3MDLHandler: public DeviceHandlerBase { +public: + enum class CommunicationStep { + DATA, + TEMPERATURE + }; + + static const uint8_t INTERFACE_ID = CLASS_ID::MGM_LIS3MDL; + static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::MGM_LIS3MDL; + //Notifies a command to change the setup parameters + static const Event CHANGE_OF_SETUP_PARAMETER = MAKE_EVENT(0, severity::LOW); + + MgmLIS3MDLHandler(uint32_t objectId, object_id_t deviceCommunication, CookieIF* comCookie, + uint32_t transitionDelay); + virtual ~MgmLIS3MDLHandler(); + + /** + * Set the absolute limit for the values on the axis in microtesla. The dataset values will + * be marked as invalid if that limit is exceeded + * @param xLimit + * @param yLimit + * @param zLimit + */ + void setAbsoluteLimits(float xLimit, float yLimit, float zLimit); + void setToGoToNormalMode(bool enable); + +protected: + + /** DeviceHandlerBase overrides */ + void doShutDown() override; + void doStartUp() override; + void doTransition(Mode_t modeFrom, Submode_t subModeFrom) override; + virtual uint32_t getTransitionDelayMs(Mode_t from, Mode_t to) override; + ReturnValue_t buildCommandFromCommand( + DeviceCommandId_t deviceCommand, const uint8_t *commandData, + size_t commandDataLen) override; + ReturnValue_t buildTransitionDeviceCommand( + DeviceCommandId_t *id) override; + ReturnValue_t buildNormalDeviceCommand( + DeviceCommandId_t *id) override; + ReturnValue_t scanForReply(const uint8_t *start, size_t len, + DeviceCommandId_t *foundId, size_t *foundLen) override; + /** + * This implementation is tailored towards space applications and will flag values larger + * than 100 microtesla on X,Y and 150 microtesla on Z as invalid + * @param id + * @param packet + * @return + */ + virtual ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, + const uint8_t *packet) override; + void fillCommandAndReplyMap() override; + void modeChanged(void) override; + ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, + LocalDataPoolManager &poolManager) override; + +private: + MGMLIS3MDL::MgmPrimaryDataset dataset; + //Length a single command SPI answer + static const uint8_t SINGLE_COMMAND_ANSWER_LEN = 2; + + uint32_t transitionDelay; + // Single SPI command has 2 bytes, first for adress, second for content + size_t singleComandSize = 2; + // Has the size for all adresses of the lis3mdl + the continous write bit + uint8_t commandBuffer[MGMLIS3MDL::NR_OF_DATA_AND_CFG_REGISTERS + 1]; + + float absLimitX = 100; + float absLimitY = 100; + float absLimitZ = 150; + + /** + * We want to save the registers we set, so we dont have to read the + * registers when we want to change something. + * --> everytime we change set a register we have to save it + */ + uint8_t registers[MGMLIS3MDL::NR_OF_CTRL_REGISTERS]; + + uint8_t statusRegister = 0; + bool goToNormalMode = false; + + enum class InternalState { + STATE_NONE, + STATE_FIRST_CONTACT, + STATE_SETUP, + STATE_CHECK_REGISTERS, + STATE_NORMAL + }; + + InternalState internalState = InternalState::STATE_NONE; + CommunicationStep communicationStep = CommunicationStep::DATA; + bool commandExecuted = false; + + /*------------------------------------------------------------------------*/ + /* Device specific commands and variables */ + /*------------------------------------------------------------------------*/ + /** + * Sets the read bit for the command + * @param single command to set the read-bit at + * @param boolean to select a continuous read bit, default = false + */ + uint8_t readCommand(uint8_t command, bool continuousCom = false); + + /** + * Sets the write bit for the command + * @param single command to set the write-bit at + * @param boolean to select a continuous write bit, default = false + */ + uint8_t writeCommand(uint8_t command, bool continuousCom = false); + + /** + * This Method gets the full scale for the measurement range + * e.g.: +- 4 gauss. See p.25 datasheet. + * @return The ReturnValue does not contain the sign of the value + */ + MGMLIS3MDL::Sensitivies getSensitivity(uint8_t ctrlReg2); + + /** + * The 16 bit value needs to be multiplied with a sensitivity factor + * which depends on the sensitivity configuration + * + * @param sens Configured sensitivity of the LIS3 device + * @return Multiplication factor to get the sensor value from raw data. + */ + float getSensitivityFactor(MGMLIS3MDL::Sensitivies sens); + + /** + * This Command detects the device ID + */ + ReturnValue_t identifyDevice(); + + virtual void setupMgm(); + + /*------------------------------------------------------------------------*/ + /* Non normal commands */ + /*------------------------------------------------------------------------*/ + /** + * Enables/Disables the integrated Temperaturesensor + * @param commandData On or Off + * @param length of the commandData: has to be 1 + */ + virtual ReturnValue_t enableTemperatureSensor(const uint8_t *commandData, + size_t commandDataLen); + + /** + * Sets the accuracy of the measurement of the axis. The noise is changing. + * @param commandData LOW, MEDIUM, HIGH, ULTRA + * @param length of the command, has to be 1 + */ + virtual ReturnValue_t setOperatingMode(const uint8_t *commandData, + size_t commandDataLen); + + /** + * We always update all registers together, so this method updates + * the rawpacket and rawpacketLen, so we just manipulate the local + * saved register + * + */ + ReturnValue_t prepareCtrlRegisterWrite(); + +#if FSFW_HAL_LIS3MDL_MGM_DEBUG == 1 + PeriodicOperationDivider* debugDivider; +#endif +}; + +#endif /* MISSION_DEVICES_MGMLIS3MDLHANDLER_H_ */ diff --git a/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp new file mode 100644 index 000000000..20cf95d2e --- /dev/null +++ b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp @@ -0,0 +1,363 @@ +#include "MgmRM3100Handler.h" + +#include "fsfw/datapool/PoolReadGuard.h" +#include "fsfw/globalfunctions/bitutility.h" +#include "fsfw/devicehandlers/DeviceHandlerMessage.h" +#include "fsfw/objectmanager/SystemObjectIF.h" +#include "fsfw/returnvalues/HasReturnvaluesIF.h" + + +MgmRM3100Handler::MgmRM3100Handler(object_id_t objectId, + object_id_t deviceCommunication, CookieIF* comCookie, uint32_t transitionDelay): + DeviceHandlerBase(objectId, deviceCommunication, comCookie), + primaryDataset(this), transitionDelay(transitionDelay) { +#if FSFW_HAL_RM3100_MGM_DEBUG == 1 + debugDivider = new PeriodicOperationDivider(3); +#endif +} + +MgmRM3100Handler::~MgmRM3100Handler() {} + +void MgmRM3100Handler::doStartUp() { + switch(internalState) { + case(InternalState::NONE): { + internalState = InternalState::CONFIGURE_CMM; + break; + } + case(InternalState::CONFIGURE_CMM): { + internalState = InternalState::READ_CMM; + break; + } + case(InternalState::READ_CMM): { + if(commandExecuted) { + internalState = InternalState::STATE_CONFIGURE_TMRC; + } + break; + } + case(InternalState::STATE_CONFIGURE_TMRC): { + if(commandExecuted) { + internalState = InternalState::STATE_READ_TMRC; + } + break; + } + case(InternalState::STATE_READ_TMRC): { + if(commandExecuted) { + internalState = InternalState::NORMAL; + if(goToNormalModeAtStartup) { + setMode(MODE_NORMAL); + } + else { + setMode(_MODE_TO_ON); + } + } + break; + } + default: { + break; + } + } +} + +void MgmRM3100Handler::doShutDown() { + setMode(_MODE_POWER_DOWN); +} + +ReturnValue_t MgmRM3100Handler::buildTransitionDeviceCommand( + DeviceCommandId_t *id) { + size_t commandLen = 0; + switch(internalState) { + case(InternalState::NONE): + case(InternalState::NORMAL): { + return NOTHING_TO_SEND; + } + case(InternalState::CONFIGURE_CMM): { + *id = RM3100::CONFIGURE_CMM; + break; + } + case(InternalState::READ_CMM): { + *id = RM3100::READ_CMM; + break; + } + case(InternalState::STATE_CONFIGURE_TMRC): { + commandBuffer[0] = RM3100::TMRC_DEFAULT_VALUE; + commandLen = 1; + *id = RM3100::CONFIGURE_TMRC; + break; + } + case(InternalState::STATE_READ_TMRC): { + *id = RM3100::READ_TMRC; + break; + } + default: + // Might be a configuration error + sif::warning << "MgmRM3100Handler::buildTransitionDeviceCommand: Unknown internal state!" << + std::endl; + return HasReturnvaluesIF::RETURN_OK; + } + + return buildCommandFromCommand(*id, commandBuffer, commandLen); +} + +ReturnValue_t MgmRM3100Handler::buildCommandFromCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData, size_t commandDataLen) { + switch(deviceCommand) { + case(RM3100::CONFIGURE_CMM): { + commandBuffer[0] = RM3100::CMM_REGISTER; + commandBuffer[1] = RM3100::CMM_VALUE; + rawPacket = commandBuffer; + rawPacketLen = 2; + break; + } + case(RM3100::READ_CMM): { + commandBuffer[0] = RM3100::CMM_REGISTER | RM3100::READ_MASK; + commandBuffer[1] = 0; + rawPacket = commandBuffer; + rawPacketLen = 2; + break; + } + case(RM3100::CONFIGURE_TMRC): { + return handleTmrcConfigCommand(deviceCommand, commandData, commandDataLen); + } + case(RM3100::READ_TMRC): { + commandBuffer[0] = RM3100::TMRC_REGISTER | RM3100::READ_MASK; + commandBuffer[1] = 0; + rawPacket = commandBuffer; + rawPacketLen = 2; + break; + } + case(RM3100::CONFIGURE_CYCLE_COUNT): { + return handleCycleCountConfigCommand(deviceCommand, commandData, commandDataLen); + } + case(RM3100::READ_CYCLE_COUNT): { + commandBuffer[0] = RM3100::CYCLE_COUNT_START_REGISTER | RM3100::READ_MASK; + std::memset(commandBuffer + 1, 0, 6); + rawPacket = commandBuffer; + rawPacketLen = 7; + break; + } + case(RM3100::READ_DATA): { + commandBuffer[0] = RM3100::MEASUREMENT_REG_START | RM3100::READ_MASK; + std::memset(commandBuffer + 1, 0, 9); + rawPacketLen = 10; + break; + } + default: + return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED; + } + return RETURN_OK; +} + +ReturnValue_t MgmRM3100Handler::buildNormalDeviceCommand( + DeviceCommandId_t *id) { + *id = RM3100::READ_DATA; + return buildCommandFromCommand(*id, nullptr, 0); +} + +ReturnValue_t MgmRM3100Handler::scanForReply(const uint8_t *start, + size_t len, DeviceCommandId_t *foundId, + size_t *foundLen) { + + // For SPI, ID will always be the one of the last sent command + *foundId = this->getPendingCommand(); + *foundLen = len; + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t MgmRM3100Handler::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) { + ReturnValue_t result = HasReturnvaluesIF::RETURN_OK; + switch(id) { + case(RM3100::CONFIGURE_CMM): + case(RM3100::CONFIGURE_CYCLE_COUNT): + case(RM3100::CONFIGURE_TMRC): { + // We can only check whether write was successful with read operation + if(mode == _MODE_START_UP) { + commandExecuted = true; + } + break; + } + case(RM3100::READ_CMM): { + uint8_t cmmValue = packet[1]; + // We clear the seventh bit in any case + // because this one is zero sometimes for some reason + bitutil::bitClear(&cmmValue, 6); + if(cmmValue == cmmRegValue and internalState == InternalState::READ_CMM) { + commandExecuted = true; + } + else { + // Attempt reconfiguration + internalState = InternalState::CONFIGURE_CMM; + return DeviceHandlerIF::DEVICE_REPLY_INVALID; + } + break; + } + case(RM3100::READ_TMRC): { + if(packet[1] == tmrcRegValue) { + commandExecuted = true; + // Reading TMRC was commanded. Trigger event to inform ground + if(mode != _MODE_START_UP) { + triggerEvent(tmrcSet, tmrcRegValue, 0); + } + } + else { + // Attempt reconfiguration + internalState = InternalState::STATE_CONFIGURE_TMRC; + return DeviceHandlerIF::DEVICE_REPLY_INVALID; + } + break; + } + case(RM3100::READ_CYCLE_COUNT): { + uint16_t cycleCountX = packet[1] << 8 | packet[2]; + uint16_t cycleCountY = packet[3] << 8 | packet[4]; + uint16_t cycleCountZ = packet[5] << 8 | packet[6]; + if(cycleCountX != cycleCountRegValueX or cycleCountY != cycleCountRegValueY or + cycleCountZ != cycleCountRegValueZ) { + return DeviceHandlerIF::DEVICE_REPLY_INVALID; + } + // Reading TMRC was commanded. Trigger event to inform ground + if(mode != _MODE_START_UP) { + uint32_t eventParam1 = (cycleCountX << 16) | cycleCountY; + triggerEvent(cycleCountersSet, eventParam1, cycleCountZ); + } + break; + } + case(RM3100::READ_DATA): { + result = handleDataReadout(packet); + break; + } + default: + return DeviceHandlerIF::UNKNOWN_DEVICE_REPLY; + } + + return result; +} + +ReturnValue_t MgmRM3100Handler::handleCycleCountConfigCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData, size_t commandDataLen) { + if(commandData == nullptr) { + return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; + } + + // Set cycle count + if(commandDataLen == 2) { + handleCycleCommand(true, commandData, commandDataLen); + } + else if(commandDataLen == 6) { + handleCycleCommand(false, commandData, commandDataLen); + } + else { + return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; + } + + commandBuffer[0] = RM3100::CYCLE_COUNT_VALUE; + std::memcpy(commandBuffer + 1, &cycleCountRegValueX, 2); + std::memcpy(commandBuffer + 3, &cycleCountRegValueY, 2); + std::memcpy(commandBuffer + 5, &cycleCountRegValueZ, 2); + rawPacketLen = 7; + rawPacket = commandBuffer; + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t MgmRM3100Handler::handleCycleCommand(bool oneCycleValue, + const uint8_t *commandData, size_t commandDataLen) { + RM3100::CycleCountCommand command(oneCycleValue); + ReturnValue_t result = command.deSerialize(&commandData, &commandDataLen, + SerializeIF::Endianness::BIG); + if(result != HasReturnvaluesIF::RETURN_OK) { + return result; + } + + // Data sheet p.30 "while noise limits the useful upper range to ~400 cycle counts." + if(command.cycleCountX > 450 ) { + return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; + } + + if(not oneCycleValue and (command.cycleCountY > 450 or command.cycleCountZ > 450)) { + return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; + } + + cycleCountRegValueX = command.cycleCountX; + cycleCountRegValueY = command.cycleCountY; + cycleCountRegValueZ = command.cycleCountZ; + return HasReturnvaluesIF::RETURN_OK; +} + +ReturnValue_t MgmRM3100Handler::handleTmrcConfigCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData, size_t commandDataLen) { + if(commandData == nullptr or commandDataLen != 1) { + return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; + } + + commandBuffer[0] = RM3100::TMRC_REGISTER; + commandBuffer[1] = commandData[0]; + tmrcRegValue = commandData[0]; + rawPacketLen = 2; + rawPacket = commandBuffer; + return HasReturnvaluesIF::RETURN_OK; +} + +void MgmRM3100Handler::fillCommandAndReplyMap() { + insertInCommandAndReplyMap(RM3100::CONFIGURE_CMM, 3); + insertInCommandAndReplyMap(RM3100::READ_CMM, 3); + + insertInCommandAndReplyMap(RM3100::CONFIGURE_TMRC, 3); + insertInCommandAndReplyMap(RM3100::READ_TMRC, 3); + + insertInCommandAndReplyMap(RM3100::CONFIGURE_CYCLE_COUNT, 3); + insertInCommandAndReplyMap(RM3100::READ_CYCLE_COUNT, 3); + + insertInCommandAndReplyMap(RM3100::READ_DATA, 3, &primaryDataset); +} + +void MgmRM3100Handler::modeChanged(void) { + internalState = InternalState::NONE; +} + +ReturnValue_t MgmRM3100Handler::initializeLocalDataPool( + localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { + localDataPoolMap.emplace(RM3100::FIELD_STRENGTH_X, new PoolEntry({0.0})); + localDataPoolMap.emplace(RM3100::FIELD_STRENGTH_Y, new PoolEntry({0.0})); + localDataPoolMap.emplace(RM3100::FIELD_STRENGTH_Z, new PoolEntry({0.0})); + return HasReturnvaluesIF::RETURN_OK; +} + +uint32_t MgmRM3100Handler::getTransitionDelayMs(Mode_t from, Mode_t to) { + return this->transitionDelay; +} + +void MgmRM3100Handler::setToGoToNormalMode(bool enable) { + goToNormalModeAtStartup = enable; +} + +ReturnValue_t MgmRM3100Handler::handleDataReadout(const uint8_t *packet) { + // Analyze data here. The sensor generates 24 bit signed values so we need to do some bitshift + // trickery here to calculate the raw values first + int32_t fieldStrengthRawX = ((packet[1] << 24) | (packet[2] << 16) | (packet[3] << 8)) >> 8; + int32_t fieldStrengthRawY = ((packet[4] << 24) | (packet[5] << 16) | (packet[6] << 8)) >> 8; + int32_t fieldStrengthRawZ = ((packet[7] << 24) | (packet[8] << 16) | (packet[3] << 8)) >> 8; + + // Now scale to physical value in microtesla + float fieldStrengthX = fieldStrengthRawX * scaleFactorX; + float fieldStrengthY = fieldStrengthRawY * scaleFactorX; + float fieldStrengthZ = fieldStrengthRawZ * scaleFactorX; + +#if FSFW_HAL_RM3100_MGM_DEBUG == 1 + if(debugDivider->checkAndIncrement()) { + sif::info << "MgmRM3100Handler: Magnetic field strength in" + " microtesla:" << std::endl; + /* Set terminal to utf-8 if there is an issue with micro printout. */ + sif::info << "X: " << fieldStrengthX << " uT" << std::endl; + sif::info << "Y: " << fieldStrengthY << " uT" << std::endl; + sif::info << "Z: " << fieldStrengthZ << " uT" << std::endl; + } +#endif + + // TODO: Sanity check on values? + PoolReadGuard readGuard(&primaryDataset); + if(readGuard.getReadResult() == HasReturnvaluesIF::RETURN_OK) { + primaryDataset.fieldStrengthX = fieldStrengthX; + primaryDataset.fieldStrengthY = fieldStrengthY; + primaryDataset.fieldStrengthZ = fieldStrengthZ; + primaryDataset.setValidity(true, true); + } + return RETURN_OK; +} diff --git a/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h new file mode 100644 index 000000000..1ba680cbc --- /dev/null +++ b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h @@ -0,0 +1,111 @@ +#ifndef MISSION_DEVICES_MGMRM3100HANDLER_H_ +#define MISSION_DEVICES_MGMRM3100HANDLER_H_ + +#include "fsfw/FSFW.h" +#include "devices/powerSwitcherList.h" +#include "devicedefinitions/MgmRM3100HandlerDefs.h" +#include "fsfw/devicehandlers/DeviceHandlerBase.h" + +#if FSFW_HAL_RM3100_MGM_DEBUG == 1 +#include "fsfw/globalfunctions/PeriodicOperationDivider.h" +#endif + +/** + * @brief Device Handler for the RM3100 geomagnetic magnetometer sensor + * (https://www.pnicorp.com/rm3100/) + * @details + * Flight manual: + * https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/RM3100_MGM + */ +class MgmRM3100Handler: public DeviceHandlerBase { +public: + static const uint8_t INTERFACE_ID = CLASS_ID::MGM_RM3100; + + //! [EXPORT] : [COMMENT] P1: TMRC value which was set, P2: 0 + static constexpr Event tmrcSet = event::makeEvent(SUBSYSTEM_ID::MGM_RM3100, + 0x00, severity::INFO); + + //! [EXPORT] : [COMMENT] Cycle counter set. P1: First two bytes new Cycle Count X + //! P1: Second two bytes new Cycle Count Y + //! P2: New cycle count Z + static constexpr Event cycleCountersSet = event::makeEvent( + SUBSYSTEM_ID::MGM_RM3100, 0x01, severity::INFO); + + MgmRM3100Handler(object_id_t objectId, object_id_t deviceCommunication, + CookieIF* comCookie, uint32_t transitionDelay); + virtual ~MgmRM3100Handler(); + + /** + * Configure device handler to go to normal mode after startup immediately + * @param enable + */ + void setToGoToNormalMode(bool enable); + +protected: + + /* DeviceHandlerBase overrides */ + ReturnValue_t buildTransitionDeviceCommand( + DeviceCommandId_t *id) override; + void doStartUp() override; + void doShutDown() override; + ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override; + ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData, size_t commandDataLen) override; + ReturnValue_t scanForReply(const uint8_t *start, size_t len, + DeviceCommandId_t *foundId, size_t *foundLen) override; + ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override; + + void fillCommandAndReplyMap() override; + void modeChanged(void) override; + virtual uint32_t getTransitionDelayMs(Mode_t from, Mode_t to) override; + ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, + LocalDataPoolManager &poolManager) override; + +private: + + enum class InternalState { + NONE, + CONFIGURE_CMM, + READ_CMM, + // The cycle count states are propably not going to be used because + // the default cycle count will be used. + STATE_CONFIGURE_CYCLE_COUNT, + STATE_READ_CYCLE_COUNT, + STATE_CONFIGURE_TMRC, + STATE_READ_TMRC, + NORMAL + }; + InternalState internalState = InternalState::NONE; + bool commandExecuted = false; + RM3100::Rm3100PrimaryDataset primaryDataset; + + uint8_t commandBuffer[10]; + uint8_t commandBufferLen = 0; + + uint8_t cmmRegValue = RM3100::CMM_VALUE; + uint8_t tmrcRegValue = RM3100::TMRC_DEFAULT_VALUE; + uint16_t cycleCountRegValueX = RM3100::CYCLE_COUNT_VALUE; + uint16_t cycleCountRegValueY = RM3100::CYCLE_COUNT_VALUE; + uint16_t cycleCountRegValueZ = RM3100::CYCLE_COUNT_VALUE; + float scaleFactorX = 1.0 / RM3100::DEFAULT_GAIN; + float scaleFactorY = 1.0 / RM3100::DEFAULT_GAIN; + float scaleFactorZ = 1.0 / RM3100::DEFAULT_GAIN; + + bool goToNormalModeAtStartup = false; + uint32_t transitionDelay; + + ReturnValue_t handleCycleCountConfigCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData,size_t commandDataLen); + ReturnValue_t handleCycleCommand(bool oneCycleValue, + const uint8_t *commandData, size_t commandDataLen); + + ReturnValue_t handleTmrcConfigCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData,size_t commandDataLen); + + ReturnValue_t handleDataReadout(const uint8_t* packet); +#if FSFW_HAL_RM3100_MGM_DEBUG == 1 + PeriodicOperationDivider* debugDivider; +#endif +}; + +#endif /* MISSION_DEVICEHANDLING_MGMRM3100HANDLER_H_ */ From 59feaa4b5c272899e07915accc4c3b46d3f4d45d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 26 Sep 2021 22:38:47 +0200 Subject: [PATCH 122/136] moved class id and subsystem ID --- src/fsfw/events/fwSubsystemIdRanges.h | 2 ++ src/fsfw/returnvalues/FwClassIds.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/fsfw/events/fwSubsystemIdRanges.h b/src/fsfw/events/fwSubsystemIdRanges.h index 88dee9b4e..08fb878d6 100644 --- a/src/fsfw/events/fwSubsystemIdRanges.h +++ b/src/fsfw/events/fwSubsystemIdRanges.h @@ -29,6 +29,8 @@ enum: uint8_t { PUS_SERVICE_9 = 89, PUS_SERVICE_17 = 97, PUS_SERVICE_23 = 103, + MGM_LIS3MDL = 106, + MGM_RM3100 = 107, FW_SUBSYSTEM_ID_RANGE }; diff --git a/src/fsfw/returnvalues/FwClassIds.h b/src/fsfw/returnvalues/FwClassIds.h index af32f9a76..cdbf5657c 100644 --- a/src/fsfw/returnvalues/FwClassIds.h +++ b/src/fsfw/returnvalues/FwClassIds.h @@ -76,6 +76,8 @@ enum: uint8_t { HAL_UART, //HURT HAL_I2C, //HI2C HAL_GPIO, //HGIO + MGM_LIS3MDL, //MGMLIS3 + MGM_RM3100, //MGMRM3100 FW_CLASS_ID_COUNT // [EXPORT] : [END] }; From 423f7c828189701230fe7161a680590e37bf40fb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 26 Sep 2021 22:45:32 +0200 Subject: [PATCH 123/136] missing include and printer compatbility fixes --- .../devicehandlers/GyroL3GD20Handler.cpp | 4 +++- .../devicehandlers/MgmLIS3MDLHandler.cpp | 2 ++ .../devicehandlers/MgmRM3100Handler.cpp | 19 ++++++++++++++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp index 70ba49eb9..d27351d72 100644 --- a/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp +++ b/hal/src/fsfw_hal/devicehandlers/GyroL3GD20Handler.cpp @@ -1,7 +1,9 @@ -#include "fsfw_hal/devicehandlers/GyroL3GD20Handler.h" +#include "GyroL3GD20Handler.h" #include "fsfw/datapool/PoolReadGuard.h" +#include + GyroHandlerL3GD20H::GyroHandlerL3GD20H(object_id_t objectId, object_id_t deviceCommunication, CookieIF *comCookie, uint32_t transitionDelayMs): DeviceHandlerBase(objectId, deviceCommunication, comCookie), diff --git a/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp b/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp index 891d6fdc4..804e83f2e 100644 --- a/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp +++ b/hal/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.cpp @@ -5,6 +5,8 @@ #include "fsfw/globalfunctions/PeriodicOperationDivider.h" #endif +#include + MgmLIS3MDLHandler::MgmLIS3MDLHandler(object_id_t objectId, object_id_t deviceCommunication, CookieIF* comCookie, uint32_t transitionDelay): DeviceHandlerBase(objectId, deviceCommunication, comCookie), diff --git a/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp index 20cf95d2e..124eebbc8 100644 --- a/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp +++ b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.cpp @@ -89,9 +89,16 @@ ReturnValue_t MgmRM3100Handler::buildTransitionDeviceCommand( break; } default: +#if FSFW_VERBOSE_LEVEL >= 1 +#if FSFW_CPP_OSTREAM_ENABLED == 1 // Might be a configuration error - sif::warning << "MgmRM3100Handler::buildTransitionDeviceCommand: Unknown internal state!" << - std::endl; + sif::warning << "MgmRM3100Handler::buildTransitionDeviceCommand: " + "Unknown internal state" << std::endl; +#else + sif::printWarning("MgmRM3100Handler::buildTransitionDeviceCommand: " + "Unknown internal state\n"); +#endif +#endif return HasReturnvaluesIF::RETURN_OK; } @@ -342,12 +349,18 @@ ReturnValue_t MgmRM3100Handler::handleDataReadout(const uint8_t *packet) { #if FSFW_HAL_RM3100_MGM_DEBUG == 1 if(debugDivider->checkAndIncrement()) { +#if FSFW_CPP_OSTREAM_ENABLED == 1 sif::info << "MgmRM3100Handler: Magnetic field strength in" " microtesla:" << std::endl; - /* Set terminal to utf-8 if there is an issue with micro printout. */ sif::info << "X: " << fieldStrengthX << " uT" << std::endl; sif::info << "Y: " << fieldStrengthY << " uT" << std::endl; sif::info << "Z: " << fieldStrengthZ << " uT" << std::endl; +#else + sif::printInfo("MgmRM3100Handler: Magnetic field strength in microtesla:\n"); + sif::printInfo("X: %f uT\n", fieldStrengthX); + sif::printInfo("Y: %f uT\n", fieldStrengthY); + sif::printInfo("Z: %f uT\n", fieldStrengthZ); +#endif } #endif From 85c04dee2340da305684a347c01c391ef41dfcc7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 27 Sep 2021 11:12:38 +0200 Subject: [PATCH 124/136] increase limit of packets stored --- src/fsfw/tmtcservices/TmTcBridge.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fsfw/tmtcservices/TmTcBridge.h b/src/fsfw/tmtcservices/TmTcBridge.h index d3689d19f..4980caff9 100644 --- a/src/fsfw/tmtcservices/TmTcBridge.h +++ b/src/fsfw/tmtcservices/TmTcBridge.h @@ -19,7 +19,7 @@ class TmTcBridge : public AcceptsTelemetryIF, public: static constexpr uint8_t TMTC_RECEPTION_QUEUE_DEPTH = 20; static constexpr uint8_t LIMIT_STORED_DATA_SENT_PER_CYCLE = 15; - static constexpr uint8_t LIMIT_DOWNLINK_PACKETS_STORED = 20; + static constexpr uint8_t LIMIT_DOWNLINK_PACKETS_STORED = 200; static constexpr uint8_t DEFAULT_STORED_DATA_SENT_PER_CYCLE = 5; static constexpr uint8_t DEFAULT_DOWNLINK_PACKETS_STORED = 10; From 42df77ff32a147a33c0c90ac154377dc414b7b6e Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 27 Sep 2021 11:16:27 +0200 Subject: [PATCH 125/136] check for empty PST and return appropriate returnvalue --- src/fsfw/returnvalues/FwClassIds.h | 2 ++ src/fsfw/tasks/FixedSlotSequence.cpp | 6 +++--- src/fsfw/tasks/FixedSlotSequence.h | 4 +++- src/fsfw/tasks/FixedTimeslotTaskIF.h | 5 ++++- src/fsfw/tasks/Typedef.h | 9 ++++++--- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/fsfw/returnvalues/FwClassIds.h b/src/fsfw/returnvalues/FwClassIds.h index af32f9a76..ce093b09f 100644 --- a/src/fsfw/returnvalues/FwClassIds.h +++ b/src/fsfw/returnvalues/FwClassIds.h @@ -72,10 +72,12 @@ enum: uint8_t { PUS_SERVICE_3, //PUS3 PUS_SERVICE_9, //PUS9 FILE_SYSTEM, //FILS + LINUX_OSAL, //UXOS HAL_SPI, //HSPI HAL_UART, //HURT HAL_I2C, //HI2C HAL_GPIO, //HGIO + FIXED_SLOT_TASK_IF, //FTIF FW_CLASS_ID_COUNT // [EXPORT] : [END] }; diff --git a/src/fsfw/tasks/FixedSlotSequence.cpp b/src/fsfw/tasks/FixedSlotSequence.cpp index 2e5384b71..5e896af4b 100644 --- a/src/fsfw/tasks/FixedSlotSequence.cpp +++ b/src/fsfw/tasks/FixedSlotSequence.cpp @@ -1,4 +1,5 @@ #include "fsfw/tasks/FixedSlotSequence.h" +#include "fsfw/tasks/FixedTimeslotTaskIF.h" #include "fsfw/serviceinterface/ServiceInterface.h" #include @@ -92,10 +93,9 @@ void FixedSlotSequence::addSlot(object_id_t componentId, uint32_t slotTimeMs, ReturnValue_t FixedSlotSequence::checkSequence() const { if(slotList.empty()) { #if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::error << "FixedSlotSequence::checkSequence:" - << " Slot list is empty!" << std::endl; + sif::warning << "FixedSlotSequence::checkSequence: Slot list is empty!" << std::endl; #endif - return HasReturnvaluesIF::RETURN_FAILED; + return FixedTimeslotTaskIF::SLOT_LIST_EMPTY; } if(customCheckFunction != nullptr) { diff --git a/src/fsfw/tasks/FixedSlotSequence.h b/src/fsfw/tasks/FixedSlotSequence.h index 077dd10ba..7f49ea0c5 100644 --- a/src/fsfw/tasks/FixedSlotSequence.h +++ b/src/fsfw/tasks/FixedSlotSequence.h @@ -2,7 +2,7 @@ #define FSFW_TASKS_FIXEDSLOTSEQUENCE_H_ #include "FixedSequenceSlot.h" -#include "../objectmanager/SystemObject.h" +#include "fsfw/objectmanager/SystemObject.h" #include @@ -136,6 +136,7 @@ public: * @details * Checks if timing is ok (must be ascending) and if all handlers were found. * @return + * - SLOT_LIST_EMPTY if the slot list is empty */ ReturnValue_t checkSequence() const; @@ -147,6 +148,7 @@ public: * The general check will be continued for now if the custom check function * fails but a diagnostic debug output will be given. * @param customCheckFunction + * */ void addCustomCheck(ReturnValue_t (*customCheckFunction)(const SlotList &)); diff --git a/src/fsfw/tasks/FixedTimeslotTaskIF.h b/src/fsfw/tasks/FixedTimeslotTaskIF.h index 2fc7e0922..605239a47 100644 --- a/src/fsfw/tasks/FixedTimeslotTaskIF.h +++ b/src/fsfw/tasks/FixedTimeslotTaskIF.h @@ -2,7 +2,8 @@ #define FRAMEWORK_TASKS_FIXEDTIMESLOTTASKIF_H_ #include "PeriodicTaskIF.h" -#include "../objectmanager/ObjectManagerIF.h" +#include "fsfw/objectmanager/ObjectManagerIF.h" +#include "fsfw/returnvalues/FwClassIds.h" /** * @brief Following the same principle as the base class IF. @@ -12,6 +13,8 @@ class FixedTimeslotTaskIF : public PeriodicTaskIF { public: virtual ~FixedTimeslotTaskIF() {} + static constexpr ReturnValue_t SLOT_LIST_EMPTY = HasReturnvaluesIF::makeReturnCode( + CLASS_ID::FIXED_SLOT_TASK_IF, 0); /** * Add an object with a slot time and the execution step to the task. * The execution step will be passed to the object (e.g. as an operation diff --git a/src/fsfw/tasks/Typedef.h b/src/fsfw/tasks/Typedef.h index 55f6bda26..f2f9fe65a 100644 --- a/src/fsfw/tasks/Typedef.h +++ b/src/fsfw/tasks/Typedef.h @@ -1,5 +1,8 @@ -#ifndef FRAMEWORK_TASKS_TYPEDEF_H_ -#define FRAMEWORK_TASKS_TYPEDEF_H_ +#ifndef FSFW_TASKS_TYPEDEF_H_ +#define FSFW_TASKS_TYPEDEF_H_ + +#include +#include typedef const char* TaskName; typedef uint32_t TaskPriority; @@ -7,4 +10,4 @@ typedef size_t TaskStackSize; typedef double TaskPeriod; typedef void (*TaskDeadlineMissedFunction)(); -#endif /* FRAMEWORK_TASKS_TYPEDEF_H_ */ +#endif /* FSFW_TASKS_TYPEDEF_H_ */ From 8ec35f158c0d445c72f4a5761dd1660c5725e7e0 Mon Sep 17 00:00:00 2001 From: Steffen Gaisser Date: Mon, 27 Sep 2021 19:57:42 +0200 Subject: [PATCH 126/136] Removed Timer and updated Countdown --- osal/linux/Timer.cpp | 45 ------------------------- osal/linux/Timer.h | 45 ------------------------- timemanager/Countdown.cpp | 36 ++++++++++++++------ timemanager/Countdown.h | 71 +++++++++++++++++++++++++++++++++------ 4 files changed, 86 insertions(+), 111 deletions(-) delete mode 100644 osal/linux/Timer.cpp delete mode 100644 osal/linux/Timer.h diff --git a/osal/linux/Timer.cpp b/osal/linux/Timer.cpp deleted file mode 100644 index fe0fbebba..000000000 --- a/osal/linux/Timer.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "Timer.h" -#include "../../serviceinterface/ServiceInterfaceStream.h" -#include - - -Timer::Timer() { - sigevent sigEvent; - sigEvent.sigev_notify = SIGEV_NONE; - sigEvent.sigev_signo = 0; - sigEvent.sigev_value.sival_ptr = &timerId; - int status = timer_create(CLOCK_MONOTONIC, &sigEvent, &timerId); - if(status!=0){ -#if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::error << "Timer creation failed with: " << status << - " errno: " << errno << std::endl; -#endif - } -} - -Timer::~Timer() { - timer_delete(timerId); -} - -int Timer::setTimer(uint32_t intervalMs) { - itimerspec timer; - timer.it_value.tv_sec = intervalMs / 1000; - timer.it_value.tv_nsec = (intervalMs * 1000000) % (1000000000); - timer.it_interval.tv_sec = 0; - timer.it_interval.tv_nsec = 0; - return timer_settime(timerId, 0, &timer, NULL); -} - - -int Timer::getTimer(uint32_t* remainingTimeMs){ - itimerspec timer; - timer.it_value.tv_sec = 0; - timer.it_value.tv_nsec = 0; - timer.it_interval.tv_sec = 0; - timer.it_interval.tv_nsec = 0; - int status = timer_gettime(timerId, &timer); - - *remainingTimeMs = timer.it_value.tv_sec * 1000 + timer.it_value.tv_nsec / 1000000; - - return status; -} diff --git a/osal/linux/Timer.h b/osal/linux/Timer.h deleted file mode 100644 index f94bca59b..000000000 --- a/osal/linux/Timer.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef FRAMEWORK_OSAL_LINUX_TIMER_H_ -#define FRAMEWORK_OSAL_LINUX_TIMER_H_ - -#include -#include -#include - -/** - * This class is a helper for the creation of a Clock Monotonic timer which does not trigger a signal - */ -class Timer { -public: - /** - * Creates the Timer sets the timerId Member - */ - Timer(); - /** - * Deletes the timer - * - * Careful! According to POSIX documentation: - * The treatment of any pending signal generated by the deleted timer is unspecified. - */ - virtual ~Timer(); - - /** - * Set the timer given in timerId to the given interval - * - * @param intervalMs Interval in ms to be set - * @return 0 on Success 1 else - */ - int setTimer(uint32_t intervalMs); - - /** - * Get the remaining time of the timer - * - * @param remainingTimeMs Pointer to integer value which is used to return the remaining time - * @return 0 on Success 1 else (see timer_getime documentation of posix function) - */ - int getTimer(uint32_t* remainingTimeMs); - -private: - timer_t timerId; -}; - -#endif /* FRAMEWORK_OSAL_LINUX_TIMER_H_ */ diff --git a/timemanager/Countdown.cpp b/timemanager/Countdown.cpp index 20b56189f..7aa40e3e9 100644 --- a/timemanager/Countdown.cpp +++ b/timemanager/Countdown.cpp @@ -1,4 +1,6 @@ #include "Countdown.h" +#include "fsfw/serviceinterface/ServiceInterfaceStream.h" + Countdown::Countdown(uint32_t initialTimeout): timeout(initialTimeout) { } @@ -6,16 +8,14 @@ Countdown::Countdown(uint32_t initialTimeout): timeout(initialTimeout) { Countdown::~Countdown() { } -ReturnValue_t Countdown::setTimeout(uint32_t miliseconds) { - ReturnValue_t return_value = Clock::getUptime( &startTime ); - timeout = miliseconds; - return return_value; +ReturnValue_t Countdown::setTimeout(uint32_t milliseconds) { + ReturnValue_t returnValue = Clock::getUptime( &startTime ); + timeout = milliseconds; + return returnValue; } bool Countdown::hasTimedOut() const { - uint32_t current_time; - Clock::getUptime( ¤t_time ); - if ( uint32_t(current_time - startTime) >= timeout) { + if ( uint32_t( this->getCurrentTime() - startTime) >= timeout) { return true; } else { return false; @@ -31,7 +31,23 @@ ReturnValue_t Countdown::resetTimer() { } void Countdown::timeOut() { - uint32_t current_time; - Clock::getUptime( ¤t_time ); - startTime= current_time - timeout; + startTime = this->getCurrentTime() - timeout; +} + +uint32_t Countdown::getRemainingMillis() const { + // We fetch the time before the if-statement + // to be sure that the return is in + // range 0 <= number <= timeout + uint32_t currentTime = this->getCurrentTime(); + if (this->hasTimedOut()){ + return 0; + }else{ + return (startTime + timeout) - currentTime; + } +} + +uint32_t Countdown::getCurrentTime() const { + uint32_t current_time; + Clock::getUptime( ¤t_time ); + return current_time; } diff --git a/timemanager/Countdown.h b/timemanager/Countdown.h index f6a41e73d..c0afdf755 100644 --- a/timemanager/Countdown.h +++ b/timemanager/Countdown.h @@ -4,28 +4,77 @@ #include "Clock.h" /** - * @brief This file defines the Countdown class. - * @author baetz + * + * Countdown keeps track of a timespan. + * + * Countdown::resetTimer restarts the timer. + * Countdown::setTimeout sets a new countdown duration and resets. + * + * Can be checked with Countdown::hasTimedOut or + * Countdown::isBusy. + * + * Countdown::timeOut will force the timer to time out. + * */ class Countdown { public: - uint32_t timeout; + /** + * Constructor which sets the countdown duration in milliseconds + * + * It does not start the countdown! + * Call resetTimer or setTimeout before usage! + * Otherwise a call to hasTimedOut might return True. + * + * @param initialTimeout Countdown duration in milliseconds + */ Countdown(uint32_t initialTimeout = 0); ~Countdown(); - ReturnValue_t setTimeout(uint32_t miliseconds); - + /** + * Call to set a new countdown duration. + * + * Resets the countdown! + * + * @param milliseconds new countdown duration in milliseconds + * @return Returnvalue from Clock::getUptime + */ + ReturnValue_t setTimeout(uint32_t milliseconds); + /** + * Returns true if the countdown duration has passed. + * + * @return True if the countdown has passed + * False if it is still running + */ bool hasTimedOut() const; - + /** + * Complementary to hasTimedOut. + * + * @return True if the countdown is till running + * False if it is still running + */ bool isBusy() const; - - //!< Use last set timeout value and restart timer. + /** + * Uses last set timeout value and restarts timer. + */ ReturnValue_t resetTimer(); - - //!< Make hasTimedOut() return true + /** + * Returns the remaining milliseconds (0 if timeout) + */ + uint32_t getRemainingMillis() const; + /** + * Makes hasTimedOut() return true + */ void timeOut(); - + /** + * Internal countdown duration in milliseconds + */ + uint32_t timeout; private: + /** + * Last time the timer was started (uptime) + */ uint32_t startTime = 0; + + uint32_t getCurrentTime() const; }; #endif /* FSFW_TIMEMANAGER_COUNTDOWN_H_ */ From 5064d449992a921936211d7e2d8dbac99e4cf6cc Mon Sep 17 00:00:00 2001 From: Steffen Gaisser Date: Mon, 27 Sep 2021 20:45:44 +0200 Subject: [PATCH 127/136] Removed Timer.cpp from CMakeLists --- osal/linux/CMakeLists.txt | 1 - timemanager/Countdown.cpp | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/osal/linux/CMakeLists.txt b/osal/linux/CMakeLists.txt index 0fb66b3ed..418007643 100644 --- a/osal/linux/CMakeLists.txt +++ b/osal/linux/CMakeLists.txt @@ -13,7 +13,6 @@ target_sources(${LIB_FSFW_NAME} QueueFactory.cpp SemaphoreFactory.cpp TaskFactory.cpp - Timer.cpp tcpipHelpers.cpp unixUtility.cpp ) diff --git a/timemanager/Countdown.cpp b/timemanager/Countdown.cpp index 7aa40e3e9..81681beb1 100644 --- a/timemanager/Countdown.cpp +++ b/timemanager/Countdown.cpp @@ -47,7 +47,7 @@ uint32_t Countdown::getRemainingMillis() const { } uint32_t Countdown::getCurrentTime() const { - uint32_t current_time; - Clock::getUptime( ¤t_time ); - return current_time; + uint32_t currentTime; + Clock::getUptime( ¤tTime ); + return currentTime; } From 4b62c8aa81abcf5490c6a3045e38d0acc9955f4b Mon Sep 17 00:00:00 2001 From: Steffen Gaisser Date: Mon, 27 Sep 2021 21:53:27 +0200 Subject: [PATCH 128/136] Added tests --- tests/src/fsfw_tests/unit/CMakeLists.txt | 1 + .../unit/timemanager/CMakeLists.txt | 3 +++ .../unit/timemanager/TestCountdown.cpp | 27 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 tests/src/fsfw_tests/unit/timemanager/CMakeLists.txt create mode 100644 tests/src/fsfw_tests/unit/timemanager/TestCountdown.cpp diff --git a/tests/src/fsfw_tests/unit/CMakeLists.txt b/tests/src/fsfw_tests/unit/CMakeLists.txt index 01e4d19c3..f30e4b6bf 100644 --- a/tests/src/fsfw_tests/unit/CMakeLists.txt +++ b/tests/src/fsfw_tests/unit/CMakeLists.txt @@ -18,4 +18,5 @@ add_subdirectory(serialize) add_subdirectory(datapoollocal) add_subdirectory(storagemanager) add_subdirectory(globalfunctions) +add_subdirectory(timemanager) add_subdirectory(tmtcpacket) diff --git a/tests/src/fsfw_tests/unit/timemanager/CMakeLists.txt b/tests/src/fsfw_tests/unit/timemanager/CMakeLists.txt new file mode 100644 index 000000000..2c6357114 --- /dev/null +++ b/tests/src/fsfw_tests/unit/timemanager/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(${TARGET_NAME} PRIVATE + TestCountdown.cpp +) diff --git a/tests/src/fsfw_tests/unit/timemanager/TestCountdown.cpp b/tests/src/fsfw_tests/unit/timemanager/TestCountdown.cpp new file mode 100644 index 000000000..b1b26679e --- /dev/null +++ b/tests/src/fsfw_tests/unit/timemanager/TestCountdown.cpp @@ -0,0 +1,27 @@ +#include "fsfw_tests/unit/CatchDefinitions.h" +#include +#include + + +TEST_CASE( "Countdown Tests", "[TestCountdown]") { + INFO("Countdown Tests"); + Countdown count(20); + REQUIRE(count.timeout == 20); + REQUIRE(count.setTimeout(100) == static_cast(HasReturnvaluesIF::RETURN_OK)); + REQUIRE(count.timeout == 100); + REQUIRE(count.setTimeout(150) == static_cast(HasReturnvaluesIF::RETURN_OK)); + REQUIRE(count.isBusy()); + REQUIRE(not count.hasTimedOut()); + uint32_t number = count.getRemainingMillis(); + REQUIRE(number > 0); + bool blocked = false; + while(not count.hasTimedOut()){ + blocked = true; + }; + REQUIRE(blocked); + number = count.getRemainingMillis(); + REQUIRE(number==0); + count.resetTimer(); + REQUIRE(not count.hasTimedOut()); + REQUIRE(count.isBusy()); +} From 4f08b2d342d2b025bb477296219d141ad3bfd2d3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 28 Sep 2021 15:42:50 +0200 Subject: [PATCH 129/136] removed include --- hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h | 1 - 1 file changed, 1 deletion(-) diff --git a/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h index 1ba680cbc..6627cbb75 100644 --- a/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h +++ b/hal/src/fsfw_hal/devicehandlers/MgmRM3100Handler.h @@ -2,7 +2,6 @@ #define MISSION_DEVICES_MGMRM3100HANDLER_H_ #include "fsfw/FSFW.h" -#include "devices/powerSwitcherList.h" #include "devicedefinitions/MgmRM3100HandlerDefs.h" #include "fsfw/devicehandlers/DeviceHandlerBase.h" From 358ee0fbf2220109e2b37446486732114ec710c4 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 28 Sep 2021 15:45:45 +0200 Subject: [PATCH 130/136] removed C++14 featue --- .../devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h index 0ee2c7f62..b6375692c 100644 --- a/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h +++ b/hal/src/fsfw_hal/devicehandlers/devicedefinitions/MgmRM3100HandlerDefs.h @@ -49,7 +49,7 @@ static constexpr uint8_t TMRC_DEFAULT_VALUE = TMRC_DEFAULT_37HZ_VALUE; static constexpr uint8_t MEASUREMENT_REG_START = 0x24; static constexpr uint8_t BIST_REGISTER = 0x33; -static constexpr uint8_t DATA_READY_VAL = 0b1000'0000; +static constexpr uint8_t DATA_READY_VAL = 0b10000000; static constexpr uint8_t STATUS_REGISTER = 0x34; static constexpr uint8_t REVID_REGISTER = 0x36; From 42b5f8a79df039a07ad1c0c886be685176a5165c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 29 Sep 2021 11:49:45 +0200 Subject: [PATCH 131/136] small fix for DLE unittest --- tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index a82ac73a9..8c2e55ed5 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -103,7 +103,7 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { for(size_t faultyDestSize = 0; faultyDestSize < expectedVec.size(); faultyDestSize ++) { result = dleEncoder.encode(vecToEncode.data(), vecToEncode.size(), buffer.data(), faultyDestSize, &encodedLen); - REQUIRE(result == DleEncoder::STREAM_TOO_SHORT); + REQUIRE(result == static_cast(DleEncoder::STREAM_TOO_SHORT)); } }; From b0cbd40e647d1a131e12f1e3ff7ae4ff45443d26 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 30 Sep 2021 11:25:42 +0200 Subject: [PATCH 132/136] possible bugfix for DLE encoder --- src/fsfw/globalfunctions/DleEncoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index 47ea5c4e5..f4691cc64 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -165,7 +165,7 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ if (sourceStream[encodedIndex++] != STX_CHAR) { return DECODING_ERROR; } - while ((encodedIndex < sourceStreamLen) + while ((encodedIndex < sourceStreamLen - 1) and (decodedIndex < maxDestStreamlen) and (sourceStream[encodedIndex] != ETX_CHAR) and (sourceStream[encodedIndex] != STX_CHAR)) { From f76f462022e45dbc13b452bb2e2c4e8cea5159f5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 30 Sep 2021 11:27:14 +0200 Subject: [PATCH 133/136] test added --- tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp index 8c2e55ed5..cffd53083 100644 --- a/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp +++ b/tests/src/fsfw_tests/unit/globalfunctions/testDleEncoder.cpp @@ -218,5 +218,10 @@ TEST_CASE("DleEncoder" , "[DleEncoder]") { REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); dleEncoder.setEscapeMode(true); + testArray1EncodedFaulty = TEST_ARRAY_1_ENCODED_ESCAPED; + testArray1EncodedFaulty[5] = 0; + result = dleEncoder.decode(testArray1EncodedFaulty.data(), testArray1EncodedFaulty.size(), + &readLen, buffer.data(), buffer.size(), &encodedLen); + REQUIRE(result == static_cast(DleEncoder::DECODING_ERROR)); } } From afb472996c219c20a94a0df3754430b9df3a546a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 30 Sep 2021 16:49:30 +0200 Subject: [PATCH 134/136] refactoring, code more understandable --- src/fsfw/globalfunctions/DleEncoder.cpp | 48 +++++++++++++------------ 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index f4691cc64..f77d5472d 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -165,11 +165,9 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ if (sourceStream[encodedIndex++] != STX_CHAR) { return DECODING_ERROR; } - while ((encodedIndex < sourceStreamLen - 1) - and (decodedIndex < maxDestStreamlen) - and (sourceStream[encodedIndex] != ETX_CHAR) - and (sourceStream[encodedIndex] != STX_CHAR)) { - if (sourceStream[encodedIndex] == DLE_CHAR) { + while ((encodedIndex < sourceStreamLen) and (decodedIndex < maxDestStreamlen)) { + switch(sourceStream[encodedIndex]) { + case(DLE_CHAR): { if(encodedIndex + 1 >= sourceStreamLen) { //reached the end of the sourceStream *readLen = sourceStreamLen; @@ -197,29 +195,33 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ } } ++encodedIndex; + break; } - else { - destStream[decodedIndex] = sourceStream[encodedIndex]; - } - - ++encodedIndex; - ++decodedIndex; - } - if (sourceStream[encodedIndex] != ETX_CHAR) { - if(decodedIndex == maxDestStreamlen) { - //so far we did not find anything wrong here, so let user try again - *readLen = 0; - return STREAM_TOO_SHORT; - } - else { + case(STX_CHAR): { *readLen = ++encodedIndex; return DECODING_ERROR; } + case(ETX_CHAR): { + *readLen = ++encodedIndex; + *decodedLen = decodedIndex; + return RETURN_OK; + } + default: { + destStream[decodedIndex] = sourceStream[encodedIndex]; + break; + } + } + ++encodedIndex; + ++decodedIndex; } - else { - *readLen = ++encodedIndex; - *decodedLen = decodedIndex; - return RETURN_OK; + + if(decodedIndex == maxDestStreamlen) { + //so far we did not find anything wrong here, so let user try again + *readLen = 0; + return STREAM_TOO_SHORT; + } else { + *readLen = encodedIndex; + return DECODING_ERROR; } } From 2439613f210d416c4d1c734756f76d4951fa2ab1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 4 Oct 2021 14:38:10 +0200 Subject: [PATCH 135/136] preserve STX char --- src/fsfw/globalfunctions/DleEncoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fsfw/globalfunctions/DleEncoder.cpp b/src/fsfw/globalfunctions/DleEncoder.cpp index f77d5472d..91db54454 100644 --- a/src/fsfw/globalfunctions/DleEncoder.cpp +++ b/src/fsfw/globalfunctions/DleEncoder.cpp @@ -198,7 +198,7 @@ ReturnValue_t DleEncoder::decodeStreamEscaped(const uint8_t *sourceStream, size_ break; } case(STX_CHAR): { - *readLen = ++encodedIndex; + *readLen = encodedIndex; return DECODING_ERROR; } case(ETX_CHAR): { From 146e1e32827f6bdc705549466025699e8b4f12a3 Mon Sep 17 00:00:00 2001 From: Ulrich Mohr Date: Mon, 4 Oct 2021 14:47:32 +0200 Subject: [PATCH 136/136] bumped version to 2.0.0 for next release --- src/fsfw/FSFWVersion.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fsfw/FSFWVersion.h b/src/fsfw/FSFWVersion.h index f8e896940..c581a85cb 100644 --- a/src/fsfw/FSFWVersion.h +++ b/src/fsfw/FSFWVersion.h @@ -3,8 +3,8 @@ const char* const FSFW_VERSION_NAME = "ASTP"; -#define FSFW_VERSION 1 -#define FSFW_SUBVERSION 2 +#define FSFW_VERSION 2 +#define FSFW_SUBVERSION 0 #define FSFW_REVISION 0 #endif /* FSFW_VERSION_H_ */