www.pudn.com > rtu.rar > class.hh


// 
//File name=class.h 
//设计 何风涛 
//#include	   
//#include	   
#include	 
#include	 
#include	 
#include	_SFR_H_ 
 
#ifndef NULL 
#define NULL ((void *)0) 
#endif 
 
#define PASSX			 1234 
#define PASST			 1111 
 
#define DY_BOARD_1		 0x00  /* 00 */ 
#define BSQ_BOARD_1		 0x08  /* 01 */ 
#define BSQ_BOARD_2		 0x10  /* 02 */ 
#define BSQ_BOARD_3		 0x18  /* 03 */ 
#define BSQ_BOARD_4		 0x20  /* 04 */ 
#define BSQ_BOARD_5		 0x28  /* 05 */ 
#define BSQ_BOARD_6		 0x30  /* 06 */ 
#define BSQ_BOARD_7		 0x38  /* 07 */ 
#define BSQ_BOARD_8		 0x40  /* 08 */ 
#define YX_BOARD_1		 0x48  /* 09 */ 
#define YX_BOARD_2		 0x50  /* 10 */ 
#define YX_BOARD_3		 0x58  /* 11 */ 
#define YX_BOARD_4		 0x60  /* 12 */ 
#define YX_BOARD_5		 0x68  /* 13 */ 
#define YX_BOARD_6		 0x70  /* 14 */ 
#define YM_BOARD_1		 0x78  /* 15 */ 
#define YM_BOARD_2		 0x80  /* 16 */ 
#define YM_BOARD_3		 0x88  /* 17 */ 
#define YM_BOARD_4		 0x90  /* 18 */ 
#define YK_BOARD_1		 0x98  /* 19 */ 
#define YK_BOARD_2		 0xA0  /* 20 */ 
#define YK_BOARD_3		 0xA8  /* 21 */ 
#define YK_BOARD_4		 0xB0  /* 22 */ 
#define YK_BOARD_5		 0xB8  /* 23 */ 
#define YK_BOARD_6		 0xC0  /* 24 */ 
#define YK_BOARD_7		 0xC8  /* 25 */ 
#define YK_BOARD_8		 0xD0  /* 26 */ 
#define YK_BOARD_9		 0xD8  /* 27 */ 
#define YK_BOARD_10		 0xE0  /* 28 */ 
#define YK_BOARD_11		 0xE8  /* 29 */ 
 
 
 
 
 
#define DY_BOARD_1_573		 0x00  /* 00 */ 
#define DY_BOARD_1_245		 0x04  /* 00 */ 
 
#define BSQ_BOARD_1_573 	 0x08  /* 01 IO0 IO1 EN  */ 
#define BSQ_BOARD_2_573 	 0x10  /* 02 IO0 IO1 EN  */ 
#define BSQ_BOARD_3_573 	 0x18  /* 03 IO0 IO1 EN  */ 
#define BSQ_BOARD_4_573 	 0x20  /* 04 IO0 IO1 EN  */ 
#define BSQ_BOARD_5_573 	 0x28  /* 05 IO0 IO1 EN  */ 
#define BSQ_BOARD_6_573 	 0x30  /* 06 IO0 IO1 EN  */ 
#define BSQ_BOARD_7_573 	 0x38  /* 07 IO0 IO1 EN  */ 
#define BSQ_BOARD_8_573 	 0x40  /* 08 IO0 IO1 EN  */ 
 
#define BSQ_BOARD_NUM1		 0x04  /* 01 IO0 IO1 EN  */ 
#define BSQ_BOARD_NUM2		 0x05  /* 01 IO0 IO1 EN  */ 
#define BSQ_BOARD_NUM3		 0x06  /* 01 IO0 IO1 EN  */ 
#define BSQ_BOARD_NUM4		 0x07  /* 01 IO0 IO1 EN  */ 
#define BSQ_BOARD_NULL		 0x00  /* 01 IO0 IO1 EN  */ 
 
 
 
#define YX_BOARD_1_KRL		 0x4C  /* 09 */ 
#define YX_BOARD_1_KRM		 0x4D  /* 09 */ 
#define YX_BOARD_1_KRH		 0x4E  /* 09 */ 
#define YX_BOARD_2_KRL		 0x54  /* 10 */ 
#define YX_BOARD_2_KRM		 0x55  /* 10 */ 
#define YX_BOARD_2_KRH		 0x56  /* 10 */ 
#define YX_BOARD_3_KRL		 0x5C  /* 11 */ 
#define YX_BOARD_3_KRM		 0x5D  /* 11 */ 
#define YX_BOARD_3_KRH		 0x5E  /* 11 */ 
#define YX_BOARD_4_KRL		 0x64  /* 12 */ 
#define YX_BOARD_4_KRM		 0x65  /* 12 */ 
#define YX_BOARD_4_KRH		 0x66  /* 12 */ 
#define YX_BOARD_5_KRL		 0x6C  /* 13 */ 
#define YX_BOARD_5_KRM		 0x6D  /* 13 */ 
#define YX_BOARD_5_KRH		 0x6E  /* 13 */ 
#define YX_BOARD_6_KRL		 0x74  /* 14 */ 
#define YX_BOARD_6_KRM		 0x75  /* 14 */ 
#define YX_BOARD_6_KRH		 0x76  /* 14 */ 
#define YM_BOARD_1_KRL		 0x7C  /* 15 */ 
#define YM_BOARD_1_KRM		 0x7D  /* 15 */ 
#define YM_BOARD_1_KRH		 0x7E  /* 15 */ 
#define YM_BOARD_2_KRL		 0x84  /* 16 */ 
#define YM_BOARD_2_KRM		 0x85  /* 16 */ 
#define YM_BOARD_2_KRH		 0x86  /* 16 */ 
#define YM_BOARD_3_KRL		 0x8C  /* 17 */ 
#define YM_BOARD_3_KRM		 0x8D  /* 17 */ 
#define YM_BOARD_3_KRH		 0x8E  /* 17 */ 
#define YM_BOARD_4_KRL		 0x94  /* 18 */ 
#define YM_BOARD_4_KRM		 0x95  /* 18 */ 
#define YM_BOARD_4_KRH		 0x96  /* 18 */ 
 
#define YK_BOARD_1_KC0_4	 0x98  /* 19 */ 
#define YK_BOARD_1_KC5_8	 0x99  /* 19 */ 
#define YK_BOARD_1_KC9_12	 0x9A  /* 19 */ 
#define YK_BOARD_1_245		 0x9C  /* 19 */ 
#define YK_BOARD_2_KC0_4	 0xA0  /* 20 */ 
#define YK_BOARD_2_KC5_8	 0xA1  /* 20 */ 
#define YK_BOARD_2_KC9_12	 0xA2  /* 20 */ 
#define YK_BOARD_2_245		 0xA4  /* 20 */ 
#define YK_BOARD_3_KC0_4	 0xA8  /* 21 */ 
#define YK_BOARD_3_KC5_8	 0xA9  /* 21 */ 
#define YK_BOARD_3_KC9_12	 0xAA  /* 21 */ 
#define YK_BOARD_3_245		 0xAC  /* 21 */ 
#define YK_BOARD_4_KC0_4	 0xB0  /* 22 */ 
#define YK_BOARD_4_KC5_8	 0xB1  /* 22 */ 
#define YK_BOARD_4_KC9_12	 0xB2  /* 22 */ 
#define YK_BOARD_4_245		 0xB4  /* 22 */ 
#define YK_BOARD_5_KC0_4	 0xB8  /* 23 */ 
#define YK_BOARD_5_KC5_8	 0xB9  /* 23 */ 
#define YK_BOARD_5_KC9_12	 0xBA  /* 23 */ 
#define YK_BOARD_5_245		 0xBC  /* 23 */ 
#define YK_BOARD_6_KC0_4	 0xC0  /* 24 */ 
#define YK_BOARD_6_KC5_8	 0xC1  /* 24 */ 
#define YK_BOARD_6_KC9_12	 0xC2  /* 24 */ 
#define YK_BOARD_6_245		 0xC4  /* 24 */ 
#define YK_BOARD_7_KC0_4	 0xC8  /* 25 */ 
#define YK_BOARD_7_KC5_8	 0xC9  /* 25 */ 
#define YK_BOARD_7_KC9_12	 0xCA  /* 25 */ 
#define YK_BOARD_7_245		 0xCC  /* 25 */ 
#define YK_BOARD_8_KC0_4	 0xD0  /* 26 */ 
#define YK_BOARD_8_KC5_8	 0xD1  /* 26 */ 
#define YK_BOARD_8_KC9_12	 0xD2  /* 26 */ 
#define YK_BOARD_8_245		 0xD4  /* 26 */ 
#define YK_BOARD_9_KC0_4	 0xD8  /* 27 */ 
#define YK_BOARD_9_KC5_8	 0xD9  /* 27 */ 
#define YK_BOARD_9_KC9_12	 0xDA  /* 27 */ 
#define YK_BOARD_9_245		 0xDC  /* 27 */ 
#define YK_BOARD_10_KC0_4	 0xE0  /* 28 */ 
#define YK_BOARD_10_KC5_8	 0xE1  /* 28 */ 
#define YK_BOARD_10_KC9_12	 0xE2  /* 28 */ 
#define YK_BOARD_10_245 	 0xE4  /* 28 */ 
#define YK_BOARD_11_KC0_4	 0xE8  /* 29 */ 
#define YK_BOARD_11_KC5_8	 0xE9  /* 29 */ 
#define YK_BOARD_11_KC9_12	 0xEA  /* 29 */ 
#define YK_BOARD_11_245 	 0xEC  /* 29 */ 
 
#define YK_BOARD_NULL_1 	 0x57 
#define YK_BOARD_NULL_2 	 0x55 
#define YK_BOARD_NULL_3 	 0x55 
 
#define YK_BOARD_POWER_OR_1	 0x80  /* KC4- =HIGHT V */ 
#define YK_BOARD_POWER_OR_2	 0x00 
#define YK_BOARD_POWER_OR_3	 0x00 
#define YK_BOARD_POWER_AND_1	 0xBF  /* KC4  =LOW V	*/ 
#define YK_BOARD_POWER_AND_2	 0xFF 
#define YK_BOARD_POWER_AND_3	 0xFF 
 
#define YK_BOARD_1T_1		 0x56  /* KC0=LOW V	*/ 
#define YK_BOARD_1T_2		 0x55 
#define YK_BOARD_1T_3		 0x55 
#define YK_BOARD_1H_1		 0x55  /* KC1=LOW V	*/ 
#define YK_BOARD_1H_2		 0x55 
#define YK_BOARD_1H_3		 0x55 
 
#define YK_BOARD_2T_1		 0x5B  /* KC2=0 KC2-=1	*/ 
#define YK_BOARD_2T_2		 0x55 
#define YK_BOARD_2T_3		 0x55 
#define YK_BOARD_2H_1		 0x67  /* KC3=0 KC3-=1	*/ 
#define YK_BOARD_2H_2		 0x55 
#define YK_BOARD_2H_3		 0x55 
 
#define YK_BOARD_3T_1		 0x57 
#define YK_BOARD_3T_2		 0x56  /* KC5=0 KC5-=1	*/ 
#define YK_BOARD_3T_3		 0x55 
#define YK_BOARD_3H_1		 0x57 
#define YK_BOARD_3H_2		 0x59  /* KC6=0 KC6-=1	*/ 
#define YK_BOARD_3H_3		 0x55 
 
