OpenDDS高级开发指导
文章平均质量分 71
希望我撰写更多的OpenDDS文章,能够对OpenDDS使用者、兴趣者提供指导和帮助,为你的学习和应用之路提供指路明灯。本专栏的内容对你有帮助,尽快订阅和反馈,你的支持是本专栏前进的动力。
【敬告】本专栏的价格会自动随平台而提高,尽快订阅,开卷受益。
余额抵扣
助学金抵扣
还需支付
¥199.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
pony12
专注OpenDDS【应用开发】、【源码分析】、【项目咨询】、【功能定制】和【学习指导】多年
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenDDS百问百答
问:DDS是什么? 答: 数据分发服务DDS(Data Distribution Service for Real-time Systems),是对象管理组织OMG(Object Management Group),基于HLA和Corba技术框架,提出分布式、以数据为中心的发布订阅DCPS(Data-Centric Publish-Subscribe)模型的实时数据传输的软件架构。 问:DDS架构的优点...原创 2021-10-22 22:12:19 · 804 阅读 · 0 评论
-
基于QT的OpenDDS的发布订阅样例
基于QtCreator,进行OpenDDS的pub-sub开发,和基于VS、IDEA、Eclipse等IDE环境的开发,套路一样,只要设置和导入了OpenDDS的相应资源,进行编译和运行,就可以了。 引入OpenDDS的资源,主要包括 0)设置环境变量 Windows:DDS_ROOT、ACE_ROOT、TAO_ROOT、PATH Linux:DDS_ROOT、ACE_ROOT、TAO_R...原创 2021-09-04 16:43:31 · 3721 阅读 · 0 评论
-
OpenDDS集中发现服务DCPSInfoRepo
集中发现服务DCPSInfoRepo,目的是为局域网或跨网络或互联网的DDS节点,提供主题匹配服务的。1)同一局域网,可以采用对等RTPS发现,也可以采用DCPSInfoRepo集中发现2)跨段网络内,如果交换机或路由器支持跨网组播,同样,可以采用对等RTPS发现,也可以采用DCPSInfoRepo集中发现;如果不支持组播,则可以采用单播发现;当然,采用DCPSInfoRepo集中发现也是ok的;3)互联网环境下,和跨段网络相似。尤其是在云环境中,可能存在进行云主机和内网地址......原创 2020-12-22 08:24:26 · 2225 阅读 · 0 评论
-
OpenDDS性能测试框架Bench
OpenDDS性能测试框架Bench通过配置文件实现消息传输协议和测试场景的配置,支持TCP、UDP等多种协议。测试配置分为传输协议(通过transport-*.ini文件设置)和测试场景(定义发布/订阅端数量及参数)两类。Latency测试通过配置不同大小的数据包(50-32000字节)测量消息延时,测试过程需启动DCPSInfoRepo服务并分别运行发布端和订阅端程序。测试支持自动化脚本(run_test.pl)或手工方式执行,要求测试双方协议和消息大小保持一致。原创 2025-12-21 18:08:34 · 136 阅读 · 0 评论 -
DDS网络传输报文解析
OpenDDS数据传输解析:遵循DDSv1.4规范,采用Header+Body封装方式。网络报文由TransportHeader(28字节)和DataSample组成,后者包含DataSampleHeader(40字节)和实际数据(如1024个A)。一个DataSampleList可包含多个DataSampleElement,每个元素独立封装样本数据。系统日志会记录传输过程中的详细报文信息,便于逐层解析网络传输内容。原创 2025-12-14 16:52:56 · 169 阅读 · 0 评论 -
OpenDDS绿色安装包(运行版、开发版)
OpenDDS作为开源DDS实现,在关键领域应用广泛但学习曲线陡峭。本文介绍如何定制OpenDDS绿色安装包,包含运行版和开发版两种类型,支持C++/Java语言及Windows/Linux平台。安装包制作涉及ACE+TAO和OpenDDS代码编译(需1-10天不等),最终打包为包含动态库、可执行文件和配置文件的绿色版本。用户可根据需求定制不同版本组合(支持OpenDDS V3.8-V3.33、多种编译器和JDK版本),大幅节省环境搭建时间(新手可缩短10天周期)。提供完整的安装脚本和开发文件目录结构,帮助原创 2025-12-14 15:32:37 · 98 阅读 · 0 评论 -
OpenDDS针对不同网段和防火墙环境的配置策略
本文介绍了OpenDDS在不同网络环境下的通信配置策略,重点分析跨网段和防火墙场景。OpenDDS支持RTPS对等发现和Repo集中发现两种模式,分别使用不同的端口配置:RTPS模式下涉及组播地址239.255.0.1/7400和单播端口7410等,Repo模式则通过TCP端口12345进行集中发现。针对防火墙环境,文章详细列出了各层通信所需的端口开放规则,包括UDP/TCP协议的入站端口设置,并提供了关键配置参数如SpdpSendAddrs、local_address等的使用方法。这些配置策略可帮助实现复原创 2025-12-13 18:33:41 · 96 阅读 · 0 评论 -
OpenDDS运行配置可编程化
OpenDDS运行,需要配置信息,包括发现配置信息、传输配置信息,这些信息可以通过配置文件来设置、也可以通过编程来实现配置。OpenDDS运行配置可编程化,能够适应应用系统传输网络的动态化、实时化,具有非常好的灵活性:原创 2025-09-27 18:57:33 · 117 阅读 · 0 评论 -
DDS(数据分发服务)WorkShop
DDS工作室成员,10多年在DDS技术规范、原理、多个DDS实现(商业化如RTI、CoreDX、OpenSplice或开源OpenDDS、CycloneDDS、FastDDS)深耕,了解和掌握了大中型业务系统中使用DDS定义业务间通信框架或构建系统间通信总线和服务的机制,能给广大DDS爱好者、DDS应用者、DDS研究者和创新者朋友提供第一手、面对面、有深度和精湛的技术和理论指导。DDS工作室承诺,把你的需求交给我们,我们将还你一个清朗的DDS前途!原创 2025-01-20 12:04:18 · 234 阅读 · 0 评论 -
DDS采样记录Recorder和发布重放Replayer
OpenDDS提供了采集记录Recorder和发布重放Replayer功能,采集记录Recorder允许应用程序记录在任意主题上发布的样本,而无需事先了解该主题所使用的数据类型。Replayer功能允许将这些记录的样本重新发布到相同或其他主题中。原创 2024-12-11 17:06:40 · 384 阅读 · 0 评论 -
OpenDDS的Rtps_Udp传输协议可靠性QoS收发基本流程
OpenDDS中,实现了Rtps_Udp传输协议(非纯udp)的可靠性传输。传输的线程包括:1)发送方线程主要线程和定时器 《1》应用线程 《2》网络异步发送线程 《3》Heartbeat定时器 《4》Nak_response定时器 2)接收方主要线程和定时器 《1》网络异步接收线程原创 2024-08-17 15:47:57 · 490 阅读 · 0 评论 -
RTPS对等发现过程的日志记录
RTPS对等发现过程的日志记录,是快速分析和解决RTPS对等发现过程中问题的有效方法。原创 2024-08-17 15:23:15 · 219 阅读 · 0 评论 -
OpenDDS基于银河麒麟aarch64处理器的编译问题及解决措施
OpenDDS+ACE在国产系统和处理上,编译时遇到的错误,和解决策略。原创 2024-08-17 11:25:36 · 344 阅读 · 0 评论 -
OpenDDS的GUID是如何构造的?
GUID(Global Unique IDentifiers)是RTPS规范约定的DDS对象的唯一性ID;RepoId(Repository IDentifiers)是Repo服务约定的DDS对象的唯一性ID;GUID和RepoId,都是基于GUID_t结构体定义,名称不同,但实质上是一样的。题外话:无论是GUID还是RepoId,都可以根据自己的环境、业务和代码需要,自定义GUID_t结构体(共16个字节位)的组成部分,实现自己的特定需要。原创 2024-08-17 10:53:40 · 180 阅读 · 0 评论 -
OpenDDS 集中发现服务联邦Federator解析
集中发现协议客户端服务端联邦服务可执行服务。原创 2024-08-14 22:46:01 · 271 阅读 · 0 评论 -
OpenDDS集中发现服务DCPSInfoRepo联邦机制
OpenDDS在提供DCPSInfoRepo集中发现服务的基础上,又提供了集中发现服务DCPSInfoRepo的联邦功能,实际上就是集群功能。但联邦Federation功能一直以来,作为一个实验项目存在,功能的完备性、可用性距离真正的集群功能还存在着较大差距,如果你想实现OpenDDS的发现服务的集群化:1)根据DCPSInfoRepo联邦的基础上,进行完善、改造和定制,让它往集群化服务的方向继续前进;2)基于自己的业务需要,结合市面上的集群组件、注册发现的机制进行开发和实现。原创 2024-08-14 22:03:05 · 257 阅读 · 0 评论 -
ACE中为socket增加keepalive策略(windows和linux)
在国产麒麟系统下,基于ACE的tcp-socket,如果长时间不操作,则会自动切断连接,经测试发现,这个时间的上限为30分钟(几乎不差1秒) 经查看/proc/sys/net/ipv4/tcp_keepalive_time=7200,按说是2小时,但测试发现就是30分钟。索性,就通过程序来动态设置keepalive吧原创 2023-12-24 18:08:17 · 942 阅读 · 0 评论 -
集中发现服务DCPSInfoRepo通信端口和ORB交互流程
OpenDDS集中发现服务DCPSInfoRepo,为OpenDDS的pub和sub通信终端提供主题匹配和通信协商和中介服务,是基于TAO的ORB机制完成的,GIOP协议。从通信端口、GIOP协议流程、Pub和Sub端操作步骤及分解动作等进行解析。原创 2023-10-07 20:09:05 · 547 阅读 · 0 评论 -
DDSv1.4规范(中文版)
吭哧憋肚,DDSv1.4翻译完了,下一步继续润色和完善。原创 2023-07-28 19:32:10 · 1041 阅读 · 5 评论 -
OpenspliceDDS(1)介绍
OpenSpliceDDS的特点、优势和价值,体系架构等原创 2022-12-31 19:04:20 · 1136 阅读 · 0 评论 -
CycloneDDS(5)发现Discovery
CycloneDDS的发现机制,包括Topic Discovery和Type Discovery原创 2022-12-31 10:56:36 · 2372 阅读 · 0 评论 -
CycloneDDS(4)Security插件图解
dds安全插件组件,包括dds安全认证插件、dds安全访问控制插件、dds安全加密插件(图解)原创 2022-12-31 10:44:57 · 562 阅读 · 0 评论 -
CycloneDDS(3)安全Security
DDS安全模型的三个插件是:1、身份验证服务插件2、AccessControl服务插件3、加密服务插件原创 2022-12-31 08:13:23 · 2618 阅读 · 0 评论 -
CycloneDDS(2)路线图
CycloneDDS的版本发布里程碑,从0.1.0到0.10.0原创 2022-12-31 08:03:09 · 1257 阅读 · 0 评论 -
完整的OpenDDS的发布订阅编写及源码(Windows)
一个完整的OpenDDS的发布订阅编写及源码,包括SimuMsg.idl、SimuMsg.mwc和SimuMsg.mpc,SimuMsgCommon_Export.h、publisher.cpp、subscriber.cpp、SimuMsgDataReaderListenerImpl.h和SimuMsgDataReaderListenerImpl.cpp、SimuMsgDataWriterListenerImpl.h和SimuMsgDataWriterListenerImpl.cpp、dds原创 2022-12-29 19:29:34 · 1300 阅读 · 1 评论 -
OpenDDS IDL文件生成dll
从定义idl文件,创建mwc和mpc工程文件,到创建vs2010的sln和vcxproj;定义了集中发现DCPSInfoRepo和对等发现RTPS的相关配置文件(tcp和udp传输协议),到如何运行pub和sub进行发布订阅的整体说明。原创 2022-12-29 19:08:04 · 951 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(四)
CycloneDDS配置,如SharedMemory、Tracing、Threads、TCP、Sizing原创 2022-12-04 13:23:26 · 2183 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(三)
CycloneDDS配置,//CycloneDDS/Domain/Partitioning、//CycloneDDS/Domain/SSL、//CycloneDDS/Domain/Security部分原创 2022-12-04 13:03:23 · 1734 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(二)
CycloneDDS配置,//CycloneDDS/Domain/Internal配置原创 2022-12-04 13:24:21 · 1641 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(一)
CycloneDDS配置详细说明中文版原创 2022-12-04 11:45:17 · 2870 阅读 · 0 评论 -
Cyclone DDS(1)初识
Cyclone DDS遵循对象管理组织(OMG)的数据分发服务(DDS)技术标准,是一个最新的快速增长的开源实现。现在,Cyclone DDS在机器人、自动驾驶汽车和汽车市场以及其他关键任务和要求苛刻的物联网系统中获得了发展势头原创 2022-11-26 17:53:06 · 3929 阅读 · 4 评论 -
OpenDDS问题记录
最近几年,一直在了解、研究、使用和定制化DDS技术,包括商用的如RTI Connext、CoreDX、OpenSplice,开源的如OpenDDS、Cyclone DDS、FastDDS等;各DDS实现厂家遵循的DDS规范大体是DDSv1.4或更老的规范版本,使用到的开发语言有C、C++、Java等。跟随OpenDDS,从3.8到3.13、3.19、3.21等,这几年走过使用OpenDDS道路,对趟过的坑(bug)、待优化点、重大的功能定制等,做一个大概的记录。原创 2022-09-15 09:06:50 · 1049 阅读 · 2 评论 -
OpenDDS的QoS和自定义QoS(校时TimingQosPolicy)
列举OpenDDS的22种QoS的数据结构,并提供DataWriter和DataReader的校时QoS1) DR设置TimingQosPolicy中value=true,则DR方发起校时申请,以DW方的时间戳为准进行校时;2) DW设置TimingQosPolicy中value=true,则DW方发起校时申请,以DR方的时间戳为准进行校时;3) DR和DW设置TimingQosPolicy中value=true,则DR方发起校时申请,以DW方的时间戳为准进行校时;.........原创 2022-07-16 22:26:51 · 1012 阅读 · 1 评论 -
OpenDDS实现机制分析(大纲)
后期,拟针对OpenDDS代码实现1)RTPS规范及实现,网络包协议分析2)DDS规范及实现,网络包协议分析3)OpenDDS中应用到的ACE、TAO知识点4)测试场景,包括功能测试场景、性能测试场景5)其他技术专题异步传输机制 可靠性(包核对、续传、frag分包机制、resemble重组机制)传输、 网络重连Reconnect机制 Spdp和Sedp发现机制,DCPSInfoRepo发现机制 内存管理,消息级内存、数据区内存、分配和释放 DDS传输类之间的关系,如Data原创 2022-05-31 13:00:28 · 1222 阅读 · 2 评论 -
OpenDDS通讯rtps_discovery对等发现模式的端口
rtps_discovery发现模式的通讯端口 (domainid=0)为例 广播地址和端口 单播地址和端口 Spdp通讯端口 239.255.0.1:7400 广播地址,也可以通过InteropMulticastOverride来设定,如InteropMulticastOverride=239.255.0.11,...原创 2018-02-08 08:25:45 · 1478 阅读 · 0 评论 -
OpenDDS工具之五(ishapes)
E:\OpenDDS-3.19_x86\examples\DCPS\ishapes工具,是OpenDDS提供的基于QT5的有关QoS的可视化发布订阅的demo1)发布订阅三种数据报文,三角形Triangle、圆形Circle、正方形Square2)传输控制策略。发布方四种,Reliability可靠性、Ownership属主、Durability持久性、Priority优先级;订阅方五种,Reliability可靠性、Ownership属主、Priority优先级、H原创 2022-02-19 12:32:39 · 876 阅读 · 0 评论 -
OpenDDS工具之四(monitor+excelRTD)
OpenDDS中monitor和excelRTD,都是基于Qt5的可视化检测工具:1)monitor,监测DCPSInfoRepo服务,动态展示OpenDDS全网内的核心对象,可以Node、等方式展示2)excelRTD,实际上是将monitor的监测UI,注册到Excel中进行展示。(一)准备1.1 安装Qt5.5.0我的OpenDDS3.19是基于vs2010编译的,所以只能选择Qt5.5.0及以前的版本,安装后的目录结构如下图1.2 设置QTDIR环境变量set QTD原创 2022-02-18 19:04:13 · 1117 阅读 · 2 评论 -
OpenDDS工具之三(inspect)
tools\inspect,是OpenDDS中提供的以record方式来订阅那些支持"DDS XTypes complete TypeObjects"类型的数据样本,并输出样本数据内容的工具。 参数说明:TOPIC_NAME TYPE_NAME DOMAIN_ID,这3个参数是必须要输入的。inspect 订阅和输出支持DDS Xtypes类型的样本数据原创 2022-02-18 19:03:08 · 544 阅读 · 0 评论 -
OpenDDS工具之二(repoctl)
DCPSInfoRepo集中发现服务,作为一个提供pub和sub匹配的协调器程序,肯定存在单点失效的问题,于是,联邦服务Federation就出现了。1)主DCPSInfoRepo集中发现服务2)从DCPSInfoRepo集中发现服务那么,对于已经分别启动的DCPSInfoRepo集中发现服务,如何实现他们直接的联邦功能呢?repoctl工具,就派上用场了。repoctl工具,就是针对相互独立的DCPSInfoRepo集中发现服务或者是已经形成联邦Federation的DCPSInfoRepo集中发原创 2022-02-09 18:40:17 · 1647 阅读 · 0 评论 -
OpenDDS工具之一(dcpsinfo_dump)
(一)dcpsinfo_dump目的:用来输出集中发现服务DCPSInfoRepo资源库repo.ior中的所有核心OpenDDS::DCPS::DCPSInfo对象的基本描述(分类,如Participant、Topic、Publication、Subscription)。基本原理: 通过读取repo.ior文件中的IOR格式串,转换为CORBA::Object对象,再通过RPC调用dump_to_string方法,获取到DCPSInfoRepo服务进程的rep...原创 2022-02-08 18:15:18 · 897 阅读 · 0 评论
分享