![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Fast DDS入门
文章平均质量分 89
介绍Fast DDS初级内容,包括编译、安装,初步开发使用等。
咸鱼爱幻想
这个作者很懒,什么都没留下…
展开
-
Fast DDS入门十、Fast DDS的静态类型(IDL Types)详解
本节详细介绍接口定义语言(IDL)文件定义的数据类型(即Fast DDS的静态类型,与Fast DDS的动态类型区分),以及使用IDL创建数据类型的其他机制。原创 2023-03-12 16:00:36 · 3117 阅读 · 0 评论 -
Fast DDS入门九、Fast DDS的动态类型(Dynamic Types)详解
为了管理结构内的类型,用户可以使用自己的id根据结构内类型的类型调用get()和set()函数。如果结构包含一个复杂的值,则应该与loan_value一起使用来访问它,并与return_loned_value一起使用来释放该指针。DynamicData管理借出值的计数器,如果不调用return_loned_value,则用户无法借出先前借出的值。位字段可以是匿名的(无法寻址),以跳过位集中未使用的位。如果应用程序的数据模型是复杂的,则可以组合基本类型来创建复杂类型,包括嵌套组合类型(联合内结构内的结构)。原创 2023-03-12 13:42:50 · 1864 阅读 · 0 评论 -
Fast DDS入门八、Fast DDS的发现机制
SIMPLE发现协议是默认发现协议,它解决了在各种DDS实体之间建立端到端连接的问题。Fast DDS实现了SIMPLE发现协议,以提供与RTPS标准的兼容性。该规范将SIMPLE发现协议分成两个独立的协议:简单参与者发现协议(SPDP):指定域参与者如何在网络中发现彼此;它宣布并检测同一域中DomainParticipant的存在。简单端点发现协议(SEDP):定义所发现的域参与者为交换信息而采用的协议,以便发现每个域参与者中包含的DDS实体,即DataWriter和DataReader。原创 2023-03-08 21:07:00 · 3436 阅读 · 1 评论 -
Fast DDS入门七、Fast DDS的侦听、通告以及底层传输介绍
Fast DDS的传输逻辑首先明确收方和发方是谁,收方和发方地址和端口的生成规则是什么,也就是侦听、通告的逻辑规则。其次Fast DDS的底层传输依赖于Transport Layer,是独立UDP/TCP之上传输接口层。原创 2023-03-03 17:10:58 · 2355 阅读 · 0 评论 -
Fast DDS入门六、Fast DDS的动态类型及示例程序
上一节,该示例程序介绍了采用Fast DDS-Gen工具通过接口定义语言(IDL)来生成数据结构类,该数据结构类具备序列化反序列化处理,用户只需要关注编写IDL的结构体接口以及在发布类和订阅类处理好结构体类数据的发送和接收就可以了。本节介绍一个更直接、更灵活的数据类型构造方法,在发布类和订阅类中直接构造动态类型,可以省略IDL的繁琐生成过程以及系列数据结构类文件。原创 2023-02-18 22:03:43 · 2480 阅读 · 1 评论 -
Fast DDS入门五、在Windows平台创建一个简单的Fast DDS示例程序
Fast DDS-Gen生成示例程序源码后,生成了系列的.h、.cxx源文件,同时生成了CMakeLists.txt文件。on_data_available()函数,是监听器的回调函数,被订阅者subscriber的阅读器reader接收到数据后,将socket接收的二进制数据反序列化成HelloWorld类数据,是开发人员的订阅接收数据入口。类,该类可注册到Fast DDS中,序列化和反序列化函数是vitual函数在父类中声明,在子类中实现,在发布订阅函数中实现回调处理,发布时将。原创 2023-02-15 17:28:23 · 4191 阅读 · 0 评论 -
Fast DDS入门四、Fast DDS-Gen使用介绍
Fast DDS-Gen是一个Java应用程序,它使用IDL(接口定义语言)文件中定义的数据类型生成Fast DDS源代码。生成的源代码可以用于任何Fast DDS应用程序中,以定义主题的数据类型,并且将用于发布或订阅。Fast DDS通过两个类定义Topic中交换的数据类型:TypeSupport和TopicDataType。TopicDataType描述发布和订阅之间交换的数据类型,即与Topic对应的数据;原创 2023-02-15 14:30:59 · 3869 阅读 · 1 评论 -
Fast DDS入门三、Fast DDS在Linux平台的编译安装
Configure过程中,会弹出缺少相关依赖库提示,人工选择前面已经下载安装的依赖库路径,Configure成功后,就可以Generate生成完整依赖工程项目(vscode/codeblocks等),然后在开发工具中build生成、install安装相关动态库so文件、可执行文件、头文件等。使用Fast DDS Gen,还可以与使用Fast DDS库的发布者和订阅者一起生成DDS应用程序的C++源代码(请参阅构建发布/订阅应用程序)。FastDDS的CMake选项很多,一般选择默认选择进行编译,就够用了。原创 2023-02-12 19:52:13 · 2991 阅读 · 1 评论 -
Fast DDS入门二、Fast DDS在Windows平台的编译安装
Configure过程中,会弹出缺少相关依赖库提示,人工选择前面已经下载安装的依赖库路径,Configure成功后,就可以Generate生成完整的Fast RTPS的vs解决方案(sln文件)。最后,打开sln解决方案,在vs编译界面下,选择Build项目生成将编译生成所有项目,编译生成动态库、应用程序成功后,选择Install项目生成将安装FastDDS头文件、lib、dll、exe到默认安装的路径下,这些文件就可以给其他工程导入使用FastDDS进行开发了。最后,单击右下角的“修改”。原创 2023-02-12 15:09:33 · 7373 阅读 · 0 评论 -
Fast DDS入门一、Fast DDS介绍
Fast DDS是DDS(数据分发服务)规范的C++实现,DDS是由对象管理组(OMG)定义的协议。Fast DDS库提供应用程序编程接口(API)和通信协议,用于部署以数据为中心的发布-订阅(DCPS)模型,目的是在实时系统之间建立高效可靠的信息分发。Fast DDS在资源处理方面具有可预测性、可扩展性、灵活性和高效性。为了满足这些要求,它使用了类型化接口,并依赖于一个多对多的分布式网络范例,该范例巧妙地允许将通信的发布方和订阅方分离。Fast DDS包括:DDS API实现。原创 2023-02-11 22:32:27 · 7349 阅读 · 5 评论