【问题标题】:CAPL Multiframe handlingCAPL 多帧处理
【发布时间】:2017-10-15 06:07:04
【问题描述】:

我正在为诊断请求和响应编写 CAPL,如果数据最多 8 个字节,我可以获得响应,如果数据是多帧我没有得到响应,并且跟踪上的消息是“断开服务器和测试器之间的连接“,这要怎么处理?我知道 CANTP 帧,但在这种情况下,它应该由 CAN/Canoe 处理。

【问题讨论】:

  • 查看 CANoe ISO-TP 演示。
  • 是的,我知道 ISO-TP,我想通过响应超过 8 个字节的 capl 发送请求。

标签: capl


【解决方案1】:

我试图通过消息 ID 以最粗略的形式发送请求,例如 22 XX YY,这是一个读取 DID 请求,如果响应小于 8 字节,则此方法效果很好,如果响应大于 8 字节,则此不会工作。因此,我们需要将诊断对象用于项目中使用的 CDD(或任何描述文件)中定义的请求和响应。

如果您不使用 CDD,在这种情况下,您需要使用 CCI(Capl 回调接口),这主要是模拟设置所必需的。

【讨论】:

    【解决方案2】:

    请阅读 CANoe ISO-TP 协议。在多帧响应的情况下,测试仪必须发送提供发送方和接收方之间同步的流控制帧,通常为 0x30。它还具有连续帧的块大小和分离时间的字段。试试下面的 CAPL 代码。

    variables
    {
       message 0x710 msg = { dlc=8,dir = rx };
       byte check_byte0;
    }
    on message 0x718
    {
        check_byte0 = this.byte(0) & 0x30;
        if(check_byte0 == 0x10)
        {
           msg.dword(0)=0x30;
           msg.dword(4)=0x00;
           output(msg2);
        }
    }
    

    【讨论】:

    猜你喜欢
    • 2016-09-15
    • 1970-01-01
    • 2019-03-26
    • 2016-11-07
    • 2011-03-29
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多