$darkmode
提供多事件同步触发机制 更多...
结构体 | |
struct | rt_event |
事件结构体 更多... | |
宏定义 | |
#define | RT_EVENT_FLAG_AND 0x01 |
逻辑与 | |
#define | RT_EVENT_FLAG_OR 0x02 |
逻辑或 | |
#define | RT_EVENT_FLAG_CLEAR 0x04 |
清除标志 | |
类型定义 | |
typedef struct rt_event * | rt_event_t |
事件类型指针定义 | |
函数 | |
rt_err_t | rt_event_init (rt_event_t event, const char *name, rt_uint8_t flag) |
初始化静态事件对象 更多... | |
rt_err_t | rt_event_detach (rt_event_t event) |
脱离静态事件对象 更多... | |
rt_event_t | rt_event_create (const char *name, rt_uint8_t flag) |
创建动态事件对象 更多... | |
rt_err_t | rt_event_delete (rt_event_t event) |
删除动态事件对象 更多... | |
rt_err_t | rt_event_send (rt_event_t event, rt_uint32_t set) |
发送事件 更多... | |
rt_err_t | rt_event_recv (rt_event_t event, rt_uint32_t set, rt_uint8_t opt, rt_int32_t timeout, rt_uint32_t *recved) |
接收事件 更多... | |
rt_err_t | rt_event_control (rt_event_t event, int cmd, void *arg) |
控制事件对象行为 更多... | |
提供多事件同步触发机制
RT-Thread 事件集核心功能:
典型应用场景:
rt_err_t rt_event_init | ( | rt_event_t | event, |
const char * | name, | ||
rt_uint8_t | flag | ||
) |
初始化静态事件对象
用于初始化由用户提供内存的事件对象,适用于静态分配场景
[in] | event | 事件对象指针 | ||||||
[in] | name | 事件名称 | ||||||
[in] | flag | 等待标志位
|
RT_EOK | 成功 |
!RT_EOK | 失败 |
rt_err_t rt_event_detach | ( | rt_event_t | event | ) |
脱离静态事件对象
清理并释放静态事件对象的资源
[in] | event | 事件对象指针 |
RT_EOK | 成功 |
!RT_EOK | 失败 |
rt_event_t rt_event_create | ( | const char * | name, |
rt_uint8_t | flag | ||
) |
创建动态事件对象
在堆上分配内存并初始化事件对象
[in] | name | 事件名称 | ||||||
[in] | flag | 等待标志位
|
事件对象指针 | 成功 |
RT_NULL | 失败 |
rt_err_t rt_event_delete | ( | rt_event_t | event | ) |
删除动态事件对象
释放事件对象所占内存资源
[in] | event | 事件对象指针 |
RT_EOK | 成功 |
!RT_EOK | 失败 |
rt_err_t rt_event_send | ( | rt_event_t | event, |
rt_uint32_t | set | ||
) |
发送事件
向事件对象中发送一个或多个事件标志位
[in] | event | 事件对象指针 |
[in] | set | 要设置的事件标志位 |
RT_EOK | 成功 |
!RT_EOK | 失败 |
rt_err_t rt_event_recv | ( | rt_event_t | event, |
rt_uint32_t | set, | ||
rt_uint8_t | opt, | ||
rt_int32_t | timeout, | ||
rt_uint32_t * | recved | ||
) |
接收事件
从事件对象中接收事件标志位,根据设置的匹配模式和超时时间阻塞等待
[in] | event | 事件对象指针 | ||||||||
[in] | set | 等待的事件标志 | ||||||||
[in] | opt | 匹配方式
| ||||||||
[in] | timeout | 超时时间
| ||||||||
[out] | recved | 实际接收到的事件标志位 |
RT_EOK | 成功 |
!RT_EOK | 失败 |
-RT_ETIMEOUT | 超时 |
rt_err_t rt_event_control | ( | rt_event_t | event, |
int | cmd, | ||
void * | arg | ||
) |
控制事件对象行为
用于执行特定控制命令
[in] | event | 事件对象指针 |
[in] | cmd | 控制命令 |
[in] | arg | 命令参数 |
RT_EOK | 成功 |
!RT_EOK | 失败 |