RTPS规范v2.5(中文版)

 


实时发布订阅协议
DDS互操作性有线协议
(DDSI-RTPS)
技术规范
V2.5
(2022-04-01正式发布)
https://www.omg.org/spec/DDSI-RTPS/2.5/PDF

目  录
1 范围    8
2 一致性    8
3 规范性参考文献    8
4 术语和定义    9
5 标识    9
6 附加信息    10
6.1 对OMG规范的修改    10
6.2 如何阅读本文    10
6.3 致谢    11
6.4 到期声明    13
7 概述    13
7.1 序言    13
7.2 DDS网络协议的要求    14
7.3 RTPS网络协议    15
7.4 RTPS平台无关模型(PIM)    16
7.4.1 结构模块    17
7.4.2 消息模块    18
7.4.3 行为模块    19
7.4.4 发现模块    20
7.5 RTPS平台特定模型(PSM)    20
7.6 RTPS传输模型    20
8 平台无关模型(PIM)    21
8.1 引言    21
8.2 结构模块    21
8.2.1 概述    22
8.2.1.1 RTPS虚拟机使用的类的总结    23
8.2.1.2 用于描述RTPS实体和类的类型的总结    23
8.2.1.3 RTPS实体的配置属性    25
8.2.2 RTPS HistoryCache    26
8.2.2.1 new    28
8.2.2.2 add_change    28
8.2.2.3 remove_change    28
8.2.2.4 get_seq_num_min    29
8.2.2.5 get_seq_num_max    29
8.2.3 RTPS CacheChange    29
8.2.4 RTPS 实体(Entity)    30
8.2.4.1 识别RTPS实体:GUID    30
8.2.4.2 RTPS参与者(Participants)的GUID    31
8.2.4.3 参与者中RTPS端点组的GUID    31
8.2.4.4 参与者内RTPS端点的GUID    32
8.2.5 RTPS 参与者(Participant)    32
8.2.6 RTPS组    33
8.2.7 RTPS 端点(Endpoint)    33
8.2.8 RTPS 写入者(Writer)    35
8.2.9 RTPS 读取者(Reader)    35
8.2.10 与DDS实体的关系    35
8.2.10.1 DDS数据写入者(DataWriter)    36
8.2.10.2 DDS 数据读取者(DataReader)    40
8.3 消息模块    43
8.3.1 概述    43
8.3.2 类型定义    44
8.3.3 RTPS消息的总体结构    45
8.3.3.1 RTPS报文头(Header)结构    46
8.3.3.2 消息头扩展HeaderExtension结构    47
8.3.3.3 子消息(Submessage)结构    50
8.3.4 RTPS消息接收器(RTPS Message Receiver)    52
8.3.4.1 消息接收器遵循的规则    53
8.3.5 RTPS SubmessageElements    54
8.3.5.1 GuidPrefix和EntityId    55
8.3.5.2 VendorId    55
8.3.5.3 ProtocolVersion    56
8.3.5.4 SequenceNumber序号    57
8.3.5.5 SequenceNumberSet    57
8.3.5.6 FragmentNumber    58
8.3.5.7 FragmentNumberSet    58
8.3.5.8 Timestamp    58
8.3.5.9 ParameterList    59
8.3.5.10 Count    59
8.3.5.11 ChangeCount    59
8.3.5.12 Checksum    60
8.3.5.13 MessageLength    60
8.3.5.14 UExtension4    60
8.3.5.15 WExtension8    60
8.3.5.16 LocatorList    61
8.3.5.17 SerializedData    61
8.3.5.18 SerializedDataFragment    61
8.3.5.19 GroupDigest    61
8.3.6 RTPS Header    61
8.3.6.1 目的    62
8.3.6.2 内容    62
8.3.6.3 有效性    62
8.3.6.4 接收方状态的变化    62
8.3.6.5 逻辑解释    62
8.3.7 The RTPS HeaderExtension    63
8.3.7.1 目的    63
8.3.7.2 内容    63
8.3.7.3 有效性    63
8.3.7.4 接收方状态的更改    63
8.3.7.5 理论解释    64
8.3.8 RTPS Submessages    64
8.3.8.1 AckNack    66
8.3.8.2 Data    68
8.3.8.3 DataFrag    70
8.3.8.4 GAP    73
8.3.8.5 HeaderExtension    76
8.3.8.6 Heartbeat    76
8.3.8.7 HeartbeatFrag    79
8.3.8.8 InfoDestination    80
8.3.8.9 InfoReply    81
8.3.8.10 InfoSource    83
8.3.8.11 InfoTimestamp    84
8.3.8.12 NackFrag    85
8.3.8.13 Pad    86
8.4 行为模型Behavior Module    87
8.4.1 概述    87
8.4.1.1 示例行为    88
8.4.2 互操作性所需的行为    89
8.4.2.1 通用要求    90
8.4.2.2 所需的RTPS编写器行为    90
8.4.2.3 所需的RTPS读取器行为    91
8.4.3 RTPS协议的实现    92
8.4.4 作家对每个匹配读者的行为    93
8.4.5 符号约定    93
8.4.6 类型定义    93
8.4.7 RTPS编写器参考实现    94
8.4.7.1 RTPS Writer    94
8.4.7.2 RTPS StatelessWriter    97
8.4.7.3 RTPS ReaderLocator    99
9 平台特定模型(PSM):UDP/IP    101
9.1 简介    101
9.2 符号约定    101
9.2.1 Name Space    101
9.2.2 结构的IDL表示和CDR线表示    101
9.2.3 位和字节的表示    102
9.3 RTPS类型的映射    102
9.3.1 全局唯一标识符(GUID)    102
9.3.1.1 GuidPrefix_t的映射    102
9.3.1.2 EntityId_t的映射    103
9.3.1.3 预定义的EntityId    103
9.3.1.4 协议2.2版中已弃用的EntityId    104
9.3.1.5 GUID_t的映射    105
9.3.2 子消息或内置主题数据中出现的类型映射    106
9.3.2.1 IDL Definitions    106
9.3.2.2 Time_t    109
9.3.2.3 Duration_t    109
9.3.2.4 Locator_t    109
9.3.2.5 GroupDigest_t    110
9.3.2.6 Checksum32_t, Checksum64_t, Checksum128_t    110
9.3.2.7 MessageLength_t    110
9.3.2.8 UExtension4_t    110
9.3.2.9 WExtension8_t    111
9.3.2.10 SequenceNumber_t    111
9.3.2.11 ChangeCount_t    111
9.3.2.12 BuiltinEndpointSet_t    111
9.4 RTPS消息的映射    112
9.4.1 总体结构    112
9.4.2 PIM子消息元素的映射    112
9.4.2.1 EntityId    112
9.4.2.2 GuidPrefix    113
9.4.2.3 VendorId    113
9.4.2.4 ProtocolVersion    113
9.4.2.5 SequenceNumber    114
9.4.2.6 SequenceNumberSet    114
9.4.2.7 FragmentNumber    115
9.4.2.8 FragmentNumberSet    116
9.4.2.9 Timestamp    116
9.4.2.10 LocatorList    117
9.4.2.11 ParameterList    117
9.4.2.12 SerializedPayload    119
9.4.2.13 Count    120
9.4.2.14 ChangeCount    120
9.4.2.15 Checksum    120
9.4.2.16 消息长度    123
9.4.2.17 UExtension4    123
9.4.2.18 WExtension8    124
9.4.2.19 GroupDigest    124
9.4.3 其他子消息元素    124
9.4.3.1 LocatorUDPv4    124
9.4.4 RTPS报头的映射    125
9.4.5 RTPS子消息的映射    125
9.4.5.1 Submessage Header    125
9.4.5.2 HeaderExtension子消息    127
9.4.5.3 AckNack Submessage    129
9.4.5.4 Data子消息    129
9.4.5.5 DataFrag自消息    131
9.4.5.6 Gap子消息    132
9.4.5.7 HeartBeat子消息    133
9.4.5.8 HeartBeatFrag子消息    134
9.4.5.9 InfoDestination子消息    134
9.4.5.10 InfoReply    135
9.4.5.11 InfoSource子消息    135
9.4.5.12 InfoTimestamp    136
9.4.5.13 Pad子消息    136
9.4.5.14 NackFrag子消息    137
9.4.5.15 InfoReplyIp4子消息(特定于PSM)    137
9.5 映射到UDP/IP传输消息    138
9.6 RTPS协议的映射    138
9.6.1 HeaderExtension中的ParameterId定义    138
9.6.2 默认定位器    139
9.6.2.1 发现流量    139
9.6.2.2 用户流量    139
9.6.2.3 默认端口号    140
9.6.2.4 简单参与者发现协议的默认设置    140
9.6.3 内置端点的数据表示    141
9.6.3.1 ParticipantMessageData内置端点的数据表示    141
9.6.3.2 简单发现协议内置端点    142
9.6.4 用于表示在线QoS的ParameterId定义    147
9.6.4.1 内容筛选器信息(PID_Content_filter_info)    148
9.6.4.2 相干集(PID_Coherent_set)    150
9.6.4.3 组相干集(PID_Group_Coherent_Set)    150
9.6.4.4 组序列号(PID_Group_SEQ_NUM)    151
9.6.4.5 Publisher Writer信息(PID_Writer_GROUP_Info)    151
9.6.4.6 安全Publisher Writer信息(PID_Secure_Writer_GROUP_Info)    151
9.6.4.7 原始写入程序信息(PID_Original_Writer_Info)    152
9.6.4.8 密钥哈希(PID_KEY_HASH)    152
9.6.4.9 状态信息(PID_STATUS_INFO)    155
9.6.5 为其他DDS规范保留的参数ID    156
9.6.6 协议不推荐的参数ID    156
10 序列化有效载荷表示Serialized Payload Representation    157
10.1 简介    157
10.2 SerializedPayloadHeader和表示标识符    158
10.3 RTPS发现内置终结点的SerializedPayload    158
10.4 其他RTPS内置端点的SerializedPayload    159
10.5 用户定义DDS主题的SerializedPayload    159
10.6 内置端点数据示例    160
10.7 用户定义主题数据示例    163
11 A References    164

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50390.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机和医学的交叉融合到底有多强呢?

