libxr 1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
semaphore.cpp
1#include "semaphore.hpp"
2
3#include "libxr_def.hpp"
4#include "libxr_system.hpp"
5
6using namespace LibXR;
7
10
12
14
15ErrorCode Semaphore::Wait(uint32_t timeout) {
16 if (xSemaphoreTake(semaphore_handle_, timeout) == pdTRUE) {
17 return ErrorCode::OK;
18 } else {
19 return ErrorCode::TIMEOUT;
20 }
21}
22
34
37 return value;
38}
void Post()
释放(增加)信号量 Releases (increments) the semaphore
Definition semaphore.cpp:13
void PostFromCallback(bool in_isr)
从中断回调中释放(增加)信号量 Releases (increments) the semaphore from an ISR (Interrupt Service Routine)
Definition semaphore.cpp:23
~Semaphore()
析构信号量对象,释放资源 Destroys the semaphore object and releases resources
Definition semaphore.cpp:11
libxr_semaphore_handle semaphore_handle_
信号量句柄 Semaphore handle
Semaphore(uint32_t init_count=0)
构造一个信号量对象 Constructs a semaphore object
Definition semaphore.cpp:8
size_t Value()
获取当前信号量的值 Gets the current value of the semaphore
Definition semaphore.cpp:35
ErrorCode Wait(uint32_t timeout=UINT32_MAX)
等待(减少)信号量 Waits (decrements) the semaphore
Definition semaphore.cpp:15
LibXR Color Control Library / LibXR终端颜色控制库
constexpr auto min(T1 a, T2 b) -> typename std::common_type< T1, T2 >::type
计算两个数的最小值