中间件交接文档

1.L3 QOS 设计逻辑

L3需要做跨板隔离,当前版本在服务发现的两个阶段都实现了基于分区的隔离机制,分别为PDP分区隔离,EDP分区隔离

Partition QoS Policy

该 QoS 策略允许在由 Domain ID 引入的物理分区内部,再引入一个逻辑分区。 为了让 DataReader 能够看到 DataWriter 所做的变更,不仅 Topic 必须匹配,而且它们至少需要共享一个逻辑分区(参见 PartitionQosPolicy)。

在同一个 Domain ID(物理网络)内,DataWriter(发布者)和 DataReader(订阅者)要想成功匹配并通信,除了常规条件(Topic 名称相同、消息类型兼容、其他 QoS 兼容)外,还必须至少共享一个相同的 Partition 名称。这种隔离手段,性能开销极小(只是字符串比较),却能提供非常强的逻辑隔离保障。

  1. PDP 阶段(Participant 发现)已经过滤: 如果 Participant 级别的 Partition 不匹配,很多实现甚至不会完成 Participant 的相互发现(因为 PDP 报文已携带 Partition 信息)。 → 这时根本不会进入 EDP 阶段。
  2. 即使 PDP 阶段通过了,EDP 阶段也会二次拦截 : 在 EDP(端点宣告)阶段,当 DataWriter 宣告自己的 Publication 或 DataReader 宣告 Subscription 时,报文中会携带完整的 Partition 列表。 接收方在处理 EDP 报文时,会先检查 Partition 是否有交集:
    • 有交集 → 继续后续 QoS、Topic 等匹配逻辑,可能发送匹配的 EDP 响应报文。
    • 无交集直接丢弃该 EDP 报文,不进行后续匹配,也不发送任何响应报文

结论 : Partition 不匹配时,EDP 报文要么根本不发,要么发了也会被对方立即丢弃,不会建立任何通信关系,也不会浪费网络带宽继续后续匹配流程。

PDP: 进程级别的分区隔离,两个进程间必须有同名的Partition Name,PDP报文才会在两个进程间发送接收匹配,没有同名的分区名,直接不发PDP报文

EDP: DR/DW级别的匹配,需要校验DR与DW之间的分区名是否一致,DW与DR直接必须有同名的Partition Name,DR与DW直接才能完成匹配,进行通信,否则不发EDP报文

代码说明:

代码修改主要在cpp:

修改点:读取逻辑,存储逻辑

2.配置使用方式

以A板进程与B板进程跨板通信为例,B板发A板收,需要按照以下配置

3.最近合入记录

|----|------|------|------|
| MR | 合入内容 | 影响范围 | 注意事项 |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |

4.注意点

AB板间的通信不能走组播地址,直接抓包已经看过

5.常见问题 & 排查指南

1.为了手动测试,Python命令和程序,在QOS文件中没有配置隔离,直接可以跨板通信

2.如果在两个进程间通信需要配置,需要查看发送接收进程日志,不能只echo

3.配置QOS后,需要检查程序是不是全都正常启动,通信是否正常

4.需要满足AB完全隔离,则A板程序在A分区通信,B板程序在B分区通信,需要跨板通信的进程在C分区上通信

5.若某个程序,比如AB板都有zdi_ehr这个程序,这两个程序只想各自接收两个程序数据,其他进程的数据不接收,则需要另外开启一个分区通信

6.配置完分区隔离的topic,需要查看topic hz是否翻倍

7.可查看DDS日志分区名是否配置成功

  1. rviz 通信交接

1.通信排查

板子跟rviz docker需要网络盒子连接,,且互相可以ping通

板子内需要先执行replace.sh脚本

检查rviz笔记本ip,子网掩码是否配置成功

检查rviz docker qos 是否包含板子ip

检查docker内是否有topic ,topic是否有输出

检查板子上程序是否启动成功

检查板子上qos文件是否包含rviz笔记本IP

  1. rviz界面

rviz界面时间戳是否打印正常

rviz界面是否显示车道线,没有车道线需要先标定

相关推荐
极客先躯18 分钟前
如何自动提取Git指定时间段的修改文件?Win/Linux双平台解决方案
linux·git·elasticsearch
C_心欲无痕34 分钟前
nginx - 实现域名跳转的几种方式
运维·前端·nginx
suijishengchengde1 小时前
****LINUX时间同步配置*****
linux·运维
willhuo1 小时前
基于xray的匿名、授权、IP白名单代理访问研究
服务器·网络·tcp/ip
幻云20101 小时前
AI自动化编排:从入门到精通(基于Dify构建AI智能系统)
运维·人工智能·自动化
qiuqyue1 小时前
基于虹软Linux Pro SDK的多路RTSP流并发接入、解码与帧级处理实践
linux·运维·网络
切糕师学AI2 小时前
Linux 操作系统简介
linux
南烟斋..2 小时前
GDB调试核心指南
linux·服务器
爱跑马的程序员2 小时前
Linux 如何查看文件夹的大小(du、df、ls、find)
linux·运维·ubuntu
代码AI弗森4 小时前
n8n 专题:从“自动化脚本”到“可视化工作流引擎”(自建、节点、Webhook、生产部署)
运维·自动化