fastdds笔记

1WriteParam

3个参数:

(1)source_timestamp:写时的时间戳,与时间有关的qos,比如deadline等,会使用这个时间戳,用户可以设置source_timestamp,write的时候通过FASTDDS_EXPORTED_API ReturnCode_t write(const void* const data,fastdds::rtps::WriteParams& params)来写。

data reader可以通过SampleInfo获取source_timestamp。在接收侧也会设置reception_timestamp,用户可以基于两个事件做传输统计,打印日志等。

(2)sample_identity,data writer的guid和序列号,这个属性,用户不可以配置,即使用户设置了属性,在dds内部也会被覆盖。

(3)related_sample_identity,在method调用时可能会用到。

++m_lastCacheChangeSeqNum;

a_change->sequenceNumber = m_lastCacheChangeSeqNum;

if (wparams.source_timestamp().seconds() < 0)

{

Time_t::now(a_change->sourceTimestamp);

}

else

{

a_change->sourceTimestamp = wparams.source_timestamp();

}

a_change->writer_info.num_sent_submessages = 0;

a_change->write_params = wparams;

// Updated sample and related sample identities on the user's write params

wparams.sample_identity().writer_guid(a_change->writerGUID);

wparams.sample_identity().sequence_number(a_change->sequenceNumber);

wparams.related_sample_identity(wparams.sample_identity());

set_fragments(a_change);

source timestap,writer sequnce number,guid prefix和entity id组成guid。在报文中的位置如上图所示。

相关推荐
贞明电子1 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF2 小时前
Linux
linux·服务器·网络
C^h2 小时前
c++ string
开发语言·c++
万联WANFLOW2 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
sbjdhjd2 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
raindayinrain2 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的2 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao3 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
小徐不徐说4 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
大都督会赢的4 小时前
C++第一节课
开发语言·c++