目录 简介 人工智能在医学诊断中的应用 计算机辅助药物研发 计算机技术在基因组学研究中的应用 数字病理学 穿戴式医疗设备 虚拟现实(VR)和增强现实(AR)技术在医学教育中的应用 机器人手术 区块链技术在医学领域的应用 遥…

【GoLang】MAC安装Go语言环境

小试牛刀 首先安装VScode软件 或者pycharmmac安装brew软件 brew install go 报了一个错误 不提供这个支持 重新brew install go 之后又重新brew reinstall go 使用go version 可以看到go 的版本 使用go env 可以看到go安装后的配置 配置一个环境变量 vim ~/.zshrc, # bre…

UEditor 百度富文本编辑器使用 遇到问题

小小吐槽 碰到前后不分离项目,富文本使用的UEdtior UEditor 点击上传图片转base64 在ueditor.all.js文件中找到这个 callback()函数 这里使用根据图片的url转成base64 UEditore 粘贴图片转base64 UEditor回显图片(base64) 把ueditor.all…

css 书写规范!其他人总结!

CSS书写顺序 1.位置属性(position, top, right, z-index, display, float等) 2.大小(width, height, padding, margin) 3.文字系列(font, line-height, letter-spacing, color- text-align等) 4.背景(background, border等) 5.其他(animation, transition等) CSS书写规范 使用…

