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

📄 message.h

📁 一个流量控制仪器的源码
💻 H
字号:
/************************************************************************************/
/* G7000 V3 消息列表管理											*/
/* MCU 型号: Philips P89C668														*/
/* 时钟频率: 11.0592 MHz	6 CLOCK														    */
/* 开发环境: Keil C51 V7.06a															*/
/* 开发日期: 2004.02.25													        	*/
/* 程序编写: BaoFang  鲍方															*/
/* 系统版本: V3.00																	*/
/************************************************************************************/

 #ifdef uchar 
  #define READYDEF_uchar 1   /*宏uchar已定义*/
#else  
  #define uchar unsigned char
#endif

//注意这种队列结构使得CAN_ZMAX+1个数组存储CAN_ZMAX个队列数据元
//因为头尾指针相等有两种可能,所以不允许存满!

#define MsgList_ZMAX CAN_ZMAX+1

//定义消息的结构
typedef struct
{
	uchar ucNodeAdd;	//消息的节点地址
	
	uchar ucTurnN;		//消息节点的进入时段
	
	uchar ucTurnOld;	//消息节点的退出时段
	
}	MsgStruct;


	
//定义消息列表的结构
typedef struct
{
	uchar ucListN;		//当前列表中消息数目。
	uchar ucListFirstP;	//当前列表中第一个消息索引。
	uchar ucListLastP;	//当前列表中最后一个消息索引。
	
	MsgStruct List[MsgList_ZMAX];	//当前消息列表的数组
	
}    MsgListStruct;

extern uchar MsgListN;	//消息列表的消息数,替代MsgList.ucListN,方便外部程序的引用。


//为防止同时调用Msg而设置的信号量!
extern bit MsgIsUse;	//0:无;1:使用中。

/*
************************************************************************************************************************
**函数原型:  void List_Init();
**参数说明:  初始化清空当前列表。
**返回值:
**
**参数说明:

************************************************************************************************************************
*/
extern void MsgListInit();

/*
************************************************************************************************************************
**函数原型:  uchar MsgListAdd(uchar NodeAddress,uchar NodeTurn,uchar NodeTurnOld);
**参数说明:  加入一个消息。(FIFO)
**返回值:		
**           	返回0xFF表示队列满!
		返回0表示成功!
**
**参数说明:	uchar NodeAddress	消息的节点地址
		uchar NodeTurn		消息节点的进入时段
		uchar NodeTurnOld	消息节点的退出时段
		
注意!!这个是可重入的函数
内部利用了信号量来防止同时操作队列

************************************************************************************************************************
*/
extern uchar MsgListAdd(uchar NodeAddress,uchar NodeTurn,uchar NodeTurnOld); //reentrant ;

/*
************************************************************************************************************************
**函数原型:  uchar MsgListGet(MsgStruct *MsgGet);
**参数说明:  取出一条消息。(FIFO)
**返回值:		
**           	返回0xFF表示失败,消息空。
		返回0表示成功。
**
**参数说明:     MsgStruct *MsgGet	取出的消息指针
************************************************************************************************************************
*/
extern uchar MsgListGet(MsgStruct *MsgGet);


#ifndef READYDEF_uchar
  #undef uchar
#endif

⌨️ 快捷键说明

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