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

📄 avinfoapi.h

📁 一个通过矩阵运算得到图形连接关系的动态连接库
💻 H
字号:
#ifndef __AVINFOAPI_H_INCLUDE
#define __AVINFOAPI_H_INCLUDE

#include <windows.h>
#include "..\\AVPublic\AVDEF.h"

//-----端子类型定义-----
#define PORT_TYPE_INVALID	-1			//无意义端子
#define PORT_TYPE_NORMAL	0			//普通拓扑端子
#define PORT_TYPE_SINGLE	1			//独立端子
#define PORT_TYPE_EQUEL		2			//全局等效端子
#define PORT_TYPE_SEPARATE	3			//隔离端子
#define PORT_TYPE_EXTEND	4			//扩展功能端子

//-----节点类型定义-----
#define NODE_TYPE_INVALID	-1			//无意义节点
#define NODE_TYPE_EQUEL		0			//等值节点

#ifdef __cplusplus
extern "C"{
#endif

//-----相关数据结构定义-----
typedef struct tagAV_KEY_INFO			//对象属性数据检索键结构
{
	UINT nID;				//内部使用ID
	AV_KEY chKey;			//字符键值
}AV_KEY_INFO;

typedef struct tagAV_QUERY_INFO			//查询信息结构
{
	char chTableName[64];	//对应表名
	char chFieldKey[64];	//键值对应域名
	char chFilter[256];		//查询语句(带or关键字的必须加括号)
}AV_QUERY_INFO;

typedef struct tagAV_SEARCH_INFO		//对象搜索信息结构
{
	AV_KEY_INFO	keyInfo;	//起始对象键值
	void* pComoponent;		//起始对象(二次系统C++对象指针)
	int refPortID;			//指定搜索端子号(-1为全部搜索)
	int nStateFlag;			//元件搜索拓扑状态标志(0不考虑拓扑状态,1连通搜索)
	int nTargetFlag;		//目标扩展标志(1为搜到一个即终止)
	short nTagInfoCount;	//查询信息对数目
	short nEndInfoCount;	//终止信息对数目
	AV_QUERY_INFO* tagInfo;	//查询信息
	AV_QUERY_INFO* endInfo;	//结束信息
#ifdef __cplusplus			//C++系统中具备自初始化能力
	tagAV_SEARCH_INFO()
	{
		keyInfo.nID = -1;
		memset(&keyInfo.chKey,0,sizeof(char)*INFOKEY_LENGTH);
		pComoponent = NULL;
		refPortID = -1;
		nStateFlag = 0;
		nTargetFlag = -1;
		nTagInfoCount = 0;
		nEndInfoCount = 0;
		tagInfo = NULL;
		endInfo = NULL;
	}
#endif
}AV_SEARCH_INFO;

typedef struct tagAV_RESULT_INFO		//对象搜索结果信息
{
	AV_KEY_INFO	keyInfo;	//对象键值
	void* pComoponent;		//起始对象(二次系统C++对象指针)
	int tagPortID;			//起始对象的目标对象侧端子号
#ifdef __cplusplus			//C++系统中具备自初始化能力
	tagAV_RESULT_INFO()
	{
		keyInfo.nID = -1;
		memset(&keyInfo.chKey,0,sizeof(char)*INFOKEY_LENGTH);
		pComoponent = NULL;
		tagPortID = -1;
	}
#endif
}AV_RESULT_INFO;

typedef struct tagAV_PORT_INFO			//端子信息结构
{
	int nID;				//端子ID
	int nNode;				//对应节点ID
	int nType;				//端子类型
	int nReserved;			//预留(提供给二次开发者)
	int nLinkSum;			//直接联接元件数目
	AV_KEY_INFO* pKeyInfo;	//直接联接元件键值列表
#ifdef __cplusplus			//C++系统中具备自初始化能力
	tagAV_PORT_INFO()
	{
		nID = -1;
		nNode = NODE_TYPE_INVALID;
		nType = -1;
		nReserved = -1;
		nLinkSum = 0;
		pKeyInfo = NULL;
	}
#endif
}AV_PORT_INFO;

typedef struct tagAV_NODE_INFO			//节点拓扑数据结构
{
	int nID;				//节点ID
	int nComponentSum;		//所含元件数目
	AV_KEY_INFO* pKeyInfo;	//所含元件检索键数组
	int nPower;				//节点源计数
#ifdef __cplusplus			//C++系统中具备自初始化能力
	tagAV_NODE_INFO()
	{
		nID = NODE_TYPE_INVALID;
		nComponentSum = 0;
		pKeyInfo = NULL;
		nPower = 0;
	}
#endif
}AV_NODE_INFO;

typedef struct tagAV_COMPONENT_INFO		//元件拓扑数据结构
{
	AV_KEY_INFO keyInfo;	//元件检索键
	int nType;				//元件类型
	int nPortSum;			//元件端子数目
	AV_PORT_INFO* pPortInfo;//端子信息
	void* pVisualObj;		//图形系统元件实例
	void* pComponent;		//二次系统元件实例
	int nState;				//元件拓扑连通状态(是否连通)
	int nPower;				//元件入口状态(是否源头)
	long nTopoColorTagID;	//元件拓扑着色变量ID(性能优化)
	BOOL bSearchedFlag;		//元件是否被搜索到标志
#ifdef __cplusplus			//C++系统中具备自初始化能力
	tagAV_COMPONENT_INFO()
	{
		keyInfo.nID = -1;
		memset(&keyInfo.chKey,0,sizeof(char)*INFOKEY_LENGTH);
		nPortSum = 0;
		nType = -1;
		pPortInfo = NULL;
		pVisualObj = NULL;
		pComponent = NULL;
		nState = 0;
		nPower = 0;
		nTopoColorTagID = -1;
		bSearchedFlag = FALSE;
	}
#endif
}AV_COMPONENT_INFO;

typedef struct tagAV_NET_SUBSET			//网络子集数据结构
{
	int nNodeSum;			//该子集中的节点数目
	int nComponentSum;		//该子集中的元件数目
	int* pNodeInfo;			//所含节点ID数组
	AV_KEY_INFO* pKeyInfo;	//所含元件检索键数组
	int nState;				//子集状态(是否带电/水/气)
#ifdef __cplusplus			//C++系统中具备自初始化及自释放能力
	tagAV_NET_SUBSET()
	{
		nNodeSum = 0;
		nComponentSum = 0;
		pNodeInfo = NULL;
		pKeyInfo = NULL;
		nState = 0;
	}
	~tagAV_NET_SUBSET()
	{
		if(pNodeInfo)
		{
			delete pNodeInfo;
			pNodeInfo = NULL;
		}
		if(pKeyInfo)
		{
			delete pKeyInfo;
			pKeyInfo = NULL;
		}
	}
#endif
}AV_NET_SUBSET;

typedef struct tagAV_NET_MODEL			//网络模型数据结构
{
	AV_COMPONENT_INFO* pComponentInfo;	//元件信息
	int nComponentSum;					//元件数目
	AV_NODE_INFO* pNodeInfo;			//节点信息
	int nNodeSum;						//节点数目
#ifdef __cplusplus						//C++系统中具备自初始化能力
	tagAV_NET_MODEL()
	{
		pComponentInfo = NULL;
		nComponentSum = 0;
		pNodeInfo = NULL;
		nNodeSum = 0;
	}
#endif
}AV_NET_MODEL;

/***********************************************************************************
******************以下接口为二次系统作二次开发使用(二次系统使用)********************
***********************************************************************************/
//配置信息操作接口
AV_EXPORT USHORT AVSetPropDataSource(char* chDataSource);				//配置应用系统属性数据源连接串
AV_EXPORT USHORT AVSetObjectTypeInfo(char* table,						//指定对象类型信息源
									 char* fieldType,
									 char* fieldDesc);
//二次系统初始化
AV_EXPORT USHORT AVInitInfoExtension();									//初始化信息扩展模块
//打开或设置网络模型
AV_EXPORT USHORT AVOpenNetModel(BOOL bEdit);							//打开当前网络模型(FirstCall,Must)
AV_EXPORT USHORT AVGetNetModel(AV_NET_MODEL** pNetModel);				//获取当前网络模型
//基本信息初始化
AV_EXPORT USHORT AVInitComponentID(AV_KEY_INFO* tagKey,					//初始化元件二次系统索引ID(InitFirstA,Option)
								    void* object = NULL,
									BOOL bShowMsg = TRUE);
AV_EXPORT USHORT AVInitComponentInfo();									//初始化元件端子联接元件键值信息(InitSecondA,Option)
AV_EXPORT USHORT AVInitNetNodeInfo();									//初始化网络节点联接元件键值信息(InitSecondB,Option)

AV_EXPORT USHORT AVMakeComponentTagBase(AV_KEY_INFO* tagKey,			//初始化元件相关标记数据库(InitThirdA,Option)
										USHORT type,
										char* prefix,
										char* suffix,
										char* desc,
										ULONG* tagID);		
AV_EXPORT USHORT AVMakeComponentMacroBase(AV_KEY_INFO* tagKey,			//初始化元件触发宏记录库(InitThirdB,Option)
										  USHORT type,
										  char* prefix,
										  char* suffix,
										  char* desc);	
											   						
//拓扑数据访问及状态设置功能接口
AV_EXPORT USHORT AVGetComponentPortInfo(AV_KEY_INFO* tagKey,			//由元件检索键获取元件端子信息
										AV_PORT_INFO** pPortInfo,
										int* nSum);
AV_EXPORT USHORT AVGetNetNodeInfo(int nNodeID,AV_NODE_INFO** pNodeInfo);//由节点ID获取节点信息
AV_EXPORT USHORT AVSearchComponent(AV_SEARCH_INFO* infoSearch,			//按条件搜索元件
								 AV_RESULT_INFO** resultInfo,
								 int* nSum);
AV_EXPORT USHORT AVSearchComponentAdo(void* pDataBase,AV_SEARCH_INFO* infoSearch,//按条件搜索元件
								 AV_RESULT_INFO** resultInfo,
								 int* nSum);
AV_EXPORT USHORT AVSearchComponentInSingleTable(void* pDataBase,AV_SEARCH_INFO* infoSearch,//按条件搜索元件
								 AV_RESULT_INFO** resultInfo, int* nSum,
								 void * p_Element=NULL,int nEleCount=-1,int nSearch=-1, char* chSysCode=NULL);
AV_EXPORT USHORT AVSetComponentTagVal(AV_KEY_INFO* tagKey,				//设置元件相关标记值(更新图形动态属性显示)
									  char* prefix,
									  char* suffix,
									  AV_TAG_VALUE* pValue);
AV_EXPORT USHORT AVSetComponentState(AV_KEY_INFO* tagKey,int nState,	//设置元件状态(更新网络分析模型中的元件状态)
									 BOOL bUpdateNodeMatrix);	
AV_EXPORT USHORT AVSetComponentPower(AV_KEY_INFO* tagKey,int nPower,	//设置元件入口状态(如电源,水源,气源等)
									 BOOL bUpdateNodeMatrix);

//网络连通性分析支持功能接口
AV_EXPORT USHORT AVMakeNodeMatrix();									//创建前后两个节点连通性分析矩阵
AV_EXPORT USHORT AVInitNodeMatrix();									//由初始状态初始化两个节点连通性分析矩阵(After state init)
AV_EXPORT USHORT AVRefreshPrevNodeMatrix();								//由后一状态更新前一状态节点联通性分析矩阵
AV_EXPORT USHORT AVGetPrevConnectiveSubsetSum(int* nSum,				//获取前一分析模型下的连通子集数目
											  int** pNodeRef = NULL);
AV_EXPORT USHORT AVGetPrevConnectiveSubsetByNode(AV_NET_SUBSET* pSubset,//由节点ID获取前一分析模型该节点所在的连通子集
											 int nNodeID);
AV_EXPORT USHORT AVGetCurrentConnectiveSubsetSum(int* nSum,				//获取当前分析模型下的连通子集数目
												 int** pNodeRef = NULL);			
AV_EXPORT USHORT AVGetCurrentConnectiveSubsetByNode(AV_NET_SUBSET* pSubset,//由节点ID获取当前分析模型该节点所在的连通子集
											 int nNodeID);
//数据视图支持
AV_EXPORT USHORT AVShowComponentInfo(void* pCtrlView);					//显示元件信息
AV_EXPORT USHORT AVShowNodeInfo(void* pCtrlView);						//显示节点信息
AV_EXPORT USHORT AVShowNodeMatrixCurrent(void* pCtrlView);				//显示当前节点连通矩阵
AV_EXPORT USHORT AVShowNodeMatrixOrigin(void* pCtrlView);				//显示节点连通原始矩阵

//关闭网络模型
AV_EXPORT USHORT AVCloseNetModel();										//关闭当前网络模型(LastCall,Must)
//二次系统退出
AV_EXPORT USHORT AVExitInfoExtension();									//退出信息扩展模块

/**********************************************************************************
******************以下接口为本系统内部使用接口(系统内部使用)***********************
**********************************************************************************/
AV_EXPORT USHORT AVGetPropDataSource(char* chDataSource);				//获取应用系统属性数据源连接串
AV_EXPORT USHORT AVGetObjectTypeInfo(char* table,						//获取对象类型信息源
									 char* fieldType,
									 char* fieldDesc);
AV_EXPORT USHORT AVGetModelName(char* chModelName,BOOL bEdit);			//获取模型名称
AV_EXPORT USHORT AVEnumObjectType(int* nType,char* chDesc);				//枚举对象类型
AV_EXPORT USHORT AVGetNodeTopoInfo(AV_NODE_INFO** pNodeInfo,			//获取节点信息
								   int* nSum);
AV_EXPORT USHORT AVGetComponentTopoInfo(AV_COMPONENT_INFO** pComponent,	//获取元件信息
										int* nSum);

/***********************************************************************************
***********以下接口作为中介接口传递对二次扩展模块的调用(系统内部使用)***************
***********************************************************************************/
AV_EXPORT USHORT AVInitInfoExtensionInternal();							//初始化信息扩展模块中介接口
AV_EXPORT USHORT AVExitInfoExtensionInternal();							//退出信息扩展模块中介接口
AV_EXPORT USHORT AVSetPropData(AV_KEY_INFO* tagKey,						//属性数据设置中介接口
							   int nType,
							   char* szDesc,
							   AV_KEY_INFO* refKey,
							   int nRefKeySum);
AV_EXPORT USHORT AVSetPropDataAuto(AV_KEY_INFO* tagKey,					//属性数据设置中介接口
							   int nType,
							   char* szDesc,
							   AV_KEY_INFO* refKey,
							   int nRefKeySum);		
AV_EXPORT USHORT AVCopyPropData(AV_KEY_INFO* tagKey,					//属性数据拷贝中介接口
								int nType,
							   char* szDesc,
							   AV_KEY_INFO* refKey,
							   int nRefKeySum);	

AV_EXPORT USHORT AVCopyEvent(int nFlag);	

	
AV_EXPORT USHORT AVGetPropData(AV_KEY_INFO* tagKey,						//属性数据获取中介接口
							   int nType,
							   char* szDesc,
							   AV_KEY_INFO* refKey,
							   int nRefKeySum);			
AV_EXPORT USHORT AVRemovePropData(AV_KEY_INFO* tagKey,int nType);		//属性数据删除中介接口
AV_EXPORT USHORT AVDeletePropData(AV_KEY_INFO* tagKeyArray,int* nTypeArray//删除对象中介接口
								,int nCount);
AV_EXPORT USHORT AVOpenModel(char* chModelName,BOOL bEdit);				//打开模型中介接口
AV_EXPORT USHORT AVSetModel(char* chModelName,BOOL bEdit);				//设置模型中介接口
AV_EXPORT USHORT AVCopyModel(char* chModelNameTarget,					//拷贝模型中介接口
							 char* chModelNameSource);
AV_EXPORT USHORT AVSaveModel(char* chModelName);						//保存模型中介接口
AV_EXPORT USHORT AVCloseModel(char* chModelName);						//关闭模型中介接口

#ifdef __cplusplus
}
#endif//<-__cplusplus

#endif//<-__AVINFOAPI_H_INCLUDE


⌨️ 快捷键说明

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