免费的音频转换器带你突破音频格式束缚

曾经有一个名叫吴欢的音乐爱好者,他热爱收集各种音频文件,从经典的老歌到新潮的流行曲,样样都不放过。然而,他遇到了一个令人头疼的问题:因为音频格式的不同,他无法将一些珍贵的音乐记录转化为文字形式。他…

IDEA代码自动格式化工具

1.自动import 在IDEA中,打开 IDEA 的设置,找到 Editor -> General -> Auto Import。勾选上 Add unambiguous imports on the flyOptimize imports on the fly (for current project) 2.gitee 提交格式化 设置方法如下: 1.打开设置 2.找到版本…

React Native实现震动反馈效果

React Native实现理想的震动效果 一、背景说明 业务开发中,总会用到一些和用户反馈的效果,用来提升用户对于某个事件或者操作的重要程度,比如常见的就是 长按复制、滑动或点击图表、点击底部TabBar时的反馈等操作。 二、构思实现及过程 2.…

数据结构基本概念及算法分析

文章目录 1. 数据结构基本概念1.1 基本概念和术语1.1.1 数据1.1.2 数据元素1.1.3 数据项1.1.4 数据对象1.1.5 数据结构 1.2 逻辑结构与物理结构1.2.1 逻辑结构(我们最需要关注的问题)1.2.2 物理机构 1.3 数据类型1.3.1 数据类型定义1.3.2 抽象数据类型 2. 算法分析2.1 算法的复…