#define YK_BOARD_4T_1		 0x57 
#define YK_BOARD_4T_2		 0x65  /* KC7=0 KC7-=1	*/ 
#define YK_BOARD_4T_3		 0x55 
#define YK_BOARD_4H_1		 0x57 
#define YK_BOARD_4H_2		 0x95  /* KC8=0 KC8-=1	*/ 
#define YK_BOARD_4H_3		 0x55 
 
#define YK_BOARD_5T_1		 0x57 
#define YK_BOARD_5T_2		 0x55 
#define YK_BOARD_5T_3		 0x56  /* KC9=0  KC9-=1 */ 
#define YK_BOARD_5H_1		 0x57 
#define YK_BOARD_5H_2		 0x55 
#define YK_BOARD_5H_3		 0x59  /* KC10=0 KC10-=1*/ 
 
#define YK_BOARD_6T_1		 0x57 
#define YK_BOARD_6T_2		 0x55 
#define YK_BOARD_6T_3		 0x65  /* KC11=0 KC11-=1  */ 
#define YK_BOARD_6H_1		 0x57 
#define YK_BOARD_6H_2		 0x55 
#define YK_BOARD_6H_3		 0x95  /* KC12=0 KC12-=1  */ 
 
 
#define RESET_NULL		 0x00	/* for can control register	       */ 
#define RESET_REQUEST		 0x01	/* reset control register request      */ 
#define CAN_CTRL_RIE		 0x1A	/*02 /* enable receive interrupt & 1-resync */ 
#define CAN_CTRL_TIE		 0x1E	/*06 /* enable transmit interrupt & 1-resync*/ 
#define CAN_OUT_CTRL		 0xFA	/*EA /* pull-down, normal output mode or AAH*/ 
#define CAN_BUS_TIM0		 0x89	/* 1.25uS-clock, 3.75uS-Tsjw  at 16Mhz */ 
#define CAN_BUS_TIM1		 0x2F	/*EB /* 3-sampling, 8.75uS-Tseg2, 15uS-Tseg1*/ 
#define CAN_RXD_INTR		 0x01	/* for can interrupt register  */ 
#define CAN_TXD_INTR		 0x02 
#define CAN_ERR_INTR		 0x04 
#define CAN_OVR_INTR		 0x08 
#define TCAN_REQUEST		 0x01	/* for can command register    */ 
#define RCAN_RELEASE		 0x04 
#define OVERRUN_INIT		 0x08 
#define TCAN_ENABLE		 0x04 
#define CAN_BUS_ERR		 0x80 
#define MAX_CAN_LEN		 0x800 
 
 
 
#ifdef	_C196_ 
#if _ARCHITECTURE_ != 'NT' 
#pragma model(NT-EF) 
#endif 
#endif 
 
/*-------------------------公共变量----------------------------------*/ 
 
#if !defined(FARDATA) 
#if _FAR_DATA_ || _FAR_CONST_ 
#define FARDATA 	far 
#else 
#define FARDATA 
#endif 
#endif 
/*----------------------------类型预定义---------------------------*/ 
typedef unsigned char	    BOOL; 
typedef unsigned char	    BYTE; 
typedef unsigned short	    WORD; 
typedef unsigned long	    DWORD; 
typedef unsigned int	    UINT; 
typedef DWORD		    LONG; 
typedef void	 FARDATA    *PVOID; 
/*-----------------中断宏定义------------------------------------------*/ 
/*-----------------宏变量------------------------------------------*/ 
#define MAXTASK 		 52 
#define YkTaskNo		 51 
#define YcCalcTaskNo		 50 
#define XmScanTaskNo		 49 
#define DisplayTaskNo		 48 
#define DbaseTaskNo		 47 
#define ComDeviceTaskNo 	 46 
 
#define Can1FrameTaskNo 	 1 
#define Can0FrameTaskNo 	 0 
 
 
#define IEC101PACKETSIZE	 0x100 
#define IEC101REPEAT		 2 
 
 
#define MAXCOMNUM		 8 /* 设备驱动串口号 */ 
 
#define MAXCANMAIL		 100 
#define MAXSAMPLECOUNT		 128 
#define Can0ComhandleNo 	 0x00 
#define Can1ComhandleNo 	 0x01 
 
#define TaskNoCOM00		 0x02 
#define TaskNoCOM01		 0x03 
#define TaskNoCOM02		 0x04 
#define TaskNoCOM03		 0x05 
#define TaskNoCOM04		 0x06 
#define TaskNoCOM05		 0x07 
#define TaskNoCOM06		 0x08 
#define TaskNoCOM07		 0x09 
#define TaskNoCOM08		 0x0A 
#define TaskNoCOM09		 0x0B 
#define TaskNoCOM10		 0x0C 
#define TaskNoCOM11		 0x0D 
#define TaskNoCOM12		 0x0E 
#define TaskNoCOM13		 0x0F 
#define TaskNoCOM14		 0x10 
#define TaskNoCOM15		 0x11 
 
#define MaxMailLength		 254 
#define MaxMailNum		 100 
#define MAXSOE			 512 
#define MAXEMPMAIL		 100 
#define MAXMRNUM		 64 
#define MAXLINENUM		 24 
#define MAXYWNUM		 24 
 
#define MAXWORKMODE		 1 
 
#define KEYSPEED		 30 
#define TXD_BUF_PRO		 0x01 
#define RXD_BUF_PRO		 0x00 
#define KEYDELAY		 2000 
 
 
#define WREN_INST		 0x06 
#define WRDI_INST		 0x04 
#define WRSR_INST		 0x01 
#define RDSR_INST		 0x05 
#define WRITE_INST		 0x02 
#define READ_INST		 0x03 
#define BYTE_ADDR		 0x55 
#define BYTE_DATA		 0x11 
#define PAGE_ADDR		 0x1f0 
#define PAGE_DATA1		 0x22 
#define PAGE_DATA2		 0x33 
#define PAGE_DATA3		 0x44 
#define STATUS_REG		 0x00 
#define MAX_POLL		 0x200 
#define INIT_STATE		 0x09 
#define SLIC			 0x30 
 
 
#define CAN0_REG_BASE		 0x001200 
#define CAN1_REG_BASE		 0x001300 
 
#define DADA_BIT_5		 0x00; 
#define DADA_BIT_6		 0x01; 
#define DADA_BIT_7		 0x02; 
#define DADA_BIT_8		 0x03; 
 
#define COM_16C554_CSA_BASE	 0x001380 
#define COM_16C554_CSA_RBR	 0x001380  /*接收缓冲寄存器 只读 DLAB=0 */ 
#define COM_16C554_CSA_THR	 0x001380  /*发送保持寄存器 只写 DLAB=0 */ 
#define COM_16C554_CSA_IER	 0x001381  /*中断使能寄存器	 DLAB=0 */ 
#define COM_16C554_CSA_IIR	 0x001382  /*中断识别寄存器 只读	 */ 
#define COM_16C554_CSA_FCR	 0x001382  /*FIFO控制寄存器 只写	 */ 
#define COM_16C554_CSA_LCR	 0x001383  /*线路控制寄存器		 */ 
#define COM_16C554_CSA_MCR	 0x001384  /*MODEM控制寄存器		 */ 
#define COM_16C554_CSA_LSR	 0x001385  /*线路状态寄存器		 */ 
#define COM_16C554_CSA_MSR	 0x001386  /*MODEM状态寄存器		 */ 
#define COM_16C554_CSA_DLL	 0x001380  /*分频锁存低字节	 DLAB=1 */ 
#define COM_16C554_CSA_DLM	 0x001381  /*分频锁存高字节	 DLAB=1 */ 
#define COM_16C554_CSB_BASE	 0x001388 
#define COM_16C554_CSB_RBR	 0x001388   /*接收缓冲寄存器 只读 DLAB=0 */ 
#define COM_16C554_CSB_THR	 0x001388   /*发送保持寄存器 只写 DLAB=0 */ 
#define COM_16C554_CSB_IER	 0x001389   /*中断使能寄存器	  DLAB=0 */ 
#define COM_16C554_CSB_IIR	 0x00138A   /*中断识别寄存器 只读	  */ 
#define COM_16C554_CSB_FCR	 0x00138A   /*FIFO控制寄存器 只写	  */ 
#define COM_16C554_CSB_LCR	 0x00138B   /*线路控制寄存器		  */ 
#define COM_16C554_CSB_MCR	 0x00138C   /*MODEM控制寄存器		  */ 
#define COM_16C554_CSB_LSR	 0x00138D   /*线路状态寄存器		  */ 
#define COM_16C554_CSB_MSR	 0x00138E   /*MODEM状态寄存器		  */ 
#define COM_16C554_CSB_DLL	 0x001388   /*分频锁存低字节	  DLAB=1 */ 
#define COM_16C554_CSB_DLM	 0x001389   /*分频锁存高字节	  DLAB=1 */ 
 
#define COM_16C554_CSC_BASE	 0x001390 
#define COM_16C554_CSC_RBR	 0x001390   /*接收缓冲寄存器 只读 DLAB=0 */ 
#define COM_16C554_CSC_THR	 0x001390   /*发送保持寄存器 只写 DLAB=0 */ 
#define COM_16C554_CSC_IER	 0x001391   /*中断使能寄存器	  DLAB=0 */ 
#define COM_16C554_CSC_IIR	 0x001392   /*中断识别寄存器 只读	  */ 
#define COM_16C554_CSC_FCR	 0x001392   /*FIFO控制寄存器 只写	  */ 
#define COM_16C554_CSC_LCR	 0x001393   /*线路控制寄存器		  */ 
#define COM_16C554_CSC_MCR	 0x001394   /*MODEM控制寄存器		  */ 
#define COM_16C554_CSC_LSR	 0x001395   /*线路状态寄存器		  */ 
#define COM_16C554_CSC_MSR	 0x001396   /*MODEM状态寄存器		  */ 
#define COM_16C554_CSC_DLL	 0x001390   /*分频锁存低字节	  DLAB=1 */ 
#define COM_16C554_CSC_DLM	 0x001391   /*分频锁存高字节	  DLAB=1 */ 
 
