/** * @file * @brief CMSIS RTOS2 signal implementation. */ #ifndef STA_RTOS2_SIGNAL_HPP #define STA_RTOS2_SIGNAL_HPP #include #include namespace sta { /** * @brief Implementation of Signal interface using CMSIS RTOS2. * * @ingroup rtos2API */ class Rtos2Signal : public Signal { public: /** * @param semaphore CMSIS RTOS2 semaphore */ Rtos2Signal(osSemaphoreId_t * semaphore); void notify() override; bool peek() override; bool test() override; void wait() override; private: osSemaphoreId_t * semaphore_; /**< CMSIS RTOS2 semaphore */ }; } // namespace sta #endif // STA_RTOS2_SIGNAL_HPP