一、安装OpenDDS(大部分跟随教程去做即可,只罗列一些重要的点)
个人都是用的最新版,实测能够适配,没有必要按照教程版本下载。
软件是 Visual Studio 2022,更加可视化,没有用命令行编译,不推荐。
- TAO_ACE_vs2022.sln :重新扫描解决方案并且生成。时间较长耐心等待。(看教程)
- ACE_vs2022.sln : 重新扫描解决方案并且生成。时间较长耐心等待。(看教程)
- DDS_no_tests.sln:重新扫描解决方案并且生成。时间较长耐心等待。(看教程)
注意,在生成解决方案时,经常报错,有些时候重新打开软件进入项目即可解决。
至此,环境搭建完毕,可以开始上手demo
二、自带的demo 测试
1. 按照文档加载 library 和 java 文件;
2. 增添“虚拟机参数”:解释如下:
-ea :用于启用断言(assertions)。默认情况下,Java 中的断言是禁用的,通过这个选项可以在开发过程中启用,以帮助捕获和诊断错误。
-Dopendds.native.debug=true :个定义 Java 系统属性的方式。-D 选项后面跟键值对,本例中设置 opendds.native.debug 的值为 true。这通常用于启用 OpenDDS 的本地(native)调试功能,帮助开发者在运行时跟踪和调试本地代码(如 C++ 代码)的行为。
-Djava.library.path= D:/DDS/OpenDDS-3.29.1/java/tests/messenger/messenger_idl; D:/DDS/OpenDDS-3.29.1/lib :指定 Java 虚拟机在哪些目录下查找本地库(如 DLL 或 SO 文件)。
3. 添加“程序实参”:
-DCPSBit 0 :这个参数是用来控制 OpenDDS 中的内置参与者信息(Participant Information)的。设置为 0 时,表示禁用 OpenDDS 的内置类型(Builtin Topics)的自动数据分发服务(Automatic Data Distribution Service)。通常这是为了降低网络流量或是因为应用程序不需要这项服务。
-DCPSConfigFile D:/DDS/OpenDDS-3.29.1\java\tests\messenger\tcp.ini :此参数指定了 OpenDDS 的配置文件的路径。这个配置文件包含了有关如何连接到其他 OpenDDS 节点的详细信息,包括传输配置、IP 地址、端口号等。这里的 tcp.ini 文件很可能配置了使用 TCP/IP 协议的具体设置,适用于需要通过 TCP 传输进行数据通信的场景。
4. 运行实例
(在教程中的“当前目录”指的是%DDS_ROOT%\java\tests\messenger,按要求改变)
4.1 命令:%DDS_ROOT%/bin/DCPSInfoRepo -o repo.ior
- 在执行这条命令时,在当前目录下启动命令行执行即可,在看到生成 repo.ior 文件之后,就可以关闭 命令行。
- DCPSInfoRepo 是 OpenDDS 中的一个组件,用于作为信息存储库,管理与数据分发服务(DDS)相关的元数据。
- 该命令指示开发者命令行去执行位于环境变量 DDS_ROOT 指定的目录下的 bin 子目录中的 DCPSInfoRepo 程序,并通过 -o repo.ior 参数将输出写入到当前目录下的 repo.ior 文件中。
- 简单的说就是:会执行DCPSInfoRepo 程序,在当前目录:D:\DDS\OpenDDS-3.29.1\java\tests\messenger下生成一个repo.ior文件。
4.2 修改当前目录里面的tcp.ini,按照教程,把刚才修改好的repo.ior 文件的路径加进去即可。
4.3 按照先subscriber,后publisher的顺序启动程序,就可以看到效果。