#define COM_16C554_CSD_BASE	 0x001398 
#define COM_16C554_CSD_RBR	 0x001398   /*接收缓冲寄存器 只读 DLAB=0 */ 
#define COM_16C554_CSD_THR	 0x001398   /*发送保持寄存器 只写 DLAB=0 */ 
#define COM_16C554_CSD_IER	 0x001399   /*中断使能寄存器	  DLAB=0 */ 
#define COM_16C554_CSD_IIR	 0x00139A   /*中断识别寄存器 只读	  */ 
#define COM_16C554_CSD_FCR	 0x00139A   /*FIFO控制寄存器 只写	  */ 
#define COM_16C554_CSD_LCR	 0x00139B   /*线路控制寄存器		  */ 
#define COM_16C554_CSD_MCR	 0x00139C   /*MODEM控制寄存器		  */ 
#define COM_16C554_CSD_LSR	 0x00139D   /*线路状态寄存器		  */ 
#define COM_16C554_CSD_MSR	 0x00139E   /*MODEM状态寄存器		  */ 
#define COM_16C554_CSD_DLL	 0x001398   /*分频锁存低字节	  DLAB=1 */ 
#define COM_16C554_CSD_DLM	 0x001399   /*分频锁存高字节	  DLAB=1 */ 
 
 
#define COM_16C550_BASE 	 0x0013A0 
#define COM_16C550_RBR		 0x0013A0   /*接收缓冲寄存器 只读 DLAB=0 */ 
#define COM_16C550_THR		 0x0013A0   /*发送保持寄存器 只写 DLAB=0 */ 
#define COM_16C550_IER		 0x0013A1   /*中断使能寄存器	  DLAB=0 */ 
#define COM_16C550_IIR		 0x0013A2   /*中断识别寄存器 只读	  */ 
#define COM_16C550_FCR		 0x0013A2   /*FIFO控制寄存器 只写	  */ 
#define COM_16C550_LCR		 0x0013A3   /*线路控制寄存器		  */ 
#define COM_16C550_MCR		 0x0013A4   /*MODEM控制寄存器		  */ 
#define COM_16C550_LSR		 0x0013A5   /*线路状态寄存器		  */ 
#define COM_16C550_MSR		 0x0013A6   /*MODEM状态寄存器		  */ 
#define COM_16C550_DLL		 0x0013A0   /*分频锁存低字节	  DLAB=1 */ 
#define COM_16C550_DLM		 0x0013A1   /*分频锁存高字节	  DLAB=1 */ 
 
 
 
 
#define PSD_RAM_BASE		 0x00A000 /*  PSD 4135G2 512K(Main) 32K(Boot) 8K(SRAM) */ 
#define CY256_RAM_BASE		 0xF10000 
#define PSD_FLASH_BASE		 0x002000 
#define PSD_NAIN_BASE		 0xF80000 
 
#define YXBV_TOP		 0xF7F9FF 
#define YXBV_BOTTOM		 0xF7F200 
#define YSOE_TOP		 0xF7EFFF 
#define YSOE_BOTTOM		 0xF7D000 
 
#define LCDDELAY		 50000	/* 50000*50=2500000ms=2500S  */ 
#define PSD_REG_BASE		 0x001000 /*  PSD 4135G2 512K(Main) 32K(Boot) 8K(SRAM) */ 
#define PSD_DATAIN_A		 PSD_REG_BASE +0x00 
#define PSD_DATAOUT_A		 PSD_REG_BASE +0x04 
#define PSD_DIRECTION_A 	 PSD_REG_BASE +0x06/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_A		 PSD_REG_BASE +0x08/*0:互补输出(default) 1:开漏输出 */ 
#define PSD_DATAIN_B		 PSD_REG_BASE +0x01 
#define PSD_DATAOUT_B		 PSD_REG_BASE +0x05 
#define PSD_DIRECTION_B 	 PSD_REG_BASE +0x07/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_B		 PSD_REG_BASE +0x09/*0:互补输出(default) 1:开漏输出 */ 
#define PSD_DATAIN_C		 PSD_REG_BASE +0x10 
#define PSD_DATAOUT_C		 PSD_REG_BASE +0x14 
#define PSD_DIRECTION_C 	 PSD_REG_BASE +0x16/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_C		 PSD_REG_BASE +0x18/*0:互补输出(default) 1:Slew Rate mode */ 
#define PSD_DATAIN_D		 PSD_REG_BASE +0x11 
#define PSD_DATAOUT_D		 PSD_REG_BASE +0x15 
#define PSD_DIRECTION_D 	 PSD_REG_BASE +0x17/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_D		 PSD_REG_BASE +0x19/*0:互补输出(default) 1:开漏输出 */ 
#define PSD_DATAIN_E		 PSD_REG_BASE +0x30 
#define PSD_CONTROL_E		 PSD_REG_BASE +0x32/* 0:MCU I/O(default) 1:latched adress out  mode  */ 
#define PSD_DATAOUT_E		 PSD_REG_BASE +0x34/* PE.7=LED2  */ 
#define PSD_DIRECTION_E 	 PSD_REG_BASE +0x36/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_E		 PSD_REG_BASE +0x38/*0:互补输出(default) 1:开漏输出 */ 
#define PSD_DATAIN_F		 PSD_REG_BASE +0x40 
#define PSD_CONTROL_F		 PSD_REG_BASE +0x42/* 0:MCU I/O(default) 1:latched adress out  mode  */ 
#define PSD_DATAOUT_F		 PSD_REG_BASE +0x44 
#define PSD_DIRECTION_F 	 PSD_REG_BASE +0x46/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_F		 PSD_REG_BASE +0x48/*0:互补输出(default) 1:Slew Rate mode */ 
#define PSD_DATAIN_G		 PSD_REG_BASE +0x41 
#define PSD_CONTROL_G		 PSD_REG_BASE +0x43/* 0:MCU I/O(default) 1:latched adress out  mode  */ 
#define PSD_DATAOUT_G		 PSD_REG_BASE +0x45 
#define PSD_DIRECTION_G 	 PSD_REG_BASE +0x47/*0:inport(default) 1:outport*/ 
#define PSD_DRIVE_G		 PSD_REG_BASE +0x49/*0:互补输出(default) 1:开漏输出 */ 
 
#define PSD_MAINPROTECT 	 PSD_REG_BASE +0xC0/*0:no;1:write protected   只读 */ 
#define PSD_ALTPROTECT		 PSD_REG_BASE +0xC2/*0:no;1:write protected  */ 
#define PSD_PMMR0		 PSD_REG_BASE +0xB0 
				 // power-on default = 0x00 
				 // power-on default = 0x00 
				 // bit 5 - CLKIN input to MCell (1=off) 
				 // bit 4 - CLKIN input to PLD array (1=off) 
				 // bit 3 - PLD turbo mode (ZPSD only) (1=disable) 
				 // bit 1 - APD unit (1=enable) 
#define PSD_PMMR2		 PSD_REG_BASE +0xB4 
				 // power-on default = 0x00 
				 // bit 6 - DBE input to PLD array (1=off) 
				 // bit 5 - ALE input to PLD array (1=off) 
				 // bit 4 - CNTL2 input to PLD array (1=off) 
				 // bit 3 - CNTL1 input to PLD array (1=off) 
				 // bit 2 - CNTL0 input to PLD array (1=off) 
#define PSD_PAGE		 PSD_REG_BASE +0xE0 
#define PSD_VM			 PSD_REG_BASE +0xE2 
#define MEMORY_ID0		 PSD_REG_BASE +0xF0 /* 只读  */ 
#define MEMORY_ID1		 PSD_REG_BASE +0xF1 /* 只读  */ 
 
 
#define ADFREQ_COEF		 0x13E0 /*   */ 
#define AD7874_CMD		 0x13E4 /*   */ 
#define AD7874_DAT		 0x13E4 /*   */ 
 
 
#define EXINT_INT_BIT		 0x4000 
#define EPA0_INT_BIT		 0x0010 
#define EPA1_INT_BIT		 0x0008 
#define EPA2_INT_BIT		 0x0004 
#define EPA3_INT_BIT		 0x0002 
#define EPA4_INT_BIT		 0x0001 
#define EPA5_INT_BIT		 0x0001 
#define EPA6_INT_BIT		 0x0001 
#define EPA7_INT_BIT		 0x0001 
#define EPA8_INT_BIT		 0x0001 
#define EPA9_INT_BIT		 0x0001 
 
 
 
#define EPA4_EPAMASK_BIT	 0x8000 
#define EPA5_EPAMASK_BIT	 0x4000 
#define EPA6_EPAMASK_BIT	 0x2000 
#define EPA7_EPAMASK_BIT	 0x1000 
#define EPA8_EPAMASK_BIT	 0x0800 
#define EPA9_EPAMASK_BIT	 0x0400 
#define EPA0_OVR_BIT		 0x0200 
#define EPA1_OVR_BIT		 0x0100 
#define EPA2_OVR_BIT		 0x0080 
#define EPA3_OVR_BIT		 0x0040 
#define EPA4_OVR_BIT		 0x0020 
#define EPA5_OVR_BIT		 0x0010 
#define EPA6_OVR_BIT		 0x0008 
#define EPA7_OVR_BIT		 0x0004 
#define EPA8_OVR_BIT		 0x0002 
#define EPA9_OVR_BIT		 0x0001 
#define COMP_CH0_BIT		 0x0008 
#define COMP_CH1_BIT		 0x0004 
#define TIMR1_OVR_BIT		 0x0002 
#define TIMR2_OVR_BIT		 0x0001 
 
#define SRXD_INT_BIT		 0x10 
#define STXD_INT_BIT		 0x08 
 
#define CAPTURE 		 0x00 
#define BOTH_EDGE		 0x30 
#define UP_EDGE 		 0x20 
#define DOWN_EDGE		 0x10 
#define USE_TIMER1		 0x00 
#define USE_TIMER2		 0x80 
#define COMPARE 		 0x40 
#define IGNORES 		 0x00 
#define OVERWRITES		 0x01 
 
#define RE_ENABLE		 0x08 
#define CLR_PIN 		 0x10 
#define SET_PIN 		 0x20 
#define TOGGLE_PIN		 0x30 
#define RESET_OWN_TIMER 	 0x01	  /* ROT=0 ON/RT=1  */ 
#define RESET_THE_TIMER 	 0x03	  /* ROT=1 ON/RT=1  */ 
 
 
#define DS12887BASE		 0x001100 
#define DS_SECOND		 DS12887BASE+0x00 
#define DS_SECONDWARN		 DS12887BASE+0x01 
#define DS_MINUTE		 DS12887BASE+0x02 
#define DS_MINUTEWARN		 DS12887BASE+0x03 
#define DS_HOUR 		 DS12887BASE+0x04 
#define DS_HOURWARN		 DS12887BASE+0x05 
#define DS_WEEK 		 DS12887BASE+0x06 
#define DS_DATE 		 DS12887BASE+0x07 
#define DS_MONTH		 DS12887BASE+0x08 
#define DS_YEAR 		 DS12887BASE+0x09 
#define DS_REGA 		 DS12887BASE+0x0A 
#define DS_REGB 		 DS12887BASE+0x0B 
#define DS_REGC 		 DS12887BASE+0x0C 
#define DS_REGD 		 DS12887BASE+0x0D 
#define DS_CENTURY		 DS12887BASE+0x32 
 
 
#define FLASH_COMMON_MAIN_XAAA	0x9AAA+PSD_MAIN_BASE 
#define FLASH_COMMON_MAIN_X554	0x9554+PSD_MAIN_BASE 
#define FLASH_COMMON_BOOT_XAAA	0x0AAA+PSD_FLASH_BASE 
#define FLASH_COMMON_BOOT_X554	0x0554+PSD_FLASH_BASE 
 
 
#define LITTLE_ENDIAN  // comment out this line if big-endian data format is 
		       // used by MCU. Leave it the way it is if little-endian 
		       // format is used by MCU. See note above. 
#ifdef LITTLE_ENDIAN   // mask patterns for little-endian MCU format 
  #define NVM_DATA_POLL     0x0080		// flash status "data poll" bit at DQ7 
  #define NVM_DATA_TOGGLE   0x0040		// flash status "toggle poll" bit at DQ6 
  #define NVM_ERROR	    0x0020		// flash status "error" bit at DQ5 
 
#else			// mask patterns for big-endian MCU format 
  #define NVM_DATA_POLL     0x8000		// flash status "data poll" bit at DQ15 
  #define NVM_DATA_TOGGLE   0x4000		// flash status "toggle poll" bit at DQ14 
  #define NVM_ERROR	    0x2000		// flash status "error" bit at DQ13 
