diff --git a/src/fsfw/osal/host/FixedTimeslotTask.cpp b/src/fsfw/osal/host/FixedTimeslotTask.cpp index 19815241..1d10b8d8 100644 --- a/src/fsfw/osal/host/FixedTimeslotTask.cpp +++ b/src/fsfw/osal/host/FixedTimeslotTask.cpp @@ -111,26 +111,6 @@ void FixedTimeslotTask::taskFunctionality() { } } -ReturnValue_t FixedTimeslotTask::addSlot(object_id_t componentId, uint32_t slotTimeMs, - int8_t executionStep) { - auto* executableObject = ObjectManager::instance()->get(componentId); - if (executableObject != nullptr) { - pollingSeqTable.addSlot(componentId, slotTimeMs, executionStep, executableObject, this); - return HasReturnvaluesIF::RETURN_OK; - } - -#if FSFW_CPP_OSTREAM_ENABLED == 1 - sif::error << "Component " << std::hex << "0x" << componentId - << "not found, " - "not adding it to PST.." - << std::dec << std::endl; -#else - sif::printError("Component 0x%08x not found, not adding it to PST..\n", - static_cast(componentId)); -#endif - return HasReturnvaluesIF::RETURN_FAILED; -} - bool FixedTimeslotTask::delayForInterval(chron_ms* previousWakeTimeMs, const chron_ms interval) { bool shouldDelay = false; // Get current wakeup time diff --git a/src/fsfw/osal/host/FixedTimeslotTask.h b/src/fsfw/osal/host/FixedTimeslotTask.h index 2823f624..4e77f8fd 100644 --- a/src/fsfw/osal/host/FixedTimeslotTask.h +++ b/src/fsfw/osal/host/FixedTimeslotTask.h @@ -50,16 +50,6 @@ class FixedTimeslotTask : public FixedTimeslotTaskBase { */ ReturnValue_t startTask() override; - /** - * Add timeslot to the polling sequence table. - * @param componentId - * @param slotTimeMs - * @param executionStep - * @return - */ - ReturnValue_t addSlot(object_id_t componentId, uint32_t slotTimeMs, - int8_t executionStep) override; - ReturnValue_t sleepFor(uint32_t ms) override; protected: diff --git a/src/fsfw/tasks/FixedTimeslotTaskIF.h b/src/fsfw/tasks/FixedTimeslotTaskIF.h index 5836e621..e1a16a20 100644 --- a/src/fsfw/tasks/FixedTimeslotTaskIF.h +++ b/src/fsfw/tasks/FixedTimeslotTaskIF.h @@ -26,11 +26,9 @@ class FixedTimeslotTaskIF : public PeriodicTaskIF { * @param executionStep * @return */ - virtual ReturnValue_t addSlot(object_id_t componentId, uint32_t slotTimeMs, - int8_t executionStep) { - auto* execObj = ObjectManager::instance()->get(componentId); - return addSlot(componentId, execObj, slotTimeMs, executionStep); - } + virtual ReturnValue_t addSlot(object_id_t execId, ExecutableObjectIF* obj, uint32_t slotTimeMs, + int8_t executionStep) = 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 @@ -40,14 +38,25 @@ class FixedTimeslotTaskIF : public PeriodicTaskIF { * @param executionStep * @return */ - virtual ReturnValue_t addSlot(object_id_t execId, ExecutableObjectIF* obj, uint32_t slotTimeMs, - int8_t executionStep) = 0; + virtual ReturnValue_t addSlot(object_id_t componentId, uint32_t slotTimeMs, + int8_t executionStep) { + auto* execObj = ObjectManager::instance()->get(componentId); + return addSlot(componentId, execObj, slotTimeMs, executionStep); + } /** * Check whether the sequence is valid and perform all other required * initialization steps which are needed after task creation */ virtual ReturnValue_t checkSequence() = 0; + + virtual ReturnValue_t addComponent(object_id_t object, uint8_t opCode) { + return HasReturnvaluesIF::RETURN_FAILED; + } + + virtual ReturnValue_t addComponent(ExecutableObjectIF* object, uint8_t opCode) { + return HasReturnvaluesIF::RETURN_FAILED; + } }; #endif /* FRAMEWORK_TASKS_FIXEDTIMESLOTTASKIF_H_ */ diff --git a/src/fsfw/tasks/PeriodicTaskBase.cpp b/src/fsfw/tasks/PeriodicTaskBase.cpp index e96fcdc2..ce925a45 100644 --- a/src/fsfw/tasks/PeriodicTaskBase.cpp +++ b/src/fsfw/tasks/PeriodicTaskBase.cpp @@ -21,6 +21,12 @@ uint32_t PeriodicTaskBase::getPeriodMs() const { return static_cast(pe bool PeriodicTaskBase::isEmpty() const { return objectList.empty(); } +ReturnValue_t PeriodicTaskBase::addComponent(object_id_t object) { return addComponent(object, 0); } + +ReturnValue_t PeriodicTaskBase::addComponent(ExecutableObjectIF* object) { + return addComponent(object, 0); +} + ReturnValue_t PeriodicTaskBase::initObjsAfterTaskCreation() { std::set uniqueObjects; ReturnValue_t status = HasReturnvaluesIF::RETURN_OK; @@ -63,11 +69,3 @@ ReturnValue_t PeriodicTaskBase::addComponent(ExecutableObjectIF* object, uint8_t return HasReturnvaluesIF::RETURN_OK; } - -ReturnValue_t PeriodicTaskBase::addComponent(object_id_t object) { - return addComponent(object, 0); -} - -ReturnValue_t PeriodicTaskBase::addComponent(ExecutableObjectIF *object) { - return addComponent(object, 0); -} diff --git a/src/fsfw/tasks/PeriodicTaskIF.h b/src/fsfw/tasks/PeriodicTaskIF.h index 6bbd0ff8..03b709ab 100644 --- a/src/fsfw/tasks/PeriodicTaskIF.h +++ b/src/fsfw/tasks/PeriodicTaskIF.h @@ -31,10 +31,7 @@ class PeriodicTaskIF { * @param object Id of the object to add. * @return RETURN_OK on success, RETURN_FAILED if the object could not be added. */ - virtual ReturnValue_t addComponent(object_id_t object, uint8_t opCode) { - return HasReturnvaluesIF::RETURN_FAILED; - }; - + virtual ReturnValue_t addComponent(object_id_t object, uint8_t opCode) = 0; virtual ReturnValue_t addComponent(object_id_t object) { return addComponent(object, 0); }; /** @@ -43,10 +40,7 @@ class PeriodicTaskIF { * @param object pointer to the object to add. * @return RETURN_OK on success, RETURN_FAILED if the object could not be added. */ - virtual ReturnValue_t addComponent(ExecutableObjectIF* object, uint8_t opCode) { - return HasReturnvaluesIF::RETURN_FAILED; - }; - + virtual ReturnValue_t addComponent(ExecutableObjectIF* object, uint8_t opCode) = 0; virtual ReturnValue_t addComponent(ExecutableObjectIF* object) { return addComponent(object, 0); } virtual ReturnValue_t sleepFor(uint32_t ms) = 0; diff --git a/tests/src/fsfw_tests/unit/mocks/PeriodicTaskIFMock.h b/tests/src/fsfw_tests/unit/mocks/PeriodicTaskIFMock.h index af2c6953..dc0ccefc 100644 --- a/tests/src/fsfw_tests/unit/mocks/PeriodicTaskIFMock.h +++ b/tests/src/fsfw_tests/unit/mocks/PeriodicTaskIFMock.h @@ -7,7 +7,7 @@ class PeriodicTaskMock : public PeriodicTaskBase { public: PeriodicTaskMock(TaskPeriod period, TaskDeadlineMissedFunction dlmFunc) - : PeriodicTaskBase(period, dlmFunc) {} + : PeriodicTaskBase(period, dlmFunc) {} virtual ~PeriodicTaskMock() {} /** @@ -20,7 +20,6 @@ class PeriodicTaskMock : public PeriodicTaskBase { }; virtual ReturnValue_t sleepFor(uint32_t ms) override { return HasReturnvaluesIF::RETURN_OK; }; - }; #endif // FSFW_UNITTEST_TESTS_MOCKS_PERIODICTASKMOCK_H_