目录
7,long diagSendRequest (diagRequest obj)
8,long TestWaitForDiagRequestSent (diagRequest request, dword timeout);
9,long TestWaitForDiagResponse (diagRequest request, dword timeout)
10,long diagGetRespPrimitiveByte( diagRequest request, DWORD bytePos)
一,系统需求
二,测试用例![](https://i-blog.csdnimg.cn/direct/f6cd5503929a412c88ef42b5c681b53f.png)
三,代码
includes
{
}
variables
{
const long ReceiveTimeout = 5000; //等待最大的接收超时时间
message 0x624 TX1; //唤醒帧
int i; //读取的DID
}
void MainTest ()
{
output(TX1);
testModuleTitle("HS11 DIAGTEST");
testReportAddEngineerInfo("TEST ENGINEER","ROSE");
Read_DID_0x001_SwMcuVer();
Read_DID_0x005_BkltSts();
}
testcase Read_DID_0x001_SwMcuVer() //读MCU版本号
{
int i;
byte DID_READ[2]; //存续读取数据的数组
byte MCUDID[2]={0x01,0x03}; //写入DID
int DIDBYTE=6; //版本号DID所在BYTE位数
long status; //诊断响应结果
diagRequest HS11_Diag.SwMcuVer_Read READ_220001_RQ; //创建一个诊断请求变量
diagResponse HS11_Diag.SwMcuVer_Read READ_220001_PR; //创建一个诊断响应变量
diagSendRequest(READ_220001_RQ); //发送诊断请求
if(testWaitForDiagRequestSent(READ_220001_RQ,ReceiveTimeout) == 1) //检查诊断请求发送情况
{
TestStepPass("READ_220001诊断请求发送成功");
}
else
{
TestStepFail("READ_220001诊断请求发送失败");
}
if(TestWaitForDiagResponse(READ_220001_RQ, ReceiveTimeout) == 1) //检查诊断响应结果
{
status = DiagGetLastResponseCode(READ_220001_RQ); //响应结果赋值
if(status == -1) //正响应
{
write("READ_220001正响应");
TestStepPass("READ_0001正响应");
}
else //负响应
{
write("READ_220001负响应",status);
TestStepFail("READ_0001负响应");
}
}
for(i = 0;i < 8; i++)
{
DID_READ[i]=DiagGetRespPrimitiveByte(READ_220001_RQ,i+6); //获取诊断响应上DID对应字节的数据
}
for(i=0;i<7;i++)
{
if(DID_READ[i] != MCUDID[i]) //遍历
{
TestStepFail("MCU版本号错误");
break;
}
}
if(i == 7)
TestStepPass("MCU版本号正确");
}
四,Capl内置函数:简易注释
1,TestModuleTitle
测试模块标题
2,TestReportAddEngineerInfo
测试工程师信息
3,TestStepFail/TestStepPass
测试结果判定
5,On diagRequest
创建诊断请求
6,On diagResponse
创建诊断响应
7,long diagSendRequest (diagRequest obj)
诊断请求发送
8,long TestWaitForDiagRequestSent (diagRequest request, dword timeout);
判定诊断请求发送是否成功(void=1,成功)
9,long TestWaitForDiagResponse (diagRequest request, dword timeout)
判断诊断响应(正响应/负响应,void= -1,成功)
10,long diagGetRespPrimitiveByte( diagRequest request, DWORD bytePos)
获取诊断响应指定字节数据
五,详细注释
1,具体调用方法在Vector官网查询
file:///C:/Program%20Files/Vector%20CANoe%2016/Help01/CANoeCANalyzerHTML5/CANoeCANalyzer.htm