#endif 
 
#define KEYCONTROL		 0x0013C2 /* 0:输入 1: 输出 */ 
#define KEYDATA 		 0x0013C0 
#define NULLKEY 		 0xff 
 
#define RESET			 0x0A /*  复位键  KEYDATA.8  */ 
#define F2			 0x09 /*  修改键  KEYDATA.8  */ 
#define F1			 0x08 /*  修改键  KEYDATA.8  */ 
#define OKKEY			 0x07 /*  确认键  KEYDATA.7  */ 
#define ESCKEY			 0x06 /*  ESC	  KEYDATA.6  */ 
#define MINUSKEY		 0x05 /*  -/复归  KEYDATA.5  */ 
#define PLUSKEY 		 0x04 /*  +/功能  KEYDATA.4  */ 
#define RIGHTKEY		 0x03 /*  Right   KEYDATA.3  */ 
#define DOWNKEY 		 0x02 /*  Down	  KEYDATA.2  */ 
#define UPKEY			 0x01 /*  UP	  KEYDATA.1  */ 
#define LEFTKEY 		 0x00 /*  Left	  KEYDATA.0  */ 
 
#define COUNT_ENABLE		 0x80 
#define COUNT_UP		 0x40 
#define CLOCK_INTERNAL		 0x00 
#define DIVIDE_BY_1		 0x00 
#define DIVIDE_BY_2		 0x01 
#define DIVIDE_BY_4		 0x02 
 
 
#define LCD_CMD_WR		 0x4F /*  0  0 PE.5=LED1=RD/WR PE.4=LED0=D/I */ 
#define LCD_CMD_RD		 0x6F /*  1  0	  */ 
#define LCD_DAT_WR		 0x5F /*  0  1	  */ 
#define LCD_DAT_RD		 0x7F /*  1  1	  */ 
 
#define WdogLTaskNo		 100 
#define WdogHTaskNo		 101 
#define FALSE			 0 
#define TRUE			 1 
#define IGNORE			 0 
#define ABORT			 2 
 
 
 
 
#ifndef __IEC101MODE 
#define    C_RQ_NA_1_LNKREQ	 0 /* 请求链路状态				*/ 
#define    M_RQ_NA_1_LNKRES	 1 /* 链路状态响应帧				*/ 
#define    C_RL_NA_1_SEND	 2 /* 复位远方链路				*/ 
#define    M_RL_NA_1_CON	 3 /* 复位远方链路确认帧			*/ 
#define    M_RQ_NA_1_LNKREQ	 4 /* 子站请求链路状态				*/ 
#define    C_RQ_NA_1_LNKRES	 5 /* 主站链路状态响应帧			*/ 
#define    M_RL_NA_1_LNKACT	 6 /* 子站复位远方链路				*/ 
#define    C_RL_NA_1_ACTCON	 7 /* 子站复位远方链路确认帧			*/ 
#define    C_CON_NA_1		 8 /* 主站对子站主动触发帧的确认帧		*/ 
#define    M_NV_NA_1		 9 /* 无所请求的数据帧				*/ 
#define    C_P1_NA_1		 10/* 召唤1级数据				*/ 
#define    C_P2_NA_1		 11/* 召唤2级数据				*/ 
#define    C_PA_NA_1		 12/* 召唤要求访问位的请求帧			*/ 
#define    C_PA_NA_1RES 	 13/* 召唤要求访问位的响应帧			*/ 
#define    C_RP_NA_1ACT 	 14/* 复位远动终端发送帧			*/ 
#define    C_RP_NA_1ACTCON	 15/* 复位远动终端确认帧			*/ 
#define    C_IC_NA_1ACT 	 16/* 总召唤命令帧				*/ 
#define    C_IC_NA_1ACTCON	 17/* 总召唤确认帧				*/ 
#define    M_ME_NA_1CYCLIC	 18/* 带品质描述的遥测帧			*/ 
#define    M_ME_ND_1CYCLIC	 19/* 不带品质描述的遥测帧			*/ 
#define    M_SP_NA_1CYCLIC	 20/* 单点遥信帧				*/ 
#define    M_DP_NA_1CYCLIC	 21/* 双点遥信帧				*/ 
#define    M_ST_NA_1CYCLIC	 22/* 变压器分接头帧				*/ 
#define    M_BO_NA_1CYCLIC	 23/* 远动终端状态帧				*/ 
#define    M_BD_NA_1CYCLIC	 24/* BCD码响应帧				*/ 
#define    M_IC_NA_1ACTTERM	 25/* 总召唤结束帧				*/ 
#define    C_IC_NA_1CYCLICACT	 26/* 分组召唤发送帧				*/ 
#define    C_IC_NA_1CYCLICACTCON 27/* 分组召唤响应帧				*/ 
#define    M_RL_NA_1		 28/* 主站初始化结束响应帧			*/ 
#define    M_EI_NA_1		 29/* 子站初始化结束帧				*/ 
#define    C_CS_NA_1ACT 	 30/* 时钟同步发送帧				*/ 
#define    C_CS_NA_1ACTCON	 31/* 时钟同步确认帧				*/ 
#define    M_ME_NA_1SPONT	 32/* 带品质描述的遥测数据变化响应帧		*/ 
#define    M_ME_ND_1SPONT	 33/* 不带品质描述的遥测数据变化响应帧		*/ 
#define    M_ME_TA_1SPONT	 34/* 带时标的遥测数据变化响应帧		*/ 
#define    M_ST_NA_1SPONT	 35/* 变压器分接头变化响应帧			*/ 
#define    M_BD_NA_1SPONT	 36/* BCD码变化响应帧				*/ 
#define    M_SP_TA_1		 37/* 单点信息事件顺序记录帧			*/ 
#define    M_DP_TA_1		 38/* 双点信息事件顺序记录帧			*/ 
#define    M_EP_TA_1		 39/* 继电器保护装置单点信息事件顺序记录帧	*/ 
#define    M_EP_TB_1		 40/* 继电器保护装置 成组启动事件顺序记录帧	*/ 
#define    M_EP_TC_1		 41/* 继电器保护装置 成组输出电路事件顺序记录帧 */ 
#define    M_ST_TA_1		 42/* 带时标的步位置信息(变压器分接头)帧	*/ 
#define    M_SP_NA_1SPONT	 43/* 单点信息状态变位帧			*/ 
#define    M_DP_NA_1SPONT	 44/* 双点遥信变位帧				*/ 
#define    M_PS_NA_1SPONT	 45/* 状态和状态变位的遥信帧			*/ 
#define    M_BO_NA_1SPONT	 46/* 远动终端状态变化帧			*/ 
#define    C_RD_NA_1ACT 	 47/* 由主站的读命令发送帧			*/ 
#define    M_CON_NA_1ACTCON	 48/* 读数据命令的确认帧			*/ 
#define    M_DATA_NA_1SPONT	 49/* 由主站的读命令形成的1级用户数据帧 	*/ 
#define    C_DC_NA_1ACT 	 50/* 遥控选择命令 发送帧			*/ 
#define    C_DC_NA_1ACTCON	 51/* 遥控选择命令 确认帧			*/ 
#define    C_DC_NA_1DEACT	 52/* 遥控撤消命令 发送帧			*/ 
#define    C_DC_NA_1DEACTCON	 53/* 遥控撤消命令 确认帧			*/ 
#define    C_DC_NA_1EXCO	 54/* 遥控执行命令 发送帧			*/ 
#define    C_DC_NA_1EXCOCON	 55/* 遥控执行命令 确认帧			*/ 
 
#define    C_RC_NA_1ACT 	 56/* 升降选择命令 发送帧			*/ 
#define    C_RC_NA_1ACTCON	 57/* 升降选择命令 确认帧			*/ 
#define    C_RC_NA_1DEACT	 58/* 升降撤消命令 发送帧			*/ 
#define    C_RC_NA_1DEACTCON	 59/* 升降撤消命令 确认帧			*/ 
#define    C_RC_NA_1EXCO	 60/* 升降执行命令 发送帧			*/ 
#define    C_RC_NA_1EXCOCON	 61/* 升降执行命令 确认帧			*/ 
 
 
#define    C_SE_NA_1ACT 	 62/* 设点命令 发送帧				*/ 
#define    C_SE_NA_1ACTCON	 63/* 设点命令 确认帧				*/ 
#define    C_CI_NA_1ACT 	 64/* 冻结和召唤电能脉冲 发送帧 		*/ 
#define    C_CI_NA_1ACTCON	 65/* 冻结和召唤电能脉冲 确认帧 		*/ 
#define    M_IT_NA_1CYCLIC	 66/* 电能脉冲计数量响应帧			*/ 
#define    M_IT_TA_1CYCLIC	 67/* 带时标电能脉冲计数量响应帧		*/ 
#define    C_CI_NA_1ACTTERM	 68/* 电能脉冲计数量结束帧			*/ 
#define    C_CI_NA_TACT 	 69/* 分组召唤电能脉冲计数量请求帧		*/ 
#define    M_IT_NA_1		 70/* 分组召唤电能脉冲计数量响应帧		*/ 
#define    M_IT_TA_1		 71/* 分组带时标电能脉冲计数量响应帧		*/ 
#define    P_ME_NA_1ACT 	 72/* 设置参数的发送帧				*/ 
#define    P_ME_NA_1CON 	 73/* 设置参数的确认帧				*/ 
#define    P_AC_NA_1ACT 	 74/* 设置激活的发送帧				*/ 
#define    P_AC_NA_1CON 	 75/* 设置激活的确认帧				*/ 
#define    C_TS_NA_1ACT 	 76/* 测试通道发送帧				*/ 
#define    C_TS_NA_1ACTCON	 77/* 测试通道的确认帧				*/ 
#define    F_SC_NA_1ACT 	 78/* 召唤文件、目录、节和文件选择命令		*/ 
#define    F_DR_TA_1ACTCON	 79/* 目录响应帧				*/ 
#define    F_FR_NA_1ACTCON	 80/* 文件准备好确认帧				*/ 
#define    F_SR_NA_1ACTCON	 81/* 节准备好确认帧				*/ 
#define    F_SG_NA_1ACTCON	 82/* 段的响应帧				*/ 
#define    F_LS_NA_1ACTCON	 83/* 最后节、最后段的确认帧			*/ 
#define    F_AF_NA_1ACTCON	 84/* 文件、节的确认帧				*/ 
#define    M_BY_NA_1		 85/* 忙帧					*/ 
 
 
 
 
#define    C_CI_NA_1ACTSTS	 86/* 主站处于收集电能脉冲 状态 		*/ 
#define    M_CI_NA_1ACTSTS	 87/* 子站电能脉冲计数量响应帧 状态		*/ 
#define    M_IT_NA_TA_1 	 88  /* 分组(带时标)电能脉冲计数量响应帧	  */ 
#define    F_ALL_NA_1ACTCON	 89  /* 子站文件传输所有确认帧		*/ 
#define    M_IC_NA_1ACTSTS	 90  /* 子站响应总召唤数据帧		*/ 
#define    C_IC_NA_1ACTSTS	 91  /* 主站处于总召唤状态		*/ 
#define    M_P1_NA_1STS 	 92/* 子站响应1级数据		       */ 
#define    M_P2_NA_1STS 	 93/* 子站响应2级数据		       */ 
 
