autosar - 通过PDUR验证路由
问题描述
为了验证 COM 层是否收到消息,我们可以为 Pdu/Signal 添加一个 Ipdu 标注,并在调试时等待断点命中。
Pdu 路由不是这种情况。
如果消息通过 PduR 路由,它永远不会到达 Com 层。因此,无法验证设备是否接收到消息(即 PduR 没有标注功能)。
有没有一种方法可以验证消息是否被 PduR 接收,并成功复制到 Tx Pdu 以发送出去(即验证成功网关)?
解决方案
请记住,PduR 有时可以有多个目的地,我们有这样的 ECU,它们将消息路由到例如本地到 Com,同时路由它们以在不同的网络上传输。
PduR 由 RxIndications 和 TxConfirmations(及其对应的 Tp 接口)触发。因此,对于正常的路由关系,您应该为 RxPdu 挂上 RxIndication,并且可以例如等待 TxPdu 的 TxConfirmation,它告诉 TxPdu 已传输。
请记住,即:
- 一个 RxPdu 可以排队,这意味着它们可能不会直接被传输。如果像 XCP 这样流式传输 Pdu,这可能会很方便,以便在当前无法传输 PDU 时保持 PDU 的顺序。
- 路由路径可能在运行时启用/禁用,例如由 BswM 规则和 ActionLists 调用处理的系统条件
PduR_[Enable|Disable]Routing(<routingpathgroupId>)
推荐阅读
- c# - WPF Xceed PropertyGrid ComboBox 绑定 - 如何填充来自另一个类的项目列表?
- regex - 正则表达式匹配特定字符串之前的所有内容(如果存在)(GA Data Studio)
- go - 将浮点结构转换为数组而无需迭代
- javascript - 如何在多个 Google 表格中使用多个 OnEdit 功能
- c# - 能够合并冲突的 Visual Studio 2019 新 Git 体验
- mapbox - Mapbox Directions,自定义路线源
- javascript - 为什么即使我正在处理正在发生的假定错误,我的 nodejs 服务器也会崩溃?
- java - java - 如何从带有数组的csv文件中删除记录
- python - 在 python 中创建自己的 haar 级联模型时出错
- c++ - 使用 R 中的多维数值积分加速 for 循环