我正在使用CANoe 10.0进行一些诊断测试,并且我必须为测试生成报告。因此,我使用测试设置来创建使用CAPL的测试用例。我知道测试是从函数"MainTest“开始的。在此之后,我不知道如何组织我的测试用例,以及使用哪些函数来获得报告中的正确格式。例如,我想发送一个诊断请求,并期望得到一个特定的响应。我希望能够在报告中显示消息的发送、收到的响应以及预期的响应。在此基础上,应该显示裁决。
发布于 2019-05-31 20:15:27
下面你可以找到简单的例子。在Vector.Before提供的CANoe 'Help‘和"Sample Configurations“中可以找到更多示例和其他用例请记住添加CDD文件,该文件将允许您将诊断服务导入到CANoe环境(我使用了示例矢量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!");
}
}
https://stackoverflow.com/questions/56372616
复制相似问题