I am writting a CAPL for Diagnostic request and response, I can get response if the data is up to 8 bytes, if data is multiframe I am not getting respone and the message on the trace is "Breaking connection between server and tester", how to handle this? I know about the CANTP frames but in this case it should handle by CAN/Canoe .
-
See the CANoe ISO-TP demo. – sergej May 18 '17 at 09:27
-
Yes I know about the ISO-TP, I wanted to send the request over capl which has a response more than 8 bytes. – Laxmikant Indur May 24 '17 at 11:36
2 Answers
Please read CANoe ISO-TP protocol. In case of multiframe response, the tester has to send the flow control frame which provides synchronization between Sender and Receiver, which is usually 0x30. It also has fields for Block size of continous frames and seperation time. Try the below CAPL code.
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);
}
}

- 19
- 1
- 3
-
Check [Transmitting data over ISO-TP in CANoe using CAPL](https://stackoverflow.com/questions/35626632/transmitting-data-over-iso-tp-transport-protocol-in-canoe-using-capl) for an ISO-TP example. – Sonic78 Jul 07 '17 at 07:04
I was trying to send the request over a message ID in most gross form like 22 XX YY , which is a read DID request,this works well if the response is less than 8 bytes, if response is more than 8 bytes this wont work. so we need to use the Diagnostic objects for the request and response as defined in the CDD(or any description file) as used in the project.
If you are not using CDD, in such cases you need to use CCI (Capl call back interfaces), mostly that is necessary for simulation setups.

- 30
- 1
- 5