⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vxworks 消息队列.txt

📁 3个vxworks 程序
💻 TXT
字号:
#include "VxWorks.h"
#include "semLib.h"
#include "taskLib.h"
#include "stdio.h"
#include "msgQLib.h"
#include "sysLib.h"
#include "ioLib.h"

#define STACK_SIZE 20000
#define MAX_MSG  10
#define MAX_MSGS_LEN 100

int taskId1,taskId2;
MSG_Q_ID msgQId1,msgQId2;

STATUS task1(void);
STATUS task2(void);
STATUS QUIT(void);

STATUS ProgStart(void)
{  
   msgQId1=msgQCreate(MAX_MSG,MAX_MSGS_LEN,MSG_Q_PRIORITY);
   if(msgQId1==NULL)
   return ERROR;
   taskId1=taskSpawn("task1",150,0,STACK_SIZE,(FUNCPTR)task1,0,0,0,0,0,0,0,0,0,0);
   return OK;
}
STATUS task1(void)
{
   char RevBuf1[MAX_MSGS_LEN];   
   taskId2=taskSpawn("task2",110,0,STACK_SIZE,(FUNCPTR)task2,0,0,0,0,0,0,0,0,0,0);
   printf("task1 is beginning!\n");
   while(1)
     {   
 if(msgQReceive(msgQId1,RevBuf1,MAX_MSGS_LEN,WAIT_FOREVER)==ERROR)
            return ERROR;        
           printf("task1 has received the meassage\nthe message received is: %s\n
                    you can in put next message\n",RevBuf1);
        }
   return OK;
}
STATUS task2(void)
{  printf("task2 is beginning!\ninput the message to send to task1\n");
    while(1)
     {  char string[50];
        char rr[50];
        read(STD_IN,rr,50);
        string=rr;            if(msgQSend(msgQId1,string,sizeof(string),WAIT_FOREVER,MSG_PRI_NORMAL)==ERROR)
     return ERROR;             
      }
  return OK;
}            
STATUS QUIT(void)
{  msgQDelete(msgQId1);
   taskDelete(taskId1);
   taskDelete(taskId2);
   printf("BYE!\n");
   return OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -