经典的电力系统通讯规约
//内部函数
void	InitDNP3(BYTE ChanNo);   
void	DNP3FrameProcess(void);
void 	DNP3TimeControl(void);
//解桢函数
BYTE DNP3CRCVerify( int BitLength,BYTE *DNP3ReceiveP );
void	DNP3UnlockFrame(void); 
void	DNP3DataLnkCon(void);       //链路层控制
void 	Ft3Check(void);				//解含有UserData的Ft3帧, 把UserData存入应用缓冲区
void 	DltoApp(void);				//将DL层校验过的数据存入APP缓冲区	
void 	AppRead(void);             	//读
void 	AppWrite(void);         	//写
void	TimeWrite(void);			//校时
void 	IINWrite(void);				//写IIN标志位
void	UnsolMessage(void);			//产生主动上报的信息
void	ClassMessage(void);			//树类上报标志 	
void    AppTimeMeasure(void);       //通道延时测量
void	ClassDefination(void);		//类数据重定义
void 	AppFreez(void);         	//执行冻结
void    AppControl(void);       	
void 	UnsolAble(void);				
void 	UnsolDisable(void);
void   	DnpClockToTime(struct CLOCK *lTimer,BYTE * Timebuf);	//转换为DNP时间
void 	DnpTimeToClock(BYTE * Timebuf,struct CLOCK *lTimer);
void  	AppYkSelect(void);     				//遥控选择
void	AppYkOperate(void);					//遥控执行
void	DirectOperYk(void);					//直接遥控执行
void	GYKSelect(BYTE LNode,BYTE LAction);
void	GYKOperate(BYTE byNodeNum,BYTE lFun,BYTE lAct);
void 	NewToOld(void);
WORD 	GetOldId(BYTE i);
//组桢函数 
void	DNP3Framing(void);
void 	DNP3CRCGenerator( int BitLength, int StartBitPos, BYTE *TransData );
void 	AppFrame(void);				//应用层组桢函数
void	TransFrame(BYTE Lcase);		//传输层组桢函数
void	DlFrame(void);				//链路层组桢函数
void	Ft3FrameUserDate(BYTE LS);	//组一帧FT3帧
void	Ft3FrameCon(void);			//组链路层命令桢
void 	AppSendUnsol(void);        	//如有突发信息上送,优先上送
void 	AppSendConfirm(void);      	//如有CONFIRM信息则上送
void 	AppRespone(void);     		//应用层响应帧
void 	DNP3AddIndication(void);	//添加内部信息字IIN
void	FrameOneObject(BYTE AppFrameType,unsigned short iArray);
void	FrameOneInfo(unsigned short iDataStart,unsigned short iDataStop); 
unsigned short GetTotalDataN(BYTE bObjNum);//获取数据个数
void	GetTimeDate(void);				   //获取当前时间	
void	DNP3GetYx(unsigned short i,BYTE);	   //静态遥信
void	GetYxChange(WORD i);		   //变化遥信包括SOE
void	DNP3GetYc(unsigned short i);	   //静态遥测
void 	GetYcChange(WORD i);			   //变化遥测
void	GetCounter(WORD i);				   //计数
void	GetFrozenCounter(WORD i);		   //冻结计数
void 	DNP3GetAo(BYTE i);				   //AO数据
WORD 	GetAo(BYTE i);
void    AppControlRespone(void);
void    TimeRespone(void);				   //响应延时时间
void	YkSelectRespone(void);
void	YkOperateRespone(void);
void 	OperateAoRe(void);
                                    
                                    
                                        
                                            1