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?