#define    HSHUP		 0x40 /* 主站向子站传输 主站为启动站  */ 
#define    SHHUP		 0x80 /* 子站向主站响应 主站为启动站  */ 
#define    HSSUP		 0x00 /* 子站向主站传输 子站为启动站  */ 
#define    SHSUP		 0xc0 /* 主站向子站响应 子站为启动站  */ 
 
#define    __IEC101MODE 
#endif 
 
#define    PIO_A_DAT		 0x13C4  /*  数据总线		*/ 
#define    PIO_B_DAT		 0x13C5  /*  地址总线		*/ 
#define    PIO_A_CMD		 0x13C6  /*  0-INPUT  1-OUTPUT	*/ 
#define    PIO_B_CMD		 0x13C7  /*  0-INPUT  1-OUTPUT	*/ 
#define    PIO_C_DAT		 0x13C8 
#define    PIO_D_DAT		 0x13C9 
#define    PIO_C_CMD		 0x13CA  /*  0-INPUT  1-OUTPUT	*/ 
#define    PIO_D_CMD		 0x13CB  /*  0-INPUT  1-OUTPUT	*/ 
#define    PTC_A_DAT		 0x13CC 
#define    PTC_B_DAT		 0x13CD 
#define    PTC_A_CMD		 0x13CE  /*  0-INPUT  1-OUTPUT	*/ 
#define    PTC_B_CMD		 0x13CF  /*  0-INPUT  1-OUTPUT	*/ 
 
#define    WSR_380H_3FFH	 0x17  /*  128	字节 080H-0FFH */ 
#define    WSR_300H_37FH	 0x16  /*  128	字节 080H-0FFH */ 
#define    WSR_280H_2FFH	 0x15  /*  128	字节 080H-0FFH */ 
#define    WSR_200H_27FH	 0x14  /*  128	字节 080H-0FFH */ 
#define    WSR_180H_1FFH	 0x13  /*  128	字节 080H-0FFH */ 
#define    WSR_100H_17FH	 0x12  /*  128	字节 080H-0FFH */ 
#define    WSR_3C0H_3FFH	 0x2F  /*  64	字节 0C0H-0FFH */ 
#define    WSR_380H_3BFH	 0x2E  /*  64	字节 0C0H-0FFH */ 
#define    WSR_340H_37FH	 0x2D  /*  64	字节 0C0H-0FFH */ 
#define    WSR_300H_33FH	 0x2C  /*  64	字节 0C0H-0FFH */ 
#define    WSR_2C0H_2FFH	 0x2B  /*  64	字节 0C0H-0FFH */ 
#define    WSR_280H_2BFH	 0x2A  /*  64	字节 0C0H-0FFH */ 
#define    WSR_240H_27FH	 0x29  /*  64	字节 0C0H-0FFH */ 
#define    WSR_200H_23FH	 0x28  /*  64	字节 0C0H-0FFH */ 
#define    WSR_1C0H_1FFH	 0x27  /*  64	字节 0C0H-0FFH */ 
#define    WSR_180H_1BFH	 0x26  /*  64	字节 0C0H-0FFH */ 
#define    WSR_140H_17FH	 0x25  /*  64	字节 0C0H-0FFH */ 
#define    WSR_100H_13FH	 0x24  /*  64	字节 0C0H-0FFH */ 
#define    WSR_3E0H_3FFH	 0x5F  /*  32	字节 0E0H-0FFH */ 
#define    WSR_3C0H_3DFH	 0x5E  /*  32	字节 0E0H-0FFH */ 
#define    WSR_3A0H_3BFH	 0x5D  /*  32	字节 0E0H-0FFH */ 
#define    WSR_380H_39FH	 0x5C  /*  32	字节 0E0H-0FFH */ 
#define    WSR_360H_37FH	 0x5B  /*  32	字节 0E0H-0FFH */ 
#define    WSR_340H_35FH	 0x5A  /*  32	字节 0E0H-0FFH */ 
#define    WSR_320H_33FH	 0x59  /*  32	字节 0E0H-0FFH */ 
#define    WSR_300H_31FH	 0x58  /*  32	字节 0E0H-0FFH */ 
#define    WSR_2E0H_2FFH	 0x57  /*  32	字节 0E0H-0FFH */ 
#define    WSR_2C0H_2DFH	 0x56  /*  32	字节 0E0H-0FFH */ 
#define    WSR_2A0H_2BFH	 0x55  /*  32	字节 0E0H-0FFH */ 
#define    WSR_280H_29FH	 0x54  /*  32	字节 0E0H-0FFH */ 
#define    WSR_260H_27FH	 0x53  /*  32	字节 0E0H-0FFH */ 
#define    WSR_240H_25FH	 0x52  /*  32	字节 0E0H-0FFH */ 
#define    WSR_220H_23FH	 0x51  /*  32	字节 0E0H-0FFH */ 
#define    WSR_200H_21FH	 0x50  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1E0H_1FFH	 0x4F  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1C0H_1DFH	 0x4E  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1A0H_1BFH	 0x4D  /*  32	字节 0E0H-0FFH */ 
#define    WSR_180H_19FH	 0x4C  /*  32	字节 0E0H-0FFH */ 
#define    WSR_160H_17FH	 0x4B  /*  32	字节 0E0H-0FFH */ 
#define    WSR_140H_15FH	 0x4A  /*  32	字节 0E0H-0FFH */ 
#define    WSR_120H_13FH	 0x49  /*  32	字节 0E0H-0FFH */ 
#define    WSR_100H_11FH	 0x48  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1FC0H_1FFFH	 0x3F  /*  64	字节 0C0H-0FFH */ 
#define    WSR_1F80H_1FBFH	 0x3E  /*  64	字节 0C0H-0FFH */ 
#define    WSR_1F40H_1F7FH	 0x3D  /*  64	字节 0C0H-0FFH */ 
#define    WSR_1F00H_1F3FH	 0x3C  /*  64	字节 0C0H-0FFH */ 
#define    WSR_1FE0H_1FFFH	 0x7F  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1FC0H_1FDFH	 0x7E  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1FA0H_1FBFH	 0x7D  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1F80H_1F9FH	 0x7C  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1F60H_1F7FH	 0x7B  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1F40H_1F5FH	 0x7A  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1F20H_1F3FH	 0x79  /*  32	字节 0E0H-0FFH */ 
#define    WSR_1F00H_1F1FH	 0x78  /*  32	字节 0E0H-0FFH */ 
/*-------------------------公共结构--------------------------------*/ 
#ifndef __ENUMSTATUS 
enum Ykstatus{yknull,yksetup,ykproof,ykexcute,ykcancel,waitproof}; 
enum TxdS {SEND,  WAIT}; 
enum RxdS {START, HEAD, FRAME}; 
enum Letterstatus { boxnull, yk, hscoll, sgjl }; 
enum Log { LOGOFF, LOGING, LOGON }; 
enum LinkStatus_enum {LinkOFF,LinkON,LinkBusy,LinkReady }; 
enum ComMode_enum {HostStation,SubStation}; 
enum HSstatus	  {HSnull,HSsetup,HScall,HSsecall,HSDBRN}; 
enum Sgstatus	  {sgnull,fritrn,sectrn,endtrn}; 
 
 
 
#define __ENUMSTATUS 
#endif 
 
#ifndef __DISMENUSTRUCT 
enum FILESTATUS{UNOPENFILE,OPENFILE,ERROR}; 
enum ACTION{OPEN,FLASH,NOUSE,ADJUST}; 
enum MENU 
{ 
      FACE_MENU,       MAIN_MENU,	  ZJ_MENU,	 YC_MENU, 
      YX_MENU,	       YK_MENU, 	  YM_MENU,	 FREQ_MENU,    SDSET_MENU, 
      SSET_MENU,       BHSET_MENU,	  MEM_MENU,	 COM_MENU,     BHCOM_MENU, 
      TIME_MENU,       SOE_MENU,	  COMSET_MENU,	 LINESET_MENU, COMCFG_MENU, 
      JCSET_MENU,      DCSET_MENU,	  YCSET_MENU,	 YXSET_MENU,   MODESET_MENU, 
      YMSET_MENU,      YKSET_MENU,	  YKDSET_MENU,	 YCDEBUG_MENU, 
      STU_MENU,        YXDEBUG_MENU,	  KRDSET_MENU,	 YMDSET_MENU,	 FILE_MENU, 
      MEMReg1_MENU,    MEMReg2_MENU,	  MEMRam196_MENU,MEMRamPSD_MENU, MEMRam256_MENU, 
      MEMFlashPSD_MENU,MEMX25043_MENU,	  DCPLAY_MENU,	 JCPLAY_MENU,	 LINEPLAY_MENU, 
      TEMPERPLAY_MENU, MCDD_MENU,	  JFDD_MENU,	 PQJUST_MENU, 
      NODESET_MENU,    SETUP_MENU,	  COMSPEED_MENU, COMPRO_MENU,	 COMJUST_MENU, 
      COMSYN_MENU,     COMDATB_MENU,	  COMSTOPB_MENU, COMFLW_MENU,	 COMREP_MENU, 
      COMOVW_MENU,     COMWORD_MENU,	  KRSET_MENU,	 SYXSET_MENU,	 HYXSET_MENU, 
      COMRXD_MENU,     COMTXD_MENU,	  DWSET_MENU,	 DWPLAY_MENU,	 VERSION_MENU 
}; 
 
#define __DISMENUSTRUCT 
#endif 
 
#ifndef __KWHSUMSTRUCT 
union DWTEMP_ST 
{ 
      DWORD  Value; 
      struct VByte 
      { 
	     unsigned char LowB0,LowB1,HighB0,HighB1; 
      }VB; 
      struct VWord 
      { 
	     unsigned int  LowW,HighW; 
      }VW; 
}; 
#define __KWHSUMSTRUCT 
#endif 
 
#ifndef __RECCODE 
union WTEMP_ST 
{ 
      unsigned int Word; 
      struct Byte 
      { 
	     unsigned	char Low,High; 
      } B; 
}; 
#define __RECCODE 
#endif 
 
#ifndef _RECCODEINT 
union ITEMP_ST 
{ 
      int  integer; 
      struct Byte B; 
}; 
#define _RECCODEINT 
#endif 
 
#ifndef __MESSAGESTRUCT 
struct Mail 
{ 
	unsigned char		Data[MaxMailLength];  /* Data array  */ 
	struct	 Mail  FARDATA	*Link; 
	unsigned int		SendTime; 
}; 
#define __MESSAGESTRUCT 
#endif 
 
#ifndef __TASKITEM 
struct TaskItem 
{ 
       unsigned char Use;			// 00 net use ff use; 
       unsigned char UpTaskNo; 
       unsigned char DownTskNo; 
       unsigned char WaitControl;		// D7:TIMER,D6:OVERWAIT TIME,D5:RECIVE LETTER,D4:Sempore4,D3:Sempore3,....D0:Sempore0 
       unsigned char WaitStatus; 
       unsigned char ResetNum;			//复位次数 
       struct Mail FARDATA  *pMail; 
       unsigned int TimerCount; 
       unsigned int TimerLimit;        // MAX TIMER TIME 65536*10MS,SET BY SetTimer 
       unsigned int OverWaitCount; 
       unsigned int OverWaitLimit; 
       int MailQueueLimit; 
       int MailQueueLength; 
       struct Mail FARDATA  *MailQueueHead; // GET LETTER FROM THE FRONT 
       struct Mail FARDATA  *MailQueueTail; // RECIVE LETTER FROM THE REAR 
       PVOID *Args; 
       void   (*TaskFunc)(PVOID *Args); 
       unsigned int DeviceType; 	    //设备驱动类型 
       unsigned int DeviceNum;		    //设备驱动表序号 
       PVOID *DevPtr;			    //设备驱动表指针 
       void  (*DeviceFunc)(PVOID *DevPtr);  //设备驱动程序 
}; 
#define __TASKITEM 
#endif 
 
