osStatus_t osMessageQueueDelete (osMessageQueueId_t mq_id) { QUEUE_CB_S *pstQueue = (QUEUE_CB_S *)mq_id; UINT32 uwRet; if (pstQueue == NULL) { return osErrorParameter; } if (OS_INT_ACTIVE) { return osErrorISR; } uwRet = LOS_QueueDelete((UINT32)pstQueue->usQueueID); if (uwRet == LOS_OK) { return osOK; } else if(uwRet == LOS_ERRNO_QUEUE_NOT_FOUND || uwRet == LOS_ERRNO_QUEUE_NOT_CREATE) { return osErrorParameter; } else { return osErrorResource; } }
/*任务2接收数据*/ static void *recv_Entry(UINT32 uwParam1, UINT32 uwParam2, UINT32 uwParam3, UINT32 uwParam4) { UINT32 uwReadbuf; UINT32 uwRet = LOS_OK; UINT32 uwMsgCount = 0; while (1) { /*读取队列里的数据存入uwReadbuf里*/ uwRet = LOS_QueueRead(g_uwQueue, &uwReadbuf, 24, 0); if(uwRet != LOS_OK) { dprintf("recv message failure,error:%x\n",uwRet); break; } else { dprintf("recv message:%s\n", (char *)uwReadbuf); uwMsgCount++; } (void)LOS_TaskDelay(5); } /*删除队列*/ while (LOS_OK != LOS_QueueDelete(g_uwQueue)) { (void)LOS_TaskDelay(1); } dprintf("delete the queue success!\n"); if(API_MSG_NUM == uwMsgCount) { uwRet = LOS_InspectStatusSetByID(LOS_INSPECT_MSG,LOS_INSPECT_STU_SUCCESS); if (LOS_OK != uwRet) { dprintf("Set Inspect Status Err\n"); } } else { uwRet = LOS_InspectStatusSetByID(LOS_INSPECT_MSG,LOS_INSPECT_STU_ERROR); if (LOS_OK != uwRet) { dprintf("Set Inspect Status Err\n"); } } return NULL; }