pytest 自定义HOOK函数

除了系统提过的HOOK函数外,也可以通过自定义HOOK的方式实现想要的功能。 首先创建一个py文件,里面定义自己的HOOK函数,主要pytest里面的hook函数必须以pytest开头。 #myhook.pydef pytest_myhook(user):"""自定义HOOK函数&q…

element时间选择器的默认值

概览:vue使用element组件,需要给时间选择器设置默认值,场景一:默认时间选择器,场景二:时间范围选择器,开始时间和结束时间。 一、默认时间选择器 实现思路: element组件的v-model绑…

【C语言学习——————动态内存管理】

文章目录 一、什么是动态内存管理二、动态内存函数的介绍 1.malloc函数的介绍2.calloc函数的介绍3.realloc函数的介绍三、free函数的介绍 一.什么是动态内存管理 我们知道数据都是在内存中进行储存的,但是如果我们需要调用内存,我们可以通过定义一个变量…

param.grad、requires_grad、grad_fn、grad/梯度为None?

基本概念 1)is_leaf 叶子节点和非叶子节点的区别:计算图中的节点分为叶子节点和非叶子节点,叶子节点可以理解成没有其他tensor再利用它进行计算(例如b a1,那么b需要a进行计算,那么a就不是叶子结点&…

day38-Mobile Tab Navigation(手机tab栏导航切换)

50 天学习 50 个项目 - HTMLCSS and JavaScript day38-Mobile Tab Navigation&#xff08;手机tab栏导航切换&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"…

Git克隆文件不显示绿色勾、红色感叹号等图标

1、问题 Git和TorToiseGit安装后&#xff0c;Git克隆的文件不会显示绿色勾、红色感叹号等图标。 2、检查注册表 2.1、打开注册表 (1)WinR打开运行窗口&#xff0c;输入regedit&#xff0c;点击确定&#xff0c;打开注册表编辑器。 2.2、找如下路径 (1)找到路径 计算机\HKEY_…

Java开发环境以及项目搭建案例汇总

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 友情提示 1、 假若你的设备已有可用的Java开发基础环境&#xff0c;则无需重新搭建 2、 假若你需重新搭建Java开发&#xff0c;请务必彻底卸载之前的环境 3、 请尽量保证与…

RocketMQ 行业分享

5.0的架构发生了重大调整&#xff0c;添加了一层rocketmq-proxy,可以通过grpc的方式接入。 参考 https://juejin.cn/post/7199413150973984827

win10安装vs6行号插件

插件包名&#xff1a;win10 VC6LineNumberAddin 下载包&#xff1a; 链接: https://pan.baidu.com/s/13T-NAxQQDcA_K1hHJQ0vWw?pwdbe3r 提取码: be3r 修改reg为以下&#xff1a; Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\DavidHowe Software\Lie…

JAVA SE -- 第十一天

&#xff08;全部来自“韩顺平教育”&#xff09; 异常-Exception 一、异常介绍 1、基本介绍 Java语言中&#xff0c;将程序执行中发生的不正常情况为“异常”&#xff08;开发过程中的语法错误和逻辑错误不是异常&#xff09; 2、执行过程中发生的异常事件可分为两大类 …

MySQL基础(五)主从复制及读写分离

目录 前言 一、概述 &#xff08;一&#xff09;、MySQL Replication &#xff08;二&#xff09;、MySQL复制类型 &#xff08;三&#xff09;、MySQL支持的复制方式 二、部署MySQL主从异步复制 &#xff08;一&#xff09;、master&#xff08;主&#xff09; &#x…

带你读论文第三期:微软研究员、北大博士陈琪,荣获NeurIPS杰出论文奖

Datawhale干货 来源&#xff1a;WhalePaper&#xff0c;负责人&#xff1a;芙蕖 WhalePaper简介 由Datawhale团队成员发起&#xff0c;对目前学术论文中比较成熟的 Topic 和开源方案进行分享&#xff0c;通过一起阅读、分享论文学习的方式帮助大家更好地“高效全面自律”学习&…