我正在为Diagnostic request和response编写CAPL,如果数据长达8个字节,我可以得到响应,如果数据是多帧的,我得不到响应,并且跟踪上的信息是“断开服务器和测试器之间的连接”,该如何处理?我知道CANTP帧,但在这种情况下,它应该由CAN/独木舟处理。

发布于 2017-06-08 23:53:30
请阅读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-05-24 19:39:48
我试图通过一个像22 XX YY这样的消息ID发送请求,这是一个读请求,如果响应小于8字节,这是很好的工作,如果响应超过8字节,这将不起作用。因此,我们需要使用在项目中使用的CDD(或任何描述文件)中定义的请求和响应的Diagnostic对象。
如果您不使用CDD,在这种情况下,您需要使用CCI (Capl回调接口),这通常是模拟设置所必需的。
https://stackoverflow.com/questions/43996709
复制相似问题