Ниже вы можете найти простой пример.Дополнительные примеры и другие варианты использования вы можете найти в справке и примерных конфигурациях CANoe, предоставленных Vector. Перед первой попыткой не забудьте добавить файл CDD, который позволит вам импортировать диагностические услуги в среду CANoe (я использовал пример Vector CDD).,
void MainTest()
{
TestModuleTitle ("ECU DIAGNOSTICS TEST");
TestModuleDescription ("Basic Diagnostics Test");
TestGroupBegin("ECU Extended session", "ReadPartNubmers");
ExtendedDiagnosticSession_Start();
//testcase
//testcase
//...
//testcase n
TestGroupEnd();
TestGroupBegin("ECU Identification", "ReadPartNubmers");
ReadSerialPartNumber();
//testcase eg ReadSerialPartNumber()...
//testcase
//...
//testcase
TestGroupEnd();
}
testcase ReadSerialPartNumber()
{
diagRequest ABS_ESP.Serial_Number_Read req; //Service from CDD
TestCaseTitle("TEST 1 ReadPartNumber", "Read Serial Part Number");
diagSendRequest(req);
if (TestWaitForDiagResponse(req, 2000)== 1)
{
testReportWriteDiagResponse(req);
if(DiagGetLastResponseCode(req) == -1) // Positive response
{
byte DataBuffer[50];
diagGetRespParameterRaw(req,"SerialNumber",DataBuffer,20);// get data from response
if(DataBuffer[0] == 0xAA)//dummy response verification
{
TestStepPass("Serial Number is correct");
}
else
{
TestStepFail("Wrong Part number ");
}
}
else if(DiagGetLastResponseCode(req) > 0)//Negative response
{
TestStepFail("Negative response received");
}
}
else
{
TestStepFail("No answer from ECU!");
}
}
testcase ExtendedDiagnosticSession_Start()
{
diagRequest ABS_ESP.ExtendedDiagnosticSession_Start req; //Service from CDD,
TestCaseTitle("Test no 1", "Set Extended session");
diagSendRequest(req);
if (TestWaitForDiagResponse(req, 2000)== 1)
{
testReportWriteDiagResponse(req);
if(DiagGetLastResponseCode(req) == -1) // Positive response
{
TestStepPass("Positive");
}
else if(DiagGetLastResponseCode(req) > 0)//Negative response
{
TestStepFail("ExtendedDiagnosticSession","Negative response received");
}
}
else
{
TestStepFail("ExtendedDiagnosticSession","No answer from ECU!");
}
}