事件集
RT-Thread 中的事件集用一个 32 位无符号整型变量来表示,变量中的一个位代表一个事件,线程通过“逻辑与”或“逻辑或”与一个或多个事件建立关联形成一个事件组合。
在 RT-Thread 中,事件集控制块是操作系统用于管理事件的一个数据结构。
struct rt_event
{
struct rt_ipc_object parent; /**< inherit from ipc_object */
rt_uint32_t set; /**< event set */
};
typedef struct rt_event *rt_event_t;
struct rt_event static_evt;//静态事件集
rt_event_t dynamic_evt;//动态事件集
初始化与脱离
rt_err_t rt_event_init(rt_event_t event, const char *name, rt_uint8_t flag)
RT_IPC_FLAG_FIFO RT_IPC_FLAG_PRIO
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 option,rt_int32_t timeout,rt_uint32_t *recved)
option:
RT_EVENT_FLAG_AND
RT_EVENT_FLAG_OR
RT_EVENT_FLAG_CLEAR