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

📄 datadef.h

📁 此程序适用于电力系统中的网关程序
💻 H
字号:
/******************************************************************
* Copyright (c) 2004-2005, 许继日立公司
* All rights reserved.
* 
* 文件名称:datadef.h
* 文件标识:
* 摘    要:枚举类型和结构定义
* 
* 当前版本:1.0
* 作    者:李龙伟  <lilongwei1@hotmail.com>
* 完成日期:2004年11月03日
*
* 取代版本:1.0 
* 原作者  :李龙伟
* 完成日期:2004年11月03日
******************************************************************/

#ifndef _DATADEF_H
#define _DATADEF_H  

#if _MSC_VER>1000
#pragma warning(disable: 4786)
#endif
  
#include <vector>
#include "numdef.h"

using namespace std;

const unsigned  char	MAXCOMCOUNT = 24;		//串口的最大个数

//串口信息
typedef struct COMINFO
{
	char name[20];	//串口名称
	HANDLE hcom;	//句柄
//	sem_t semcom;	//串口锁
	BYTE flag;		//有效标志
}COMINFO;

//SOE_STATUS队列结构体,存储状态变化信息、SOE事件。
typedef struct SOE_STATUS
{
	unsigned char	bAddress;		//装置地址
	enum GateStation	eStation;		//通道类型
	int			nPot;			//信息点号
	unsigned char	bStatus;		//状态
	unsigned char	bDay;			//日
	unsigned char	bHour;		//时
	unsigned char	bMinute;		//分
	unsigned short	wMilliseconds;	//毫秒
	enum INFO_TYPE	eType;		//上送类型
//	unsigned short	wSerial;		//soe对象号

}SOE_STATUS;

//链路层前六个字节
struct APDUHEAD
{
	unsigned char	bStartCode;		//启动字符
	unsigned char	bApduLength;	//长度
	unsigned char	bControlCode1;	//控制域1
	unsigned char	bControlCode2;	//控制域2
	unsigned char	bControlCode3;	//控制域3
	unsigned char	bControlCode4;	//控制域4
};

//应用层前六个字节
struct ASDUHEAD
{
	unsigned char  bAsduType;       //类型标示
	unsigned char  bAsduVsq;        //可变结构限定词
	unsigned short nAsduCot;        //传送原因
	unsigned short nAsduComAddr;    //应用服务数据单元公共地址
	unsigned char  bAsduFun;        //功能类型,104没有此位
	unsigned char  bAsduInf;        //信息序号
};

//上送报文结构
typedef struct _tagDATASTR
{
	struct APDUHEAD		ApduHead;	//链路层
	struct ASDUHEAD		AsduHead;	//应用层前六个字节
	vector <unsigned char>	bDataVec;	//数据
}DATA_STR;

//命令结构体
typedef struct _tagCtrlValue
{
//	unsigned int		nPortno;		//装置序号
//	unsigned int		nPortno103;		//后台序号
	unsigned char		bAddress;		//装置地址
	unsigned char		bSwitch;		//定值区号
	unsigned int		iValue;		//值
	unsigned short		nPotValue;		//信息地址
//	unsigned char		bCpu;			//cpu号
	enum CMD_TYPE		eCmdType;		//命令类型
}CTRL_VALUE;

//在内存中存储装置的一些信息,包括遥测、遥信、事件、定值区、定值
typedef struct _tagDataGroup 
{
	unsigned int	nPortNo;		//装置序号
	unsigned int	nSerial;		//序号
	unsigned int	nAddress;		//装置地址
	unsigned char	bLocal;		//远方就地,0远方,1就地
//	unsigned int	nSize;		//长度
	enum DATA_TYPE	eType;		//遥测/遥信/SOE/电度
	unsigned short	nValue;		//存储装置信息
}DATAGROUP;

#endif

⌨️ 快捷键说明

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