SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SensorArduinoFreeRTOS_Lock.hpp
Go to the documentation of this file.
1
30#pragma once
31
32#include "../SensorSmartLock.hpp"
33
34#if defined(ARDUINO_ARCH_ESP32)
35
36#include "freertos/FreeRTOS.h"
37#include "freertos/semphr.h"
38
39class FreeRTOSLock : public SensorLockBase
40{
41private:
42 SemaphoreHandle_t mutex;
43public:
44 FreeRTOSLock()
45 {
46 mutex = xSemaphoreCreateMutex();
47 }
48 ~FreeRTOSLock()
49 {
50 vSemaphoreDelete(mutex);
51 }
52 void lock() override
53 {
54 xSemaphoreTake(mutex, portMAX_DELAY);
55 }
56 void unlock() override
57 {
58 xSemaphoreGive(mutex);
59 }
60};
61
62using HalLock = FreeRTOSLock;
63
64#endif /*ARDUINO_ARCH_ESP32*/
virtual void lock()=0
virtual void unlock()=0