fastdds qos:DurabilityQosPolicy

假如DataWriter先起來,并且已經寫了一些數據,之后有新的DataReader起來,那么新起來的DataReader能不能接收到它啟動之前,DataWriter發布的數據呢。DurabilityQosPolicy用來做這種控制。

VOLATILE_DURABILITY_QOS:易失的,新上線的DataReader只能讀取上線之后,DataWriter發布的數據。

TRANSIENT_LOCAL_DURABILITY_QOS:會在內存中保存數據,新上線的DataReader也能讀取上線之前的數據,前提是DataWriter還在,如果這個時候DataWriter已經退出了,那么DataReader就無法獲取到。

/*** Enum DurabilityQosPolicyKind_t, different kinds of durability for DurabilityQosPolicy.*/
typedef enum DurabilityQosPolicyKind : fastdds::rtps::octet
{/*** The Service does not need to keep any samples of data-instances on behalf of any DataReader that is not* known by the DataWriter at the time the instance is written. In other words the Service will only attempt* to provide the data to existing subscribers*/VOLATILE_DURABILITY_QOS,/*** For TRANSIENT_LOCAL, the service is only required to keep the data in the memory of the DataWriter that* wrote the data and the data is not required to survive the DataWriter.*/TRANSIENT_LOCAL_DURABILITY_QOS,/*** For TRANSIENT, the service is only required to keep the data in memory and not in permanent storage; but* the data is not tied to the lifecycle of the DataWriter and will, in general, survive it.*/TRANSIENT_DURABILITY_QOS,/*** Data is kept on permanent storage, so that they can outlive a system session.** @warning Not Supported*/PERSISTENT_DURABILITY_QOS
} DurabilityQosPolicyKind_t;

1hello world

仍然以fastdds自帶的hello world做為例子進行測試。

默認情況下,qos類型為VOLATILE_DURABILITY_QOS,即易失的。如果直接像下邊這樣進行修改,不生效的,因為DurabilityQosPolicy的使用要同時結合HistoryQosPolicy和ResourceLimitsQosPolicy以及ReliabilityQosPolicy進行統一配置。

  • ReliabilityQosPolicyKind需要配置可靠類型
  • HistoryQosPolicy配置KEEP_LAST_HISTORY_QOS,則depth需要大于0;或者配置為KEEP_ALL_HISTORY_QOS
  • ResourceLimitsQosPolicy中ResourceLimitsQosPolicy不可小于HistoryQosPolicy中的depth

? ? DataWriterQos writer_qos = DATAWRITER_QOS_DEFAULT;
publisher_->get_default_datawriter_qos(writer_qos);

? ? auto max_samples = 500;
writer_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS;
writer_qos.durability().kind = DurabilityQosPolicyKind::TRANSIENT_LOCAL_DURABILITY_QOS;
writer_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS;
writer_qos.history().depth = max_samples;
writer_qos.resource_limits().ResourceLimitsQosPolicy= max_samples;
writer_qos.resource_limits().max_samples = writer_qos.resource_limits().max_instances * max_samples;
writer_ = publisher_->create_datawriter(topic_, writer_qos, this, StatusMask::all());

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94143.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【讀代碼】SQLBot:開源自然語言轉SQL智能助手原理與實踐

一、項目簡介 SQLBot 是 DataEase 團隊開源的自然語言轉 SQL 智能助手,致力于讓非技術用戶也能通過自然語言與數據庫對話,自動生成 SQL 查詢,實現自助數據分析、智能BI問答、報表生成等場景。SQLBot 結合了大語言模型(LLM)、數據庫元數據解析、SQL解析與執行等多項技術,…

開題報告被退回?用《基于大數據的慢性腎病數據可視化分析系統》的Hadoop技術,一次通過不是夢

💖💖作者:計算機編程小咖 💙💙個人簡介:曾長期從事計算機專業培訓教學,本人也熱愛上課教學,語言擅長Java、微信小程序、Python、Golang、安卓Android等,開發項目包括大數…

HEVC(H.265)與HVC1的關系及區別

HEVC(H.265)與HVC1的關系及區別可歸納如下:一、技術定義差異?HEVC(H.265)?國際標準化組織制定的通用視頻編碼標準,由ITU-T和ISO/IEC聯合開發?1支持8K分辨率,壓縮效率較H.264提升約50%?1?HV…

Java獲取被nginx代理的emqx客戶端真實ip

Java獲取被nginx代理的emqx客戶端真實ip 契機 ? 使用nginx作為負載均衡(Load Balancing)的時候,發現真實ip無法獲取。幾經折騰終于拿到真實ip,又發現被代理的端口又無法使用非代理模式連接,由于之前暴露的docker端口有…

Jenkins自動化部署服務到Kubernetes環境

在現代軟件開發中,持續集成和持續部署(CI/CD)已成為提高開發效率和軟件質量的關鍵實踐。本文將介紹如何使用Jenkins自動化部署服務到Kubernetes環境,并重點介紹Maven與私服的配置。 環境準備 在開始之前,請確保您已準備好以下環境: Jenkins服務器 Kubernetes集群 Docker鏡…

OpenAI重新開源!gpt-oss-20b適配昇騰并上線魔樂社區

2025年8月5日,OpenAI發布了兩款全新的開源權重語言模型,均為混合專家(MoE)架構,其規模設計可在消費級GPU和云端的多種硬件上高效運行。這些模型采用 Apache 2.0 許可協議,因此可用于蒸餾到其他推理模型中、…