#ifndef __POSTSTATIONSTRUCT 
struct PostStationStruct 
{ 
	int MailQueueLength; 
	int TotMailNum; 
	struct Mail FARDATA  *MailQueueHead; 
}; 
#define __POSTSTATIONSTRUCT 
#endif 
 
#ifndef __SYSVARSTRUCTT 
struct SYS_Var_st 
{ 
   unsigned int  V[20]; 
}; 
#define __SYSVARSTRUCTT 
#endif 
 
#ifndef __SOERecordSTRUCT 
struct SOERecorde 
{ 
	unsigned char MSL; 
	unsigned char MSH; 
	unsigned char Second; 
	unsigned char Minute; 
	unsigned char Hour; 
	unsigned char Date; 
	unsigned char Object0; 
	unsigned char Object1; 
}; 
#define __SOERecordSTRUCT 
#endif 
 
#ifndef __LCDSTRUCT 
struct LcdXYStruct 
{ 
  unsigned	 int		recrow; 
  unsigned	 int		reccol; 
  unsigned	 int		reccon; 
  unsigned	 int		trnrow; 
  unsigned	 int		trncol; 
  unsigned	 int		trncon; 
  unsigned	 char		LcdTxdBuf[128]; 
  unsigned	 char		LcdRxdBuf[128]; 
}; 
#define __LCDSTRUCT 
#endif 
 
 
/* 
#ifndef __AscSTRUCTT 
struct Asc_st 
{ 
   unsigned char b[16]; 
}; 
#define __AscSTRUCTT 
#endif 
*/ 
 
#ifndef __SYSTIMESTRUCT 
struct SYSTIME 
{ 
 unsigned int	second; 
 unsigned char	minute; 
 unsigned char	hour; 
 unsigned int	date; 
 unsigned int	month; 
 unsigned int	year; 
 unsigned int	century; 
 unsigned int	TBUF[14]; 
}; 
#define __SYSTIMESTRUCT 
#endif 
 
#ifndef __LineTypeSTRUCT 
struct TLine 
{ 
  int LT; // 0--单相	1--二表    2--三表     3--无 
  int Value[16]; 
/*int Ua;    // ACValue[Ua]  //0 
  int Ub;    // ACValue[Ub]  //1 
  int Uc;    // ACValue[Uc]  //2 
  int Ia;    // ACValue[Ia]  //3 
  int Ib;    // ACValue[Ib]  //4 
  int Ic;    // ACValue[Ic]  //5 
  int Pa;    // Ua*Ia	     //6 
  int Pb;    // Ub*Ib	     //7 
  int Pc;    // Uc*Ic	     //8 
  int P;     // Pa+Pb+Pc     //9 
  int Qa;    // Ua*Ia	     //10 
  int Qb;    // Ub*Ib	     //11 
  int Qc;    // Uc*Ic	     //12 
  int Q;     // Qa+Qb+Qc     //13 
  int COS;   // P/[P+Q]      //14 
  int Freq;  // FQValue[Freq]//15 
*/ 
}; 
#define __LineTypeSTRUCT 
#endif 
 
 
#ifndef __TCOMSETSTRUCT 
struct TComSet //串行通信口通用设置表 
{ 
  unsigned int	node;		//节 点 号 
  unsigned int	setup;		//启动方式 
  unsigned int	speed;		//通信速率 
  unsigned int	protocol;	//通信规约 
  unsigned int	checkdigit;	//奇偶校验 
  unsigned int	transmitmode;	//传输方式 
  unsigned int	databit;	//数 据 位 
  unsigned int	stopbit;	//停 止 位 
  unsigned int	flowcontrol;	//流 控 制 
  unsigned int	reframe;	//重发帧数 
  unsigned int	overwait;	//超时等待 
  unsigned int	synword;	//内同步字 
  unsigned int	synword1;	//外同步字1 
  unsigned int	synword2;	//外同步字2 
  unsigned int	synword3;	//外同步字3 
}; 
#define __TCOMSETSTRUCT 
#endif 
 
#ifndef __TCOMSTRUCT 
struct TComStruct //串行通信口驱动程序通用变量表 
{ 
  unsigned char UseInfo; 
  unsigned int	Status; 
  unsigned char ModemStatus; 
  unsigned char FlwCtr; 
  unsigned char BaudRate; 
  unsigned char DataLen; 
  unsigned char Parity; 
  unsigned char StopBit; 
  unsigned char Sync; 
  unsigned char MaxComErr; 
  unsigned char RepSendFramNo; 
  unsigned char OverWaitLimit; 
  unsigned char ResetNum; 
	   int	TxdBufHead; 
	   int	TxdBufTail; 
	   int	TxdBufLength; 
	   int	TxdBufFront; 
	   int	TxdBufRear; 
  unsigned char FARDATA *TxdBuf; 
	   int	TxdBufSize; 
	   int	TxdProWarn; 
  unsigned int	FARDATA *RxdBuf; 
  unsigned char FARDATA *CanRxdBuf; 
	   int	RxdBufTail; 
	   int	RxdBufHead; 
	   int	RxdBufLength; 
	   int	RxdBufSize; 
	   int	RxdProWarn; 
	   int	RxdBufRear; 
 
  unsigned char *LcdBuf; 
  struct CanMail *headCanMail; 
  struct CanMail *TransCanMail; 
  void	 (*SendFunc)(unsigned char ComsDat); 
  void	 (*SearchFunc)(unsigned char ComNo); 
  PVOID  *Args; 
  void	 (*OldIntFunc)(PVOID *Args); 
}; 
#define __TCOMSTRUCT 
#endif 
 
/* 
#ifndef __TIEC101LINKSTRUCT 
struct TIEC101LinkStruct //串行通信IEC101Link链路层维护软件规约程序变量表 
{ 
    FILE			  *fp; 
    long			  FileLength; 
    unsigned   char		  ComTaskNo; 
    unsigned   char		  UpTaskNo; 
    unsigned   char		  TaskNo; 
    unsigned   char		  Control; 
    unsigned   char		  TxdCode; 
    unsigned   char		  TxdExtCode; 
    unsigned   char		  FARDATA *TxdBuf; 
    unsigned   int		  TxdBufLength; 
    unsigned   int		  TxdPtr; 
    unsigned   char		  TxdRepeat; 
    unsigned   char		  TxdPacketNo; 
    unsigned   char		  FARDATA *TrnLetter; 
    unsigned   int		  FARDATA *RxdBuf; 
    unsigned   char		  FARDATA *RecBuf; 
    unsigned   char		  FARDATA *RecLetter; 
    unsigned   int		  RxdBufLength; 
    unsigned   int		  RxdFrameLength; 
    unsigned   char		  RxdPacketNo; 
    unsigned   char		  RxdPacketLength; 
    unsigned   char		  RxdCode; 
    unsigned   char		  RxdExtCode; 
    unsigned   int		  CheckSum; 
    unsigned   char		  StatusCode; 
    unsigned   char		  ReadFlag; 
    unsigned   char		  LinkLength; 
    unsigned   char		  TxStatus; 
    unsigned   char		  FrameStatus; 
    unsigned   char		  LinkControl; 
    unsigned   char		  Linkadr; 
    unsigned   char		  LinkCS; 
    unsigned   char		  LinkEnd; 
    unsigned   char		  FCB; 
    enum       RxdS		  RxdStatus; 
    enum       TxdS		  TxdStatus; 
    enum       Ykstatus 	  Ykcomm; 
    enum       Letterstatus	  Letter_from_box; 
    enum       Log		  LogStatus; 
    enum       LinkStatus_enum	  LinkStatus; 
    enum       ComMode_enum	  ComMode; 
}; 
#define __TIEC101LINKSTRUCT 
#endif 
 
#ifndef __TIEC101USERSTRUCT 
struct TIEC101UserStruct //串行通信IEC101User用户层维护软件规约程序变量表 
{ 
    unsigned   char		  DownTaskNo; 
    unsigned   char		  UpTaskNo; 
    unsigned   char		  TaskNo; 
    unsigned   char		  Control; 
    unsigned   char		  TxdCode; 
    unsigned   char		  TxdExtCode; 
    unsigned   char		  FARDATA *TxdBuf; 
    unsigned   int		  TxdBufLength; 
    unsigned   int		  TxdPtr; 
    unsigned   char		  TxdRepeat; 
    unsigned   char		  TxdPacketNo; 
    unsigned   char		  FARDATA *TrnLetter; 
    unsigned   int		  FARDATA *RxdBuf; 
    unsigned   char		  FARDATA *RecBuf; 
    unsigned   char		  FARDATA *RecLetter; 
    unsigned   int		  RxdBufLength; 
    unsigned   int		  RxdFrameLength; 
    unsigned   char		  RxdPacketNo; 
    unsigned   char		  RxdPacketLength; 
    unsigned   char		  RxdCode; 
    unsigned   char		  RxdExtCode; 
    unsigned   int		  CheckSum; 
    unsigned   char		  StatusCode; 
    unsigned   char		  ReadFlag; 
    unsigned   char		  LinkLength; 
    enum       RxdS		  RxdStatus; 
    enum       TxdS		  TxdStatus; 
    enum       Ykstatus 	  Ykcomm; 
    enum       Letterstatus	  Letter_from_box; 
    enum       Log		  LogStatus; 
    enum       LinkStatus_enum	  LinkStatus; 
    enum       ComMode_enum	  ComMode; 
}; 
#define __TIEC101USERSTRUCT 
#endif 
*/ 
 
#ifndef __TCOMCONFIGSTRUCT 
struct TComConfig //串行通信规约配置表 
{ 
       unsigned char Use; // 00 net use ff use; 
       unsigned char Com; 
}; 
#define __TCOMCONFIGSTRUCT 
#endif 
 
 
#ifndef __TWATCHDOGCOMSTRUCT 
struct WatchDogStruct 
{ 
       PVOID *Args; 
       void   (*TaskFunc)(PVOID *Args); 
}; 
#define __TWATCHDOGCOMSTRUCT 
#endif 
 
