![](https://img-blog.csdnimg.cn/5e94085d89ce4015979b95648bddba35.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenDDS拓展开发指南
文章平均质量分 69
在对OpenDDS开发的基础上,拓展外部适配(操作系统、处理器、通信协议)、应用级定制(文件传输、音视频流动、组播和广播)等。
优惠券已抵扣
余额抵扣
还需支付
¥299.90
¥399.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
pony12
专注OpenDDS【应用开发】、【源码分析】、【项目咨询】、【功能定制】和【学习指导】多年
展开
-
OpenDDS的Rtps_Udp传输协议可靠性QoS收发基本流程
OpenDDS中,实现了Rtps_Udp传输协议(非纯udp)的可靠性传输。传输的线程包括:1)发送方线程主要线程和定时器 《1》应用线程 《2》网络异步发送线程 《3》Heartbeat定时器 《4》Nak_response定时器 2)接收方主要线程和定时器 《1》网络异步接收线程原创 2024-08-17 15:47:57 · 160 阅读 · 0 评论 -
RTPS对等发现过程的日志记录
RTPS对等发现过程的日志记录,是快速分析和解决RTPS对等发现过程中问题的有效方法。原创 2024-08-17 15:23:15 · 37 阅读 · 0 评论 -
OpenDDS基于银河麒麟aarch64处理器的编译问题及解决措施
OpenDDS+ACE在国产系统和处理上,编译时遇到的错误,和解决策略。原创 2024-08-17 11:25:36 · 49 阅读 · 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 · 29 阅读 · 0 评论 -
OpenDDS 集中发现服务联邦Federator解析
集中发现协议客户端服务端联邦服务可执行服务。原创 2024-08-14 22:46:01 · 136 阅读 · 0 评论 -
OpenDDS集中发现服务DCPSInfoRepo联邦机制
OpenDDS在提供DCPSInfoRepo集中发现服务的基础上,又提供了集中发现服务DCPSInfoRepo的联邦功能,实际上就是集群功能。但联邦Federation功能一直以来,作为一个实验项目存在,功能的完备性、可用性距离真正的集群功能还存在着较大差距,如果你想实现OpenDDS的发现服务的集群化:1)根据DCPSInfoRepo联邦的基础上,进行完善、改造和定制,让它往集群化服务的方向继续前进;2)基于自己的业务需要,结合市面上的集群组件、注册发现的机制进行开发和实现。原创 2024-08-14 22:03:05 · 68 阅读 · 0 评论 -
集中发现服务DCPSInfoRepo通信端口和ORB交互流程
OpenDDS集中发现服务DCPSInfoRepo,为OpenDDS的pub和sub通信终端提供主题匹配和通信协商和中介服务,是基于TAO的ORB机制完成的,GIOP协议。从通信端口、GIOP协议流程、Pub和Sub端操作步骤及分解动作等进行解析。原创 2023-10-07 20:09:05 · 380 阅读 · 0 评论 -
OpenspliceDDS(1)介绍
OpenSpliceDDS的特点、优势和价值,体系架构等原创 2022-12-31 19:04:20 · 926 阅读 · 0 评论 -
CycloneDDS(5)发现Discovery
CycloneDDS的发现机制,包括Topic Discovery和Type Discovery原创 2022-12-31 10:56:36 · 1784 阅读 · 0 评论 -
CycloneDDS(4)Security插件图解
dds安全插件组件,包括dds安全认证插件、dds安全访问控制插件、dds安全加密插件(图解)原创 2022-12-31 10:44:57 · 341 阅读 · 0 评论 -
CycloneDDS(3)安全Security
DDS安全模型的三个插件是:1、身份验证服务插件2、AccessControl服务插件3、加密服务插件原创 2022-12-31 08:13:23 · 2238 阅读 · 0 评论 -
CycloneDDS(2)路线图
CycloneDDS的版本发布里程碑,从0.1.0到0.10.0原创 2022-12-31 08:03:09 · 1001 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(四)
CycloneDDS配置,如SharedMemory、Tracing、Threads、TCP、Sizing原创 2022-12-04 13:23:26 · 1339 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(三)
CycloneDDS配置,//CycloneDDS/Domain/Partitioning、//CycloneDDS/Domain/SSL、//CycloneDDS/Domain/Security部分原创 2022-12-04 13:03:23 · 1210 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(二)
CycloneDDS配置,//CycloneDDS/Domain/Internal配置原创 2022-12-04 13:24:21 · 1004 阅读 · 0 评论 -
CycloneDDS配置详细说明中文版(一)
CycloneDDS配置详细说明中文版原创 2022-12-04 11:45:17 · 1771 阅读 · 0 评论 -
Cyclone DDS(1)初识
Cyclone DDS遵循对象管理组织(OMG)的数据分发服务(DDS)技术标准,是一个最新的快速增长的开源实现。现在,Cyclone DDS在机器人、自动驾驶汽车和汽车市场以及其他关键任务和要求苛刻的物联网系统中获得了发展势头原创 2022-11-26 17:53:06 · 3123 阅读 · 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 · 813 阅读 · 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 · 784 阅读 · 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 · 991 阅读 · 2 评论 -
OpenDDS使用基于XML的QoS策略
(一)传统方式,在代码中手动设置OpenDDS对象的QoS基于OpenDDS的应用开发,创建各种对象如Participant、Publisher、Subscriber、Topic、DataWriter、DataReader等,都是通过在代码中自行定义各自对象的QoS策略:优点是1)代码开发相对简单,针对固定QoS策略的发布-订阅传输,非常方便;2)大部分时候,使用缺省的QoS,如PARTICIPANT_QOS_DEFAULT、PUBLISHER_QOS_DEFAULT、TOPIC_QOS_D原创 2022-05-20 19:36:21 · 893 阅读 · 0 评论 -
OpenDDS传输时延SimpleLatency测试
OpenDDS的高性能,体现在提供了数据传输的强实时效果,包括传输低时延LowLatency、高吞吐HighTPS、大带宽FullNet。低时延Latency性能测试,一般可通过几种手段来进行1)在pub和sub端机器时钟一致的情况下,在两台机器间进行pub和sub的传输时延测试;2)在具有两个或多个网卡的机上,可以通过绑定2个网卡,进行本机上的传输时延测试;(前提,机器的CPU资源足够用,避免单机运行pub/sub程序造成CPU、内存资源的争抢);3)对于普通机器而言,很难做到时钟一致的理想情况,原创 2022-05-01 07:48:15 · 1138 阅读 · 0 评论 -
OpenDDS集中发现服务DCPSInfoRepo(2)
DCPSInfoRepo,按照字面的翻译,即以数据为中心发布订阅的信息资源库,其实它是一个服务程序。DCPSInfoRepo是OpenDDS提供的三种端点Sedp发现模式之一,DCPSInfoRepo存储和管理以数据为中心发布订阅应用信息的资源库,并为所有的pub和sub方应用提供主题匹配中介服务。DCPSInfoRepo服务的功能选项:E:\OpenDDS-3.19_x86\bin>DCPSInfoRepo -?Usage: DCPSInfoRepo -a <addr...原创 2022-04-16 17:20:52 · 1161 阅读 · 0 评论 -
OpenDDS内部关键的idl文件(InfoRepoDiscovery)
InfoRepoDiscovery集中发现机制,是OpenDDS提供的pub和sub端发现的机制之一,对于满足复杂网络环境中主题的动态匹配,恰如其当。无论是部署复杂度还是适应性,都具有优秀的特点。OpenDDS学习者在初涉OpenDDS之初,一般都会使用集中发现RepoDiscovery机制,但使用仅仅局限于本机,1)repo.ior文件,可以满足本机或跨机的Repo集中发现;比如OpenDDS-3.19\DevGuideExamples\DCPS\Messenger测试用例;2)ORBListe原创 2022-04-09 10:03:14 · 903 阅读 · 0 评论 -
OpenDDS内部关键的idl文件(Federation)
Federation联邦,是OpenDDS的Repo集中发现机制的集群机制,只不过目前一直是一个实验项目,无法达到真正的集群功能。具有Federation联邦功能的Repo集中发现集群,应该具有1)pub和sub方,应能动态选择可用的Repo资源库;2)各个Repo资源库之间应该具有session亲和能力,即实时同步各Repo资源库信息,做到全局性的主题资源和匹配状态的一致性和统一性;3)当某个Repo服务异常时,应该能将pub或sub方,重定向到其他的Repo服务;4)当某个Repo服务恢原创 2022-04-09 09:44:06 · 702 阅读 · 0 评论 -
OpenDDS的动态绑定bind_config传输配置和实例
我们都知道,OpenDDS的传输体系,实际上分为两个过程,一个是发现过程(RTPS对等发现、Repo集中发现和Static静态发现三类);一个是传输过程(TCP协议传输、UDP协议传输、Rtps_udp协议传输、Multicast组播协议传输和Shem单机共享内存传输)。发现机制的策略设置,可以通过命令行,也可以通过配置文件来指定;传输机制的策略设置,可以通过配置文件来指定,也可以采用代码内传输注册和绑定bind_config(OpenDDS::DCPS::TransportRegistry机制)原创 2022-04-06 18:23:23 · 900 阅读 · 0 评论 -
OpenDDS有问必答
OpenDDS有问必答群,是应广大技术人员和爱好者的需要,面向OpenDDS开发者提供的服务群。本群承诺,对所有入群的朋友,我们提供有问必答、指导和解决大家的问题。服务内容,包括指导、释疑解惑和线上交流;不包括,如编码、调试、线下交流等(如需要,另行商定);详细了解和加入群组,请联系。群名称:OpenDDS有问必答1群Q Q群:200422036联系方式:Q Q:1421067726微 信:...原创 2018-05-10 13:00:37 · 741 阅读 · 0 评论 -
OpenDDS学习模型
有需要OpenDDS相关需求的朋友,可及时联系,1)OpenDDS编译、使用辅导;2)OpenDDS的bug调研和修改3)基于OpenDDS的应用级定制开发4)跨平台适配,如Andriod、VxWorks嵌入式等微信:transrock,QQ:1421067726...原创 2020-12-22 08:37:13 · 365 阅读 · 0 评论 -
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 · 1230 阅读 · 0 评论 -
OpenDDS集中发现的最简单配置文件repo.ini
OpenDDS集中发现的最简单配置文件repo.ini [common] DCPSDefaultDiscovery=DEFAULT_REPO DCPSGlobalTransportConfig=$file DiscoveryConfig=dcpsInfo DefaultTransportConfig=the_udp_transport [repository/dcpsInfo] RepositoryIor=111.222.222.111:1234.原创 2020-08-29 20:51:31 · 896 阅读 · 2 评论 -
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 · 734 阅读 · 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 · 650 阅读 · 0 评论 -
OpenDDS通讯中rtps_discovery对等发现的基本配置和说明
有对DDS技术了解、学习、开发和培训需求的,请加入QQ群:707895641(DDS专业技术辅导)。*************************************************************************************************** OpenDDS的对等发现模式中,可以采用组播或单播方式进行发现和基于主题的Dat...原创 2020-04-18 07:37:15 · 3014 阅读 · 0 评论 -
OpenDDS高阶晋级一对一
有需要深入了解、应用开发、性能测试和Qos策略等内容一对一指导、有问必答、迅速提升的朋友,请加200422036的“OpenDDS有问必答群”,实时快捷、解决难关。OpenDDS有问必答QQ群,是应广大技术人员和爱好者的需要,面向OpenDDS开发者提供的收费服务群。本群承诺,对所有入群的朋友,我们提供有问必答、指导和解决大家的问题。服务内容,包括指导、释疑解惑和线上交流;不包括,如编...原创 2018-07-17 08:53:58 · 788 阅读 · 0 评论 -
OpenDDS内容过滤主题ContentFilterTopic
OpenDDS中的主题,有3类1)基本主题,Topic 用于发布者和订阅者之间通讯的基本主题,可以实现1发布-1订阅、1发布-N订阅、N发布-1订阅的消息传输方式。 其中,N订阅时,这些订阅者之间角色是相同的,也就是谁接收到都可以;N发布时,也是如此,这些发布者的角色相同,也就是谁发布都可以,不分彼此。 可以实现业务层的单播(1->1)、组/广播(1->N)、汇聚播(N->1)2)内容过滤主题, ContentFil...原创 2021-09-30 09:27:37 · 627 阅读 · 0 评论 -
DataWriter和DataReader的Listener多种定义方式
(一)DataReaderListener定义和实现 class myLocalObjectDataReaderListener : public virtual OpenDDS::DCPS::LocalObject<DDS::DataReaderListener> { public: //Constructor myLocalObjectDataReaderListener(); //Destructor virtual...原创 2020-12-30 09:13:09 · 746 阅读 · 0 评论 -
OpenDDS内部关键的idl文件(RTPS)
RtpsCore.idl,定义了RTPS对等发现模块所需要的各种内部通讯报文(即RTPS库所需要的结构体),有助于了解和深入掌握RTPS对等发现层的含义。#include "dds/DdsDcpsInfoUtils.idl"module OpenDDS { module RTPS { typedef octet OctetArray2[2]; typedef octet OctetArray4[4]; /* A list of filters tha...原创 2021-12-24 09:18:09 · 660 阅读 · 0 评论 -
OpenDDS中IDL文件的处理命令的使用
OpenDDS应用开发中,将遇到如opendds_idl、tao_idl、idl2jni等工具,各自的作用如下opendds_idltao_idlidl2jni1)opendds_idl编译HelloMsg.idl的结果文件HelloMsgTypeSupport.idlHelloMsgTypeSupport.cppHelloMsgTypeSupport.h2)tao_idl的编译HelloMsg.idl的结果文件HelloMsgC.cppHelloMsgC.hHelloM.原创 2021-05-22 20:49:51 · 1166 阅读 · 4 评论 -
基于MFC的OpenDDS发布订阅例子(PubSubDemo)
在编译完成Message.idl,产生MessageCommon.dll和相应的MessageTypeSupport的.h头文件和.cpp文件(MessageTypeSupportImpl.h、MessageTypeSupportC.h)的基础上,新建PubSubDemo.sln和工程PubSubDemo.vcxproj,并开始编码,实现基于Message的发布和订阅流程。1)新建基于Dialog的PubSubDemo.sln和工程PubSubDemo.vcxproj2)新建Data...原创 2021-08-28 18:20:19 · 596 阅读 · 1 评论 -
OpenDDS互操作性测试(Interoperability)
OpenDDS是OMG组织颁布DDS(Data Distribution Service,数据分发服务)规范的一套开源的C++实现,由OCI组织提供,可免费下载和使用,下载地址OpenDDS。------------------------------------------------------------------------------------------------------------------------OpenDDS is an open ...原创 2021-12-10 19:02:52 · 1847 阅读 · 0 评论