SpringCloud入門(簡潔明了)

目錄 一.創建微服務項目 (一)環境準備 (二)項目結構圖 (三)流程 二. Nacos (一)注冊中心 1.服務注冊 2.服務發現 3.編寫微服務API 4.遠程調用基本實現 5.負載均衡 6.LoadBalanced注解式注解均衡 7.注冊中心宕機,遠程調用還能成功嗎 (二)配置中心 1.基…

集成算法學習筆記

一、集成算法簡介1. 核心思想類比“多個專家綜合判斷優于單個專家”,通過構建并結合多個個體學習器,提升模型的泛化能力(降低過擬合風險、提高預測準確性),完成復雜的學習任務。2. 個體學習器與結合模塊個體學習器&…

讓Chrome信任自簽名證書

讓Chrome信任自簽名證書(Unix系列OS) 背景 想在本地測試自己寫的基于HTTPS連接的Web應用,跑在3001端口。但使用Chrome瀏覽器訪問https://localhost:3001時顯示連接不安全。解決了但沒解決 使用mkcert一鍵創建證書: mkcert localho…

[江科大庫]基于 OpenMV 的矩形識別與 STM32 串口通信(電子設計大賽實用教程)

?? 基于 OpenMV 的矩形識別與 STM32 串口通信(電子設計大賽實用教程) 一、前言 在本科生電子設計大賽中,經常會遇到圖像識別相關的任務,例如: 識別 矩形框(如識別一個 A4 紙、黑色標記框等); 將識別結果傳輸到 STM32 單片機,用于后續控制(舵機、移動小車、機械臂…

人臉識別驅動的工廠人體屬性檢測與預警機制

人體屬性檢測:人臉識別智慧檢測驅動的工廠管理革新(所有圖片均為真實項目案例)在制造業數字化轉型浪潮中,人體屬性檢測技術已成為破解傳統工廠管理難題的核心工具。通過融合人臉識別智慧檢測、目標檢測算法與多模態數據分析&#…

數據工程師——ETL

ETL面試題01 一、基礎概念與理論類 1. 請解釋什么是 ETL?它在數據處理流程中扮演什么角色? 答:ETL就是數據抽取、轉化、加載。目的是將分散的數據源集中在一起進行處理分析。 數據抽取:是指各種數據源中抽取數據,包括關系型數據庫(MySQL、Oracle等)、日志文件、Exce…

Oracle APEX 經典報表中的Checkbox

目錄 1. 建表&投入測試數據 2. 經典報表做成 2-1. 畫面布局如下?編輯 2-2. 報表使用的SQL 2-3. RS列的Heading設定 2-4. Function and Global Variable Declaration 2-5. Execute when Page Loads 2-6. Process 3. 運行效果?編輯 1. 建表&投入…

Codeforces Round 1043 (Div.3)

比賽連接:Codeforces Round 1043 (Div.3) A. Homework 題目鏈接:A - Homework Vlad and Dima have been assigned a task in school for their English class. They were given two strings aaa and bbb and asked to append all characters from bbb …

GPS欺騙式干擾的產生

我們在GNSS抗干擾天線的選型、測試方法以及為什么不能做RTK?(抗干擾內容全集)中提到的抗干擾天線,針對的是GPS壓制式干擾。對于GPS欺騙式干擾,抗干擾天線是無能為力的。 簡單來說,壓制式干擾是通過發射強功…

[PV]AXI R/W/RW帶寬計算的tcl腳本

AXI R/W/RW帶寬計算的tcl腳本 我基于前述的axi_read_bw_per_id.tcl腳本進行了修改,使其支持: 讀通道(Read Channel):計算基于rvalid && rready的有效周期(已在前述實現)。 寫通道(Write Channel):計算基于wvalid && wready的有效周期,考慮wstrb的ac…

阿里云AnalyticDB同步數據至華為云taurusdb

1 概述 AnalyticDB和taurusdb都是高度兼容mysql協議的數據庫,從現有的AnalyticDB官方數據同步方案來看,只有FlinkSQL合適。 同步方案官方文檔: https://help.aliyun.com/zh/analyticdb/analyticdb-for-mysql/user-guide/flink-subscribes-b…

學習嵌入式之驅動——系統移植(二)

一、uboot常用命令與環境變量1.命令:(1)環境變量操作命令命令功能格式printenv 查看環境變量printenvsetenv新建/修改環境變量setenv 環境變量名 環境變量值saveenv保存環境變量saveenv(2)內存操作命令命令功能格式示例…

EasyExcel 合并單元格最佳實踐:基于注解的自動合并與樣式控制

EasyExcel 合并單元格最佳實踐:基于注解的自動合并與樣式控制 前言 在日常開發中,我們經常需要導出 Excel 報表,而合并單元格是提升報表可讀性的常見需求。本文將介紹如何基于 EasyExcel 實現智能的單元格合并功能,通過自定義注解…

Unity設置UI顯示區域

系列文章目錄 untiy工具 文章目錄 系列文章目錄 ??前言 ??一、效果圖 ??二、制作過程(檢測中心點位置) ??2-1、代碼實現 ??三、優化為檢測整個UI四個角點 ??四、性能優化建議 ??壁紙分享 ??總結 ??前言 思路: 獲取屏幕的寬度和高度,定義中間區域的范圍…