一种通用数据交互模型构建、基于该模型编码及解码方法技术

技术编号:15639793 阅读:82 留言:0更新日期:2017-06-16 01:49
本发明专利技术提供了一种通用数据交互模型构建、基于该模型编码及解码方法,首先,利用HLA提供的可变长数组和固定记录类型实现通用数据交互模型映射表数据结构的表示;然后,将通用数据交互模型中的数据项定义为字节数组类型;最后,将任意类型,包括简单数据类型、数组数据类型、结构数据类型转化成字节流数据,从而实现通用数据交互模型中数据项对多种不同类型数据的表示;通过建立HLA仿真系统中的通用数据交互模型实现编码/解码过程,能够有效提高仿真联邦开发的效率,减小仿真联邦开发中潜在的错误因数和风险,降低开发成本。

【技术实现步骤摘要】
一种通用数据交互模型构建、基于该模型编码及解码方法
本专利技术属于计算机分布式仿真技术及应用领域,具体涉及一种通用数据交互模型构建、基于该模型编码及解码方法。
技术介绍
随着计算机软硬件技术的发展,日趋成熟的仿真技术为航空、航天、军事、交通、能源、经济等领域的大规模复杂系统仿真提供了高效可靠的解决方案。HLA(HighLevelArchitecture)由美国国防部建模与仿真办公室(DMSO)于上世纪九十年代中期提出。它是继DIS分布式仿真协议后的又一先进分布式仿真技术协议框架。HLA的宗旨是解决分布式仿真系统中各仿真成员的重用性和成员间的互操作性问题。从提出至今,HLA不断被发展完善,先后形成了3个版本,分别是DMSOHLA1.3版本、IEEE1516-2000版本和IEEE1516-2010版本(HLAEvolved版本),其中后两者均被IEEE接收为开放性的国际标准。HLA协议通过规则、接口规范和对象模型模板(OMT)三部分对分布式仿真系统中各仿真成员的交互进行了全面的规范和约束,通过相应的支撑服务将仿真功能实现、仿真运行管理与底层数据通信分离,从而保证互操作性和重用性。在HL本文档来自技高网...
一种通用数据交互模型构建、基于该模型编码及解码方法

【技术保护点】
一种通用数据交互模型的构建方法,其特征在于,包括:步骤101)利用HLA协议中提供的可变长数组类型HLAvariableArray将通用数据交互模型表示为可变长数组,该可变长数组中的各元素表示通用数据交互模型中的一个数据记录;所述的通用数据交互模型为若干行数据记录组合而成的映射表,每一行数据记录均包括标识和数据项,分别用于标识数据和存储数据的值;步骤102)利用HLA协议中提供的固定记录类型HLAfixedRecord将步骤101)中可变长数组的各元素类型表示为HLAfixedRecord类型;所述的固定记录类型包含标识域和数据项域,标识域利用HLA协议中提供的字符串类型HLAunicodeS...

