UDS on CAN TP tests

66 views Asked by At

In order to cover the requirements I have to send UDS messages via transport protocol. The idea is to test responses to abuses such as sending a SF of length FFF or 6 as well as sending multiple frames out of order and setting FlowStatus to OverFlow. Is this feasible using CAPL?

I have tried to declare and send messages but I'm unable to send a message with a DLC bigger than 15 (CAN 2.0b?)


variables {
  message 00 udsMessage;
  message 01 udsMessage2;
}

void test1() {
  // Send a single frame (SF) with a length of 6 bytes
  udsMessage.byte(0) = 0x02; // UDS Service Request
  udsMessage.byte(1) = 0x01; // Example data
  udsMessage.byte(2) = 0x02; // Example data
  udsMessage.byte(3) = 0x03; // Example data
  udsMessage.byte(4) = 0x04; // Example data
  udsMessage.byte(5) = 0x05; // Example data
  udsMessage.byte(6) = 0x06; // Example data
  udsMessage.byte(7) = 0x00; // Padding byte
  write("Test 1: Sending UDS SF: ", udsMessage);
  output(udsMessage); // Send CAN frame
}
void test2() {
  udsMessage2.dlc = 0xFF;
  udsMessage2.byte(0) = 0x02; // UDS Service Request
  udsMessage2.byte(1) = 0x01; // Example data
  udsMessage2.byte(2) = 0x02; // Example data
  udsMessage2.byte(3) = 0x03; // Example data
  udsMessage2.byte(4) = 0x04; // Example data
  udsMessage2.byte(5) = 0x05; // Example data
  udsMessage2.byte(6) = 0x06; // Example data
  udsMessage2.byte(7) = 0x00; // Padding byte
  write("Test 1: Sending UDS SF: ", udsMessage);
  output(udsMessage2); // Send CAN frame

}
on key 't' {
  test1();
}
on key 'u' {
  // Start executing Test2 when 'u' key is pressed
  test2();

How to define TP SF, FF, CF etc in CAPL especially in the context of UDS testing?

0

There are 0 answers