#ifndef TEST_TESTTASK_H_ #define TEST_TESTTASK_H_ #include #include #include #include #include "fsfw_tests/integration/task/TestTask.h" /** * @brief Test class for general C++ testing. * @details * Should not be used for board specific * tests. Instead, a derived board test class should be used. */ class EiveTestTask : public TestTask { public: EiveTestTask(object_id_t objectId); virtual ~EiveTestTask(); virtual ReturnValue_t performOperation(uint8_t operationCode = 0) override; protected: virtual ReturnValue_t performOneShotAction(); virtual ReturnValue_t performPeriodicAction(); virtual ReturnValue_t performActionA(); virtual ReturnValue_t performActionB(); enum testModes : uint8_t { A, B }; testModes testMode; bool testFlag = false; uint8_t counter{1}; uint8_t counterTrigger{3}; void performPusInjectorTest(); void examplePacketTest(); private: // Actually, to be really thread-safe, a mutex should be used as well // Let's keep it simple for now. bool oneShotAction = true; StorageManagerIF* IPCStore; void performLwgpsTest(); }; #endif /* TESTTASK_H_ */