【CAPL语言】UDS DTC老化测试复位脚本
2026/7/9 18:11:07 网站建设 项目流程

老化测试一般复位40次,本文档提供39次和40次复位脚本,适用vector CANoe!

可直接套用,改下面代码中的“CDD”,变成你项目CDD的名字即可。


  • 39次复位
/*@!Encoding:936*/ includes { } variables { int i; const long SendTimeout = 5000; //等待最大的发送超时时间 const long ReceiveTimeout = 5000; //等待最大的接收超时时间 } void MainTest() { reset39(); } testcase reset39() { for(i=1;i<40;i++) { diagRequest CDD.Hard_Reset_Reset PHY_1101; testwaitfortimeout(200); if(1==Send_DiagRequest_diag(PHY_1101)) { write("已复位 %d 次",i); } else { write("ERROR"); } } } long Send_DiagRequest_diag(diagrequest *DiagReq) { long retVal; TestReportWriteDiagObject(DiagReq); //打印发送诊断 diagSendRequest(DiagReq); //请求诊断发送 if(1==TestWaitForDiagRequestSent(DiagReq, SendTimeout)) //等待诊断发送成功 { write("Request was sent successfully"); TestStepPass("Request was sent successfully"); if(1==TestWaitForDiagResponse(DiagReq, ReceiveTimeout)) //等待诊断有响应 { TestReportWriteDiagResponse(DiagReq); //打印诊断接收 write("Request with response"); TestStepPass("Request with response"); retVal = DiagGetLastResponseCode(DiagReq); if(-1==retVal) //有正响应 { write("Positival response received"); TestStepPass("Positival response received"); } else if(0<retVal) //有负响应 { write("Negative response received=%X",retVal); TestStepFail("Negative response received"); return retVal; } else { write("No response has been received yet"); //目前尚未收到任何答复 TestStepFail("No response has been received yet"); return 0; } } else //诊断超时无响应 { write("Request with no response,The timeout was reached"); TestStepFail("Request with no response,The timeout was reached"); return 0; } } else //诊断发送失败 { write("Request could not be sent"); TestStepFail("Request could not be sent"); return 0; } return 1; }
  • 40次复位
/*@!Encoding:936*/ includes { } variables { int i; const long SendTimeout = 5000; //等待最大的发送超时时间 const long ReceiveTimeout = 5000; //等待最大的接收超时时间 } void MainTest() { reset40(); } testcase reset40() { for(i=1;i<=40;i++) { diagRequest CDD.Hard_Reset_Reset PHY_1101; testwaitfortimeout(200); if(1==Send_DiagRequest_diag(PHY_1101)) { write("已复位 %d 次",i); } else { write("ERROR"); } } } long Send_DiagRequest_diag(diagrequest *DiagReq) { long retVal; TestReportWriteDiagObject(DiagReq); //打印发送诊断 diagSendRequest(DiagReq); //请求诊断发送 if(1==TestWaitForDiagRequestSent(DiagReq, SendTimeout)) //等待诊断发送成功 { write("Request was sent successfully"); TestStepPass("Request was sent successfully"); if(1==TestWaitForDiagResponse(DiagReq, ReceiveTimeout)) //等待诊断有响应 { TestReportWriteDiagResponse(DiagReq); //打印诊断接收 write("Request with response"); TestStepPass("Request with response"); retVal = DiagGetLastResponseCode(DiagReq); if(-1==retVal) //有正响应 { write("Positival response received"); TestStepPass("Positival response received"); } else if(0<retVal) //有负响应 { write("Negative response received=%X",retVal); TestStepFail("Negative response received"); return retVal; } else { write("No response has been received yet"); //目前尚未收到任何答复 TestStepFail("No response has been received yet"); return 0; } } else //诊断超时无响应 { write("Request with no response,The timeout was reached"); TestStepFail("Request with no response,The timeout was reached"); return 0; } } else //诊断发送失败 { write("Request could not be sent"); TestStepFail("Request could not be sent"); return 0; } return 1; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询