message.c
来自「电子称重的程序」· C语言 代码 · 共 75 行
C
75 行
#include<config.h>
#include<head.h>
#define MSGLEN 10
MSG idata msgbuf[MSGLEN];
Uchar msgbufwp=0,msgbufrp=0;
void MessageInit()
{
char i;
for(i=0;i<MSGLEN;i++)
msgbuf[i].message=0;
}
/**************************************************************************
* 函数原型:void SysPostMessage(char message,char param,char mode);
* 功 能:发送消息。
* 入 口: 消息类型,消息值
**************************************************************************/
void SysPostMessage(char message,char param,char mode)
{
char i;
if(mode==1)
{
for(i=0;i<MSGLEN;i++)
if(msgbuf[i].message==message)
{
msgbuf[i].param+=param;
return;
}
}
msgbuf[msgbufwp].message=message;
msgbuf[msgbufwp++].param=param;
if(msgbufwp>=MSGLEN)msgbufwp=0;
}
/**************************************************************************
* 函数原型:void PostMessageOne(char message,char param);
* 功 能:发送一次性消息。
* 入 口: 消息类型,消息值
**************************************************************************/
void PostMessageOne(char message,char param)
{
SysPostMessage(message,param,1);
}
/**************************************************************************
* 函数原型:void PostMessageOne(char message,char param);
* 功 能:发送一次性消息。
* 入 口: 消息类型,消息值
**************************************************************************/
void PostMessage(char message,char param)
{
SysPostMessage(message,param,0);
}
/**************************************************************************
* 函数原型:void GetMessage(MSG *msg);
* 功 能:接收消息消息。
* 入 口: 消息结构的地址
* 出 口: 成功获得信息为1,没有获得信息为0
**************************************************************************/
BOOL GetMessage(MSG *pMsg)
{
Uchar i,j;
for(i=0;i<MSGLEN;i++)
{
j=(i+msgbufrp)%MSGLEN;
if(msgbuf[j].message)
{
pMsg->message=msgbuf[j].message;
pMsg->param=msgbuf[j].param;
msgbuf[j].message=0;
if(++msgbufrp>=MSGLEN)msgbufrp=0;
return 1;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?