1. RTI Connext DDS入门:从HelloWorld看发布/订阅模型
第一次接触RTI Connext DDS时,很多人会被它复杂的文档和抽象的概念吓到。其实从HelloWorld示例入手是最快的学习路径。我刚开始用DDS时,也是从这个简单的例子摸清了发布/订阅模型的门道。
DDS(Data Distribution Service)本质上是个高级版的消息队列。想象一下微信群聊:发布者(publisher)就像发消息的人,订阅者(subscriber)是接收消息的群成员,而Topic就是微信群名称。不过DDS比普通消息队列更智能——它知道该把消息发给谁,还能保证消息不丢失。
在RTI Connext DDS 7.2.0的HelloWorld示例中,核心代码都集中在两个文件:
hello_world_publisher.cxx:负责发送"Hello World"消息hello_world_subscriber.cxx:负责接收并打印消息
先看工程结构。用VS2017打开项目后,你会发现除了这两个核心文件,还有自动生成的类型支持代码。这些代码是由RTI代码生成器(rtiddsgen)根据hello_world.idl文件生成的,定义了消息的数据结构。
2. 发布者代码深度解析
2.1 创建Topic和Publisher
发布者的第一项工作是定义通信的"频道"。在hello_world_publisher.cxx中,这段代码创建了通信基础:
dds::topic::Topic<HelloWorld> topic(participant, "HelloWorld Topic");
dds::pub::Publisher publisher(participant);
这里有三层架构:
- Participa

9666

被折叠的 条评论
为什么被折叠?



