当前位置: 首页 > news >正文

fastdds:topic instance

topic与唯一一个数据类型相对应。topic实例,说的是可以对同一个topic进行多种不同的实例化。与c++中的类和对象的概念是比较相似的。

    TopicQos topic_qos = TOPIC_QOS_DEFAULT;

    participant_->get_default_topic_qos(topic_qos);

    topic_ = participant_->create_topic(topic_name, type_.get_type_name(), topic_qos);

    if (topic_ == nullptr)

    {

        throw std::runtime_error("Topic initialization failed");

    }

topic实例,是通过key来实现的,比如定义摄像头数据,可以定义一个数据类型。但是摄像头有前、后、左、右四个摄像头,四个摄像头都使用相同的数据类型,那么怎么区分数据来自于哪个摄像头呢?如果让我们自己实现,我们在定义数据类型的时候,除了摄像头数据之外,我们还可以增加一个id属性,用id来区分数据来源于哪个摄像头,这种方式直观,好理解,完全可行。

那么这么简单,易实现的功能,fastdds为什么还要专门提供topic instance来实现这样的功能呢?

  • 与Qos策略的深度绑定

从fastdds官方文档上来看的话,有一些qos策略,比如HistoryQosPolicy、ResourceLimitWosPolicy,均可以对每个topic instance生效。

  • 实例句柄

从fastdds example中的topic instances例子来看,DataWriter在创建的时候,可以针对每个key创建一个句柄,这样在发送数据的时候,不需要对数据类型中的key字段进行赋值,只需要使用key对应的句柄进行发送即可。

创建句柄:

发送数据:

  • 状态机

fastdds对每个topic instance维护状态机。试想,如果我们自己实现对每个instance的状态机的维护,还是有一定的复杂度的。

ALIVE:实例存活,有DataWriter发数据

DISPOSED:当前writer不发送数据了

http://www.dtcms.com/a/348241.html

相关文章:

  • 【嵌入式】【搜集】状态机、状态迁移图及状态模式材料
  • 【线性代数】常见矩阵类型
  • 【Nginx系列】查看 Nginx 的日志
  • Building Systems with the ChatGPT API 使用 ChatGPT API 搭建系统(第八章学习笔记及总结)
  • Hibernate详解
  • GaussDB 数据库架构师修炼(十八) SQL引擎-分布式计划
  • 保姆级Maven安装与配置教程(Windows版)
  • SpringCloud Alibaba核心知识点
  • MIT 6.5840 (Spring, 2024) 通关指南——入门篇
  • 项目学习总结(4)
  • Java内存泄漏详解:检测、分析与预防策略
  • 大语言模型的自动驾驶 LMDrive/DriveVLM-Dual
  • 电动车运行原理与最新人工智能驾驶技术在电动车上的应用展望:从基础动力系统到L5级完全自动驾驶的技术深度解析
  • EndNote 2025 Mac 文献管理工具
  • Multitouch for mac 触控板手势增强软件
  • Multi-output Classification and Multi-label Classification|多输出分类和多标签分类
  • 跨语言文化的统一语义真理:存在性、形式化及其对自然语言处理(NLP)深层语义分析的影响
  • 什么是大模型的指令跟随
  • Preprocessing Model in MPC 3 - 基于同态加密的协议 - Over Fields 有限域
  • Python 列表:定义、操作、推导式与嵌套
  • 西门子 SCL 简单案例
  • 计算机视觉学习路线:从入门到进阶的完整指南
  • 最近遇到的几个JVM问题
  • java学习 + 一个向前端传流顺序不一致的一个解决思路
  • c++ 常用接口设计
  • C#_依赖注入(DI)
  • vulnhub-billu_b0x靶机渗透
  • HPA 数据库实用指南:解决科研文章逻辑衔接难题的实操教程
  • 05 线性代数【动手学深度学习v2】
  • 构建wezzer平台!