os_mailbox_query

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

API Metadata

函数ID:os_mailbox_query
模块:mailbox
类型:mailbox query
嵌套深度:1

函数简介

os_mailbox_query 用于查询当前邮箱中的数据内容, 是一种非阻塞的只读接口。

该函数不会修改邮箱状态,可用于状态监测或调试场景。

函数原型

int os_mailbox_query(u8 mid);

参数说明

参数 说明
mid 邮箱ID(0 ~ OS_RESOURCE_MAX-1)

返回值

≥0 - 返回邮箱当前数据
-1 - 参数错误

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : mailbox_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] mid 邮箱资源槽位编号。 * * @return 邮箱当前保存的数据。 * @retval -1 邮箱资源槽位编号无效。 * @retval 其他 邮箱当前保存的数据。 * * @note 该接口为非阻塞操作,仅读取邮箱当前数据,不修改邮箱状态。 */ int os_mailbox_query(u8 mid) { if (mid >= OS_RESOURCE_MAX) { return -1; } return OS_RES[mid].value; } /*------------------------------------------------------------------------ | END OF FILE: mailbox_query.c | ------------------------------------------------------------------------*/

使用示例

void monitor_task() { int val = os_mailbox_query(0); if(val != 0) { // 邮箱有数据 } }

注意事项

该函数为非阻塞读取接口,不会改变邮箱状态。 若需清空邮箱,请使用 os_mailbox_clear。

相关推荐