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

📄 islave.h

📁 各种规约电表程序的(包手DL645,威胜,西门子等,的库程序)极大方便远程抄表系统
💻 H
字号:
/*********************************************************版权所有:银骏科技版本号	:1.00文件名	:Slave.h创建日期:07/02/22创建者:功能说明:	读写子表程序头文件接口*********************************************************/#ifndef SLAVE_H_#define SLAVE_H_#include <time.h>#ifdef   ARM_SLAVE_GLOBALS #define	ARM_SLAVE_EXT#else#define	ARM_SLAVE_EXT    extern#endif #define  METER_FRAME_SIZE                270#define  METER_FRAME_DATA_SIZE      256#define  METER_FRAME_START_CH  0x68#define  METER_FRAME_END_CH      0x16#define  METER_ADDR_LEN               6#define  METER_PASSWORD_LEN      4#define  METER_FRAME_EXT_LEN         12#define  METER_CTRL_READ_DATA              1#define  METER_CTRL_RE_READ                  3#define  METER_CTRL_WRITE_DATA            4#define  METER_CTRL_CALIBRATE_CLOCK   8#define  METER_CTRL_ALARM                      7#define  METER_CTRL_SET_ADDR               10#define  METER_CTRL_DEMAND_RESET       16//子表通讯休眠延时   #define SLAVE_WAIT_DELAY_TIME        3#define SLAVE_ONEID_DATA_SIZE        256//电表帧类型#define  METER_FRAME_TYPE_NORMAL      0#define  METER_FRAME_TYPE_AA               1#define  METER_FRAME_TYPE_KEY             2#define  METER_FRAME_TYPE_IRDA           3//子表协议代码  #define   SLAVE_645          		0x10#define   SLAVE_IEC1107			0x20#define   SLAVE_WS_645         		0x11#define   SLAVE_EDMI   			0x32#define   SLAVE_HND         		0x33#define   SLAVE_HUALONG   		0x34#define   SLAVE_LONGDIAN		0x35#define   SLAVE_SIEMENS_D		0x36#define   SLAVE_XUJI				0x37#define   SLAVE_KELU				0x38#define   SLAVE_SANXING			0x39#define   SLAVE_ACTARIS			0x40#define   SLAVE_ABB_a			0x41#define   SLAVE_ABB_YUAN    		0x42#define   SLAVE_DAQI    			0x43#define   SLAVE_EDMI_MK3		0x44#define   SLAVE_HUALI			0x45#define   SLAVE_SIEMENS_B		0x46#define   SLAVE_LINGYANG		0x47#define   SLAVE_EAST_ELEC		0x48#define   SLAVE_EMAIL			0x49#define   SLAVE_EASKA			0x50#define   SLAVE_ELSTER			0x55#define   SLAVE_WS				0x31#define   SLAVE_GB645_PARTS		0x18#define   SLAVE_GB645_SINGLE	0x19#define SAMPLE_METER_DATA_OFFSET        25#define SLAVE_RX_BUFF_SIZE                     1024//#define DL645_SAMPLE_ID_TABLE_SIZE      29#define DL645_SAMPLE_ID_TABLE_SIZE      27#define SLAVE_SAMPLE_EXT_ID_TABLE_SIZE   10#ifndef  _PACKED_#define  _PACKED_			__attribute__((packed))   //位对齐#endif//extern const SampleIdType gSlaveSampleExtId[];//采样ID表定义typedef    unsigned char     BOOLEAN;            //布尔变量     typedef    unsigned char     BOOL;                   //布尔变量        typedef    unsigned char     INT8U;                  //无符号8位整形变量                     typedef    signed   char      	INT8S;                   //有符号8位整形变量                                     typedef    unsigned short    INT16U;                 //无符号16位整形变量              typedef    signed   short     	INT16S;                   //有符号16位整形变量                                         typedef    unsigned int       	INT32U;                   //无符号32位整形变量                                  typedef    signed   int       		INT32S;                    //有符号32位整形变量                                  typedef    float              				FP32;                      //单精度浮点数32位长typedef    double             			FP64;                      //双精度浮点数typedef  struct tagSampleIdType{	INT16U id;	INT16U offset;	INT16U size;} _PACKED_	 SampleIdType;//com wxh#define E_COM_OTHER							-1010#define E_COM_SEND           				-1011#define E_COM_RECV           				-1012#define E_DL645_RECV_DATALEN -1013#define E_DL645_RECV_CS      -1014#define E_THREAD_LOCK        -7011#define E_THREAD_UNLOCK      -7012#define E_PROTOCOL_NOEXIST  -8002#define E_GET_HISTFN		 -8003#define E_SIGN_CONV			 -8004	#define E_ALLOT_MEMORY       -8005#define E_GET_FNFREEZE		 -8006#define E_RECV_HEAD		     -8017//ERC#define E_HistDATA_DL645     -8018 #define E_DAYDATA_DL645      -8020 #define E_MONDATA_DL645      -8021#define E_ALARMDATA_DL645    -8022 #define  E_NO_SUCH_DATA          -8013#define E_HistDATA_IEC1107   -8039 #define E_DAYDATA_IEC1107    -8039 #define E_MONDAT_IEC1107     -8039 #define E_ALARMDATA_IEC1107  -8039 #define E_RECV_IEC1107		 -8050	#define E_ADDR_LEN			-8051#define E_LOGIN_EDMI    -8052#define E_COMM_ERR      -8005#define E_COM_LOCK      -8053#define E_NOFOUND_DATAID	-8054#define E_BUFF_FULL -8055#define SUCCESS            0#define FAILED              -1#define FALSE                0#define TRUE                 1extern const SampleIdType gDL645SampleId[];#define SLAVE_DATA_BUFF_SIZE          1000typedef  struct tagSlaveDataBuffType{	time_t  createTime;	time_t  accessTime;	INT8U  data[SLAVE_DATA_BUFF_SIZE];	INT8U  valid;}_PACKED_  SlaveDataBuffType;#define SLAVE_MAX_DATA_CREATE_MINUTES         6#define SLAVE_MAX_DATA_ACCESS_SECONDS         120ARM_SLAVE_EXT  SlaveDataBuffType gSlaveDataBuff[4];typedef struct tagMpComProperty{  INT8U 	  nMp;  INT8U 		nComPort;  // physical com port No.  INT8U 		nProtocol;    // rule No. (ex. 1:DL/645)  INT8U 		addr[6];   // meter addr. BCD  INT16U	nBPS;  char 		  parity;  INT8U 	  nDataBit;  INT8U 		nStopBit;  INT8U 		user[12];  INT8U 		pass[12];}_PACKED_  MpComProperty;typedef  struct tagRateEType{	INT8U JianE[4];	INT8U FengE[4];	INT8U PingE[4];	INT8U GuE[4];}_PACKED_ RateEType;typedef  struct tagRateMaxRquType{	INT8U jian[3];	INT8U feng[3];	INT8U ping[3];	INT8U gu[3];}_PACKED_ RateMaxRquType;typedef  struct tagRateMaxRquTimeType{	INT8U jian[4];	INT8U feng[4];	INT8U ping[4];	INT8U gu[4];}_PACKED_ RateMaxRquTimeType;ARM_SLAVE_EXT INT8U gSlaveRxBuff[SLAVE_RX_BUFF_SIZE];ARM_SLAVE_EXT int SlaveInitMPPort(MpComProperty *mpProperty);ARM_SLAVE_EXT int SlaveReadData(MpComProperty *mpProperty, INT16U id, INT8U *pbuf, INT16U bufsize, INT16U *psize);ARM_SLAVE_EXT int SlaveWriteData(MpComProperty *mpProperty, INT16U id, INT8U *pbuf, INT16U bufsize);ARM_SLAVE_EXT int SlaveSendFrame(int fd, INT8U *pbuf, INT16U bufsize,INT32U nWaitmScnd);ARM_SLAVE_EXT int SlaveRecvFrame(int fd, INT8U *pbuf, INT16U bufsize, INT16U *psize,INT32U nWaitmScnd);ARM_SLAVE_EXT int SlaveSampleData(MpComProperty *mpProperty, INT8U *pbuf,INT16U bufsize,INT16U *psize);#endif /*SLAVE_H_*/

⌨️ 快捷键说明

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