commun.c

来自「一个关于通信的例子」· C语言 代码 · 共 75 行

C
75
字号
#include  "commun.h"

/********************************************
*progStart:
*return:
*********************************************/
STATUS  progStart(void)
{
   myMsgQId = msgQCreate(MAX_MSGS, MAX_MSG_LEN, MSG_Q_PRIORITY);
   if (myMsgQId == NULL)
   {
      return (ERROR);
   }
   
   tidTask1 = taskSpawn("tTask1", 200, 0,STACK_SIZE,
                         (FUNCPTR)task1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
   tidTask2 = taskSpawn("tTask2", 220, 0,STACK_SIZE,
                         (FUNCPTR)task2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

  return (OK);
}

#define  MESSAGE "Greetings from Task 1"
/********************************************
*task1:
*return:
*********************************************/
STATUS task1(void)
{
   while(1)
   {
     if(msgQSend(myMsgQId, MESSAGE, sizeof(MESSAGE), WAIT_FOREVER, MSG_PRI_NORMAL)==ERROR)
     {
         return (ERROR);
     }           
     
     taskDelay(DELAY_TICKS);
   }
   
   return (OK);
}

/********************************************
*task2:
*return:
*********************************************/
STATUS task2(void)
{  
   char msgBuf[MAX_MSG_LEN];
   while(1)
   { 
     memset(msgBuf, 0, MAX_MSG_LEN); 
     if(msgQReceive(myMsgQId, msgBuf, MAX_MSG_LEN, WAIT_FOREVER)==ERROR)
     {
        return (ERROR);
     }
   
     printf ("Message from task1: %s \n",msgBuf);
   }
   return (OK);
}

/********************************************
*progStop::
*return:
*********************************************/ 
void progStop (void)
{
    taskDelete(tidTask1);
    taskDelete(tidTask2);
  
    msgQDelete(myMsgQId);
    printf("BYE!\n");
    return;
}

⌨️ 快捷键说明

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