2.调用 osal_start_timerEx 函数延时启动事件 由于按键属于系统消息,因此会在标准的 SYS_EVENT_MSG 中触发,然后通过osal_msg_receive 来接收系统消息,如果消息有效,则进入消息处理函数中去进一步判断是何种系统消息。 uint16SimpleOsal_ProcessEvent(uint8task_id,uint16events){VOIDtask_id;// OSAL required parameter...
1、osal_msg_receive()返回一个Byte型的指针,再把该指针转化成afIncomingMSGPacket_t,赋值给MSGpkt。2、首先(afIncomingMSGPacket_t *)是个强制类型转换,转换结果赋值给MSGpkt。假设osal_msg_receive是个函数,SampleApp_TaskID是传入的行参值,这句代码的意思就是把SampleApp_TaskID传入函数osal_msg_...
osal_msg_receive(SampleApp_TaskID)函数用于从消息队列中接收一个消息。A.正确B.错误的答案是什么.用刷刷题APP,拍照搜索答疑.刷刷题(shuashuati.com)是专业的大学职业搜题找答案,刷题练习的工具.一键将文档转化为在线题库手机刷题,以提高学习效率,是学习的生产力工具
INVALID_MSG_POINTER无效指针 INVALID_TASK目标任务无效 (4)osal_msg_receive( ) 功能描述: 任务调用这个函数来接收消息。消息处理完毕后,发送消息的任务必须调用osal_msg_deallocate()收回缓冲区。一个任务接收一个命令信息是,调用该函数 原型: byte *osal_msg_receive( byte task_id ) 参数: task_id:消息发送...
MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SimpleBLEPeripheral_TaskID ); } 获取了这样一个消息,然后再进一步处理。 OSAL 在后台维护了一个消息队列,每一个消息都会被放到这个消息队列中去,当任务接收到事件以后,从消息队列中获取属于自己的消息,然后进行处理。
{//定义应用层数据包afIncomingMSGPacket_t*MSGpkt;//判断osal层的消息类型//如果系统消息到来if(events&SYS_EVENT_MSG){//接收数据包MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(SampleApp_TaskID);//如果数据包不为空while(MSGpkt){//判断消息类型switch(MSGpkt->hdr.event){// 如果是按键消息caseKEY_...
发送数据,调用函数osal_msg_send,需为该函数指定发送目标任务,OSAL通过旗语SYS_EVENT_MSG告知目标任务,目标任务的处理函数调用osal_msg_receive来接收发来的数据。建议每个OSAL任务都有一个消息处理函数,每当任务收到一个消息后,通过消息的种类来确定需要本任务做相应处理。消息接收并处理完成,调用函数osal_msg_deallocat...
发送数据,调用函数osal_msg_send,需为该函数指定发送目标任务,OSAL通过旗语SYS_EVENT_MSG告知目标任务,目标任务的处理函数调用osal_msg_receive来接收发来的数据。建议每个OSAL任务都有一个消息处理函数,每当任务收到一个消息后,通过消息的种类来确定需要本任务做相应处理。消息接收并处理完成,调用函数osal_msg_deallocat...
*@fn osal_msg_receive * * @brief 这个事件的类型就是叫做 SYS_EVENT_MSG 然后这个消息发出去了,对方去接收让的第一步,并不是去搜这个消息,而是去搜这个事件。 //任务事件处理函数 uintl6 my_ProcessEvent( uint8 task_id, uintl6 events )
msg_ptr:指向消息缓冲区的指针 返回值: ZSUCCESS消息发送成功 INVALID_MSG_POINTER无效指针 INVALID_TASK目标任务无效 3.5 osal_msg_receive( ) 概述: 任务调用这个函数来接收消息。消息处理完毕后,发送消息的任务必须调用osal_msg_deallocate()收回缓冲区。 原型: byte *osal_msg_receive( byte task_id ) 参数:...