FastRTPS结构
重要概念
Domain(域):用于创建、管理、销毁高层的Participant
Pariticipant(参与者):包含多个Publisher和Subscriber,并管理它们的配置
Publisher(发布者):发送 topic 数据
Subscriber(订阅者):接收订阅的topic数据
结构
示意图:
理解:
- 每个Participant有一个domain id(不会改变),在不同代码里可以被定义为不同的变量名
- Publisher定义在某个domain id下,发布topic name(不会改变)
- Subscriber订阅某个domain id中话题名字为topic name的消息
具体理解
-
假设我们有domain id为100的Participant,那么在不同cpp中可能出现A.cpp中这个Participant的变量名为A,B.cpp中这个Participant的变量名为B
A和B都可以理解为指针(实际也是指针)
这是没有关系的,但是变量名无论是A还是B,这个domain id为100的Participant中
topic name 是唯一的 -
Publisher创建在固定domain id下,在不同代码中可以定义为不同变量名。
但是,它发布的topic name 要好好思考,因为它将被Subscriber使用 -
同理,Subscriber在不同代码中也可以被初始化为不同名字的变量,也可以去订阅不同Participant名字,这都没有关系,因为你无论定义的是什么变量名,它指向的都是固定domain id的Participant
但是,它订阅的topic name 必须准确
FastRTPS应用
Participant
找到一个固定的domain id,你可以把这个domain id的Participant定义为一个变量A,然后再用一个string来解释这个Participant的作用
Publisher
在这个domain id 下定义一个名字为topic name的Publisher,发布的消息格式自行去定义
Subscriber
订阅domain id下topic name 的消息,随后可以定义一个回调函数,回调函数中设置一些一旦收到消息就执行的操作代码