一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种LVC-DE分布式合成环境与pRTI系统数据交换方法与流程

2022-12-19 22:47:34 来源:中国专利 TAG:

一种lvc-de分布式合成环境与prti系统数据交换方法
技术领域
1.本发明涉及lvc-de分布式合成环境与prti系统数据领域,具体而言,涉及一种lvc-de分布式合成环境与prti系统数据交换方法。


背景技术:

2.仿真与建模高层体系结构(hla)仿真主计划(msmp)倡导建立的建模与仿真公共技术框架的一部分,它不是针对某一特定应用领域,而是适用于所有领域的开发与集成。随着仿真技术特别是交互式仿真技术的发展,hla被广泛应用于建模与仿真系统的开发与集成中。对采用hla体系结构的仿真系统,仿真系统的运行和仿真成员之间的交互和协调都是通过运行支撑系统rti (run time infrastructure)来实现的,prti是由pitch ais公司开发的独立于平台的软件,目前仿真领域存在大量基于prti构建的仿真系统。因此,实现lvc-de分布式合成环境与prti系统之间的数据交换,对于提升两种异构系统的应用场景具有重要意义。
3.现有的lvc-de分布式合成环境与prti系统数据的交换方法是根据固定的数据模型,用编程的方式开发独立软件程序,完成两个系统之间的数据映射关联,该方法的实现原理简单,但是当需要更换其他数据模型或者对数据模型进行修改后,都需要对数据交换软件程序进行重新编辑,缺乏通用型。此外,由于该程序需要针对每次匹配的数据模型进行定制开发,存在开发时间长、对用户编程能力要求高的问题,因此我们对此做出改进,提出一种 lvc-de分布式合成环境与prti系统数据交换方法。


技术实现要素:

