os_event_query

所属模块:通信机制 | 类型:事件状态查询函数

API Metadata

函数ID:os_event_query
模块:event
类型:event query
嵌套深度:1

函数简介

os_event_query 用于查询指定事件是否已触发, 是事件机制中的状态读取接口。

该函数不修改事件状态,仅用于读取当前事件触发情况。

函数原型

char os_event_query(u8 obj);

参数说明

参数 说明
obj 事件ID(0 ~ OS_RESOURCE_MAX-1)

返回值

1 - 事件已触发
0 - 事件未触发
-1 - 参数错误

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : event_query.c | - Author : 谭舒 | - Update date : 2026-09-19 | - Copyright(C) : 2026 HRTOS. All rights reserved. ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | INCLUDES | ------------------------------------------------------------------------*/ #include"hrtos_internal.h" /*------------------------------------------------------------------------ | API FUNCTIONS | ------------------------------------------------------------------------*/ /** * @brief 查询指定事件资源的触发状态。 * * @param[in] obj 事件资源槽位编号。 * * @return 事件状态。 * @retval 1 事件已触发。 * @retval 0 事件未触发。 * @retval -1 事件资源槽位编号无效。 */ char os_event_query(u8 obj)//事件触发查询 { if(obj >= OS_RESOURCE_MAX) { return -1; } if(OS_RES[obj].value != 0)//已触发 { return 1; } return 0;//未触发 } /*------------------------------------------------------------------------ | END OF FILE: event_query.c | ------------------------------------------------------------------------*/

使用示例

void task() { if(os_event_query(2)) { // 事件已触发 handle_event(); } }

注意事项

该函数仅用于查询,不会清除事件状态。 若需消费事件,请使用 os_event_clear。

相关推荐