请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL-CC2640R2 您好!
简单外设示例程序具有队列事件处理功能。 但是、项目0示例程序没有处理队列事件。 哪一个是正确的实现。 此外、对于简单外设、 SBP_queue_EVT 如何布置到 Event_pend ()中。 因为、我没有看到事件发布 SBP_queue_EVT 的代码。
SimpleBLEPeripheral_taskFxn ()内的 simple_peripheral.c
//如果 RTOS 队列不为空,则处理应用程序消息。 IF (事件和 SBP_queue_EVT) { while (!Queue_empty (appMsgQueue)) { sbpEvt_t *pMsg =(sbpEvt_t *) Util_dequeueMsg (appMsgQueue); if (pMsg) { //处理消息。 SimpleBLEPeripheral_processAppMsg (pMsg); //从消息中释放空间。 iCall_free (pMsg); } }
ProjectZero_taskFxn ()中的 project_zero.c。 在 IF 条件中未使用 PRZ_queue_EVT。
//处理从另一个任务或另一个上下文发送的消息。 while (!Queue_empty (hApplicationMsgQ)) { app_msg_t *pMsg = Queue_dequeue (hApplicationMsgQ); //处理可能从我们自己发送的应用层消息。 USER_processApplicationMessage (pMsg); //释放收到的消息。 iCall_free (pMsg); }
-克尔