CAPL多帧处理

时间:2017-05-16 08:52:56

标签: capl

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

enter image description here

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:-1)

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

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