事件集

事件集

​ 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
原文地址:https://www.cnblogs.com/zhang-han/p/14123119.html