luat_soc_sdk_2024 V1.0
消息事件函数

类型定义

typedef LUAT_RT_RET_TYPE(* luat_rtos_event_wait_callback_t) (LUAT_RT_CB_PARAM)
 在等待event中,如果设置了目标event id,而到来的不是目标event id,可以通过回调函数交给用户处理
 

函数

int luat_rtos_event_send (luat_rtos_task_handle task_handle, uint32_t id, uint32_t param1, uint32_t param2, uint32_t param3, uint32_t timeout)
 发送一个event给task的mailbox,只有设置了mailbox启用的task能接收,如果缓存了超过1024个event会断言
 
int luat_rtos_event_recv (luat_rtos_task_handle task_handle, uint32_t wait_event_id, luat_event_t *out_event, luat_rtos_event_wait_callback_t *callback_fun, uint32_t timeout)
 接收一个event,只能在task里接收
 
int luat_rtos_message_send (luat_rtos_task_handle task_handle, uint32_t message_id, void *p_message)
 发送一个message给task的mailbox,只有设置了mailbox启用的task能接收,message可以动态创建的,可以任意大小,如果缓存了超过1024个message会断言
 
int luat_rtos_message_recv (luat_rtos_task_handle task_handle, uint32_t *message_id, void **p_p_message, uint32_t timeout)
 接收一个message,只能在task里接收
 

详细描述

类型定义说明

◆ luat_rtos_event_wait_callback_t

typedef LUAT_RT_RET_TYPE(* luat_rtos_event_wait_callback_t) (LUAT_RT_CB_PARAM)

在等待event中,如果设置了目标event id,而到来的不是目标event id,可以通过回调函数交给用户处理

在文件 luat_rtos.h157 行定义.

函数说明

◆ luat_rtos_event_recv()

int luat_rtos_event_recv ( luat_rtos_task_handle task_handle,
uint32_t wait_event_id,
luat_event_t * out_event,
luat_rtos_event_wait_callback_t * callback_fun,
uint32_t timeout )

接收一个event,只能在task里接收

参数
task_handle需要接收event的task句柄
wait_event_id目标event的ID,=0表示不限制,任意event id都会返回
out_event[OUT]接收到的event
callback_funevent的ID不是目标ID时,用户回调函数,可以为NULL,从而抛弃掉这个event
timeout接收超时,单位ms,特殊值见LUAT_RTOS_WAIT_E
返回
int =0成功,其他失败

◆ luat_rtos_event_send()

int luat_rtos_event_send ( luat_rtos_task_handle task_handle,
uint32_t id,
uint32_t param1,
uint32_t param2,
uint32_t param3,
uint32_t timeout )

发送一个event给task的mailbox,只有设置了mailbox启用的task能接收,如果缓存了超过1024个event会断言

参数
task_handle需要接收event的task句柄
idevent id
param1event参数1
param2event参数2
param3event参数3
timeout发送超时,已经废弃了
返回
int =0成功,其他失败

◆ luat_rtos_message_recv()

int luat_rtos_message_recv ( luat_rtos_task_handle task_handle,
uint32_t * message_id,
void ** p_p_message,
uint32_t timeout )

接收一个message,只能在task里接收

参数
task_handle需要接收massage的task句柄
message_id[OUT]接收到的message id
p_p_message[OUT]message内容,输出一个void *指针,如果是发送时动态创建的,需要释放掉
timeout接收超时,单位ms,特殊值见LUAT_RTOS_WAIT_E
返回
int =0成功,其他失败

◆ luat_rtos_message_send()

int luat_rtos_message_send ( luat_rtos_task_handle task_handle,
uint32_t message_id,
void * p_message )

发送一个message给task的mailbox,只有设置了mailbox启用的task能接收,message可以动态创建的,可以任意大小,如果缓存了超过1024个message会断言

参数
task_handle需要接收massage的task句柄
message_idmessage id
p_messagemessage内容,传入指针,如果动态创建,需要在接收时释放
返回
int =0成功,其他失败