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

📄 101priapp.h

📁 详细介绍了arm7-at91r40008,的开发全过程
💻 H
字号:
/*------------------------------------------------------------------*/
/*模块名称:101priapp.h                                           	*/
/*模块功能:DL/T 634-1997 101主站方规约应用层头文件					*/
/*编写日期:2005年4月                                         		*/
/*编写者:  dingding												*/
/*------------------------------------------------------------------*/




#ifndef DF101PRIAPP_H
#define DF101PRIAPP_H

//主站应用层任务调度标志
#define	DBREQYK			0x0001	//收到数据库遥控命令
#define	DLDATA1			0x0002	//一级数据标志,链路提供
#define	TIMERALLDATA	0x0004	//全数据标志,定时器提供
#define	TIMERCOUNTER	0x0008	//电度标志,定时器提供
#define	TIMERCLOCK		0x0010	//对钟标志,定时器提供

/*
enum PFTUUseStatus	{NOUSE=0, CALLINITEND, ALLDATA, WAITALLDATACON, CALLALLDATA,
			TIMEDELAY, WAITTIMEDELAYCON, CALLTIMEDELAY, SETTIMEDELAY,
			WAITSETTIMEDELAYCON, SETCLOCK, WAITSETCLOCKCON, CALLCLOCK, CLOCK,
			COUNTERFREEZE, WAITFREEZECON, CALLFREEZECON, COUNTERREAD, WAITCOUNTERREADCON,
			CALLCOUNTERREADCON, CALLCOUNTER, INUSE};*/

enum PFTUUseStatus	{NOUSE=0, USING, INUSE};


/*------------------------------------------------------------------*/
/*----------------------------结构定义------------------------------*/
/*------------------------------------------------------------------*/
struct PDevInfo{		//设备信息
	INT16U	DevID;
	INT16U 	TaskFlag;

//	INT16U	InfoAddr;
	INT16U	ErrorNum;
	
	BOOL	CommStatus;		
	enum PFTUUseStatus	Status;
	
};




struct AppInfo{		//应用层数据结构
	
	INT8U	Tmpbuf[512];	//临时使用缓冲区
 	
 	struct PASDU	*RxMsg;	//应用层接收数据指针 	
 	struct PASDU	TxMsg;	//应用层输出数据区
 	INT16U	TxLen;			//应用层发送长度
	
 	INT16U	AppCommand;		//应用层命令
 	INT16U	AppTaskFlag;

	INT16U	ActIndex;		//当前设备信息的序号	
	INT16U	ActDevIndex;	//当前设备号
	INT16U	YKDevID;

	INT16U	DevNum;
	struct PDevInfo	*AppDevs;

/*	
 	INT16U	Data1Flag;		//一级数据标志
 	INT16U	Data2Flag;		//二级数据标志

 	INT16U	NvaActDev;		//发送变化遥测的当前设备序号
 	INT16U	NvaActDevCur;	//当前设备当前已发送序号
 	INT16U	LastDevIndex;	//记录最近一次发送变位YX,SOE,FA,的设备序号
 	INT16U	LastDevType;
 	INT16U	LastDevNum;
*/ 	


	//定时器
	INT16U	AllDataCount;
	INT16U	ClockCount;
	INT16U	CounterCount;

	//参数输入
	INT16U	BaseControl;
	INT16U	Control;

	INT16U	AllData;	//全数据间隔
	INT16U	SetClock;	//对钟间隔
	INT16U	Counter;	//电度间隔
	INT16U	MaxErrCount;
};
	




/*------------------------------------------------------------------*/
/*----------------------------函数声明------------------------------*/
/*------------------------------------------------------------------*/
void P101_97PriTask(struct SysPort *Info, struct PortAppInfo* PortCfg);
BOOL InitPriApp(INT8U Port, struct PortAppInfo* PortCfg);
void P101AppOnTimer(INT8U Port);

void PriAppProc(INT8U Port, INT16U DLCmd, INT8U* pBuf, INT16U Len);
void P101ProcNextCmd(INT8U Port);

void P101ProcControl(INT8U Port);
void P101ProcSetNVA(INT8U Port);
void P101ProcYX(INT8U Port, INT8U Flag);
void P101ProcYC(INT8U Port, INT8U Flag);
void P101ProcSOE(INT8U Port);
void P101ProcDD(INT8U Port);
void P101ProcTimeDelay(INT8U Port);
void P101ProcClock(INT8U Port);
void P101ProcReset(INT8U Port);
void P101ProcReadData(INT8U Port);
void P101ProcTest(INT8U Port);
void P101ProcParaSet(INT8U Port);
void P101ProcAppErr(INT8U Port);

void P101EnCodeControl(INT8U Port, struct DBBOOPInfo* Info);
void P101EnCodeClock(INT8U Port);
void P101EnCodeAllData(INT8U Port);
void P101EnCodeCounter(INT8U Port);
void P101EnCodeCommStatus(INT8U Port, BOOL Flag);

INT16U P101GetAddrByDevIndex(INT8U Port, INT16U DevID);
INT16U P101GetDevIndexByAddr(INT8U Port, INT16U Addr);
INT16U P101GetIndexByAddr(INT8U Port, INT16U DevID);

#endif

⌨️ 快捷键说明

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