Fast DDS 项目教程
1. 项目的目录结构及介绍
Fast DDS 项目的目录结构如下:
Fast-DDS/
├── cmake/
├── docs/
├── examples/
├── fastdds/
├── fastcdr/
├── fastrtps/
├── include/
├── resources/
├── scripts/
├── src/
├── test/
├── CMakeLists.txt
├── LICENSE
├── README.md
各目录介绍:
cmake/
:包含 CMake 配置文件。docs/
:包含项目文档。examples/
:包含示例代码。fastdds/
:包含 Fast DDS 的核心代码。fastcdr/
:包含 Fast CDR 序列化库的代码。fastrtps/
:包含 Fast RTPS 的代码。include/
:包含头文件。resources/
:包含资源文件。scripts/
:包含脚本文件。src/
:包含源代码文件。test/
:包含测试代码。CMakeLists.txt
:CMake 构建文件。LICENSE
:项目许可证。README.md
:项目介绍文件。
2. 项目的启动文件介绍
Fast DDS 项目的启动文件通常位于 examples/
目录下。例如,DDSHelloWorld
示例的启动文件为 DDSHelloWorldExample.cpp
。
启动文件的主要功能是初始化 Fast DDS 库,创建发布者和订阅者,并启动数据交换。以下是一个简单的启动文件示例:
#include <fastdds/dds/domain/DomainParticipantFactory.hpp>
#include <fastdds/dds/domain/DomainParticipant.hpp>
#include <fastdds/dds/topic/TypeSupport.hpp>
#include <fastdds/dds/publisher/Publisher.hpp>
#include <fastdds/dds/publisher/DataWriter.hpp>
#include <fastdds/dds/publisher/DataWriterListener.hpp>
#include <fastdds/dds/subscriber/Subscriber.hpp>
#include <fastdds/dds/subscriber/DataReader.hpp>
#include <fastdds/dds/subscriber/DataReaderListener.hpp>
#include <fastdds/dds/subscriber/SampleInfo.hpp>
using namespace eprosima::fastdds::dds;
int main(int argc, char** argv) {
// 初始化 Fast DDS 库
DomainParticipant* participant = DomainParticipantFactory::get_instance()->create_participant(0);
// 创建发布者和订阅者
Publisher* publisher = participant->create_publisher();
Subscriber* subscriber = participant->create_subscriber();
// 启动数据交换
// ...
return 0;
}
3. 项目的配置文件介绍
Fast DDS 项目的配置文件通常使用 XML 格式。配置文件可以用于设置各种参数,如 QoS 策略、传输层配置等。
以下是一个简单的配置文件示例:
<profiles>
<profile id="default_profile">
<participant>
<domainId>0</domainId>
<rtps>
<builtin>
<discovery_config>
<discoveryProtocol>SIMPLE</discoveryProtocol>
</discovery_config>
</builtin>
</rtps>
</participant>
<publisher>
<qos>
<reliability>
<kind>RELIABLE</kind>
</reliability>
</qos>
</publisher>
<subscriber>
<qos>
<reliability>
<kind>RELIABLE</kind>
</reliability>
</qos>
</subscriber>
</profile>
</profiles>
配置文件的主要内容包括:
participant
:定义域参与者的配置。publisher
:定义发布者的配置。subscriber
:定义订阅者的配置。qos
:定义服务质量策略。rtps
:定义 RTPS 协议的配置。
通过配置文件,可以灵活地调整 Fast DDS 的行为,以满足不同的应用