📄 struct1107.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 + -