实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_010

8.3.6 RTPS Header

如第8.3.3节所述,每个RTPS消息必须以Header开头。

8.3.6.1目的

Header用于将消息标识为属于RTPS协议,以标识所使用的RTPS协议的版本,并提供适用于消息中包含的子消息的上下文信息。

8.3.6.2内容

构成Header结构的元素在第8.3.3.1节中描述。只有在协议的主要版本也发生变化时,才能更改Header的结构。

8.3.6.3有效性

如果满足以下任何条件,则Header无效:

  • 消息所包含的八位字节数少于包含完整标头的八位字节数。所需数量由PSM定义。
  • 其协议值与PROTOCOL_RTPS的值不匹配。
  • 主要协议版本大于实现支持的主要协议版本。

8.3.6.4接收方状态的变化

接收器的初始状态在8.3.4节中描述。 本节介绍新消息的标头如何影响Receiver的状态。

8.3.6.5 逻辑解释

无。

8.3.7 RTPS Submessages

RTPS协议版本2.1定义了几种Submessages。 它们分为两组:实体 - 子消息和解释器 - 子消息。 实体子消息以RTPS实体为目标。 解释器子消息修改RTPS接收器状态并提供有助于处理后续实体子消息的上下文。

实体子消息是:

  • Data:包含有关应用程序日期对象的值的信息。 数据子消息由Writer(NO_KEY Writer或WITH_KEY Writer)发送给Reader(NO_KEY Reader或WITH_KEY Reader)。
  • DataFrag:等效于Data,但仅包含新值的一部分(一个或多个片段)。 允许将数据作为多个片段传输,以克服传输消息大小限制。
  • Heartbeat:描述Writer中可用的信息。心跳消息由Writer(NO_KEY Writer或WITH_KEY Writer)发送到一个或多个Reader(NO_KEY Reader或WITH_KEY Reader)。
  • HeartbeatFrag:对于分片数据,描述Writer中可用的片段。 HeartbeatFrag消息由Writer(NO_KEY Writer或WITH_KEY Writer)发送到一个或多个Reader(NO_KEY Reader或WITH_KEY Reader)。
  • Gap:描述与Reader不再相关的信息。Gap消息由Writer发送给一个或多个Reader。
  • AckNack:向Writer提供有关Reader状态的信息。AckNack消息由Reader发送给一个或多个Writer。
  • NackFrag:向Writer提供有关Reader状态的信息,更具体地说,描述了Reader仍然缺少哪些片段。NackFrag消息由Reader发送给一个或多个Writer。
    解释器子消息:
  • InfoSource:提供有关后续实体子消息来源的信息。 该Submessage主要用于转发RTPS子消息。 这在当前的规范中没有讨论。
  • InfoDestination:提供有关后续实体子消息的最终目的地的信息。 该Submessage主要用于转发RTPS子消息。 这在当前的规范中没有讨论。
  • InfoReply:提供有关在何处回复后续子消息中显示的实体的信息。
  • InfoTimestamp:为后续实体子消息提供源时间戳。
  • Pad:用于在内存对齐需要时为消息添加填充。
    实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_010
    图8-13 – RTPS Submessage

本节介绍每个子消息及其解释。 每个Submessage在表8.32中描述的标题下以相同的方式描述。

表8-32 - 用于描述每个Submessage的方案
实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_010


译文连载

RTPS规范-上一篇:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_009

RTPS规范-下一篇:待续

DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001


相关链接

【1-What:什么是DDS?

【2-Why:为什么选择DDS?

【3-How:DDS如何工作?

DDS科普:一文读懂DDS(数据分发服务)

产品介绍:BLUE DCS分布式数据连接解决方案

产品试用: 海蓝云平台-Blue DCS


实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_010