#ifndef MISSION_DEMO_TESTTASK_H_ #define MISSION_DEMO_TESTTASK_H_ #include #include #include /** * @brief Test class for general C++ testing and any other code which will not be part of the * primary mission software. * @details * Should not be used for board specific tests. Instead, a derived board test class should be used. */ class TestTask : public SystemObject, public ExecutableObjectIF, public HasReturnvaluesIF { public: TestTask(object_id_t objectId, bool periodicPrintout); virtual ~TestTask(); virtual ReturnValue_t performOperation(uint8_t operationCode = 0); 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 periodicPrinout = false; bool testFlag = false; uint8_t counter { 1 }; uint8_t counterTrigger { 3 }; void performPusInjectorTest(); void examplePacketTest(); private: static bool oneShotAction; static MutexIF* testLock; StorageManagerIF* IPCStore; }; #endif /* TESTTASK_H_ */