CN105242958B - 一种虚拟试验***与hla仿真***数据交换方法 - Google Patents
一种虚拟试验***与hla仿真***数据交换方法 Download PDFInfo
- Publication number
- CN105242958B CN105242958B CN201510829895.4A CN201510829895A CN105242958B CN 105242958 B CN105242958 B CN 105242958B CN 201510829895 A CN201510829895 A CN 201510829895A CN 105242958 B CN105242958 B CN 105242958B
- Authority
- CN
- China
- Prior art keywords
- hla
- experiment system
- dummy experiment
- mapping relations
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种虚拟试验***与HLA仿真***数据交换方法,本发明涉及虚拟试验***与HLA仿真***数据交换方法。本发明的目的是为了解决目前虚拟试验***与HLA仿真***之间数据交换依赖定制开发、缺乏通用性、对用户编程能力要求较高、浪费大量人力物力、开发周期长的问题。过程为:一、获得虚拟试验***基本信息、虚拟试验***对象模型信息和虚拟试验***实例数组;二、获得HLA***基本信息、HLA对象模型信息;三、声明HLA实例信息;四、得到虚拟试验***实例信息和HLA实例信息的映射关系;五、生成映射方案文件;六、初始化HLA邦员接口和虚拟试验***成员接口;步骤七、执行数据交换。本发明应用于虚拟实验领域。
Description
技术领域
本发明涉及虚拟试验***与HLA仿真***数据交换方法。
背景技术
目前,在虚拟试验领域存在着许多功能各异的HLA(“High Level Architecture,建模与仿真高层体系结构”)仿真***,由于HLA体系结构与虚拟试验体系结构的通信协议不匹配,因此HLA仿真***与虚拟试验***进行互联时存在数据交换困难,无法进行组合应用的问题虚拟试验。
目前虚拟试验已有的解决虚拟试验***与HLA仿真***数据交换的方式都是通过开发专用网关方法实现的,即对于确定的两个不同体系结构的***的集成,分析通信内容、方式、方向、频率等因素,开发专用的协议转换软件实现数据交换。该类方法虽然能实现两类***之间的数据交换,但只能针对具体的任务,缺乏通用性,当***的集成环境发生变化时,开发人员必须对程序进行更改甚至需要重新进行网关开发,对开发者的编程能力要求较高,浪费大量人力物力,且开发周期较长。
发明内容
本发明的目的是为了解决目前虚拟试验***与HLA仿真***之间数据交换依赖定制开发、缺乏通用性、对用户编程能力要求较高、浪费大量人力物力、开发周期长的问题,而提出一种虚拟试验***与HLA仿真***数据交换方法。
上述的发明目的是通过以下技术方案实现的:
步骤一、解析虚拟试验***试验方案文件,获得虚拟试验***基本信息、虚拟试验***对象模型信息和虚拟试验***实例数组;
步骤二、解析HLA***FED文件,获得HLA***基本信息、HLA对象模型信息;
步骤三、根据步骤二的HLA对象模型信息,声明HLA实例信息;
步骤四、将虚拟试验***实例和HLA实例进行映射,得到虚拟试验***实例信息和HLA实例信息的映射关系;
步骤五、根据虚拟试验***基本信息、HLA***基本信息、虚拟试验***对象模型信息、HLA对象模型信息以及虚拟试验***实例信息和HLA实例信息的映射关系,生成映射方案文件;
步骤六、根据映射方案文件初始化HLA邦员接口和虚拟试验***成员接口;
步骤七、使用步骤六初始化的HLA邦员接口和虚拟试验***成员接口执行数据交换。
发明效果
该发明所提出虚拟试验***与HLA仿真***数据交换方法通过映射虚拟实验***对象实例和HLA对象实例能够解决虚拟试验***和HLA仿真***无法直接进行数据交换的问题,通过指定到实例属性的映射关系确保数据转换的准确性,通过划分数据缓存区域确保数据读写的正确性。
目前,该方法已经应用于某导弹拦截仿真试验中,能够实现虚拟试验火控***与某HLA仿真***的快速通信,实际测试结果表明该发明提出的虚拟试验***与HLA仿真***数据交换方法对于两端相同类型数据的交换的准确率为100%,通过本发明提出的方法无需任何代码编写即可自动化实现两种***的数据交换,无需大量人力物力,将实现两种***数据交换的周期缩短了50%以上,同时极大降低了开发成本,具备良好的通用性。
附图说明
图1为本发明流程图;
图2为虚拟试验实例对象解析流程图;
图3为HLA对象类解析流程图;
图4为声明HLA对象实例流程图;
图5为添加HLA到虚拟试验映射流程图;
图6为映射方案元素结构图,comment describing your root element为评论描述你的根元素,1表示右边是左边的子节点,2表示右边是左边的属性,∞表示子节点存在多个;
图7为虚拟试验成员接口初始化流程图;
图8为HLA邦员接口初始化流程图;
图9为数据由虚拟试验***到HLA仿真***的流程图;
图10为***测试网络结构图,RTI为运行支撑环境;
图11为测试软件主界面图;
图12为虚拟试验***试验方案中对象模型图;
图13为HLA仿真***的对象模型图;
图14为新建映射方案图;
图15为编辑界面初始化图;
图16为配置HLA的属性/参数数据类型完成图;
图17为方案编辑完成图;
图18为虚拟试验***-HLA网关***提示信息图;
图19为虚拟试验***-HLA网关启动映射提示信息图;
图20为虚拟试验***-HLA网关运行数据图;
图21为HLA邦员测试软件接收实例TestLocation数据图,TestLocation为实例随机名称;
图22为HLA邦员测试软件发送实例TestLaunch数据图,TestLaunch为实例随机名称;
图23为TIDE平台显示组件显示的数据图,TIDE为哈尔滨工业大学自动化测试与控制研究所开发的虚拟试验***开发环境;
图24为虚拟试验***-HLA网关的运行数据图;
图25为虚拟试验***-HLA网关关闭映射***提示信息图。
具体实施方式
具体实施方式一:结合图1说明本实施方式,本实施方式的一种虚拟试验***与HLA仿真***数据交换方法,具体是按照以下步骤制备的:
步骤一、解析虚拟试验***试验方案文件,获得虚拟试验***基本信息、虚拟试验***对象模型信息和虚拟试验***实例数组;
步骤二、解析HLA***FED文件,获得HLA***基本信息、HLA对象模型信息;
步骤三、完善HLA对象模型信息;
步骤三、根据步骤二的HLA对象模型信息,声明HLA实例信息;
步骤四、将虚拟试验***实例和HLA实例进行映射,得到虚拟试验***实例信息和HLA实例信息的映射关系;
步骤五、根据虚拟试验***基本信息、HLA***基本信息、虚拟试验***对象模型信息、HLA对象模型信息以及虚拟试验***实例信息和HLA实例信息的映射关系,生成映射方案文件;
步骤六、根据映射方案文件初始化HLA邦员接口和虚拟试验***成员接口;
根据虚拟试验***和HLA***的基本设置初始化软件,使该软件与虚拟试验***和HLA***分别建立一种联系、一种通道,来进行数据的传输;
步骤七、使用步骤六初始化的HLA邦员接口和虚拟试验***成员接口执行数据交换。
接收虚拟试验***和HLA***的实例数据,查找步骤四的虚拟试验***实例信息和HLA实例信息的映射关系,确定映射的目标,若收到虚拟试验***的实例数据,将虚拟试验***的实例数据转换为HLA***的实例数据,将转换后的HLA***的实例数据发送到HLA***中,若收到HLA***的实例数据,将HLA***的实例数据转换为虚拟试验***的实例数据,将转换后的虚拟试验***的实例数据发送到虚拟试验***中。
具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤一中解析虚拟试验***试验方案文件,获得虚拟试验***基本信息、虚拟试验***对象模型信息和虚拟试验***实例数组;具体过程为:
一个虚拟试验***中所有的虚拟试验***实例和虚拟试验***对象模型信息均以XML格式保存在该试验方案对应的.sys文件中。
步骤一一、开始;
步骤一二、加载某个虚拟试验***试验方案文件;
步骤一三、读取虚拟试验***试验方案文件的基本信息,试验方案文件的基本信息包括虚拟试验***名称,虚拟试验***文件路径,获得虚拟试验***基本信息;
步骤一四、读取虚拟试验***试验方案文件的虚拟试验对象模型信息,获得虚拟试验***对象模型信息;
步骤一五、读取虚拟试验***试验方案文件的所有虚拟试验实例的信息,获得虚拟试验***实例数组。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:所述步骤一五中读取虚拟试验***试验方案文件的所有虚拟试验***实例的信息,获得虚拟试验***实例数组;具体过程为:
步骤一一一、读取虚拟试验***试验方案文件的所有参与者节点数组,参与者是指虚拟试验***的组成成员;获得所有参与者节点数组中的节点数量N,N为正整数,初始化i=1,i取值为1≤i≤N;
步骤一一二、根据步骤一一一中的参与者节点数组,获取第i个参与者节点;
步骤一一三、读取第i个参与者节点的参与者名称及第i个参与者节点下所有实例节点,将第i个参与者节点下所有实例节点保存为实例节点数组;获得所有实例节点数组中的节点数量M,M取值为正整数,初始化j=1,j取值为1≤j≤M;
步骤一一四、读取第j个实例节点内容,实例节点内容包括实例名称,实例ID,实例类型,实例发布订购类型;
步骤一一五、判断j是否小于M,若是,执行步骤一一六,若否,执行步骤一一七;
步骤一一六、将j加1,执行步骤一一四;
步骤一一七、判断i是否小于N,若是,执行步骤一一八,若否,执行步骤一一九;
步骤一一八、将i加1,执行步骤一一二;
步骤一一九、结束。
本实施方式获取的虚拟试验***实例数组按照表1~表2方式存放:
表1参与者信息模板
参与者名称 | 实例数组 |
Cstring(字符串) | Carray(数组) |
表2实例信息模板
实例名称 | 实例ID | 实例类型 | 实例发布订购类型 |
Cstring | Cstring | Cstring | Cstring |
在虚拟试验***中,实例每个参与者可能拥有多个实例对象,试验方案文件将每个实例对象分别存放在各自所属的参与者节点下,因此,为了获取全部实例对象,需依次获取每个参与者节点句柄,分别获取每个参与者节点下的所有实例对象信息,解析虚拟试验***实例对象流程如图2所示。
对于虚拟试验***对象模型的解析,由于目前有完善的函数可供调用,实现解析虚拟试验***试验方案文件中的虚拟试验***对象模型信息的功能,所以无需重新设计,只需调用相关接口,即可获取虚拟试验***对象模型信息。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:所述步骤二中解析HLA***FED文件,获得HLA***基本信息、HLA对象模型信息;具体过程为:
HLA对象模型的所有信息保存在HLA的联邦执行数据文件(FED)中,该文件同样使用XML语言编写内容。HLA对象模型分为“对象类”和“交互类”,这两种对象模型的用途不同,但二者在文件中的保存结构相同,仅关键词不同,“对象类”由多个属性构成,“交互类”由多个参数个构成,下面主要对“对象类”的解析过程进行说明,其处理流程如图3所示。HLA“对象类”支持继承,即每个“对象类”节点下可能包含新的“对象类”节点,为了能正确获取每一个“对象类”,需要采用函数嵌套,其实现为图3中的“载入新对象类”。
本实施方式获取的HLA对象模型信息按表3~表6方式存放:
表3 HLA“对象类”对象模型信息模板
“对象类”名称 | “对象类”类型 | “对象类”句柄 | “对象类”属性数组 |
Cstring | Cstring | RTI::ObjectClassHandle | Carray |
表4 HLA“对象类”属性信息模板
“对象类”属性名称 | “对象类”属性类型 | “对象类”属性句柄 |
Cstring | Cstring | RTI::AttributeHandle |
表5 HLA“交互类”对象模型信息模板
“交互类”名称 | “交互类”类型 | “交互类”句柄 | “交互类”参数数组 |
Cstring | Cstring | RTI:InteractionClassHandle | Carray |
表6 HLA“交互类”参数信息模板
“交互类”参数名称 | “交互类”参数类型 | “交互类”参数句柄 |
Cstring | Cstring | RTI::ParameterHandle |
步骤二一、开始;
步骤二二、加载某个HLA***FED文件;
步骤二三、读取HLA***FED文件的基本信息,HLA***FED文件的基本信息包括HLA***FED文件名称,HLA***FED文件路径;
步骤二四、读取HLA***FED文件的HLA对象模型信息;
读取HLA***FED文件的HLA对象模型信息,具体过程为:
步骤二四一、读取HLA***FED文件的对象(object)节点;
步骤二四二、读取对象节点句柄下所有对象类子节点数组,获得对象类子节点数组数量N,N为正整数,初始化i=1,i取值为1≤i≤N;
步骤二四三、根据步骤二四二中的对象类子节点数组,获取第i个对象类子节点;
步骤二四四、读取第i个对象类子节点下所有属性子节点数组;获得所有属性子节点数组数量M,M取值为正整数,初始化j=1,j取值为1≤j≤M;
步骤二四五、读取第j个属性子节点,判断第j个属性子节点名称是否为attribute(属性),若是,执行步骤二四六,若否,执行步骤二四七;
步骤二四六、读取第j个属性子节点内容,属性子节点内容包括属性名称,属性类型,执行步骤二四八;
步骤二四七、以第j个属性子节点作为对象类子节点,执行步骤二四四;
步骤二四八、判断j是否小于M,若是,执行步骤二四九,若否,执行步骤二四十;
步骤二四九、将j加1,执行步骤二四五;
步骤二四十、判断i是否小于N,若是,执行步骤二四十一,若否,执行步骤二四十二;
步骤二四十一、将i加1,执行步骤二四三;
步骤二四十二、结束。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:结合图4说明本实施方式,本实施方式与具体实施方式一至四之一不同的是:所述步骤三中根据步骤二的HLA对象模型信息,声明HLA实例信息;具体过程为:
由于HLA的FED文件中只给出了HLA的对象模型的定义,并没有给出具体的HLA实例信息,为了能正确编辑映射关系,提供“声明HLA对象实例”功能,随后用户可以对HLA对象实例进行“添加”、“修改”和“删除”等操作。声明HLA实例信息分为五步:
步骤三一、为HLA对象模型信息中所有属性定义数据类型(用户自定义),具体实施为步骤三一一~步骤三一三:
步骤三一一、获取HLA对象模型信息中的一个HLA对象模型,
步骤三一二、获取步骤三一一的HLA对象模型的所有属性,
步骤三一三、为步骤三一二获取的属性编辑数据类型;
步骤三二、创建一个HLA实例数组,默认为空;
步骤三三、添加,具体步骤如下:
“添加”操作的流程如图4所示。
步骤三三一、获取自定义(自定义为用户随机命名)实例名称;
步骤三三二、根据步骤二的HLA对象模型信息,获取HLA对象模型信息中的一个HLA对象模型(根据用户需求选择);
步骤三三三、根据步骤三三二获得的HLA对象模型和根据步骤三三一获取的自定义实例名称,创建一个HLA实例;
表7 HLA实例信息模板
HLA实例名称 | HLA实例类型 |
Cstring | Cstring |
步骤三三四、将步骤三三三创建的HLA实例查找步骤三二创建的HLA实例数组,如果有相同的HLA实例,结束操作,如果没有相同的HLA实例,将步骤三三三创建的HLA实例***步骤三二创建的HLA实例数组,结束操作;
步骤三四、修改,具体过程如下:
步骤三四一、获取HLA实例数组中的一个HLA实例(根据用户需求选择);
步骤三四二、重复步骤三三一~步骤三三三创建一个HLA实例;
步骤三四三、将步骤三四一获得的HLA实例更换为步骤三四二创建的HLA实例,结束操作;
步骤三五、删除,具体过程为:将步骤三四三获得的HLA实例或步骤三四一获得的HLA实例从步骤三二创建的HLA实例数组中删除。
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:所述步骤四中将虚拟试验***实例和HLA实例进行映射,得到虚拟试验***实例信息和HLA实例信息的映射关系;具体过程为:
分析虚拟试验***对象模型的格式发现,虚拟试验***对象模型由多个属性集合构成,每一个属性可能是一个基本数据,也可能是由多个基本数据构成的结构体;分析HLA对象模型格式发现,HLA对象模型根据用途不同分为“对象类”和“交互类”两种类型,但这两种类型结构相似,“对象类”由多个属性集合构成,“交互类”由多个参数集合构成,HLA的属性、参数都是基本数据。基本数据类型有:int、unsigned int、float、double、short、unsigned short、char、byte、bool。为保证数据传输的正确性,将虚拟试验***对象实例的最底层属性与HLA对象实例的属性/参数进行映射,每项属性映射以规定的模板保存,模板的具体格式如表8所示。
表8映射信息模板
HLA实例与虚拟试验***实例映射操作有:“添加HLA到虚拟试验***映射”、“添加虚拟试验***到HLA映射”和“删除映射”;
步骤四一、创建一个HLA实例到虚拟试验***实例的映射关系数组、一个虚拟试验***实例到HLA实例的映射关系数组,默认为空;
步骤四二、添加HLA实例到虚拟试验***实例映射;如图5,具体过程为:
步骤四二一、获取HLA实例数组中的一个HLA实例(根据用户需求选择);
步骤四二二、获取虚拟试验***实例数组中的一个虚拟试验***实例(根据用户需求选择);
步骤四二三、根据步骤四二一获取的HLA实例和步骤四二二获得的虚拟试验***实例创建一条映射关系,按照表1所列内容将相应的HLA实例的信息、虚拟试验***实例的信息写入;
步骤四二四、根据步骤四二三创建的映射关系查找HLA实例到虚拟试验***实例的映射关系数组,如果有相同的映射关系,执行步骤四二七,否则执行步骤四二五;
步骤四二五、根据步骤四二三创建的映射关系查找虚拟试验***实例到HLA实例的映射关系数组;
步骤四二五一、如果虚拟试验***实例到HLA实例的映射关系数组中某条映射关系的HLA实例与步骤四二三获得的映射关系的HLA实例相同,则执行步骤四二七,否则执行步骤四二五二;
步骤四二五二、如果虚拟试验***实例到HLA实例的映射关系数组中某条映射关系的虚拟试验***实例与步骤四二三获得的映射关系的虚拟试验***实例相同,则执行步骤四二七,否则执行步骤四二六;
步骤四二六、将步骤四二三创建的映射关系***HLA实例到虚拟试验***实例的映射关系数组;
步骤四二七、结束;流程如图5所示。
步骤四三、添加虚拟试验***实例到HLA实例映射;
步骤四四、删除映射,具体过程为:
删除步骤四二六中***HLA实例到虚拟试验***实例的映射关系数组的映射关系或步骤四三四中***虚拟试验***实例到HLA实例的映射关系数组的映射关系(该条映射关系将无法恢复)。
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:所述步骤四三中添加虚拟试验***实例到HLA实例映射;具体过程为:
步骤四三一、重复步骤四二一~步骤四二三,创建一条映射关系;
步骤四三二、根据步骤四三一获得的映射关系查找虚拟试验***实例到HLA实例的映射关系数组,如果有相同的映射关系,执行步骤四三五,否则执行步骤四三三;
步骤四三三、根据步骤四三一获得的映射关系查找HLA到虚拟试验***的映射关系数组;
步骤四三三一、如果HLA到虚拟试验***的映射关系数组中某条映射关系的HLA实例与步骤四三一获得的映射关系的HLA实例相同,执行步骤四三五,否则执行步骤四三三二;
步骤四三三二、如果HLA到虚拟试验***的映射关系数组中某条映射关系的虚拟试验***实例与步骤四三一创建的映射关系的虚拟试验***实例相同,执行步骤四三五,否则执行步骤四三四;
步骤四三四、将步骤四三一创建的映射关系***虚拟试验***到HLA的映射关系数组;
步骤四三五、结束。
其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:所述步骤五中根据虚拟试验***基本信息、HLA***基本信息、虚拟试验***对象模型信息、HLA对象模型信息以及虚拟试验***实例信息和HLA实例信息的映射关系,生成映射方案文件;具体过程为:
HLA对象实例与虚拟试验***对象实例映射关系指定后,根据HLA文件和虚拟试验***文件常用模式,以XML文件自动撰写方式建立映射方案文件保存映射关系,输出为一个XML文件;其XML元素结构如图6所示。
方案的根元素为“映射方案”,根元素包含“基本信息”、“虚拟试验***到HLA映射关系列表”、“HLA到虚拟试验***映射关系列表”和“HLA对象模型”四个子元素,其中,“基本信息”下包含方案名称、方案路径、虚拟试验实验方案名称、虚拟试验***试验方案路径、HLA联邦名称、HLA***FED文件名称、HLA***FED文件路径;“虚拟试验***到HLA映射关系列表”下保存由虚拟试验***到HLA***的映射关系,映射源方为虚拟试验***方的信息,映射目标为HLA方的信息;“HLA到虚拟试验***映射关系列表”下存放由HLA***到虚拟试验***的映射关系,映射源方为HLA方的信息,映射目标为虚拟试验***方的信息;“HLA对象模型”下存放HLA对象模型信息,以虚拟试验***对象模型格式重新编写HLA对象模型,将属性和参数的数据类型保存下来。
步骤五一、自定义方案名称、方案路径、HLA联邦名称(用户随机定义);
步骤五二、从虚拟试验***基本信息中获取虚拟试验***的虚拟试验***名称,虚拟试验***文件路径,从HLA***基本信息中获取HLA***FED文件名称,HLA***FED文件路径;
步骤五三、创建一个XML对象,将XML对象的根元素命名为映射方案;
步骤五四、在步骤五三创建的XML对象的根元素下方创建一个子元素基本信息,将步骤五一获得的自定义方案名称、方案路径、HLA联邦名称和步骤五二获得的虚拟试验***名称、虚拟试验***文件路径、HLA***FED文件名称、HLA***FED文件路径作为子元素***到子元素基本信息下方;
步骤五五、在步骤五三创建的XML对象的根元素下方创建一个子元素虚拟试验实例到HLA实例映射关系列表,将具体实施方式七获得的虚拟试验***实例到HLA实例的映射关系数组中的每一条映射关系作为一个子元素***到子元素虚拟试验***实例到HLA实例映射关系列表下方,对每一条映射关系重复步骤五五一~步骤五五三,对每一条映射关系的执行完成后执行步骤五六;
步骤五五一、在子元素虚拟试验***实例到HLA实例映射关系列表下方创建一个子元素映射关系;
步骤五五二、在子元素映射关系下方创建一个子元素映射源方、一个子元素映射目标;
步骤五五三、将具体实施方式七获得的虚拟试验***实例到HLA实例的映射关系数组中的每一条映射关系的虚拟试验***实例信息作为属性***到子元素映射源方中,将映射关系的HLA实例信息作为属性***到子元素映射目标中;
步骤五六、在步骤五三创建的XML对象的根元素下方创建一个子元素HLA实例到虚拟试验实例映射关系列表,将具体实施方式六获得的HLA到虚拟试验***的映射关系数组中的每一条映射关系作为一个子元素***到子元素HLA到虚拟试验***映射关系列表下方,对每一条映射关系重复步骤五六一~步骤五六三,对每一条映射关系的执行完成后执行步骤五七;
步骤五六一、在子元素HLA到虚拟试验***映射关系列表下方创建一个子元素映射关系;
步骤五六二、在子元素映射关系下方创建一个子元素映射源方、一个子元素映射目标;
步骤五六三、将具体实施方式六获得的HLA实例到虚拟试验***实例的映射关系数组中的每一条映射关系的HLA实例信息作为属性***子元素映射源方中,将映射关系的虚拟试验***实例信息作为属性***子元素映射目标中;
步骤五七、在步骤五三创建的XML对象的根元素下方创建一个子元素HLA对象模型,将步骤二获得的HLA对象模型信息中的每一个HLA对象模型作为一个子元素***到子元素HLA对象模型下方,对每一个HLA对象模型重复步骤五七一~步骤五七二,对每一个HLA对象模型的操作完成后执行步骤五八;
步骤五七一、在子元素HLA对象模型下方创建一个一级子元素packagedElement(一级子元素)“,将HLA对象模型的名称、类型作为属性***一级子元素packagedElement中;
步骤五七二、在一级子元素(packagedElement)下创建一个二级子元素(ownedAttribute),将HLA对象模型的属性的名称、类型作为属性***二级子元素(ownedAttribute)中;
步骤五八、将步骤五三、创建的XML对象输出为映射方案文件,映射方案文件名称是自定义方案名称。
其它步骤及参数与具体实施方式一至七之一相同。
具体实施方式九:本实施方式与具体实施方式一至八之一不同的是:所述步骤六中根据映射方案文件初始化HLA邦员接口和虚拟试验成员接口;具体过程为:
为了实现虚拟试验***与HLA***的数据交换,本发明必须同时参与虚拟试验***和HLA***,为此,本发明应当提供虚拟试验***成员接口以实现与虚拟试验***的数据交换、HLA邦员接口以实现与HLA***的数据交换。为了提高数据处理速率,本发明采用多线程方法,使用三条线程分别处理虚拟试验***消息、HLA***消息和自身***消息。
虚拟试验***中间件接口的初始化流程如图7所示,该初始化过程首先将虚拟试验***的相关信息载入,将映射关系数组中的虚拟试验***实例信息和实例对应的对象模型信息分类提取出来,方便后续操作;随后连接中间件,加入虚拟试验***,声明订购发布关系,完成与虚拟试验***的连接,为获取虚拟试验***的数据和向虚拟试验***发送数据提供通路。
初始化虚拟试验***成员接口具体过程为:
步骤六一、开始;
步骤六二、读入虚拟试验***基本信息、方案名称;
步骤六三、读入订购的虚拟试验***实例信息(在HLA到虚拟试验***的映射关系中);
步骤六四、读入发布的虚拟试验***实例信息(在虚拟试验***到HLA的映射关系中);
步骤六五、根据步骤六二方案名称连接中间体;
步骤六六、根据步骤六二虚拟试验***基本信息和方案名称,在步骤五连接中间体的基础上,将虚拟试验***成员接口加入虚拟试验***;
步骤六七、根据步骤六三订购的虚拟试验***实例信息、步骤六四发布的虚拟试验***实例信息,在步骤六六加入虚拟试验***的基础上,声明订购发布关系;
步骤六八、结束;
HLA邦员接口的初始化流程如图8所示,该初始化过程首先将HLA***的相关信息载入,将映射关系数组中的HLA实例信息和实例对应的对象模型信息分类提取出来,方便后续操作;随后加入HLA***,声明订购发布关系,注册对象实例,完成与HLA***的连接,为获取HLA***的数据和向HLA***发送数据提供通路。
初始化HLA邦员接口具体过程为:
步骤六六一、开始;
步骤六六二、读入HLA***基本信息、HLA联邦名称、方案名称;
步骤六六三、读入HLA对象模型信息;
步骤六六四、读入订购的HLA实例信息;
步骤六六五、读入发布的HLA实例信息;
步骤六六六、根据步骤六六二HLA***基本信息、HLA联邦名称、方案名称,将HLA邦员接口加入HLA***;
步骤六六七、在步骤六六六加入HLA***的基础上根据步骤六六三HLA对象模型信息获取句柄;
步骤六六八、在步骤六六四订购的HLA实例信息、步骤六六五发布的HLA实例信息,步骤六六七获取句柄的基础上,声明订购发布关系;根据步骤五发布的HLA实例信息注册对象实例;
步骤六六九、结束。
其它步骤及参数与具体实施方式一至八之一相同。
具体实施方式十:本实施方式与具体实施方式一至九之一不同的是:所述步骤七中使用步骤六初始化的HLA邦员接口和虚拟试验***成员接口执行数据交换;具体过程为:
HLA邦员接口和虚拟试验***中间件接口初始化成功后才能执行数据交换。由于虚拟试验***消息和HLA***消息在不同线程中处理,为确保数据读写不会冲突,数据缓存区域划分为四个区域,分别是:“接收虚拟试验***数据”缓存区、“发送虚拟试验***数据”缓存区、“接收HLA***数据”缓存区、“发送HLA***数据”缓存区。数据由虚拟试验***到HLA的过程见图9。数据由HLA到虚拟试验***的过程与由虚拟试验***到HLA的过程相似,具体步骤描述如下:
(7.1)从HLA***接收某HLA实例属性B数据data3;
(7.2)查找“HLA到虚拟试验***”映射关系数组,如果HLA实例属性B不在映射关系中,结束操作,如果存在,将data3写入“接收HLA数据”缓存区域;
(7.3)从“接收HLA数据”缓存区读取出data3转换为虚拟试验***实例属性数据data4,将data4写入“发送虚拟试验***数据”缓存区;
(7.4)从“发送虚拟试验***数据”缓存区读出data4,发送data4到虚拟试验***。
数据由虚拟试验***实例到HLA实例的交换过程为:
步骤七一、开始,创建数据交换主线程;
步骤七二、虚拟试验***成员接口从虚拟试验***接收某虚拟试验***实例A数据data1;
步骤七三、查找虚拟试验***实例到HLA实例映射关系数组;
步骤七四、判断实例A是否在虚拟试验***到HLA映射关系数组中,若存在,执行步骤七五,若不存在,执行步骤七九;
步骤七五、虚拟试验***成员接口将data1存入接收虚拟试验***数据缓存区域;
步骤七六、数据交换主线程从接收虚拟试验***数据缓存区域读出data1,转换为HLA实例B数据data2;将data2存入发送HLA数据缓存区域;
步骤七八、HLA邦员接口从发送HLA数据缓存区域读出data2,发送data2到HLA***;
步骤七九、结束。
数据由HLA实例到虚拟试验***实例的交换过程为:
步骤七一、开始,创建数据交换主线程;
步骤七二、HLA邦员接口从HLA***接收某HLA实例C数据data3;
步骤七三、查找HLA实例到虚拟试验***实例映射关系数组;
步骤七四、判断实例C是否在HLA实例到虚拟试验***实例映射关系数组中,若存在,执行步骤五,若不存在,执行步骤九;
步骤七五、HLA邦员接口将data3存入接收HLA数据缓存区域;
步骤七六、数据交换主线程从接收HLA数据缓存区域读出data3,转换为虚拟试验***实例D数据data4;将data4存入发送虚拟试验***数据缓存区域;
步骤七八、虚拟试验***成员接口从发送虚拟试验***数据缓存区域读出data4,发送data4到虚拟试验***;
步骤七九、结束。
该发明所提出虚拟试验***与HLA数据交换方法通过映射虚拟试验***对象实例和HLA对象实例能够解决虚拟试验***和HLA***无法通信的问题,通过指定到实例属性的映射关系确保数据转换的准确性,通过划分数据缓存区域确保数据读写的正确性。
目前,该方法已经应用于某导弹拦截仿真试验中,能够实现虚拟试验***火控***与某HLA仿真***的快速通信,实际测试结果表明该发明提出的虚拟试验***与HLA仿真***数据交换方法对于两端相同类型数据的交换的准确率为100%,通过本发明提出的方法无需任何代码编写即可自动化实现两种***的数据交换,将实现两种***数据交换的周期缩短了50%以上,降低了开发成本,同时具备良好的通用性。
其它步骤及参数与具体实施方式一至九之一相同。
采用以下实施例验证本发明的有益效果:
实施例一:
本实施例一种虚拟试验***与HLA仿真***数据交换方法具体是按照以下步骤制备的:
图10是进行***测试的网络结构图。由虚拟试验***-HLA网关、应用节点和数据回放节点组成虚拟试验***,由虚拟试验***-HLA网关和HLA邦员组成HLA仿真***。
数据回放节点中的数据采集***将预先采集的实例数据按照一定的速度进行回放,通过中间件接口将数据发往中间件,虚拟试验***-HLA网关、应用节点通过中间件接口获取各自订购的实例数据,虚拟试验***-HLA网关通过CERTI接口将接收到的数据发往HLA仿真***,HLA邦员通过RTI接口获取虚拟试验***-HLA网关发往CERTI的数据并显示。HLA邦员通过CERTI接口向CERTI发送实例数据,虚拟试验***-HLA网关通过CERTI接口获取HLA邦员发送的实例数据、转换为实例数据并通过中间件接口发往中间件,TIDE平台通过中间件接口获取由虚拟试验***-HLA网关发出的实例数据。
测试软件主界面见图11。
界面分为五个区域:实例编辑区,实现加载FED文件、编辑实例等功能;实例显示区,显示当前***内实例;***联邦操作区,提供操作界面给用户,由用户操作该软件作为HLA邦员的交互;***收发数据显示区,将***发送和接收的数据进行显示;***运行信息显示区,显示测试软件的运行状态。
为验证虚拟试验***-HLA网关功能,从选用的虚拟试验***试验方案的LROM表中选出几个实例的对象模型,见图12,将虚拟试验***对象模型以HLA对象模型的描述方式进行描述,见图13。
测试过程
根据上述测试***结构设计,分别启动CERTI、虚拟试验他中间件、数据采集***软件、虚拟试验***-HLA网关软件、HLA邦员测试软件。首先在虚拟试验***-HLA网关创建映射方案,将HLA邦员测试软件初始化,将数据载入数据采集***;然后启动TIDE平台,运行试验方案,虚拟试验***-HLA网关启动映射加入虚拟试验***、HLA仿真***,运行HLA邦员测试软件加入HLA仿真***,启动数据采集***的回放功能,进入数据交互阶段,观察试验状况。具体步骤如下:
1.配置映射方案。
1a)创建映射方案:打开虚拟试验***-HLA网关软件,点击菜单栏中“新建映射方案”,进入新建映射方案界面。选择虚拟试验***的试验方案、HLA的FED文件,如图14所示。点击确定后进入编辑界面,此时编辑界面如图15所示。
1b)编辑映射方案:配置完毕如图16所示;编辑HLA对象模型的属性的数据类型,添加实例:TestLocation、TestLaunch;添加映射关系:虚拟试验***实例映射到实例TestLocation,实例TestLaunch映射到虚拟试验***实例;编辑联邦名称、映射方案名称,选择保存路径。编辑完毕如图17所示。***提示信息如图18所示。详细的数据订购表见表9。
表9测试实验映射关系表
表9(续表)测试实验映射关系表
2.初始化HLA邦员测试软件。
2a)打开HLA邦员测试软件,载入HLA FED文件,配置属性/参数数据类型;
2b)选择实例类型,添加订购对象类实例:TestLocation;添加公布交互类实例:TestLaunch。
3.初始化数据采集软件。
3a)打开软件,选择虚拟试验***试验方案,载入采集信息;
3b)选择数据采集文件,载入数据。
4.启动各个软件相关功能,进入运行测试阶段,测试虚拟试验***-HLA网关启动映射功能及由虚拟试验***到HLA的数据传输功能:
4a)启动TIDE平台,以运行模式打开试验方案,选择运行方式为回访模式,运行试验方案;
4b)点击虚拟试验***-HLA网关主界面的“启动映射”按钮启动映射,运行信息显示如图19所示;
4c)点击HLA邦员测试软件主界面的按钮,操作该软件加入联邦,并进入数据交互阶段;
4d)数据采集软件启动回放功能。
4e)观察虚拟试验***-HLA网关的运行数据,如图20所示。观察HLA邦员测试软件的数据显示,如图21所示。
5.测试虚拟试验***-HLA网关由HLA到虚拟试验***的数据传输功能:
5a)操作HLA邦员测试软件按照一定的步长发送交互类实例TestLaunch数据,发送数据见图22。
5b)查看TIDE平台中显示组件的显示数据,见图23,TIDE平台为哈尔滨工业大学自动化测试与控制研究所开发的虚拟试验***开发环境。
5c)查看虚拟试验***-HLA网关的运行数据,见图24。
6.测试虚拟试验***-HLA网关停止映射功能,停止数据交互:
6a)操作HLA邦员测试软件停止数据交互,退出联邦;
6b)关闭虚拟试验***-HLA网关的映射,虚拟试验***-HLA网关的运行状况如图25所示;
6c)停止TIDE平台的方案运行,关闭平台程序;
6d)停止数据回放,关闭数据采集***程序。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1.一种虚拟试验***与HLA仿真***数据交换方法,其特征在于,包括以下步骤:
步骤一、解析虚拟试验***试验方案文件,获得虚拟试验***基本信息、虚拟试验***对象模型信息和虚拟试验***实例数组;
步骤二、解析HLA***FED文件,获得HLA***基本信息、HLA对象模型信息;
步骤三、根据步骤二的HLA对象模型信息,声明HLA实例信息;
步骤四、将虚拟试验***实例和HLA实例进行映射,得到虚拟试验***实例信息和HLA实例信息的映射关系;
步骤五、根据虚拟试验***基本信息、HLA***基本信息、虚拟试验***对象模型信息、HLA对象模型信息以及虚拟试验***实例信息和HLA实例信息的映射关系,生成映射方案文件;
步骤六、根据映射方案文件初始化HLA邦员接口和虚拟试验***成员接口;
步骤七、使用步骤六初始化的HLA邦员接口和虚拟试验***成员接口执行数据交换。
2.根据权利要求1所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤一中解析虚拟试验***试验方案文件,获得虚拟试验***基本信息、虚拟试验***对象模型信息和虚拟试验***实例数组,具体过程为:
步骤一一、开始;
步骤一二、加载某个虚拟试验***试验方案文件;
步骤一三、读取虚拟试验***试验方案文件的基本信息,试验方案文件的基本信息包括虚拟试验***名称,虚拟试验***文件路径,获得虚拟试验***基本信息;
步骤一四、读取虚拟试验***试验方案文件的虚拟试验对象模型信息,获得虚拟试验***对象模型信息;
步骤一五、读取虚拟试验***试验方案文件的所有虚拟试验***实例的信息,获得虚拟试验***实例数组。
3.根据权利要求2所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤一五中读取虚拟试验***试验方案文件的所有虚拟试验***实例的信息,获得虚拟试验***实例数组,具体过程为:
步骤一一一、读取虚拟试验***试验方案文件的所有参与者节点数组,参与者是指虚拟试验***的组成成员;获得所有参与者节点数组中的节点数量N,N为正整数,初始化i=1,i取值为1≤i≤N;
步骤一一二、根据步骤一一一中的参与者节点数组,获取第i个参与者节点;
步骤一一三、读取第i个参与者节点的参与者名称及第i个参与者节点下所有实例节点,将第i个参与者节点下所有实例节点保存为实例节点数组;获得所有实例节点数组中的节点数量M,M取值为正整数,初始化j=1,j取值为1≤j≤M;
步骤一一四、读取第j个实例节点内容,实例节点内容包括实例名称,实例ID,实例类型,实例发布订购类型;
步骤一一五、判断j是否小于M,若是,执行步骤一一六,若否,执行步骤一一七;
步骤一一六、将j加1,执行步骤一一四;
步骤一一七、判断i是否小于N,若是,执行步骤一一八,若否,执行步骤一一九;
步骤一一八、将i加1,执行步骤一一二;
步骤一一九、结束。
4.根据权利要求3所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤二中解析HLA***FED文件,获得HLA***基本信息、HLA对象模型信息,具体过程为:
步骤二一、开始;
步骤二二、加载某个HLA***FED文件;
步骤二三、读取HLA***FED文件的基本信息,HLA***FED文件的基本信息包括HLA***FED文件名称,HLA***FED文件路径;
步骤二四、读取HLA***FED文件的HLA对象模型信息;
读取HLA***FED文件的HLA对象模型信息,具体过程为:
步骤二四一、读取HLA***FED文件的对象节点;
步骤二四二、读取对象节点句柄下所有对象类子节点数组,获得对象类子节点数组数量N,N为正整数,初始化i=1,i取值为1≤i≤N;
步骤二四三、根据步骤二四二中的对象类子节点数组,获取第i个对象类子节点;
步骤二四四、读取第i个对象类子节点下所有属性子节点数组;获得所有属性子节点数组数量M,M取值为正整数,初始化j=1,j取值为1≤j≤M;
步骤二四五、读取第j个属性子节点,判断第j个属性子节点名称是否为属性,若是,执行步骤二四六,若否,执行步骤二四七;
步骤二四六、读取第j个属性子节点内容,属性子节点内容包括属性名称,属性类型,执行步骤二四八;
步骤二四七、以第j个属性子节点作为对象类子节点,执行步骤二四四;
步骤二四八、判断j是否小于M,若是,执行步骤二四九,若否,执行步骤二四十;
步骤二四九、将j加1,执行步骤二四五;
步骤二四十、判断i是否小于N,若是,执行步骤二四十一,若否,执行步骤二四十二;
步骤二四十一、将i加1,执行步骤二四三;
步骤二四十二、结束。
5.根据权利要求4所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤三中根据步骤二的HLA对象模型信息,声明HLA实例信息,具体过程为:
步骤三一、为HLA对象模型信息中所有属性定义数据类型,具体实施为步骤三一一~步骤三一三:
步骤三一一、获取HLA对象模型信息中的一个HLA对象模型,
步骤三一二、获取步骤三一一的HLA对象模型的所有属性,
步骤三一三、为步骤三一二获取的属性编辑数据类型;
步骤三二、创建一个HLA实例数组,默认为空;
步骤三三、添加,具体步骤如下:
步骤三三一、获取自定义实例名称;
步骤三三二、根据步骤二的HLA对象模型信息,获取HLA对象模型信息中的一个HLA对象模型;
步骤三三三、根据步骤三三二获得的HLA对象模型和根据步骤三三一获取的自定义实例名称,创建一个HLA实例;
步骤三三四、将步骤三三三创建的HLA实例查找步骤三二创建的HLA实例数组,如果有相同的HLA实例,结束操作,如果没有相同的HLA实例,将步骤三三三创建的HLA实例***步骤三二创建的HLA实例数组,结束操作;
步骤三四、修改,具体过程如下:
步骤三四一、获取HLA实例数组中的一个HLA实例;
步骤三四二、重复步骤三三一~步骤三三三创建一个HLA实例;
步骤三四三、将步骤三四一获得的HLA实例更换为步骤三四二创建的HLA实例,结束操作;
步骤三五、删除,具体过程为:将步骤三四三获得的HLA实例或步骤三四一获得的HLA实例从步骤三二创建的HLA实例数组中删除。
6.根据权利要求5所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤四中将虚拟试验***实例和HLA实例进行映射,得到虚拟试验***实例信息和HLA实例信息的映射关系,具体过程为:
步骤四一、创建一个HLA实例到虚拟试验***实例的映射关系数组、一个虚拟试验***实例到HLA实例的映射关系数组,默认为空;
步骤四二、添加HLA实例到虚拟试验***实例映射;具体过程为:
步骤四二一、获取HLA实例数组中的一个HLA实例;
步骤四二二、获取虚拟试验***实例数组中的一个虚拟试验***实例;
步骤四二三、根据步骤四二一获取的HLA实例和步骤四二二获得的虚拟试验***实例创建一条映射关系,将相应的HLA实例的信息、虚拟试验***实例的信息写入;
步骤四二四、根据步骤四二三创建的映射关系查找HLA实例到虚拟试验***实例的映射关系数组,如果有相同的映射关系,执行步骤四二七,否则执行步骤四二五;
步骤四二五、根据步骤四二三创建的映射关系查找虚拟试验***实例到HLA实例的映射关系数组;
步骤四二五一、如果虚拟试验***实例到HLA实例的映射关系数组中某条映射关系的HLA实例与步骤四二三获得的映射关系的HLA实例相同,则执行步骤四二七,否则执行步骤四二五二;
步骤四二五二、如果虚拟试验***实例到HLA实例的映射关系数组中某条映射关系的虚拟试验***实例与步骤四二三获得的映射关系的虚拟试验***实例相同,则执行步骤四二七,否则执行步骤四二六;
步骤四二六、将步骤四二三创建的映射关系***HLA实例到虚拟试验***实例的映射关系数组;
步骤四二七、结束;
步骤四三、添加虚拟试验***实例到HLA实例映射;具体过程为:
步骤四三一、重复步骤四二一~步骤四二三,创建一条映射关系;
步骤四三二、根据步骤四三一获得的映射关系查找虚拟试验***实例到HLA实例的映射关系数组,如果有相同的映射关系,执行步骤四三五,否则执行步骤四三三;
步骤四三三、根据步骤四三一获得的映射关系查找HLA实例到虚拟试验***实例的映射关系数组;
步骤四三三一、如果HLA实例到虚拟试验***实例的映射关系数组中某条映射关系的HLA实例与步骤四三一获得的映射关系的HLA实例相同,执行步骤四三五,否则执行步骤四三三二;
步骤四三三二、如果HLA实例到虚拟试验***实例的映射关系数组中某条映射关系的虚拟试验***实例与步骤四三一创建的映射关系的虚拟试验***实例相同,执行步骤四三五,否则执行步骤四三四;
步骤四三四、将步骤四三一创建的映射关系***虚拟试验***实例到HLA实例的映射关系数组;
步骤四三五、结束;
步骤四四、删除映射,具体过程为:
删除步骤四二六中***HLA实例到虚拟试验***实例的映射关系数组的映射关系或步骤四三四中***虚拟试验***实例到HLA实例的映射关系数组的映射关系。
7.根据权利要求6所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤五中根据虚拟试验***基本信息、HLA***基本信息、虚拟试验***对象模型信息、HLA对象模型信息以及虚拟试验***实例信息和HLA实例信息的映射关系,生成映射方案文件,具体过程为:
步骤五一、自定义方案名称、方案路径、HLA联邦名称;
步骤五二、从虚拟试验***基本信息中获取虚拟试验***名称,虚拟试验***文件路径,从HLA***基本信息中获取HLA***FED文件名称,HLA***FED文件路径;
步骤五三、创建一个XML对象,将XML对象的根元素命名为映射方案;
步骤五四、在步骤五三创建的XML对象的根元素下方创建一个子元素基本信息,将步骤五一获得的自定义方案名称、方案路径、HLA联邦名称和步骤五二获得的虚拟试验***名称、虚拟试验***文件路径、HLA***FED文件名称、HLA***FED文件路径作为子元素***到子元素基本信息下方;
步骤五五、在步骤五三创建的XML对象的根元素下方创建一个子元素虚拟试验***实例到HLA实例映射关系列表,将获得的虚拟试验***实例到HLA实例的映射关系数组中的每一条映射关系作为一个子元素***到子元素虚拟试验***实例到HLA实例映射关系列表下方,对每一条映射关系重复步骤五五一~步骤五五三,对每一条映射关系的执行完成后执行步骤五六;
步骤五五一、在子元素虚拟试验***实例到HLA实例映射关系列表下方创建一个子元素映射关系;
步骤五五二、在子元素映射关系下方创建一个子元素映射源方、一个子元素映射目标;
步骤五五三、将获得的虚拟试验***实例到HLA实例的映射关系数组中的每一条映射关系的虚拟试验***实例信息作为属性***到子元素映射源方中,将映射关系的HLA实例信息作为属性***到子元素映射目标中;
步骤五六、在步骤五三创建的XML对象的根元素下方创建一个子元素HLA实例到虚拟试验***实例映射关系列表,将获得的HLA实例到虚拟试验***实例的映射关系数组中的每一条映射关系作为一个子元素***到子元素HLA实例到虚拟试验***实例映射关系列表下方,对每一条映射关系重复步骤五六一~步骤五六三,对每一条映射关系的执行完成后执行步骤五七;
步骤五六一、在子元素HLA实例到虚拟试验***实例映射关系列表下方创建一个子元素映射关系;
步骤五六二、在子元素映射关系下方创建一个子元素映射源方、一个子元素映射目标;
步骤五六三、将获得的HLA实例到虚拟试验***实例的映射关系数组中的每一条映射关系的HLA实例信息作为属性***子元素映射源方中,将映射关系的虚拟试验***实例信息作为属性***子元素映射目标中;
步骤五七、在步骤五三创建的XML对象的根元素下方创建一个子元素HLA对象模型,将步骤二获得的HLA对象模型信息中的每一个HLA对象模型作为一个子元素***到子元素HLA对象模型下方,对每一个HLA对象模型重复步骤五七一~步骤五七二,对每一个HLA对象模型的操作完成后执行步骤五八;
步骤五七一、在子元素HLA对象模型下方创建一个一级子元素,将HLA对象模型的名称、类型作为属性***一级子元素中;
步骤五七二、在一级子元素下创建一个二级子元素,将HLA对象模型的属性的名称、类型作为属性***二级子元素中;
步骤五八、将步骤五三创建的XML对象输出为映射方案文件,映射方案文件名称是自定义方案名称。
8.根据权利要求7所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤六中根据映射方案文件初始化HLA邦员接口和虚拟试验***成员接口,具体过程为:
初始化虚拟试验***成员接口具体过程为:
步骤六一、开始;
步骤六二、读入虚拟试验***基本信息、方案名称;
步骤六三、读入订购的虚拟试验***实例信息;
步骤六四、读入发布的虚拟试验***实例信息;
步骤六五、根据步骤六二方案名称连接中间体;
步骤六六、根据步骤六二虚拟试验***基本信息和方案名称,在步骤六五连接中间体的基础上,将虚拟试验***成员接口加入虚拟试验***;
步骤六七、根据步骤六三订购的虚拟试验***实例信息、步骤六四发布的虚拟试验***实例信息,在步骤六六加入虚拟试验***的基础上,声明订购发布关系;
步骤六八、结束;
初始化HLA邦员接口具体过程为:
步骤六六一、开始;
步骤六六二、读入HLA***基本信息、HLA联邦名称、方案名称;
步骤六六三、读入HLA对象模型信息;
步骤六六四、读入订购的HLA实例信息;
步骤六六五、读入发布的HLA实例信息;
步骤六六六、根据步骤六六二HLA***基本信息、HLA联邦名称、方案名称,将HLA邦员接口加入HLA***;
步骤六六七、在步骤六六六加入HLA***的基础上根据步骤六六三HLA对象模型信息获取句柄;
步骤六六八、在步骤六六四订购的HLA实例信息、步骤六六五发布的HLA实例信息,步骤六六七获取句柄的基础上,声明订购发布关系;根据步骤六六五发布的HLA实例信息注册对象实例;
步骤六六九、结束。
9.根据权利要求8所述一种虚拟试验***与HLA仿真***数据交换方法,其特征在于:所述步骤七中使用步骤六初始化的HLA邦员接口和虚拟试验***成员接口执行数据交换,具体过程为:
数据由虚拟试验***实例到HLA实例的交换过程为:
步骤七一、开始,创建数据交换主线程;
步骤七二、虚拟试验***成员接口从虚拟试验***接收某虚拟试验***实例A数据data1;
步骤七三、查找虚拟试验***实例到HLA实例映射关系数组;
步骤七四、判断实例A是否在虚拟试验***实例到HLA实例映射关系数组中,若存在,执行步骤七五,若不存在,执行步骤七九;
步骤七五、虚拟试验***成员接口将data1存入接收虚拟试验***数据缓存区域;
步骤七六、数据交换主线程从接收虚拟试验***数据缓存区域读出data1,转换为HLA实例B数据data2;将data2存入发送HLA数据缓存区域;
步骤七八、HLA邦员接口从发送HLA数据缓存区域读出data2,发送data2到HLA***;
步骤七九、结束;
数据由HLA实例到虚拟试验***实例的交换过程为:
步骤七一、开始,创建数据交换主线程;
步骤七二、HLA邦员接口从HLA***接收某HLA实例C数据data3;
步骤七三、查找HLA实例到虚拟试验***实例映射关系数组;
步骤七四、判断实例C是否在HLA实例到虚拟试验***实例映射关系数组中,若存在,执行步骤七五,若不存在,执行步骤七九;
步骤七五、HLA邦员接口将data3存入接收HLA数据缓存区域;
步骤七六、数据交换主线程从接收HLA数据缓存区域读出data3,转换为虚拟试验***实例D数据data4;将data4存入发送虚拟试验***数据缓存区域;
步骤七八、虚拟试验***成员接口从发送虚拟试验***数据缓存区域读出data4,发送data4到虚拟试验***;
步骤七九、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510829895.4A CN105242958B (zh) | 2015-11-25 | 2015-11-25 | 一种虚拟试验***与hla仿真***数据交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510829895.4A CN105242958B (zh) | 2015-11-25 | 2015-11-25 | 一种虚拟试验***与hla仿真***数据交换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105242958A CN105242958A (zh) | 2016-01-13 |
CN105242958B true CN105242958B (zh) | 2018-12-07 |
Family
ID=55040614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510829895.4A Active CN105242958B (zh) | 2015-11-25 | 2015-11-25 | 一种虚拟试验***与hla仿真***数据交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105242958B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656970A (zh) * | 2016-10-13 | 2017-05-10 | 哈尔滨工业大学 | Hit‑tena试验设备适配器及其适配方法 |
CN109471732B (zh) * | 2018-11-22 | 2021-06-01 | 山东大学 | 一种面向cpu-fpga异构多核***的数据分配方法 |
CN110764759B (zh) * | 2019-10-29 | 2023-07-25 | 神华神东煤炭集团有限责任公司 | 数据转换方法、存储介质和*** |
CN114884826B (zh) * | 2022-03-15 | 2024-04-09 | 中国人民解放军军事科学院战争研究院 | 跨层级异构互联方法和互联*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420437A (zh) * | 2008-11-14 | 2009-04-29 | 北京航空航天大学 | 一种原型***与hla仿真***的接口设备 |
CN102592025A (zh) * | 2012-01-12 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 一种无人潜航器任务规划***的虚拟试验平台及试验方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130091096A (ko) * | 2012-02-07 | 2013-08-16 | 한국전자통신연구원 | 하이브리드 시스템을 검증하기 위한 시뮬레이션 장치 및 방법 |
-
2015
- 2015-11-25 CN CN201510829895.4A patent/CN105242958B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420437A (zh) * | 2008-11-14 | 2009-04-29 | 北京航空航天大学 | 一种原型***与hla仿真***的接口设备 |
CN102592025A (zh) * | 2012-01-12 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 一种无人潜航器任务规划***的虚拟试验平台及试验方法 |
Non-Patent Citations (1)
Title |
---|
虚拟试验***协议转换模块研制;姜守达 等;《现代电子技术》;20141231;第37卷(第23期);第100-106页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105242958A (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105589874B (zh) | Etl任务依赖关系的检测方法、装置及etl工具 | |
CN105242958B (zh) | 一种虚拟试验***与hla仿真***数据交换方法 | |
CN105608258B (zh) | 一种基于模型的***设计及信息流可视化仿真***及方法 | |
CN108897687A (zh) | 一种基于数据驱动的api自动化测试方法和*** | |
CN107291450A (zh) | 一种编程友好型的敏捷代码自动生成方法 | |
CN109508298B (zh) | 图形化的脚本测试方法及*** | |
CN109062780A (zh) | 自动化测试用例的开发方法及终端设备 | |
CN106951368A (zh) | 基于uml时序图的测试用例自动生成方法 | |
CN106709980B (zh) | 一种基于形式化的复杂三维场景建模方法 | |
CN112416369B (zh) | 一种面向异构混合环境的智能化部署方法 | |
CN112860260B (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
CN106202284A (zh) | 一种***快速收集调查问卷的***和方法 | |
CN106778280A (zh) | 一种填充式远程漏洞PoC编写方法及漏洞检测方法 | |
CN110377745A (zh) | 信息处理方法、信息检索方法、装置及服务器 | |
CN105871643A (zh) | 基于路由协议的网络运行仿真方法 | |
CN108647147A (zh) | 一种利用图谱分析执行自动化测试机器人及其使用方法 | |
CN106569870B (zh) | 一种基于扩展控制流图的程序转换方法 | |
Vedder et al. | Dealing with software complexity in individual‐based models | |
Shishmarev et al. | Visual search tree profiling | |
CN106096159A (zh) | 一种云平台下的分布式***行为仿真分析***的实现方法 | |
CN112559525A (zh) | 数据检查***、方法、装置和服务器 | |
Marsan et al. | TOPNET: A tool for the visual simulation of communication networks | |
CN101976196A (zh) | 一种面向“服务质量”的代码自动生成方法 | |
CN113238743B (zh) | 一种模拟训练***虚实混合控制方法 | |
Diaz et al. | SEDOS: Designing open distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |