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

📄 104sl.h

📁 详细介绍了arm7-at91r40008,的开发全过程
💻 H
字号:
/*------------------------------------------------------------------*/
/*模块名称:104.h                 		                          	*/
/*模块功能:IEC870-5-104:2000从站									*/
/*编写日期:2005年6月                                         		*/
/*编写者:  dingding												*/
/*------------------------------------------------------------------*/


#ifndef DF104SL_H
#define DF104SL_H



/*------------------------------------------------------------------*/
/*-------------------------基本内容定义-----------------------------*/
/*------------------------------------------------------------------*/
#define STARTCODE		0x68	//起始码

//链路层
#define S_FRAME			0x01 
#define U_FRAME			0x03
#define U_STARTDTACT	0x07
#define U_STARTDTCON	0x0B
#define U_STOPDTACT		0x13
#define U_STOPDTCON		0x23
#define U_TESTFRACT		0x43
#define U_TESTFRCON		0x83


//PTick
#define TICKT0USE		0x0001
#define TICKT1USE		0x0002
#define TICKT2USE		0x0004
#define TICKT3USE		0x0008

/*------------------------------------------------------------------*/
/*-------------------------基本结构定义-----------------------------*/
/*------------------------------------------------------------------*/


struct PTick{
	INT8U	Flag;		//按位使用
	INT8U	FlagBak;
	INT16U	TValue0;
	INT16U	TValue2;
	INT16U	TValue3;
	INT16U	TValue1[K];
};

__packed struct PAPCI{
	INT8U	StartCode;
	INT8U	Length;
	INT16U	NS;
	INT16U	NR;
};

struct LinkInfo
{
	//运行参数
	enum DLRXDSTATUS RxdStatus;		//接收状态
	BOOL	Connect;
	
	INT16U	NR;
	INT16U	NS;
	INT16U	PeerNoAckNum;
	INT16U	RxFrmNum;
	BOOL	DataType[K];
	
	INT16U	IdleTimeCount;
	
	struct PTick	Tick;

	
	INT16U	RxdHead;		//处理数据的头指针
	INT16U	RxdTail;		
	INT16U	RxdLength;
	
	INT16U	FrameHead;		//组帧时数据头在发送缓冲区的位置
	INT16U	TxdHead;		//
	INT16U	TxdTail;		//
	
	INT8U	RxdBuf[2*APDULEN];		//接收缓冲区
	INT8U	TxdBuf[2*APDULEN];		//发送缓冲区	
	
	
	
	//参数输入
	INT16U	Tick0;
	INT16U	Tick1;
	INT16U	Tick2;
	INT16U	Tick3;
};

/*------------------------------------------------------------------*/
/*----------------------------函数声明------------------------------*/
/*------------------------------------------------------------------*/

BOOL S104InitLink(INT8U Port, struct PortAppInfo* PortCfg);
void S104LinkOnTimer(INT8U Port);
void S104SearchFrame(INT8U Port);
void S104DLSendProc(INT8U Port, INT8U* pData, INT8U Len);

void S104ProcIFrame(INT8U Port);
void S104ProcSFrame(INT8U Port);
void S104ProcUFrame(INT8U Port);
BOOL S104ProcPeerNoAckNum(INT8U Port, INT16U PeerNR);
void S104SendCtrlFrame(INT8U Port, INT8U Type);
void S104BeginTick(INT8U Port, INT8U No);
void S104StopTick(INT8U Port, INT8U No);
void S104StopDT(INT8U Port);

void S104RecMISIData(INT8U Port, BOOL Flag);
void S104SendDataToMISI(INT8U Port);

void S104NetTest(INT8U Port);


#endif

⌨️ 快捷键说明

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