From 003e70bf4785a8b9e57a8f8ab5f67ae0b0dfade3 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Mon, 29 Jun 2020 15:55:20 +0200 Subject: [PATCH] new initializeAfterTaskCreation() --- osal/FreeRTOS/PeriodicTask.cpp | 3 ++- osal/linux/PeriodicPosixTask.cpp | 4 +++- osal/rtems/MultiObjectTask.cpp | 3 ++- tasks/ExecutableObjectIF.h | 25 +++++++++---------------- tasks/FixedSequenceSlot.cpp | 2 +- 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/osal/FreeRTOS/PeriodicTask.cpp b/osal/FreeRTOS/PeriodicTask.cpp index 170eb0a4..2ebfebf4 100644 --- a/osal/FreeRTOS/PeriodicTask.cpp +++ b/osal/FreeRTOS/PeriodicTask.cpp @@ -94,7 +94,8 @@ ReturnValue_t PeriodicTask::addComponent(object_id_t object, bool setTaskIF) { if(setTaskIF) { newObject->setTaskIF(this); } - return HasReturnvaluesIF::RETURN_OK; + ReturnValue_t result = newObject->initializeAfterTaskCreation(); + return result; } uint32_t PeriodicTask::getPeriodMs() const { diff --git a/osal/linux/PeriodicPosixTask.cpp b/osal/linux/PeriodicPosixTask.cpp index db4005b0..b811274b 100644 --- a/osal/linux/PeriodicPosixTask.cpp +++ b/osal/linux/PeriodicPosixTask.cpp @@ -36,7 +36,9 @@ ReturnValue_t PeriodicPosixTask::addComponent(object_id_t object, if(setTaskIF) { newObject->setTaskIF(this); } - return HasReturnvaluesIF::RETURN_OK; + + ReturnValue_t result = newObject->initializeAfterTaskCreation(); + return result; } ReturnValue_t PeriodicPosixTask::sleepFor(uint32_t ms) { diff --git a/osal/rtems/MultiObjectTask.cpp b/osal/rtems/MultiObjectTask.cpp index bb8c2c81..6b9c8c8e 100644 --- a/osal/rtems/MultiObjectTask.cpp +++ b/osal/rtems/MultiObjectTask.cpp @@ -78,7 +78,8 @@ ReturnValue_t MultiObjectTask::addComponent(object_id_t object) { return HasReturnvaluesIF::RETURN_FAILED; } objectList.push_back(newObject); - return HasReturnvaluesIF::RETURN_OK; + ReturnValue_t result = newObject->initializeAfterTaskCreation(); + return result; } uint32_t MultiObjectTask::getPeriodMs() const { diff --git a/tasks/ExecutableObjectIF.h b/tasks/ExecutableObjectIF.h index f66b53da..d716cdfb 100644 --- a/tasks/ExecutableObjectIF.h +++ b/tasks/ExecutableObjectIF.h @@ -1,15 +1,5 @@ -/** - * @file ExecutableObjectIF.h - * - * @brief This file contains the definition for the ExecutableObjectIF interface. - * - * @author Bastian Baetz - * - * @date 12.03.2012 - */ - -#ifndef EXECUTABLEOBJECTIF_H_ -#define EXECUTABLEOBJECTIF_H_ +#ifndef FRAMEWORK_TASKS_EXECUTABLEOBJECTIF_H_ +#define FRAMEWORK_TASKS_EXECUTABLEOBJECTIF_H_ class PeriodicTaskIF; @@ -20,6 +10,7 @@ class PeriodicTaskIF; * @brief The interface provides a method to execute objects within a task. * @details The performOperation method, that is required by the interface is * executed cyclically within a task context. + * @author Bastian Baetz */ class ExecutableObjectIF { public: @@ -46,15 +37,17 @@ public: virtual void setTaskIF(PeriodicTaskIF* task_) {}; /** - * This function will be called after the object was assigned to a specific - * task. + * This function should be called after the object was assigned to a + * specific task. * * Example: Can be used to get task execution frequency. * The task is created after initialize() and the object ctors have been * called so the execution frequency can't be cached in initialize() * @return */ - //virtual ReturnValue_t initializeAfterTaskCreation() = 0; + virtual ReturnValue_t initializeAfterTaskCreation() { + return HasReturnvaluesIF::RETURN_OK; + } }; -#endif /* EXECUTABLEOBJECTIF_H_ */ +#endif /* FRAMEWORK_TASKS_EXECUTABLEOBJECTIF_H_ */ diff --git a/tasks/FixedSequenceSlot.cpp b/tasks/FixedSequenceSlot.cpp index 430ce019..4331aada 100644 --- a/tasks/FixedSequenceSlot.cpp +++ b/tasks/FixedSequenceSlot.cpp @@ -9,7 +9,7 @@ FixedSequenceSlot::FixedSequenceSlot(object_id_t handlerId, uint32_t setTime, if(executingTask != nullptr) { handler->setTaskIF(executingTask); } - //handler->initializeAfterTaskCreation(); + handler->initializeAfterTaskCreation(); } FixedSequenceSlot::~FixedSequenceSlot() {}