【技术特征摘要】
1.一种通用数据交互模型的构建方法,其特征在于,包括:步骤101)利用HLA协议中提供的可变长数组类型HLAvariableArray将通用数据交互模型表示为可变长数组,该可变长数组中的各元素表示通用数据交互模型中的一个数据记录;所述的通用数据交互模型为若干行数据记录组合而成的映射表,每一行数据记录均包括标识和数据项,分别用于标识数据和存储数据的值;步骤102)利用HLA协议中提供的固定记录类型HLAfixedRecord将步骤101)中可变长数组的各元素类型表示为HLAfixedRecord类型;所述的固定记录类型包含标识域和数据项域,标识域利用HLA协议中提供的字符串类型HLAunicodeString表示,代表通用数据交互模型中数据记录的标识,数据项域利用HLA协议中提供的字节数组类型HLAopaqueData表示,代表通用数据交互模型中数据记录的数据项,该数据项域存储通用数据交互模型中数据项的数据编码生成的字节流数据VariableLengthData;步骤103)根据HLA协议,将通用数据交互模型中记录的各数据项按简单数据类型、数组数据类型和结构数据类型分别划分为简单数据、数组数据和结构数据;步骤104)利用HLA协议中提供的固定记录类型HLAfixedRecord对步骤103)中的简单数据、数组数据和结构数据编码生成的字节流数据VariableLengthData进行表示,该固定记录类型包含数据类型标识域和数据域,所述的数据类型标识域为字符串类型,利用HLA协议提供的字符串类型HLAunicodeString表示,用于记录数据本身的类型信息,所述的数据域为字节数组类型,利用HLA协议提供的字节数组类型HLAopaqueData表示;步骤105)对于步骤104)中数组数据或结构数据的数据域,利用HLA协议中提供的可变长数组类型HLAvariableArray表示为可变长数组,并利用HLA协议中提供的字节数组类型HLAopaqueData将可变长数组的各元素类型表示为HLAopaqueData类型,各元素存储原始数组数据或原始结构数据对应位置元素编码生成的字节流数据VariableLengthData;步骤106)将原始数组数据或原始结构数据对应位置元素编码生成的字节流数据VariableLengthData按步骤103)进行数据类型划分,如果划分为简单数据,则停止操作,如果仍划分为数组数据或结构数据,则重新执行步骤104)。2.根据权利要求1所述的通用数据交互模型的构建方法,其特征在于,所述的简单数据类型包括:16位整型、32位整型、64位整型、单精度浮点数、双精度浮点数、BOOL型、ASCII码字符、Unicode字符、字节型、ASCII码字符串和Unicode字符串,并依次利用HLA协议中提供的类型HLAinteger16BE、HLAinteger32BE、HLAinteger64BE、HLAfloat32BE、HLAfloat64BE、HLAboolean、HLAASCIIchar、HLAunicodeChar、HLAbyte、HLAASCIIstring和HLAunicodeString进行表示。3.基于权利要求1-2之一所述的通用数据交互模型的编码方法,其特征在于,包括:步骤201)创建类型为HLAvariableArray的模型port_va,将其各元素类型表示为HLAfixedRecord类型,并且将HLAfixedRecord类型中的标识域表示为HLAunicodeString类型,将数据项域表示为HLAopaqueData类型,利用模型port_va存储通用数据交互模型转化生成的HLAvariableArray类型的数据;步骤202)读取通用数据交互模型的映射表中一个未处理的数据记录行,获得该数据记录行的标识和数据项;步骤203)判断数据记录行中数据项的数据类型,如果判断为数组数据类型则转到步骤204);如果判断为结构数据类型则转到步骤211);如果判断为简单数据类型则转到步骤218);步骤204)创建类型为HLAvariableArray的模型encode_va,并将其数组元素类型初始化为HLAopaqueData类型;步骤205)读取数组数据中一个未处理的数组元素,判断数组元素的数据类型;步骤206)如果步骤205)中读取的数组元素为数组数据类型,则转到步骤204),以处理数组数据相同的步骤处理其数组元素;如果步骤205)中读取的数组元素为结构数据类型,则转到步骤211),以处理结构数据相同的步骤处理该数组元素;如果步骤205)中读取的数组元素为简单数据类型,则转到步骤218),以处理简单数据相同的步骤处理该数组元素;经过多次递归迭代,直到最终以VariabLengthData类型返回数组元素编码生成的字节流;步骤207)创建类型为HLAopaqueData的模型ele_opa,并利用步骤206)中返回的VariabLengthData类型数据初始化模型ele_opa;将初始化后的模型ele_opa添加到步骤204)定义的模型encode_va中;步骤208)判断数组数据中所有元素是否已经处理完成,如果存在未处理的元素,则转到步骤205);否则,转到步骤209);步骤209)创建类型为HLAfixedRecord的模型data_rec,将其第一个数据域初始化为HLAunicodeString类型,赋值为数组类型标识字符串“va”;将其第二个数据域初始化为HLAvariableArray类型,并赋值为步骤204)定义的encode_va;步骤210)创建类型为HLAopaqueData的模型data_opa,调用步骤209)创建的模型data_rec中的编码接口,编码生成VariableLengthData类型的字节流数据,并利用该字节流数据初始化模型data_opa后,转到步骤222);步骤211)创建类型为HLAvariableArray的模型encode_va,并将其数组元素类型初始化为HLAopaqueData类型;步骤212)读取结构数据中一个未处理的数据域,判断数据域的数据类型;步骤213)如果步骤212)中读取的数据域为数组数据类型,则转到步骤204),以处理数组数据相同的步骤处理该数据域;如果步骤212)中读取的数据域为结构数据类型,则转到步骤211),以处理结构数据相同的步骤处理其数据域;如果步骤212)中读取的数据域为简单数据类型,则转到步骤218),以处理简单数据相同的步骤处理该数据域;经过多次递归迭代,直到最终以VariabLengthData的类型返回数据域编码生成的字节流;步骤214)创建类型为HLAopaqueData的模型ele_opa,并利用步骤213)中返回的VariabLengthData类型数据初始化ele_opa;将初始化后的模型ele_opa添加到步骤211)定义的模型encode_va中;步骤215)判断结构数据中所有的数据域是否已经处理完成,如果存在未处理的数据域,则转到步骤212);否则,转到步骤216);步骤216)创建类型为HLAfixedRecord的模型data_rec,将其第一个数据域初始化为HLAunicodeString类型,赋值为结构类型标识字符串“st”;将其第二个数据域初始化为HLAvariableArray类型,并赋值为步骤211)定义的encode_va;步骤217)创建类型为HLAopaqueData的模型data_opa,调用步骤216)创建的模型data_rec中的编码接口,编码生成VariableLengthData类型的字节流数据,并利用该字节流数据初始化模型data_opa后,转到步骤222);步骤218)根据简单数据类型的分类,将数据记录行中数据项划分为不同的子类,按照子类对应的C++类创建模型,并初始化为数据项的实际值后,调用模型中的编码接口,编码生成VariableLengthData类型的字节流数据;步骤219)创建类型为HLAopaqueData的模型ele_opa,并利用步骤218)中返回的VariabLengthData类型数据初始化ele_opa;步骤220)创建类型为HLAfixed...

【专利技术属性】
技术研发人员:王永飞高鹏刘剑
申请(专利权)人:北京航天测控技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1