#ifndef __ALLVARSTRUCT 
struct AllVarStruct 
{ 
   unsigned  char    passid; 
   unsigned  char    passop; 
   unsigned  char    SSetMenuCount; 
   unsigned  char    MemMenuCount; 
   unsigned  char    ScfgMenuCount; 
   unsigned  char    YCCursorCount; 
   unsigned  char    MainMenuCount; 
   unsigned  char    YMMenuCount; 
   unsigned  char    KRMenuCount; 
   unsigned  char    MemCursorCount; 
   unsigned  char    YMCursorCount; 
   unsigned  char    KRCursorCount; 
   unsigned  char    YMValueType; 
   unsigned  char    YWValueType; 
   unsigned  char    yksz; 
   unsigned  char    YKCursor; 
   unsigned  char    ykbs; 
   unsigned  char    yksts; 
   unsigned  char    ykcmd; 
   unsigned  char    ykrtn; 
   unsigned  char    CursorCount; 
   unsigned  char    ScfgCursorCount; 
   unsigned  char    NewCursorOffset; 
   unsigned  char    OldCursorOffset; 
   unsigned  char    LineNum; 
   unsigned  char    ZJMenuCount; 
   unsigned  char    YCMenuCount; 
   unsigned  char    ymhn; 
   unsigned  char    ywhn; 
   unsigned  char    LcdAChg; 
   unsigned  char    LcdAx; 
   unsigned  char    LcdAy; 
   unsigned  char    LcdBx; 
   unsigned  char    LcdBChg; 
   unsigned  char    LcdBy; 
	     int     TemperValue; 
   unsigned  int     RunCounts; 
   unsigned  int     RegNum1; 
   unsigned  int     RegNum2; 
   unsigned  int     RegNum3; 
   unsigned  int     RegNum4; 
   unsigned  int     RegNum6; 
   unsigned  int     RegNum7; 
   unsigned  int     ycnum; 
   unsigned  int     dcnum; 
   unsigned  int     jcnum; 
   unsigned  int     krnum; 
   unsigned  int     kcnum; 
   unsigned  int     yxnum;//遥信板个数 
   unsigned  int     ymnum;//遥脉板个数 
   unsigned  int     yxsum; 
   unsigned  int     ymsum; 
   unsigned  int     yksum; 
 
   unsigned  int     YKFlashTime; 
   unsigned  int     YKFlash; 
   unsigned  int     ykdelay; 
   unsigned  int     DCCount; 
   unsigned  int     JCCount; 
   unsigned  int     KRCount; 
   unsigned  int     maxlnnum; 
   unsigned  int     LNCount; 
   unsigned  int     LineCount; 
   unsigned  int     LnYcnum; 
   unsigned  int     lnsum; 
   unsigned  int     LastYcnum; 
   unsigned  int     maxyxnum; 
   unsigned  int     maxymnum; 
   unsigned  int     maxywnum; 
   unsigned  int     maxyknum; 
   unsigned  int     YXCount; 
   unsigned  int     YMCount; 
   unsigned  int     YWCount; 
   unsigned  int     YKCount; 
   unsigned  int     LcdACount; 
   unsigned  int     LcdBCount; 
   unsigned  int     KeyFg; 
   unsigned  int     Keytm[16]; 
   unsigned  long    RegNum5; 
	     int     DCValue[64]; 
	     int     JCValue[64]; 
   unsigned  char    IC1821; 
   unsigned  char    ComMenuCount; 
   unsigned  char    Com1Count; 
   unsigned  char    ComCount; 
   unsigned  char    ComCursorCount; 
   unsigned  char    CommCount; 
   unsigned  char    CommCursorCount; 
   unsigned  char    ComSetCursorCount; 
   unsigned  char    Com1CursorCount; 
   unsigned  char    MRCount; 
   unsigned  char    YCLNCount; 
   unsigned  char    COMID; 
   unsigned  int     SoeNum; 
   unsigned  char    PIO_A_IMAGE; 
   unsigned  char    PIO_B_IMAGE; 
   unsigned  char    PIO_C_IMAGE; 
   unsigned  char    PIO_D_IMAGE; 
   unsigned  char    PTC_A_IMAGE; 
   unsigned  char    PTC_B_IMAGE; 
   unsigned  char    INTASC8[16]; 
   unsigned  int     flash_dat[4100]; 
   unsigned  int     flash_dat_bak[4100]; 
   unsigned  int     SYXCount; 
   unsigned  int     syxnum; 
   unsigned  int     Can_Error[2]; 
   unsigned  int     ACWorkMode; 
   unsigned  int     DCWorkMode; 
   unsigned  int     PQWorkMode; 
   unsigned  int     PowerWorkMode; 
	     long    freqvalue[12]; 
   unsigned  long    scale; 
	     int     freqcount; 
	     int     freqsplt; 
   unsigned  int     oldfreqvalue; 
   unsigned  int     freqdivsum; 
   unsigned  int     displayline;// 线 路 
   unsigned  int     workmode; 
   unsigned  char    YkTyp; 
   unsigned  char    YkNum; 
   unsigned  char    YKFG; 
   unsigned  char    Can_second; 
   unsigned  char    Can_minute; 
   unsigned  char    Can_hour; 
   unsigned  char    Can_date; 
   unsigned  char    Can_month; 
   unsigned  char    Can_year; 
   unsigned  char    Can_century; 
   unsigned  char    Can_clock_fg; 
   unsigned  char    YKRecLetter[32]; 
   unsigned  char    YKTrnLetter[32]; 
   unsigned  char    YKMRecLetter[32]; 
   unsigned  char    YKMTrnLetter[32]; 
   unsigned  char    Letter[32]; 
   unsigned  char    Letter_Flag; 
   unsigned  int     SampleCycle; 
   unsigned  int     can_flag[12]; 
   unsigned  int     *adbuf; 
   unsigned  int     *headADBUF; 
   unsigned  int     OldYSCON; 
   unsigned  int     BvLedCount; 
	     int     Aspeed; 
	     int     Arcflag; 
 
   unsigned  int     NewKey; 
   unsigned  int     OldKey; 
   unsigned  char    KeyValue; 
   unsigned  char    KeyID; 
   unsigned  char    Lcd_BG_Flag; 
	     int     Lcd_BG_Count; 
   unsigned  int     KeyTimeCount; 
   unsigned  int     *ADBUF[16]; 
 
   unsigned  int     stop; 
   unsigned  int     old; 
   unsigned  int     new; 
   unsigned  int     sdelay; 
	     int     adjust_count; 
   unsigned  int     adjust_coef[40]; 
	     int     adjust_pcoef[40]; 
   unsigned  int     ResetSum; 
   unsigned  int     ComType; 
   unsigned  int     ComRowCount; 
   unsigned  int     ComStop; 
   unsigned  int     DWCount; 
   unsigned  int     DWBitNo; 
   unsigned  int     DWTypNo; 
   unsigned  int     DWModeFlag; 
	     int     RunCount; 
	     int     ComCounts; 
	     int     flash; 
	     int     S0; 
	     int     pass_image; 
 
	     int     split_Q_image[32]; 
	     int     split_Q_flag[32]; 
	     int     split_P_image[32]; 
	     int     split_P_flag[32]; 
	     int     split_image[64]; 
	     int     split_flag[64]; 
	     int     split_dc_image[64]; 
	     int     split_dc_flag[64]; 
       struct SYSTIME *stptr; 
       struct SYSTIME systime; 
 
   unsigned  int    DWFlashCount; 
   unsigned  char   line_type_flag; 
   long  PP; 
   long  QQ; 
 
 
   union    DWTEMP_ST  Can_ms; 
   enum MENU MenuMode; 
   enum ACTION action; 
   enum Ykstatus  ykcomm; 
 
}; 
#define __ALLVARSTRUCT 
#endif 
 
#ifndef __STTIMESTRUCT 
union StTime 
{ 
  struct WSTTIME 
  { 
      unsigned int st_ms; 
      unsigned int st_sec_min; 
      unsigned int st_hou_day; 
  }WS; 
  struct BSTTIME 
  { 
      unsigned char st_msl; 
      unsigned char st_msh; 
      unsigned char st_sec; 
      unsigned char st_min; 
      unsigned char st_hou; 
      unsigned char st_day; 
  }BS; 
}; 
#define __STTIMESTRUCT 
#endif 
 
#ifndef __SOESTRUCT 
struct SoeStruct 
{ 
      unsigned char msl; 
      unsigned char msh; 
      unsigned char sec; 
      unsigned char min; 
      unsigned char hou; 
      unsigned char day; 
      unsigned char object0; 
      unsigned char object1; 
      unsigned char month; 
      unsigned char year; 
}; 
#define __SOESTRUCT 
#endif 
 
#ifndef __LNTYPESTRUCT 
struct LNTYPE 
{//线路量数据库 
  int Value[16]; 
  int WndValue[16]; 
 
/*int U1;    // U1	     //0 
  int U2;    // U2	     //1 
  int U3;    // U3	     //2 
  int I1;    // I1	     //3 
  int I2;    // I2	     //4 
  int I3;    // I3	     //5 
  int P1;    // U1*I1	     //6 
  int P2;    // U2*I2	     //7 
  int P3;    // U3*I3	     //8 
  int P;     // P1+P2+P3     //9 
  int Q1;    // U1*I1	     //10 
  int Q2;    // U2*I2	     //11 
  int Q3;    // U3*I3	     //12 
  int Q;     // Q1+Q2+Q3     //13 
  int COS;   // P/[P+Q]      //14 
  int Freq;  // FQValue[Freq]//15     */ 
 
  int Channel[8];    // 通道 
  int PSK_ADJUST[3]; // 单相功率斜率校正系数 
  int PARC_ADJUST[3];// 单相功率角度校正系数 
  int P_ARC[3];      // U1^I1  U2^I2  U3^I3 
  int PQARC; 
  int U_ARC[3];      // Ua Ub  Uc 角度 
  int Ua; 
  int Ub; 
  int Uc; 
  int U0; 
  int Uabc; 
  int segfg; 
  int SampleType; 
  unsigned long oldsystimems; 
  unsigned long newsystimems; 
  unsigned long dt; 
  unsigned long  YWBuf[4];//WP+  WP-  WQ+  WQ- 
}; 
 
#define __LNTYPESTRUCT 
#endif 
 
#ifndef __ADCTYPESTRUCT 
struct ADCTYPE 
{//交直流量数据库 
	   int ARC[16];   // 角度 
	   int ZVALUE[16];// 幅值 
	   int WndZVALUE;  // 幅值 
	   int AVALUE;	  // 1-13次谐波有效值 
	   int WndAVALUE; 
	   int XVALUE;	  // 2-13次谐波有效值 
	   int XAVALUE;   // 波型畸变率 
	   int XA[16];	  // 谐波含量 
	   int DCZO;	  // 零点 
	   int DCSK;	  // 斜率 
  unsigned int ACSK;	  // 斜率 
  unsigned int ACType;	  // PT  CT 
  unsigned int FlowZero;  // 零漂抑制 
  unsigned int ACWindows; // 交流量窗口值 
  unsigned int DCWindows; // 直流量窗口值 
  unsigned int ACValueDot;// 交流量小数点位置 
	   int DCValue;   // 直流量 
}; 
#define __ADCTYPESTRUCT 
#endif 
 
#ifndef __ADCREGTYPESTRUCT 
union  ADCREGTYPE 
{//交直流量  寄存器区 
   unsigned long   Value[32]; 
   struct RWord 
   { 
      unsigned int  Low,High; 
   }V[32]; 
}; 
#define __ADCREGTYPESTRUCT 
#endif 
 
#ifndef __CANMAILSTRUCT 
struct CanMail 
{ 
 
	unsigned char	  Data[10];  /* Data array  */ 
	struct	 CanMail  *Link; 
}; 
#define __CANMAILSTRUCT 
#endif 
 
 
 
