Merge branch 'master' into mueller/master

This commit is contained in:
Robin Müller 2021-07-13 08:59:40 +02:00
commit 8189435b94
20 changed files with 55 additions and 45 deletions

View File

@ -43,12 +43,12 @@ endif()
set(FSFW_OSAL_DEFINITION FSFW_HOST) set(FSFW_OSAL_DEFINITION FSFW_HOST)
if(${OS_FSFW} STREQUAL host) if(OS_FSFW MATCHES host)
set(OS_FSFW_NAME "Host") set(OS_FSFW_NAME "Host")
elseif(${OS_FSFW} STREQUAL linux) elseif(OS_FSFW MATCHES linux)
set(OS_FSFW_NAME "Linux") set(OS_FSFW_NAME "Linux")
set(FSFW_OSAL_DEFINITION FSFW_LINUX) set(FSFW_OSAL_DEFINITION FSFW_LINUX)
elseif(${OS_FSFW} STREQUAL freertos) elseif(OS_FSFW MATCHES freertos)
set(OS_FSFW_NAME "FreeRTOS") set(OS_FSFW_NAME "FreeRTOS")
set(FSFW_OSAL_DEFINITION FSFW_FREERTOS) set(FSFW_OSAL_DEFINITION FSFW_FREERTOS)
target_link_libraries(${LIB_FSFW_NAME} PRIVATE target_link_libraries(${LIB_FSFW_NAME} PRIVATE

View File

@ -4,8 +4,8 @@
#include "../../returnvalues/HasReturnvaluesIF.h" #include "../../returnvalues/HasReturnvaluesIF.h"
#include "../../tasks/SemaphoreIF.h" #include "../../tasks/SemaphoreIF.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
#if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \
tskKERNEL_VERSION_MAJOR > 8 tskKERNEL_VERSION_MAJOR > 8

View File

@ -4,8 +4,8 @@
#include "../../returnvalues/HasReturnvaluesIF.h" #include "../../returnvalues/HasReturnvaluesIF.h"
#include "../../tasks/SemaphoreIF.h" #include "../../tasks/SemaphoreIF.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/semphr.h> #include "semphr.h"
/** /**
* @brief OS Tool to achieve synchronization of between tasks or between * @brief OS Tool to achieve synchronization of between tasks or between

View File

@ -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 # FreeRTOS as a static library and set LIB_OS_NAME to the target name of the
# library. # library.
if(NOT LIB_OS_NAME) if(NOT LIB_OS_NAME)
message(FATAL_ERROR message(STATUS
"FreeRTOS needs to be linked as a target and " "LIB_OS_NAME is empty. Make sure to include the FreeRTOS header path properly."
"LIB_OS_NAME needs to be set to the target" )
else()
target_link_libraries(${LIB_FSFW_NAME} PRIVATE
${LIB_OS_NAME}
) )
endif() endif()
target_link_libraries(${LIB_FSWFW_NAME} ${LIB_OS_NAME})

View File

@ -3,8 +3,8 @@
#include "../../timemanager/Clock.h" #include "../../timemanager/Clock.h"
#include "../../globalfunctions/timevalOperations.h" #include "../../globalfunctions/timevalOperations.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>

View File

@ -4,8 +4,8 @@
#include "CountingSemaphUsingTask.h" #include "CountingSemaphUsingTask.h"
#include "../../tasks/SemaphoreIF.h" #include "../../tasks/SemaphoreIF.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
#if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \ #if (tskKERNEL_VERSION_MAJOR == 8 && tskKERNEL_VERSION_MINOR > 2) || \
tskKERNEL_VERSION_MAJOR > 8 tskKERNEL_VERSION_MAJOR > 8

View File

@ -3,7 +3,8 @@
#include "../../serviceinterface/ServiceInterfaceStream.h" #include "../../serviceinterface/ServiceInterfaceStream.h"
#include <freertos/semphr.h> #include "FreeRTOS.h"
#include "semphr.h"
// Make sure #define configUSE_COUNTING_SEMAPHORES 1 is set in // Make sure #define configUSE_COUNTING_SEMAPHORES 1 is set in
// free FreeRTOSConfig.h file. // free FreeRTOSConfig.h file.

View File

@ -6,8 +6,8 @@
#include "../../tasks/FixedTimeslotTaskIF.h" #include "../../tasks/FixedTimeslotTaskIF.h"
#include "../../tasks/Typedef.h" #include "../../tasks/Typedef.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
class FixedTimeslotTask: public FixedTimeslotTaskIF, public FreeRTOSTaskIF { class FixedTimeslotTask: public FixedTimeslotTaskIF, public FreeRTOSTaskIF {
public: public:

View File

@ -1,8 +1,8 @@
#ifndef FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_ #ifndef FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_
#define FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_ #define FSFW_OSAL_FREERTOS_FREERTOSTASKIF_H_
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
class FreeRTOSTaskIF { class FreeRTOSTaskIF {
public: public:

View File

@ -6,10 +6,11 @@
#include "../../internalError/InternalErrorReporterIF.h" #include "../../internalError/InternalErrorReporterIF.h"
#include "../../ipc/MessageQueueIF.h" #include "../../ipc/MessageQueueIF.h"
#include "../../ipc/MessageQueueMessageIF.h" #include "../../ipc/MessageQueueMessageIF.h"
#include "../../ipc/MessageQueueMessage.h"
#include "FreeRTOS.h"
#include "queue.h"
#include <freertos/FreeRTOS.h>
#include <freertos/queue.h>
#include <fsfw/ipc/MessageQueueMessage.h>
/** /**
* @brief This class manages sending and receiving of * @brief This class manages sending and receiving of

View File

@ -3,8 +3,8 @@
#include "../../ipc/MutexIF.h" #include "../../ipc/MutexIF.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/semphr.h> #include "semphr.h"
/** /**
* @brief OS component to implement MUTual EXclusion * @brief OS component to implement MUTual EXclusion

View File

@ -6,8 +6,8 @@
#include "../../tasks/PeriodicTaskIF.h" #include "../../tasks/PeriodicTaskIF.h"
#include "../../tasks/Typedef.h" #include "../../tasks/Typedef.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
#include <vector> #include <vector>

View File

@ -5,8 +5,8 @@
#include "../../ipc/messageQueueDefinitions.h" #include "../../ipc/messageQueueDefinitions.h"
#include "../../ipc/MessageQueueIF.h" #include "../../ipc/MessageQueueIF.h"
#include "freertos/FreeRTOS.h" #include "FreeRTOS.h"
#include "freertos/queue.h" #include "queue.h"
#include <map> #include <map>

View File

@ -1,9 +1,10 @@
#include "../../osal/FreeRTOS/BinarySemaphore.h" #include "BinarySemaphore.h"
#include "../../osal/FreeRTOS/BinSemaphUsingTask.h" #include "BinSemaphUsingTask.h"
#include "../../osal/FreeRTOS/CountingSemaphore.h" #include "CountingSemaphore.h"
#include "../../osal/FreeRTOS/CountingSemaphUsingTask.h" #include "CountingSemaphUsingTask.h"
#include "../../tasks/SemaphoreFactory.h" #include "../../tasks/SemaphoreFactory.h"
#include "../../serviceinterface/ServiceInterfaceStream.h" #include "../../serviceinterface/ServiceInterface.h"
SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr; SemaphoreFactory* SemaphoreFactory::factoryInstance = nullptr;

View File

@ -1,10 +1,10 @@
#ifndef FRAMEWORK_OSAL_FREERTOS_TASKMANAGEMENT_H_ #ifndef FSFW_OSAL_FREERTOS_TASKMANAGEMENT_H_
#define FRAMEWORK_OSAL_FREERTOS_TASKMANAGEMENT_H_ #define FSFW_OSAL_FREERTOS_TASKMANAGEMENT_H_
#include "../../returnvalues/HasReturnvaluesIF.h" #include "../../returnvalues/HasReturnvaluesIF.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
#include <cstdint> #include <cstdint>

View File

@ -1,6 +1,6 @@
#include "Timekeeper.h" #include "Timekeeper.h"
#include <FreeRTOSConfig.h> #include "FreeRTOSConfig.h"
Timekeeper * Timekeeper::myinstance = nullptr; Timekeeper * Timekeeper::myinstance = nullptr;

View File

@ -3,8 +3,8 @@
#include "../../timemanager/Clock.h" #include "../../timemanager/Clock.h"
#include <freertos/FreeRTOS.h> #include "FreeRTOS.h"
#include <freertos/task.h> #include "task.h"
/** /**

View File

@ -32,7 +32,7 @@ ReturnValue_t PeriodicPosixTask::addComponent(object_id_t object) {
sif::error << "PeriodicTask::addComponent: Invalid object. Make sure" sif::error << "PeriodicTask::addComponent: Invalid object. Make sure"
<< " it implements ExecutableObjectIF!" << std::endl; << " it implements ExecutableObjectIF!" << std::endl;
#else #else
sif::printError("PeriodicTask::addComponent: Invalid object. Make sure it" sif::printError("PeriodicTask::addComponent: Invalid object. Make sure it "
"implements ExecutableObjectIF!\n"); "implements ExecutableObjectIF!\n");
#endif #endif
return HasReturnvaluesIF::RETURN_FAILED; return HasReturnvaluesIF::RETURN_FAILED;

View File

@ -8,7 +8,7 @@ TcPacketPus::TcPacketPus(const uint8_t *setData): TcPacketBase(setData) {
} }
void TcPacketPus::initializeTcPacket(uint16_t apid, uint16_t sequenceCount, void TcPacketPus::initializeTcPacket(uint16_t apid, uint16_t sequenceCount,
uint8_t ack, uint8_t service, uint8_t subservice) { uint8_t ack, uint8_t service, uint8_t subservice, uint16_t sourceId) {
initSpacePacketHeader(true, true, apid, sequenceCount); initSpacePacketHeader(true, true, apid, sequenceCount);
std::memset(&tcData->dataField, 0, sizeof(tcData->dataField)); std::memset(&tcData->dataField, 0, sizeof(tcData->dataField));
setPacketDataLength(sizeof(PUSTcDataFieldHeader) + CRC_SIZE - 1); setPacketDataLength(sizeof(PUSTcDataFieldHeader) + CRC_SIZE - 1);
@ -18,6 +18,12 @@ void TcPacketPus::initializeTcPacket(uint16_t apid, uint16_t sequenceCount,
tcData->dataField.versionTypeAck |= (ack & 0x0F); tcData->dataField.versionTypeAck |= (ack & 0x0F);
tcData->dataField.serviceType = service; tcData->dataField.serviceType = service;
tcData->dataField.serviceSubtype = subservice; tcData->dataField.serviceSubtype = subservice;
#if FSFW_USE_PUS_C_TELECOMMANDS == 1
tcData->dataField.sourceIdH = (sourceId >> 8) | 0xff;
tcData->dataField.sourceIdL = sourceId & 0xff;
#else
tcData->dataField.sourceId = sourceId;
#endif
} }
uint8_t TcPacketPus::getService() const { uint8_t TcPacketPus::getService() const {

View File

@ -75,7 +75,7 @@ protected:
* @param subservice PUS Subservice * @param subservice PUS Subservice
*/ */
void initializeTcPacket(uint16_t apid, uint16_t sequenceCount, uint8_t ack, void initializeTcPacket(uint16_t apid, uint16_t sequenceCount, uint8_t ack,
uint8_t service, uint8_t subservice); uint8_t service, uint8_t subservice, uint16_t sourceId = 0);
/** /**
* A pointer to a structure which defines the data structure of * A pointer to a structure which defines the data structure of