3#include "libxr_def.hpp"
4#include "libxr_system.hpp"
互斥锁的 RAII 机制封装 (RAII-style mechanism for automatic mutex management).
Mutex & mutex_
被管理的互斥锁 (Reference to the managed mutex).
LockGuard(Mutex &mutex)
构造函数,自动加锁 (Constructor automatically locking the mutex).
~LockGuard()
析构函数,自动解锁 (Destructor automatically unlocking the mutex).
回调(ISR)上下文中的互斥锁管理类 (Lock management class for ISR context).
~LockGuardInCallback()
析构函数,自动释放锁(如果成功加锁) (Destructor automatically unlocking the mutex if successfully locked).
ErrorCode success_
记录加锁的状态 (Stores the lock acquisition status).
bool Locked()
检查是否成功加锁 (Check if the mutex was successfully locked).
bool in_isr_
记录是否处于 ISR 上下文 (Indicates if in ISR context).
LockGuardInCallback(Mutex &mutex, bool in_isr)
构造函数,尝试在 ISR 上下文中加锁 (Constructor attempting to lock the mutex inside ISR context).
Mutex & mutex_
被管理的互斥锁 (Reference to the managed mutex).
互斥锁类,提供线程同步机制 (Mutex class providing thread synchronization mechanisms).
ErrorCode TryLockInCallback(bool in_isr)
在回调(ISR)中尝试加锁 (Attempt to lock the mutex inside an interrupt service routine (ISR)).
libxr_mutex_handle mutex_handle_
互斥锁句柄 (Handle for the mutex).
Mutex()
构造函数,初始化互斥锁 (Constructor to initialize the mutex).
ErrorCode Lock()
加锁,如果锁已被占用,则阻塞等待 (Lock the mutex, blocking if it is already locked).
ErrorCode TryLock()
尝试加锁,如果锁已被占用,则立即返回失败 (Attempt to lock the mutex, returning immediately if already locked).
~Mutex()
析构函数,销毁互斥锁 (Destructor to destroy the mutex).
void UnlockFromCallback(bool in_isr)
在回调(ISR)中解锁 (Unlock the mutex inside an interrupt service routine (ISR)).
void Unlock()
解锁互斥锁 (Unlock the mutex).
LibXR Color Control Library / LibXR终端颜色控制库
constexpr auto min(T1 a, T2 b) -> typename std::common_type< T1, T2 >::type
计算两个数的最小值
SemaphoreHandle_t libxr_mutex_handle
互斥锁句柄类型定义 Mutex handle type definition