#ifndef __Y12TRNTYPESTRUCT 
struct y12trn 
{ 
    unsigned  char	 TrnLetter[20]; 
    unsigned  char	 RecLetter[20]; 
    unsigned  char	 siocomnum; 
    unsigned  char	 Tasknum; 
    unsigned  char	 TrnEnable; 
    unsigned  char	 TrnCase; 
    unsigned  char	 RevCase; 
    unsigned  char	 CanRxdBuf[300]; 
    unsigned  char	 TrnBuf[300]; 
    unsigned  char	 YKCount; 
    unsigned  char	 SrcStation;//源站址 
    unsigned  char	 DirStation;//目站址 
    unsigned  char	 ykob; 
    unsigned  char	 yktyp; 
    unsigned  char	 ykrtn; 
    unsigned  char	 Letter_Flag; 
    unsigned  int	 FSCON; 
    unsigned  char	 YMStartNum; 
    unsigned  char	 YMLength; 
    unsigned  char	 DCStartNum; 
    unsigned  char	 DCLength; 
    unsigned  char	 ACStartNum; 
    unsigned  char	 ACLength; 
    unsigned  char	 LnNo; 
    struct    CanMail	 YMail[MAXCANMAIL]; 
    struct    CanMail	 *pMail; 
    struct    CanMail	 *hMail; 
    struct SoeStruct	 *pSOE; 
    enum      Ykstatus	 ykstatus; 
    unsigned  int	 flash_dat[4100]; 
    unsigned  int	 flash_addr; 
    unsigned  char	 flash_len; 
    unsigned  long	 ram_addr; 
    unsigned  char	 ram_len; 
    unsigned  char	 ym_offset; 
    unsigned  long	 ym_value; 
}; 
#define __Y12TRNTYPESTRUCT 
#endif 
 
 
#ifndef __DWSTRUCT 
struct dwstruct 
{ 
       int dw; 
       int dwvalue; 
}; 
#define __DWSTRUCT 
#endif 
 
#ifndef __YMSTRUCT 
struct ymstruct 
{ 
       unsigned long	    ywbuf; 
       unsigned char	    ymcoef; 
		int	    ymfsnum; 
		int	    ymfsnumtype; 
}; 
#define __YMSTRUCT 
#endif 
 
 
#ifndef __LIBARYSTRUCT 
struct Libarystruct 
{ 
       unsigned char	    *yxbuf; 
       unsigned long	    *ymbuf; 
       unsigned int	    FSCON; 
       struct	SoeStruct   SoeBuf[1000]; 
       struct dwstruct	    dw[6]; 
       struct LNTYPE	    line[32]; 
       struct ADCTYPE	    adc[72]; 
       unsigned  char	    Letter[256]; 
}; 
#define __LIBARYSTRUCT 
#endif 
 
 
 
#ifndef __SAMPLELINKSTRUCT 
struct SampleTableStruct 
{ 
       unsigned char Board1_Addr[4]; 
       unsigned char Board1_Data[4]; 
       unsigned char Board2_Addr[4]; 
       unsigned char Board2_Data[4]; 
       unsigned char Flag; 
       unsigned char BSQ[16]; 
       unsigned int  Point[4]; 
 
 
/*     0:连续采样两周波 计算频率 
       1:采样一周波	不计算功率 
       2:采样一周波	计算功率 
       3:采样一周波	计算功率 Uab-Ub Ucb-Ub 
*/ 
       unsigned char LineNo; 
       unsigned int  SCount; 
       unsigned int  SLimit; 
       unsigned char FreqFlag; 
       struct	SampleTableStruct    *Link; 
}; 
#define __SAMPLELINKSTRUCT 
#endif 
 
#ifndef __BTRANPTSCBSTRUCT 
struct BTran_ptscb_struct 
{ 
    unsigned char	ptscount; 
    struct 
    { 
	unsigned int	    di	 : 1; 
	unsigned int	    si	 : 1; 
	unsigned int	    du	 : 1; 
	unsigned int	    su	 : 1; 
	unsigned int	    b_w  : 1; 
	unsigned int	    mode : 3; 
    } ptscon; 
    unsigned   int	  ptssrc; 
    unsigned   int	  ptsdst; 
    unsigned  char	  ptsblock; 
    int 		  :8;				      /* unused */ 
}; 
#define __BTRANPTSCBSTRUCT 
#endif 
 
 
 
#ifndef __BITSETSTRUCT 
union BITSET_STRUCT 
{ 
      unsigned char Byte; 
      struct Bit_STRUCT 
      { 
	unsigned int	bit0   : 1; 
	unsigned int	bit1   : 1; 
	unsigned int	bit2   : 1; 
	unsigned int	bit3   : 1; 
	unsigned int	bit4   : 1; 
	unsigned int	bit5   : 1; 
	unsigned int	bit6   : 1; 
	unsigned int	bit7   : 1; 
      } B; 
}; 
 
union LCR_STRUCT 
{ 
      unsigned char Byte; 
      struct LCR_STRC 
      { 
	unsigned int   WLS    : 2; /* 字长选择位  */ 
	unsigned int   STB    : 1; /* 停止位数	  */ 
	unsigned int   PEN    : 1; /* 奇偶使能	  */ 
	unsigned int   EPS    : 1; /* 偶校验选择  */ 
	unsigned int   HCHK   : 1; /* 保持校验	  */ 
	unsigned int   BREAK  : 1; /* 置 BREAK	  */ 
	unsigned int   DLAB   : 1; /* 分频锁存访问位 */ 
      } B; 
}; 
union LSR_STRUCT 
{ 
      unsigned char Byte; 
      struct LSR_STRC 
      { 
	unsigned int   DR     : 1; /* 数据准备		*/ 
	unsigned int   OE     : 1; /* 越限错误		*/ 
	unsigned int   PE     : 1; /* 奇偶错误		*/ 
	unsigned int   FE     : 1; /* 帧错误		*/ 
	unsigned int   BI     : 1; /* 打断中断		*/ 
	unsigned int   THRE   : 1; /* 发送保持寄存器	*/ 
	unsigned int   TSRE   : 1; /* 发送移位寄存器	*/ 
	unsigned int   UDEF   : 1; /*			*/ 
      } B; 
}; 
union IIR_STRUCT 
{ 
      unsigned char Byte; 
      struct IIR_STRC 
      { 
	unsigned int   WI     : 1; /*  0:有中断等待  1:无中断等待    */ 
	unsigned int   IP     : 2; /*  优先级3:  接收线路状态	     */ 
				    /*	优先级2:  接收到数据	      */ 
				    /*	优先级1:  发送保持寄存器空    */ 
				    /*	优先级0:  Modem状态	   */ 
	unsigned int  UDEF   : 5; /*	     */ 
      } B; 
}; 
union IER_STRUCT 
{ 
      unsigned char Byte; 
      struct IER_STRC 
      { 
	unsigned int   RI_ENABLE     : 1; /* 接收到数据使能	     */ 
	unsigned int   TI_ENABLE     : 1; /* 发送保持寄存器空使能    */ 
	unsigned int   LSR_ENABLE    : 1; /* 接收线路状态使能	     */ 
	unsigned int   MSR_ENABLE    : 1; /* Modem状态		     */ 
	unsigned int   UDEF	     : 4; /*			     */ 
      } B; 
}; 
union MCR_STRUCT 
{ 
      unsigned char Byte; 
      struct MCR_STRC 
      { 
	unsigned int   DTR	     : 1; /* 数据结束准备    */ 
	unsigned int   RTS	     : 1; /* 请求发送	     */ 
	unsigned int   OUT1	     : 1; /* 输出1	     */ 
	unsigned int   OUT2	     : 1; /* 输出2	     */ 
	unsigned int   RING	     : 1; /* 闭环	     */ 
	unsigned int   UDEF	     : 3; /*		     */ 
      } B; 
}; 
union MSR_STRUCT 
{ 
      unsigned char Byte; 
      struct MSR_STRC 
      { 
	unsigned int   DCTS	     : 1; /* DELTA清零发送	 */ 
	unsigned int   DDSR	     : 1; /* DELTA数据置准备	 */ 
	unsigned int   TERI	     : 1; /* 后沿环指示器	 */ 
	unsigned int   DDCD	     : 1; /* DELTA数据载波检测	 */ 
	unsigned int   CTS	     : 1; /* 清除发送		 */ 
	unsigned int   DSR	     : 1; /* 数据置准备 	 */ 
	unsigned int   RI	     : 1; /* 环指示器		 */ 
	unsigned int   DCD	     : 1; /* 数据载波检测	 */ 
      } B; 
}; 
#define __BITSETSTRUCT 
#endif 
 
#ifndef __FDKSTRUCT 
 
#define PLCHRREAD   23 
#define PLCHRWRITE  24 
#define SELHISREAD  25 
#define PACKETSIZE 0x100 
#define REPEAT 2 
 
struct FdkArgStruct 
{ 
	unsigned	char	rtuno; 
	unsigned	char	control;//D0:YK;D1:CLOCK;D2:DDTIME;D3:YCCOE;D4:YK swino sequ 
	unsigned	char	YCDNO[512]; 
	unsigned	char	YCDeadLine[512]; 
	unsigned	char	TxdCode; 
	unsigned	char	TxdExtCode; 
	unsigned	char	*TxdBuf; 
	unsigned	char	TxdRepeat; 
	unsigned	char	TxdPacketNo; 
	unsigned	char	RxdCode; 
	unsigned	char	RxdExtCode; 
	unsigned	char   *RecLetter; 
	unsigned	char   *TrnLetter; 
	unsigned	char   *RecBuf; 
	unsigned	char	ToComNo; 
	unsigned	char	StatusCode; 
	unsigned	char	Ykprooflag; 
	unsigned	char	Ykidno; 
	unsigned	char	Letter_box_flag; 
	unsigned	char	Ykswno; 
	unsigned	char	Yknaturn; 
	unsigned	char	RxdPacketNo; 
	unsigned	char   *HSBuf; //高速采样 
	unsigned	char	HSAdd; 
	unsigned	char	HSComNo; 
	unsigned	char	SetTimeLock; 
	unsigned	char	TWriteNum; 
	unsigned	char	Ykproofnum; 
	unsigned	char	Ykbackmess; 
	unsigned	char	SgAdd; 
	unsigned	char	SgBoxNo; 
	unsigned	char	PQ; 
	unsigned	char	SELHisPtr; 
	unsigned	char	WriFlag; 
	unsigned	char	opfilenum; 
			char	RecName[20]; 
 
 
	unsigned	int	tm_num; 
	unsigned	int	ts_num; 
	unsigned	int	kwh_num; 
	unsigned	int	YC_sequ[512]; 
	unsigned	int	YX_sequ[512]; 
	unsigned	int	KWH_sequ[256]; 
	unsigned	int	CheckSum; 
	unsigned	int	YX_YN[1024]; 
	unsigned	int	YCDNUM; 
	unsigned	int	TxdBufLength; 
	unsigned	int	TxdPtr; 
	unsigned	int	RxdBufLength; 
	unsigned	int	RxdFrameLength; 
	unsigned	int	RxdPacketLength; 
	unsigned	int	YXCTail; 
	unsigned	int	Ykobject; 
	unsigned	int	STANo; 
	unsigned	int	SgjlLength; 
	unsigned	int	PolSoeTail; 
	unsigned	int	YXChedPtr; 
 
			int	MYC[512]; 
			int	MYCtemp[512]; 
			int	TaskNo; 
			int    *RxdBuf; 
			int	HandshakePtr; 
			long	FileLength; 
 
	enum		TxdS	       TxdStatus; 
	enum		RxdS	       RxdStatus; 
	enum		Ykstatus       Ykcomm; 
	enum		Sgstatus       SgComm; 
	enum		HSstatus       HSComm; 
	enum		Letterstatus   Letter_from_box; 
	enum		Log	       LogStatus; //0:off,not 0:on; 
}; 
#define __FDKSTRUCT 
#endif