os_event_query
所属模块:通信机制 | 类型:事件状态查询函数
函数简介
os_event_query 用于查询指定事件是否已触发,
是事件机制中的状态读取接口。
该函数不修改事件状态,仅用于读取当前事件触发情况。
函数原型
char os_event_query(u8 obj);
参数说明
| 参数 |
说明 |
| obj |
事件ID(0 ~ OS_RESOURCE_MAX-1) |
返回值
1 - 事件已触发
0 - 事件未触发
-1 - 参数错误
源码实现
#include "hrtos_internal.h"
/*
* 事件触发查询
*/
char os_event_query(u8 obj)
{
if(obj >= OS_RESOURCE_MAX)
{
return -1;
}
if(OS_RES[obj].value != 0)
{
return 1;
}
return 0;
}
使用示例
void task()
{
if(os_event_query(2))
{
// 事件已触发
handle_event();
}
}
注意事项
该函数仅用于查询,不会清除事件状态。
若需消费事件,请使用 os_event_clear。