📄 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 + -