我正在为诊断请求和响应编写 CAPL,如果数据最多 8 个字节,我可以获得响应,如果数据是多帧我没有得到响应,并且跟踪上的消息是“断开服务器和测试仪之间的连接”,如何处理这个?我知道 CANTP 帧,但在这种情况下,它应该由 CAN/Canoe 处理。
问问题
5831 次
2 回答
1
请阅读 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);
}
}
于 2017-06-08T15:53:30.180 回答
-1
我试图通过消息 ID 以最粗略的形式发送请求,例如 22 XX YY,这是一个读取 DID 请求,如果响应小于 8 个字节,这很好用,如果响应大于 8 个字节,这将不起作用。因此,我们需要将诊断对象用于项目中使用的 CDD(或任何描述文件)中定义的请求和响应。
如果您不使用 CDD,在这种情况下,您需要使用 CCI(Capl 回调接口),这主要是模拟设置所必需的。
于 2017-05-24T11:39:47.927 回答