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