4.本发明的目的在于:针对目前存在的背景技术提出的问题。为了实现上述发明目的,本发明提供了以下技术方案:一种lvc-de分布式合成环境与 prti系统数据交换方法,s1声明tena对象实例,lvc-de分布式合成环境采用tena对象模型作为描述信息交换的数据结构,以tena对象实例作为信息交换的基本单元,tena对象模型描述文件符合tdl(tena definition language)规范;
5.s2声明prti对象实例,prti系统采用prti对象实例作为信息交换的基本单元,prti对象类和交互类作为描述信息交换的数据结构,对象类和交互类存储于fom(federation object model)文件中;
6.s3关联tena对象实例与prti对象实例,在完成tena对象实例与prti 对象实例声明后,需要建立两者之间的映射关系,为后续lvc-de分布式合成环境与prti系统数据交换提供规则;
7.s4执行数据交换,为适应不同开发环境,本发明利用网关程序订购和发布lvc-de分布式合成环境数据,利用prti通讯程序订购和发布prti系统数据,两个程序利用管道通信,使用明码字符串报文,在网关程序运行后,网关程序启动prti通讯程序,网关程序接收lvc-de分布式合成环境数据信息,对映射关系和数据进行显示,将lvc-de分布式合成环境
数据信息通过管道通信发送至prti通讯程序,接收prti通讯程序发送的prti系统数据信息。
8.作为本发明优选的技术方案,s1声明tena对象实例,包括以下流程:
9.s1-1选择tena对象模型描述文件,保存该对象模型描述文件路径地址;
10.s1-2按照路径地址打开tena对象模型描述文件,读取文件全部内容;
11.s1-3按照行对tena对象模型描述文件每行的结构标识进行判断;
12.s1-4-1如果结构标识为局部类、类、消息等类型,转至步骤s1-5;
13.s1-4-2如果结构标识为枚举类型,保存枚举名称和枚举内容,存储在数据结构内,转至步骤s1-3;
14.s1-4-3如果结构标识为结束符,转至步骤s1-7;
15.s1-5在类/局部类/消息结构处理分支内,对结构内每行内容的类型标识进行判断;
16.s1-6-1如果内容标识为数据,将数据的类型和名称存储在数据结构内,转至步骤s1-5;
17.s1-6-2如果内容标识为方法,将方法返回类型、名称、参数输入输出类型、参数数据类型、参数名称、错误值类型和错误值名称存储在数据结构内,转至步骤s1-5;
18.s1-6-3如果内容标识为结束符,转至步骤s1-3;
19.s1-7按照继承、聚合关系对数据结构重新梳理形成tena对象模型列图;
20.s1-8选择要声明tena对象实例的tena对象模型名称,输入tena对象实例名称。
21.作为本发明优选的技术方案,s2声明prti对象实例包括以下步骤:
22.s2-1选择prti系统fom文件,保存该对象模型文件路径地址;
23.s2-2按照路径地址打开prti系统fom文件,读取文件全部内容;
24.s2-3寻找子元素关键字objects,进行对象类数据模型解析;
25.s2-4判断每个子元素关键字;
26.s2-5-1如果子元素关键字为attribute,解析属性名称和属性类型,并存储进数据结构中,转至步骤s2-4;
27.s2-5-2如果子元素关键字为objectclass,解析对象类名称,并存储进数据结构中,转至步骤s2-4;
28.s2-5-3如果子元素关键字为结束符,转至步骤s2-6;
29.s2-6寻找元素关键字interactions,进行交互类对象模型解析;
30.s2-7判断每个子元素关键字;
31.s2-8-1如果子元素关键字为parameter,解析参数名称和参数类型,并存储进数据结构中,转至步骤s2-7;
32.s2-8-2如果子元素关键字为interactionclass,解析交互类名称,并存储进数据结构中,转至步骤s2-7;
33.s2-8-3如果子元素关键字为结束符,转至步骤s2-9;
34.s2-9查找元素关键字fixedrecorddata,解析固定数据名称,解析子元素得到数据名称和数据类型,将对应的交互类参数类型和对象类属性类型存储进数据结构中;
35.s2-10按照嵌套关系对数据结构进行梳理,形成prti系统对象模型列图;
36.s2-11选择要声明prti对象实例的prti对象类或交互类名称,输入prti 对象实例名称,建立prti发布对象实例列图和订购对象实例列图。
37.作为本发明优选的技术方案,s3关联tena对象实例与prti对象实
38.例包括以下步骤:
39.s3-1读取步骤s2-11生成的prti对象实例列图,展开对象实例的全部属性;
40.s3-2读取步骤s1-8生成的tena对象实例列图,展开对象实例的全部属性;
41.s3-3选择tena对象实例的某一属性与prti对象实例prti对象实例prti 对象实例的某一属性进行映射,建立映射列图,映射内容为订购发布关系、 tena对象实例类型、tena对象实例名称、tena对象实例属性名称、tena对象实例属性数据类型、prti对象实例类型、prti对象实例名称、prti对象实例属性名称、prti对象实例属性数据类型。映射需要遵循的规则包括:一个tena对象实例或prti对象实例可对应映射多个prti对象实例或tena对象实例,同一个属性可映射多个发布属性,单只可映射一个订购属性;
42.s3-4选择主属性,当订购的数据类型主属性更新后,向外发布该数据类型。保存映射关系,存储为关联描述文件.xml。
43.作为本发明优选的技术方案,s4执行数据交换包括以下步骤:
44.s4a-1网关程序启动,创建和prti通讯程序通讯的管道,管道名称为网关程序名字;
45.s4a-2解析步骤s3生成的网关关联描述文件,创建tena对象实例列图,按照关联描述文件加入lvc-de分布式合成环境,订购、发布对应tena对象实例;
46.s4a-3启动prti通讯程序,启动参数为网关关联描述文件和管道名称;
47.s4a-4管道收到新的prti通讯程序连接信号后,创建本地套接字用来和 prti通讯程序进行通讯;
48.s4a-5启动心跳发送定时器,延迟时间3000毫秒,启动prti通讯程序存活判定定时器延迟时间30000毫秒;
49.s4a-6判断心跳定时器是否触发信号,是则执行步骤s4a-7,否则继续执行循环;
50.s4a-7向prti通讯程序发送心跳报文;
51.s4a-8判断prti通讯程序存活判定定时器是否触发信号,是则执行步骤 s4a-9,否则继续执行循环;
52.s4a-9弹窗提示:“参与者失去连接”;
53.s4a-10判断是否接收到lvc-de分布式合成环境更新数据,是则执行步骤 (4a-11),否则继续执行循环;
54.s4a-11解析lvc-de分布式合成环境数据,向prti通讯程序发送对应prti 系统的数据报文;
55.s4a-12判断是否点击按钮,加入prti系统;
56.s4a-13向prti通讯程序发送加入系统报文;
57.s4a-14判断是否点击按钮,退出prti系统;
58.s4a-15向prti通讯程序发送退出系统报文;
59.s4a-16判断是否接收到prti通讯程序的通信报文,若为数据报文则执行步骤s4a-17-1,若为心跳报文则执行步骤s4a-17-2,若为加入系统反馈报文则执行步骤s4a-17-3,若
未收到报文则继续执行循环;
60.s4a-17-1接收到数据报文,解析数据内容存储在对象实例数据列图中;
61.s4a-17-2接收到心跳报文,重新更新prti通讯程序存活判定定时器延迟时间;
62.s4a-17-3接收到加入反馈报文,按照报文格式进行解析报文内容报文格式;
63.s4a-18判断接收到的数据报文是否是对象实例主属性,是则执行步骤 (4a-20),否则继续执行循环;
64.s4a-19判断报文内容,start则执行步骤(4a-21-1),error则执行步骤 (4a-21-2);
65.s4a-20将对象实例数据更新至lvc-de分布式合成环境;
66.s4a-21-1弹窗提示:“加入成功”;
67.s4a-21-2弹窗提示:“加入失败”;
68.s4a-22判断程序是否关闭,是则结束基本流程,否则继续进行循环。
69.作为本发明优选的技术方案,s4执行数据交换中prti通讯程序接收 prti系统数据信息,并将prti系统数据信息通过管道通信发送至网关程序,接收网关程序发送的lvc-de分布式合成环境数据信息包括以下步骤:
70.s4b-1prti通讯程序启动,解析通信管道名称,加入管道;
71.s4b-2解析网关关联描述文件,按照对象实例创建数据结构列图;
72.s4b-3启动心跳发送定时器,延迟时间3000毫秒,启动网关存活判定定时器延迟时间30000毫秒;
73.s4b-4判断心跳定时器是否触发信号,是则执行步骤s4b-5,否则继续执行循环;
74.s4b-5向网关程序发送心跳报文;
75.s4b-6判断网关存活判定定时器是否触发信号,是则执行步骤s4b-7,否则继续执行循环;
76.s4b-7关闭prti通讯程序,结束流程;
77.s4b-8判断是否接收到prti系统更新数据,是则执行步骤s4b-9,否则继续执行循环;
78.s4b-9解析prti对象实例数据,向网关程序发送对应lvc-de分布式合成环境对象实例的数据报文。
79.作为本发明优选的技术方案,还包括:s4b-10判断是否接收到网关程序的通信报文,若为数据报文则执行步骤s4b-11-1,若为心跳报文则执行步骤 s4b-11-2,若为加入系统报文则执行步骤s4b-11-3,若未收到报文则继续执行循环;
80.s4b-11-1接收到数据报文,解析数据内容存储在对象实例数据列图中;
81.s4b-11-2接收到心跳报文,重新更新网关存活判定定时器延迟时间;
82.s4b-11-3接收到加入系统报文,按照网关关联描述文件存储的联邦名称和探员名称加入prti系统,订购、发布对象实例;
83.s4b-11-4接收到退出系统报文,按照网关关联描述文件存储的联邦名称和探员名称退出异构系统;
84.s4b-12判断接收到的数据报文是否是对象实例主属性,是则执行步骤 s4b-14,否则继续执行循环;
85.s4b-13判断加入prti系统是否成功,是则执行步骤s4b-15-1,否则执行步骤s4b-15-2;
86.s4b-14将对象实例数据更新至lvc-de分布式合成环境;
87.s4b-15-1发送加入成功报文;
88.s4b-15-2发送加入失败报文。
89.作为本发明优选的技术方案,在prti系统或lvc-de分布式合成环境发生数据更新时,还包括s5a-1接收lvc-de分布式合成环境发布的对象实例数据;
90.s5a-2判断从lvc-de分布式合成环境接收的对象实例是否是关联映射中订购的tena对象实例,如果是执行s5a-3,不是则结束本次操作;
91.s5a-3按照基本数据类型解析从lvc-de分布式合成环境接收的对象实例数据,并存储在映射信息列图的数据对应位置;
92.s5a-4按照映射信息列图内容判断主属性是否发生更新,主属性更新则执行s5a-5,主属性未更新则结束本次操作;
93.s5a-5调用datawriter()函数,将s5a-4解析的数据填充进lvc-de分布式合成环境发布的对象实例关联的prti对象实例的数据中,将该数据发送给 prti通讯程序;
94.s5a-6prti通讯程序解析网关程序传递的数据,将正确的数据发布至prti 系统。
95.作为本发明优选的技术方案,prti系统向lvc-de分布式合成环境更新数据过程还包括:s5b-1prti通讯程序接收prti系统发布的对象实例数据;
96.s5b-2判断从prti系统接收的对象实例是否是关联映射中订购的prti对象实例,如果是执行s5b-3,不是则结束本次操作;
97.s5b-3按照基本数据类型解析从prti系统接收的对象实例数据,并存储在映射信息列图的数据对应位置;
98.s5b-4按照映射信息列图内容判断主属性是否发生更新,主属性更新则执行s5a-5,主属性未更新则结束本次操作;
99.s5b-5prti通讯程序调用datasend()函数,将s5b-3解析的数据填充进 prti系统发布的对象实例关联的tena对象实例的数据中,将数据发送给网关程序;
100.s5b-6网关程序解析prti通讯程序发送的数据,将数据发布至lvc-de分布式合成环境。
101.与现有技术相比,本发明的有益效果:
102.在本发明的方案中:通过提出的lvc-de分布式合成环境与prti、系统数据交换方法,能够解决现有的lvc-de分布式合成环境与prti系统数据的交换方法系统数据交换方法依赖于定制开发,缺乏通用性,对用户编程能力要求较高,开发周期长的问题,通过生成关联文件的方式,提高通用性,无需定制开发;通过修改可执行程序源代码并编译的方式,减少了用户编程的工作,缩减了开发周期,已经成功应用于lvc-de分布式合成环境系统中,能够实现lvc-de分布式合成环境与系统之间的高效匹配,实际测试结果图明该发明提出的数据交换方法与现有的仅靠定制开发的方法相比,开发周期缩减到 85%以上,用户无需再编程操作。
附图说明:
103.图1为本发明提供的声明tena对象实例流程图;
104.图2为本发明提供的声明prti对象实例流程图;
105.图3为本发明提供的关联tena对象实例与prti对象实例流程图;
106.图4为本发明提供的网关程序工作过程基本流程图;
107.图5为本发明提供的prti通讯程序过程基本流程图;
108.图6为本发明提供的lvc-de分布式合成环境向prti系统更新数据过程基本流程图;
109.图7为本发明提供的prti系统向lvc-de分布式合成环境更新数据过程基本流程图;
110.图8为本发明提供的网关可执行程序发送的心跳报文格式图;
111.图9为本发明提供的网关可执行程序发送的数据报文格式图;
112.图10为本发明提供网关可执行程序发送的加入系统报文格式图;
113.图11为本发明提供网关可执行程序发送的退出系统报文格式图;
114.图12为本发明提供网关可执行程序发送的数据报文格式图;
115.图13为本发明提供网关可执行程序发送的心跳报文格式图;
116.图14为本发明提供prti通讯程序发送的加入反馈报文格式图。
具体实施方式
117.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一种具体实施方式,不限于全部的实施例。
118.因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅图示本发明的部分实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
119.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征和技术方案可以相互组合,应注意到,相似的标号和字母在下面的附图中图示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
120.实施例:请参阅图1-7,图8-14,一种lvc-de分布式合成环境与prti 系统数据交换方法,s1声明tena对象实例,lvc-de分布式合成环境采用 tena对象模型作为描述信息交换的数据结构,以tena对象实例作为信息交换的基本单元,tena对象模型描述文件符合tdl(tena definition language) 规范;
121.s2声明prti对象实例,prti系统采用prti对象实例作为信息交换的基本单元,prti对象类和交互类作为描述信息交换的数据结构,对象类和交互类存储于fom(federation object model)文件中;
122.s3关联tena对象实例与prti对象实例,在完成tena对象实例与prti 对象实例声明后,需要建立两者之间的映射关系,为后续lvc-de分布式合成环境与prti系统数据交换提供规则;
123.s4执行数据交换,为适应不同开发环境,本发明利用网关程序订购和发布lvc-de
分布式合成环境数据,利用prti通讯程序订购和发布prti系统数据,两个程序利用管道通信,使用明码字符串报文,在网关程序运行后,网关程序启动prti通讯程序,网关程序接收lvc-de分布式合成环境数据信息,对映射关系和数据进行显示,将lvc-de分布式合成环境数据信息通过管道通信发送至prti通讯程序,接收prti通讯程序发送的prti系统数据信息。
124.s1声明tena对象实例,包括以下流程:
125.s1-1选择tena对象模型描述文件,保存该对象模型描述文件路径地址;
126.s1-2按照路径地址打开tena对象模型描述文件,读取文件全部内容;
127.s1-3按照行对tena对象模型描述文件每行的结构标识进行判断;
128.s1-4-1如果结构标识为局部类、类、消息等类型,转至步骤s1-5;
129.s1-4-2如果结构标识为枚举类型,保存枚举名称和枚举内容,存储在数据结构内,转至步骤s1-3;
130.s1-4-3如果结构标识为结束符,转至步骤s1-7;
131.s1-5在类/局部类/消息结构处理分支内,对结构内每行内容的类型标识进行判断;
132.s1-6-1如果内容标识为数据,将数据的类型和名称存储在数据结构内,转至步骤s1-5;
133.s1-6-2如果内容标识为方法,将方法返回类型、名称、参数输入输出类型、参数数据类型、参数名称、错误值类型和错误值名称存储在数据结构内,转至步骤s1-5;
134.s1-6-3如果内容标识为结束符,转至步骤s1-3;
135.s1-7按照继承、聚合关系对数据结构重新梳理形成tena对象模型列图;
136.s1-8选择要声明tena对象实例的tena对象模型名称,输入tena对象实例名称。
[0137]“${模块名称}.tdl”文件定义格式:
[0138]
[0139][0140]
s2声明prti对象实例包括以下步骤:
[0141]
s2-1选择prti系统fom文件,保存该对象模型文件路径地址;
[0142]
s2-2按照路径地址打开prti系统fom文件,读取文件全部内容;
[0143]
s2-3寻找子元素关键字objects,进行对象类数据模型解析;
[0144]
s2-4判断每个子元素关键字;
[0145]
s2-5-1如果子元素关键字为attribute,解析属性名称和属性类型,并存储进数据结构中,转至步骤s2-4;
[0146]
s2-5-2如果子元素关键字为objectclass,解析对象类名称,并存储进数据结构中,转至步骤s2-4;
[0147]
s2-5-3如果子元素关键字为结束符,转至步骤s2-6;
[0148]
s2-6寻找元素关键字interactions,进行交互类对象模型解析;
[0149]
s2-7判断每个子元素关键字;
[0150]
s2-8-1如果子元素关键字为parameter,解析参数名称和参数类型,并存储进数据结构中,转至步骤s2-7;
[0151]
s2-8-2如果子元素关键字为interactionclass,解析交互类名称,并存储进数据结构中,转至步骤s2-7;
[0152]
s2-8-3如果子元素关键字为结束符,转至步骤s2-9;
[0153]
s2-9查找元素关键字fixedrecorddata,解析固定数据名称,解析子元素得到数据名称和数据类型,将对应的交互类参数类型和对象类属性类型存储进数据结构中;
[0154]
s2-10按照嵌套关系对数据结构进行梳理,形成prti系统对象模型列图;
[0155]
s2-11选择要声明prti对象实例的prti对象类或交互类名称,输入prti 对象实例名称,建立prti发布对象实例列图和订购对象实例列图。
[0156]
s2声明prti对象实例,“${模块名称}.xml”文件定义格式:
[0157]
《?xml version="1.0"encoding="utf-8"?》
[0158]
《!doctype objectmodel system"hla.dtd"》
[0159]
《objectmodel dtdversion="1516.2"name="dwkfomtemplate.xml" type="fom"version="1.0"date="2011-03-23"purpose="omt建模模版" appdomain="hla rti verification"sponsor="dwk"pocname="digital weapon kit"pocorg=""pocphone="010-58732755"pocemail="" references="http://www.appsoft.com.cn"》
[0160]
《objects》
[0161]
《objectclass name="hlaobjectroot"sharing="neither"》
[0162]
《attribute name="hlaprivilegetodeleteobject"datatype="na" updatetype="na"updatecondition="na"ownership="divestacquire" sharing="publishsubscribe"dimensions="na" transportation="hlareliable"order="timestamp"/》
[0163]
《/objectclass》
[0164]
《/objects》
[0165]
《interactions》
[0166]
《interactionclass name="hlainteractionroot"sharing="neither" dimensions="na"transportation="hlareliable"order="timestamp"》
[0167]
《parameter name="hlareportperiod"datatype="hlaseconds" semantics="number of seconds between updates of instance"/》
[0168]
《/interactionclass》
[0169]
《/interactions》
[0170]
《datatypes》
[0171]
《enumerateddatatypes》
[0172]
《enumerateddata name="hlaboolean" representation="hlainteger32be"semantics="standard boolean type"》
[0173]
《enumerator name="hlafalse"values="0"/》
[0174]
《enumerator name="hlatrue"values="1"/》
[0175]
《/enumerateddata》
[0176]
《/enumerateddatatypes》
[0177]
《fixedrecorddatatypes》
[0178]
《fixedrecorddata name="jcb_basedata_guidetype" encoding="hlafixedrecord"》
[0179]
《field name="ml"datatype="uint32"/》
[0180]
《field name="m"datatype="uint16"/》
[0181]
《/fixedrecorddatatypes》
[0182]
《/datatypes》
[0183]
《/objectmodel》
[0184]
s3关联tena对象实例与prti对象实例包括以下步骤:
[0185]
s3-1读取步骤s2-11生成的prti对象实例列图,展开对象实例的全部属性;
[0186]
s3-2读取步骤s1-8生成的tena对象实例列图,展开对象实例的全部属性;
[0187]
s3-3选择tena对象实例的某一属性与prti对象实例prti对象实例prti 对象实例的某一属性进行映射,建立映射列图,映射内容为订购发布关系、 tena对象实例类型、tena对象实例名称、tena对象实例属性名称、tena对象实例属性数据类型、prti对象实例类型、prti对象实例名称、prti对象实例属性名称、prti对象实例属性数据类型。映射需要遵循的规则包括:一个 tena对象实例或prti对象实例可对应映射多个prti对象实例或tena对象实例,同一个属性可映射多个发布属性,单只可映射一个订购属性;
[0188]
s3-4选择主属性,当订购的数据类型主属性更新后,向外发布该数据类型。保存映射关系,存储为关联描述文件.xml。
[0189]
s3关联tena对象实例与prti对象实例代码为:
[0190]
《属性关联信息》
[0191]
《类列图信息》
[0192]
《a列图信息number=prti对象实例数量"》
[0193]
《a列图子信息name=”对象实例数据类型"id="对象实例名称"relation=" 订购发布关系"/》
[0194]
《/a列图信息》
[0195]
《b列图信息number="tena对象实例数量"》
[0196]
《b列图子信息name="对象实例数据类型"id="对象实例名称"relation=" 订购发布关系"/》
[0197]
《/b列图信息》
[0198]
《/类列图信息》
[0199]
《网关信息struct="prti"aname="prti异构系统对象模型文件路径" bname="tena系统对象模型文件路径"model="opendds/》
[0200]
《属性订购信息》
[0201]
《订购类信息type=""stream="a2b"name="tena系统对象实例数据类型"id="对象实例名称"》
[0202]
《订购属性信息targetname="tena实例属性名称"fromattrname="prti 实例属性名称"mainstate="主属性标识"targetattr="tena系统对象实例属性数据类型"fromname="prti系统对象实例数据类型"fromattrtype="数据类型"fromclassid="prti系统对象实例名称"/》
[0203]
《/订购类信息》
[0204]
《发布类信息type=""stream="b2a"name="prti系统对象实例数据类型" id="prti系统对象实例名称"》
[0205]
《发布属性信息targetname="prti系统对象实例名称" fromattrname="tena系统对象实例属性名称"mainstate="主属性标识" targetattr="prti系统对象实例属性数据类型"fromname="tena系统对象实例名称"fromattrtype="tena系统对象实例属性数据类型" fromclassid="tena系统对象实例名称"/》
[0206]
《/发布类信息》
[0207]
《/属性订购信息》
[0208]
《/属性关联信息》
[0209]
s4执行数据交换包括以下步骤:
[0210]
s4a-1网关程序启动,创建和prti通讯程序通讯的管道,管道名称为网关程序名字;
[0211]
s4a-2解析步骤s3生成的网关关联描述文件,创建tena对象实例列图,按照关联描述文件加入lvc-de分布式合成环境,订购、发布对应tena对象实例;
[0212]
s4a-3启动prti通讯程序,启动参数为网关关联描述文件和管道名称;
[0213]
s4a-4管道收到新的prti通讯程序连接信号后,创建本地套接字用来和 prti通讯程序进行通讯;
[0214]
s4a-5启动心跳发送定时器,延迟时间3000毫秒,启动prti通讯程序存活判定定时器延迟时间30000毫秒;
[0215]
s4a-6判断心跳定时器是否触发信号,是则执行步骤s4a-7,否则继续执行循环;
[0216]
s4a-7向prti通讯程序发送心跳报文;
[0217]
s4a-8判断prti通讯程序存活判定定时器是否触发信号,是则执行步骤 s4a-9,否则继续执行循环;
[0218]
s4a-9弹窗提示:“参与者失去连接”;
[0219]
s4a-10判断是否接收到lvc-de分布式合成环境更新数据,是则执行步骤 (4a-11),否则继续执行循环;
[0220]
s4a-11解析lvc-de分布式合成环境数据,向prti通讯程序发送对应prti 系统的
数据报文;
[0221]
s4a-12判断是否点击按钮,加入prti系统;
[0222]
s4a-13向prti通讯程序发送加入系统报文;
[0223]
s4a-14判断是否点击按钮,退出prti系统;
[0224]
s4a-15向prti通讯程序发送退出系统报文;
[0225]
s4a-16判断是否接收到prti通讯程序的通信报文,若为数据报文则执行步骤s4a-17-1,若为心跳报文则执行步骤s4a-17-2,若为加入系统反馈报文则执行步骤s4a-17-3,若未收到报文则继续执行循环;
[0226]
s4a-17-1接收到数据报文,解析数据内容存储在对象实例数据列图中;
[0227]
s4a-17-2接收到心跳报文,重新更新prti通讯程序存活判定定时器延迟时间;
[0228]
s4a-17-3接收到加入反馈报文,按照报文格式进行解析报文内容报文格式;
[0229]
s4a-18判断接收到的数据报文是否是对象实例主属性,是则执行步骤 (4a-20),否则继续执行循环;
[0230]
s4a-19判断报文内容,start则执行步骤(4a-21-1),error则执行步骤 (4a-21-2);
[0231]
s4a-20将对象实例数据更新至lvc-de分布式合成环境;
[0232]
s4a-21-1弹窗提示:“加入成功”;
[0233]
s4a-21-2弹窗提示:“加入失败”;
[0234]
s4a-22判断程序是否关闭,是则结束基本流程,否则继续进行循环。
[0235]
s4执行数据交换中prti通讯程序接收prti系统数据信息,并将prti 系统数据信息通过管道通信发送至网关程序,接收网关程序发送的lvc-de 分布式合成环境数据信息包括以下步骤:
[0236]
s4b-1prti通讯程序启动,解析通信管道名称,加入管道;
[0237]
s4b-2解析网关关联描述文件,按照对象实例创建数据结构列图;
[0238]
s4b-3启动心跳发送定时器,延迟时间3000毫秒,启动网关存活判定定时器延迟时间30000毫秒;
[0239]
s4b-4判断心跳定时器是否触发信号,是则执行步骤s4b-5,否则继续执行循环;
[0240]
s4b-5向网关程序发送心跳报文;
[0241]
s4b-6判断网关存活判定定时器是否触发信号,是则执行步骤s4b-7,否则继续执行循环;
[0242]
s4b-7关闭prti通讯程序,结束流程;
[0243]
s4b-8判断是否接收到prti系统更新数据,是则执行步骤s4b-9,否则继续执行循环;
[0244]
s4b-9解析prti对象实例数据,向网关程序发送对应lvc-de分布式合成环境对象实例的数据报文。
[0245]
s4b-10判断是否接收到网关程序的通信报文,若为数据报文则执行步骤 s4b-11-1,若为心跳报文则执行步骤s4b-11-2,若为加入系统报文则执行步骤s4b-11-3,若未收到报文则继续执行循环;
[0246]
s4b-11-1接收到数据报文,解析数据内容存储在对象实例数据列图中;
[0247]
s4b-11-2接收到心跳报文,重新更新网关存活判定定时器延迟时间;
[0248]
s4b-11-3接收到加入系统报文,按照网关关联描述文件存储的联邦名称和探员名称加入prti系统,订购、发布对象实例;
[0249]
s4b-11-4接收到退出系统报文,按照网关关联描述文件存储的联邦名称和探员名称退出异构系统;
[0250]
s4b-12判断接收到的数据报文是否是对象实例主属性,是则执行步骤 s4b-14,否则继续执行循环;
[0251]
s4b-13判断加入prti系统是否成功,是则执行步骤s4b-15-1,否则执行步骤s4b-15-2;
[0252]
s4b-14将对象实例数据更新至lvc-de分布式合成环境;
[0253]
s4b-15-1发送加入成功报文;
[0254]
s4b-15-2发送加入失败报文。
[0255]
在prti系统或lvc-de分布式合成环境发生数据更新时,还包括s5a-1 接收lvc-de分布式合成环境发布的对象实例数据;
[0256]
s5a-2判断从lvc-de分布式合成环境接收的对象实例是否是关联映射中订购的tena对象实例,如果是执行s5a-3,不是则结束本次操作;
[0257]
s5a-3按照基本数据类型解析从lvc-de分布式合成环境接收的对象实例数据,并存储在映射信息列图的数据对应位置;
[0258]
s5a-4按照映射信息列图内容判断主属性是否发生更新,主属性更新则执行s5a-5,主属性未更新则结束本次操作;
[0259]
s5a-5调用datawriter()函数,将s5a-4解析的数据填充进lvc-de分布式合成环境发布的对象实例关联的prti对象实例的数据中,将该数据发送给 prti通讯程序;
[0260]
s5a-6prti通讯程序解析网关程序传递的数据,将正确的数据发布至prti 系统。
[0261]
prti系统向lvc-de分布式合成环境更新数据过程还包括:s5b-1prti通讯程序接收prti系统发布的对象实例数据;
[0262]
s5b-2判断从prti系统接收的对象实例是否是关联映射中订购的prti对象实例,如果是执行s5b-3,不是则结束本次操作;
[0263]
s5b-3按照基本数据类型解析从prti系统接收的对象实例数据,并存储在映射信息列图的数据对应位置;
[0264]
s5b-4按照映射信息列图内容判断主属性是否发生更新,主属性更新则执行s5a-5,主属性未更新则结束本次操作;
[0265]
s5b-5prti通讯程序调用datasend()函数,将s5b-3解析的数据填充进 prti系统发布的对象实例关联的tena对象实例的数据中,将数据发送给网关程序;
[0266]
s5b-6网关程序解析prti通讯程序发送的数据,将数据发布至lvc-de分布式合成环境。
[0267]
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但本发明不局限于上述具体实施方式,因此任何对本发明进行修改或等同替换;而一切不脱离发明的精神和范围的技术方案及其改进,其均涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献