From b30c6e2e733250e8700f8190e3f5663ae01f9f33 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 4 Oct 2022 11:34:09 +0200 Subject: [PATCH] back to basic main --- main.cpp | 90 +------------------------------------------------------- 1 file changed, 1 insertion(+), 89 deletions(-) diff --git a/main.cpp b/main.cpp index 01c2438..4394391 100644 --- a/main.cpp +++ b/main.cpp @@ -1,93 +1,5 @@ #include -#include - -#include "fsfw/platform.h" -#include "fsfw/tasks/ExecutableObjectIF.h" -#include "fsfw/tasks/PeriodicTaskIF.h" -#include "fsfw/tasks/TaskFactory.h" - -#ifdef PLATFORM_WIN -#include "fsfw/osal/windows/winTaskHelpers.h" -#endif - -using namespace std; - -class MyExecutableObjectIF { -public: - virtual ~MyExecutableObjectIF() = default; - virtual void performOperation() = 0; -}; - -class MyExecutableObject0: public ExecutableObjectIF { -public: - MyExecutableObject0() = default; - - ReturnValue_t performOperation(uint8_t opCode) override { - cout << "Task 0" << endl; - return returnvalue::OK; - } -private: -}; - -class MyExecutableObject1: public ExecutableObjectIF { -public: - MyExecutableObject1() = default; - - ReturnValue_t performOperation(uint8_t opCode) override { - cout << "Task 1" << endl; - return returnvalue::OK; - } -private: -}; - -class MyExecutableObject2: public ExecutableObjectIF { -public: - MyExecutableObject2() = default; - - ReturnValue_t performOperation(uint8_t opCode) override { - cout << "Task 2" << endl; - return returnvalue::OK; - } -private: -}; - -class MyPeriodicTask { -public: - MyPeriodicTask(MyExecutableObjectIF& executable, uint32_t taskFreqMs) - : executable(executable), taskFreqMs(taskFreqMs) {} - - std::thread start() { - return std::thread( - MyPeriodicTask::executeTask, - std::reference_wrapper(*this)); - } -private: - static void executeTask(MyPeriodicTask& self) { - while(true) { - self.executable.performOperation(); - this_thread::sleep_for(std::chrono::milliseconds(self.taskFreqMs)); - } - } - MyExecutableObjectIF& executable; - uint32_t taskFreqMs; -}; int main() { - MyExecutableObject0 myExecutableObject0; - MyExecutableObject1 myExecutableObject1; - MyExecutableObject2 myExecutableObject2; - auto* factory = TaskFactory::instance(); -#ifdef PLATFORM_WIN - -#endif - auto* periodicTask0 = factory->createPeriodicTask("TASK_0", 0, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.5, nullptr); - auto* periodicTask1 = factory->createPeriodicTask("TASK_1", 0, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, nullptr); - periodicTask0->addComponent(&myExecutableObject0); - periodicTask0->addComponent(&myExecutableObject1); - periodicTask1->addComponent(&myExecutableObject2); - periodicTask0->startTask(); - periodicTask1->startTask(); - while(true) { - this_thread::sleep_for(5000ms); - } + cout << "Hello World" << endl; }