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

📄 struct1107.h

📁 电能表源码
💻 H
字号:
#ifndef _STRUCT1107_H_
#define _STRUCT1107_H_
#include "ExTigReg.h"

//typedef unsigned char uint8;
//typedef unsigned int uint16;
//typedef unsigned long uint32;
//typedef signed char int8;
//typedef signed int int16;
//typedef signed long int32;
//=================================================
typedef struct BuffRam
{
	uint8 xdata *buffadd;
	uint8 bufflen;
	uint8 buffplen;
	uint8 xdata *pbuff;		// 查询指针
//	uint8 xdata *rpbuff;	// 接受指针
}BUFFRAM;

typedef union Drive1107
{
	struct _drive
	{
		unsigned FRBA	:	1;		// 接受缓存标记		0正确,1数据缓存满
		unsigned FTB	:	1;		// 发送缓存标记		0正确,1数据缓存满		
		unsigned FByte	:	1;		// 字节校验错标记	0正确,1错误
		unsigned FBOT	:	1;		// 字节超时标记位	0正确,1超时
		unsigned FFOT	:	1;		// 帧超时标记位		0正确,1超时
		unsigned UMOD	:	3;		// 串口通讯模式		0等待,1接受,2发送,3切换准备,4接受完毕
		unsigned RBPS	:	4;		// 电表建议通讯波特率 0-300,1-600,2-1200,3-2400,4-4800,5-9600
		unsigned CBPS	:	4;		// 电表当前使用波特率 0-300,1-600,2-1200,3-2400,4-4800,5-9600
	}bits;
	uint16 value;
}DRIVE1107;

typedef union Mediate1107
{
	struct _med
	{
		unsigned PS		:	2;		// 1107协议状态机		0
		unsigned FFram	:	1;		// 帧校验错标记			0正确,1出错
		unsigned FBCC	:	1;		// BCC错标记			0正确,1出错
		unsigned FRBS	:	1;		// 接受缓存选择位		0缓存1,1缓存2
		unsigned FRBA	:	1;		// 接受缓存1就绪标记	0未就绪,1就绪
		unsigned FRBB	:	1;		// 接受缓存2就绪标记	0未就绪,1就绪
		unsigned FTB	:	1;		// 发送缓存就绪标记		0未就绪,1就绪
	}bits;
	uint8 value;
}MED1107;

#define		MaxInst		9		// 指令最大的长度

typedef struct Iec1107
{
	uint8 Inst[MaxInst];	// A.A.A*A
	uint16 InterInst;		// 内部协议ID号 
	uint8 DLen;				// 数据项长度
	uint8 IA;				// 指令类型(1--清零)
	uint16 DAddr;			// 数据存放地址(读地址)
//	uint16 WAddrA;			// 写地址1
//	uint16 WAddrB;			// 写地址2
//	union _I07
//	{
//		struct _Is07
//		{
//			unsigned DT		:	1;	// 数据格式 0-ascii,1-BCD
//			unsigned DAT	:	2;	// 数据地址类型 0-FLASH,1-RAM,2-EEPROM,3-自定义
//			unsigned RWA	:	2;	// 数据读写属性 0-可读可写,1-只读,2-只写						
//			unsigned FA		:	3;	// 小数点位置 0-无小数点,1~7依次表示1~7位小数
//		}bits;
//		uint8 value;
//	}US;
}IEC1107;

typedef union InterProDataFlag
{
	uint16 value;
	struct _itp
	{
		unsigned FC		:	4;		// Fee Catalog费率项
		unsigned HD		:	4;		// Historic Data历史数据
		unsigned PC		:	4;		// Power Catalog供电方向
		unsigned AC		:	2;		// Attribute Catalog有无功
		unsigned DC		:	2;		// Data Catalog数据类型
	}bits;
}IPDF;

typedef struct InterPro
{ 
	uint8 CtrlByte;			// 控制字
	IPDF DF;				// 数据标识
	uint8 xdata *pbuff;		// 数据指针
	uint8 bufflen;			// 数据长度
}ITP;

#endif

⌨️ 快捷键说明

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