DDS传递簇与大型数组的教程

描述

数据分发服务(Data Distribution Service,DDS)源于美军的数据链,作为网络数据通讯的核心技术,能可靠实时地交换分配群体数据,其传输能力比通常的战术数据链高几个数量级。DDS必须确保在极少的时间和不限制网络中的报告数据容量的条件下,高度可靠地传输数据。

大家在使用DDS传递数据时可能遇到过波形采样数过大导致无法传递的情况,或者无法使用DDS传递Cluster的情况,今天小编将带领大家一起解决这个问题,下面请跟随小编一起来学习一下吧!

本文教程:

DDS传递簇与大型数组的教程

 

两种情况的发生和当前传递数据的数据类型有关,如果使用DDS传递的数据类型为字符串,所有其他形式的数据类型最终都会以特定的方式转变成字符串,再在DDS中进行传递。

当波形采样数大于2000时,波形数据向字符串转换时会导致字符串过长而无法传递;当使用Cluster时,Cluster向字符串转换的过程会发生问题,导致字符串数据的异常。

为了在一般环境下解决这个问题,我们就需要使用RTI DDS的工具来创建一些用于“传递特定数据类型的VI”实现利用DDS传递特定数据类型数据。

下图为波形数据向字符串转换的逻辑

DDS

一、解决方法:

1、RTI DDS安装

首先我们需要安装RTI DDS的工具包。

在VIPM中搜索“RTI DDS”在选中弹出的“RTI DDS Toolkit”然后点击右上角的“Install”等待自动安装。

DDS

2、创建一个自定义类型

若想借助 RTI DDS 的工具创建一个用于 “传递特定数据类型” 的 VI,第一步要创建一个自定义类型,以此作为生成 “传递特定数据类型” VI 的前提条件。我们以波形数据为例展开说明,它兼具大数组和 Cluster 的特性。

创建一个自定义类型,在项目树“My Computer”右击选中“New”-“Type Definition”。

DDS

在为“传递特定数据类型的VI”创建自定义类型过程中,需注意以下三点:

1、必须为自定义类型命名。

2、若自定义类型中包含数组元素,需严格设定数组长度,并需要设为默认值。设定方法为:跳转至目标索引(如示意下图中的10000位),随后输入“0”或预设的初始化数据值。注意:完成“Make Current Value Default”设置后,建议先退出编辑界面再重新进入,以便确认操作成功生效。

3、变体以及部分特定数据类型不可用于自定义类型之中。

DDS

3、创建API

RTI DDS提供了一个工具,用于创建“传递特定数据类型的VI”。单击工具栏的“Tool”,在弹出的菜单栏中选中“RTI DDS Toolkit”-“RTI DDS ComplexType Generator…”。

DDS

在弹出的VI界面按下图进行配置

DDS

Type of Generation:这里选择“Advance”(高级)。创建复杂数据类型一定要选这个。Simple只能创建一些简单的数据类型。

Save the Type Definition:可以选择“Yes”or“No”,取决于你是否希望生成VI的同级文件目录下包含用于创建VI的自定义数据类型。

Path to the Custom Type Definition:用于选择刚刚创建的自定义数据类型的文件路径。

Output Directory:用于VI生成的文件路径,最后所有的VI都会生成在此文件路径下。

Generate Example VIS:决定是否生成VI范例。

Domain ID:DDS的一种属性,这里是用于生成范例的一个参数。

Topic Name:DDS传递数据的一种属性,这里是用于生成范例的一个参数。

完成配置后,单击“Generate Code”开始生成VI。弹出如下提示,则表示生成成功。

DDS

最后在刚刚选择的“Output Directory”文件路径下会生成一些VI,如果“Save the Type Definition”选择“No”,则不会出现“.ctl”文件。

DDS

4、范例演示

在项目中新建一个虚拟文件夹,将刚刚生成的VI全部加到项目中(如果项目中包含用于创建VI的自定义类型,则不要将生成的自定义类型加入,否则会冲突报错)。

然后选择“Write Example”以及“Read Example”,分别运行两个VI,即可进行数据传递。

DDS

5、程序解析

我们从整体结构来看,其实DDS的读和写只有三个步骤:

①创建读写节点

②读写数据

③释放节点

DDS

DDS

6、总结

如果我们想在一般环境下利用DDS传递Cluster以及大型数组,流程如下:

1、创建自定义类型

2、确认自定义类型中没有DDS不能解析的数据类型

3、确认自定义类型中的数组已经定义了大小

4、选择好参数之后,利用工具创建VI

5、使用VI搭建功能

以上就是DDS传递簇与大型数组的教程的所有内容啦,欢迎大家留言讨论,交流分享!

以上内容就是本期的全部内容,更多关于测试系统中的实际软硬件应用知识,可关注本公众号/下方合集,敬请期待!

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分