专利名称:一种基于插件技术的电力系统分析软件接口实现方法
技术领域:
本发明属于电力系统应用技术领域,特别是涉及一种电力系统分析软件接口实现 方法。
背景技术:
软件的开发质量很大程度上都由软件设计结构的复杂度决定。一个好软件架构对 软件的稳定性、扩展性、代码的重用性、应对需求变更的自适应调节能力、易维护性等方面 都起着决定性作用。在实际应用过程中,因各系统的结构、运行特性、运行方式、运行人员的 关注点等不同,电力系统分析软件的功能需求复杂,各种分析计算功能、数据支持功能、图 形显示功能等的集成开发,虽然能够提高数据交互效率,但很难适应电力系统安全稳定分 析功能种类繁多、发展迅速、定制要求强等特点,引出对电力系统分析软件的功能进行适当 解耦十分必要。为了增强软件的稳定性、可扩展性、开放性和易维护性,本发明提出了一种 基于插件技术的电力系统分析软件接口实现方法,支持基于插件的软件框架的开发。
发明内容
基于上述现有技术,本发明提出一种基于插件技术的电力系统分析软件接口实现 方法首先利用插件技术,将电力系统的分析功能分解为图形支持模块、数据支持功能模 块,和各种在线\离线分析功能模块,实现各功能模块最大程度的解耦;其次应用动态链接 库的动态加载和动态调用技术实现插件与支持平台间的数据交互,从而提高电力系统分析 软件的稳定性、可扩展性和易维护性。本发明提出的一种基于插件技术的电力系统分析软件接口实现方法,该方法包括 下列步骤第一步将电力系统分解为图形支持模块、数据支持功能模块,和各在线或离线分 析功能模块,分别作为插件;第二步设置插件配置列表,用于记载注册的全部插件;第三步将插件注册到图形支持模块,该过程包括注册请求、注册信息校验和文件 生成与拷贝;注册信息包括基本信息,包括插件名称和开发版本,向平台开放的API函数 信息,以及共享数据项描述信息,并于注册校验成功后修改插件配置列表,增加新的插件信 息;第四步将可视化图形平台作为宿主,管理电力系统的设备图形信息;第五步将各插件的相关数据存放在各自管理的内存中,该相关数据包括内部数 据中间数据和共享数据;第六步各插件向可视化图形平台提出数据请求,以及提供数据请求信息,该数据 请求信息包括功能模块标识,即对应模块的注册ID和数据项标识;各插件收到数据请求 后,依据该数据请求信息,首先判断该数据请求是否对应本插件的功能模块,若是则依据数 据项标识完成数据查询,向对应的内存空间赋值;若否则忽略该请求;如此完成一次数据请求的应答;第七步可视化图形平台的信息包含图形相关信息、内容及形式固定,由平台通过 公共API函数提供给其他插件。与现有技术相比,本发明的基于插件技术的电力系统分析软件接口实现方法,能 够有效地降低功能对象与对象管理逻辑之间的耦合程度,使应用程序变得更加稳定且具有 良好的可扩展性,从根本上保证了软件成为“面向需求的开放式体系架构”。本发明方法有 效屏蔽了支持平台程序与功能插件之间复杂的交互和通信联系,第三方插件开发者无需关 注平台程序是如何运行的,如何调用插件对象等复杂问题,也完全无需了解框架的宿主程 序是的程序编写,只须关心自己所要解决问题的处理逻辑,只要程序逻辑编写正确,符合插 件式框架规定的格式和流程即可。同时尽管在程序开发和运行过程中,各插件之间,插件与 框架之间都是基本功能独立的,但是在使用过程中它们的功能却仍然表现为一个整体,完 全不影响用户使用。
图1为本发明的图形支持功能模块与插件之间的解耦关系;图2为本发明的插件注册流程。
具体实施例方式本发明提出一种基于插件技术的电力系统分析软件接口的实现方法,支持电力系 统软件中图形支持功能与分析计算功能的解耦,并支持数据交互,可有效降低电力系统分 析软件的复杂度,增强稳定性、可扩展性、开放性和易维护性。方法详细说明如下第一步设置插件配置列表,记载注册的全部插件。电力系统分析功能众多,用户依据各自需求对软件功能进行定制的要求很高,因 此为准确管理各实施系统的功能插件,特定义插件配置列表,记录注册插件数量和对应的 动态库名称。列表内容示例如下Count = 3Namel = Pluglnl. dllName2 = Plugln2. dllName3 = Plugln3. dll第二步插件注册到图形平台的过程包括注册请求、注册信息校验和文件生成与 拷贝共3次平台与插件动态链接库间的交互;注册信息包括插件名称和开发版本等基本信 息,向平台开放的API函数信息,以及共享数据项描述信息;注册校验成功后修改插件配置 列表,增加新的插件信息。插件注册到图形平台的过程如图2所示,首先由插件向平台提交注册请求,提供 注册信息;平台接收请求后应答并对相应的注册信息进行验证。注册信息包括A.插件名称B.插件版本C.版权信息D.插件业务功能描述信息
E.插件的全球唯一标识号(⑶ID)F.插件消息——显示插件启动时发给主程序的Windows消息G.主程序消息——显示主程序回馈给插件的Windows消息H.初始化——插件初始化时执行的函数I.执行——插件业务功能执行的函数J.执行结束——插件业务功能执行完成之后执行的函数K.销毁——插件销毁时执行的函数L.显示插件参数列表注册信息验证通过后,平台执行文件生成与拷贝,进行插件安装;最后修改插件配 置列表,增加新的插件信息,完成插件注册全过程。即完成了平台与插件动态链接库间的交互。第三步电力系统的图形支持功能模块作为宿主,管理电力系统的设备图形信息。电力系统的图形描述以单线图为主,主要构成图元为电力系统中的一次设备和二 次设备,包括断路器、线路、发电机、变压器、负荷、电压互感器、电流互感器、保护装置等物 理设备,每一个设备由唯一的标识符确定,另外还有地理位置信息等图形相关内容。这些信 息由图形系统和图形文件进行存储和管理。第四步在方法实施过程中,各插件的数据存放在各自管理的内存中,包括内部数 据,如分析计算的基础和计算中间数据,和向平台开放的共享数据。各插件内部任意实现功能,只需符合本方法接口协议即可接入系统实施。因此数 据管理各自进行,仅需提供响应平台数据请求的公共函数即可。第五步插件向图形平台提供任意内容的数据和信息,由平台向各插件轮询形式 发出,但必须首先在第一步中完成向平台的数据注册。数据请求信息由平台向各插件轮询 形式发出,包括功能类标识,即对应模块注册ID,和数据项标识;各插件收到请求后,依据 该请求信息,首先判断该数据请求是否对应本插件的功能范围,若是则依据数据项标识完 成数据查询,向平台对应内存空间赋值;若否则忽略该请求;以上构成一次数据请求的应 答。插件向平台提供的数据和信息取决于其本身的分析功能,不受平台限制,因此其 数据内容较自由,各插件间数据定义也各不相同。因此本方法在第二步注册过程中即要求 完成数据注册工作,实现平台对插件数据的准确管理。向平台进行数据传递的过程通过公共API函数进行,采用动态内存分配技术将具 体数值信息赋值到平台上的相应设备图元,这里提供一个伪代码的调用样例for(int i = 0 ;i < ElecObjList. GetCount () ;i++){CDrawObjList cDrawObjList ;if (GetDrgwObjList (&cDrgwObjList) ==1){CDrawObj^pDrawObj = NULL ;if (cDrawObjList. Lookup (ElecObjList [i]m_strPsBob, pDrawOb j)==TRUE)
{
PLUGINARGUMEN/stArgu;
stArgu.m—dwIndexNum一1 20300000 l;
stArgu.m_strMeaning一’’VI”
stArgu.m_strType一’’doub l e”
stArgu.m—strUnit一’’A”;
stArgu.m—strValue一”8.6”;
pDrawObj一>m—ArguLi st.SetAt(pDrawObj一>m—ArguLi st.GetCount 0,
stArgu);
}
}
}
第六步由图形平台管理的信息只包含图形相关信息,内容及形式固定,引出由平台通过公共API函数提供给插件。
插件从图形平台获取图元信息时,是由图形平台提供一组API,实现内存共享,例如获取当前图纸上的全部设备图元信息,具体实现如下
int GetDraW。bjLi st(CDrawObjLi St*pDraW。bjLi St)
{
for(int i;i<theApp.m_cDrawObjLi st.GetCount 0;i++)
{
CDraW。bj*p。bj一&(theApp.m_cDrawObjLi st.GetDrawObj(i));
pDrawObjLi st一>SetAt(pObj一>m_strPsBob,pObj);
}
return l
}
权利要求
一种基于插件技术的电力系统分析软件接口实现方法,该方法包括下列步骤第一步将电力系统分解为图形支持模块、数据支持功能模块,和各在线或离线分析功能模块,分别作为插件;第二步设置插件配置列表,用于记载注册的全部插件;第三步将插件注册到可视觉化图形平台,该过程包括注册请求、注册信息校验和文件生成与拷贝;注册信息包括基本信息,包括插件名称和开发版本,向平台开放的API函数信息,以及共享数据项描述信息,并于注册校验成功后修改插件配置列表,增加新的插件信息;第四步将可视化图形平台作为宿主,管理电力系统的设备图形信息;第五步将各插件的相关数据存放在各自管理的内存中,该相关数据包括内部数据,中间数据和共享数据;第六步各插件向可视化图形平台提出数据请求,以及提供数据请求信息,该数据请求信息包括功能模块标识,即对应模块的注册ID和数据项标识;各插件收到数据请求后,依据该数据请求信息,首先判断该数据请求是否对应本插件的功能模块,若是则依据数据项标识完成数据查询,向对应的内存空间赋值;若否则忽略该请求;如此完成一次数据请求的应答;第七步可视化图形平台的信息包含图形相关信息、内容及形式固定,由平台通过公共API函数提供给其他插件。
全文摘要
本发明属于电力系统应用技术领域,特别是涉及一种基于插件技术的电力系统分析软件接口实现方法,首先利用插件技术,将电力系统的分析功能分解为图形支持模块、数据支持功能模块,和各种在线\离线分析功能模块,实现各功能模块最大程度的解耦;其次应用动态链接库的动态加载和动态调用技术实现插件与支持平台间的数据交互,与现有技术相比,本发明能够有效地降低功能对象与对象管理逻辑之间的耦合程度,使应用程序变得更加稳定且具有良好的可扩展性,从根本上保证了软件成为“面向需求的开放式体系架构”。
文档编号G06F9/44GK101907991SQ201010213989
公开日2010年12月8日 申请日期2010年6月30日 优先权日2010年6月30日
发明者张志刚, 曹旌, 范广民, 郭凌旭, 魏炜, 黄志刚 申请人:天津大学;天津市电力公司