三位一体:OpenDDS、ConnextDDS与FastDDS的互通性

本文通过实例探讨了ConnextDDS、FastDDS和OpenDDS这三个DDS实现之间的互操作性。尽管存在一些小问题,如序列化错误导致的内存溢出和启动顺序影响通信,但总体上证实了符合OMG标准的不同DDS实现可以相互通信。总结指出,只要遵循标准,不同厂家的DDS产品通常可以顺利交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文不讨论这三种DDS的具体使用方法,仅提供结论性描述。

Connext DDS 与 FastDDS

问题鸟问:这两个能正常通信吗?

闻啼鸟答:这我可不太清楚……难道你不会用百度查查吗?

问题鸟问:百度?你是在骂人吗?

闻啼鸟答:哈哈!那我们来看看,使用FastDDS发布数据,Connext DDS订阅数据是否能够顺利收发吧?

FastDDS publisher, Connext DDS subscriber

问题鸟问:OK,我就说能通信,不会有啥问题,你还在犟。

闻啼鸟答:咳嗽~

问题鸟问:我的意思是,确实没有问题,那反过来呢?

闻啼鸟答:损色。其实验证没什么必要,但还是看看吧!

在这里插入图片描述
问题鸟问:哦吼,果然没问题。那我知道了,Connext DDS节点与Fast-DDS进行交互是行得通的

闻啼鸟答:没错!接下来看看Fast-DDS和OpenDDS之间的情况。我们先让Fast-DDS进行发布,再用OpenDDS进行订阅吧。

FastDDS 与 OpenDDS

在这里插入图片描述
问题鸟问:我知道没问题,你不用再说了,直接反过来收发吧。

闻啼鸟答:额,贼,嫌我多余了。不过我要告诉你,你看到的不一定是真的哦!这里其实还有一些问题。换一下收发启动的顺序,看看结果如何。

在这里插入图片描述
问题鸟问:噗哧笑,你啥破配置,这就没内存了???

闻啼鸟答:32G内存好吧,不知道瞎嘚啵。(翻车现场)看现象应该是序列化使用的buffer出错了,内存溢出。简单来说:他是个bug。

问题鸟问:姑且算Fast DDS节点与OpenDDS进行交互是行得通的吧。不过遇到问题,不要得过且过哦。那接下来呢?

闻啼鸟答:是是,你说得对。接下来我们要看Connext DDS和OpenDDS之间的互通信,Connext DDS订阅,OpenDDS发布

ConnextDDS与 OpenDDS

在这里插入图片描述
问题鸟问:好像也没啥问题。

闻啼鸟答:嗯,其实有一个问题。接下来看看,当我先开启OpenDDS的发布节点时会提示错误,但这并不影响通信。这个现象值得注意

在这里插入图片描述
问题鸟问:确实哎,RTPS header for SPDP,那这是啥呀?

闻啼鸟答:SPDP全称是Simple Participant Discovery Protocol,这是DDS节点发现过程的第一阶段。完成后会进入Simple Endpoint Discovery Protocol (SEDP)。只有这两个阶段都完成,才能进行数据交互。这个问题可能是OpenDDS的版本 bug,嘿嘿嘿,接下来继续吧!

在这里插入图片描述

问题鸟问:我也算Connext DDS节点与OpenDDS进行交互是行得通的吧。

闻啼鸟:你总结吧。

问题鸟:过年了,在吃好吃的呢,一会着昂。

闻啼鸟:你到跑得快。

闻啼鸟总结

只要不同厂家实现的DDS符合OMG的标准,那么相互通信就没有问题。至于这三家产品的好坏,听下回辩解吧!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值