FastDDS 是什么
FastDDS是开源高性能DDS中间件(数据分发服务),遵循OMG DDS标准,专为分布式系统设计。它通过发布/订阅模式实现设备间实时通信,支持毫秒级低延迟传输与22种QoS策略(如可靠性、持久性),成为自动驾驶、工业物联网的核心通信框架12。
为什么用DDS
在复杂系统中(如智能汽车),传统通信协议难以满足:
- 动态节点发现:设备上线自动识别,无需手动配置
- 差异化QoS:关键数据(如刹车指令)优先传输
- 跨平台互通:解决嵌入式ECU与云端服务器协议割裂问题
例:FastDDS 3.2.2版本优化发现服务器效率,提升大规模节点协同性能2
fastDDSGen 是什么
FastDDSGen是FastDDS的官方代码生成工具,可将IDL接口定义文件一键转为C++/Java/Python代码,自动实现数据类型序列化、QoS绑定与通信框架集成。
使用中的热点问题
[痛点问题】 在 windows 系统下使用fast-dds-gen 工具将IDL 后缀文件转成.c 和.h 文件。
因网上教程同质化严重,写的太简单,实际使用过程中,踩坑太多。根据个人的摸索,希望能够讲清楚。
配置及准备工作
1) Java 软件:
java 11+ , 版本11以上。
可以在cmd 测试一下自己版本:
Java --version
- Install Java 11+: Download OpenJDK 11+ from:
我自己下载link1 -microsoft open JDK,最新版本21.0.7。
D:\MyWork\rt-thread\rtthreadsmart\rt-thread>java --version
openjdk 21.0.7 2025-04-15 LTS
OpenJDK Runtime Environment Microsoft-11369940 (build 21.0.7+6-LTS)
OpenJDK 64-Bit Server VM Microsoft-11369940 (build 21.0.7+6-LTS, mixed mode, sharing)
2) Visusal Studio 2022
内置一个开发者命令工具,
运行开发者命令行后,下面的命令行串口:
运行fastddsgen
fastddsgen 是一个java 模块文件,依赖java
切换到fastddsgen 所在目录后。
先测试一下 ,在当前工作目录是否支持java.
java --version
这里,我们以hello.idl 文件为例,进行代码转化:
java -jar fastddsgen.jar hello.idl