CAPL测试报文周期
includes
{
}
variables
{
dword gCycCheckId;
const long KMIN_CYCLE_TIME=40;
const long KMAX_CYCLE_TIME=120;
const long KTIMEOUT =5000;
long length = 3;
long testIDArray[3] = {0x100,0x101,0x102};
}
Testcase CheckMsgEngineData(long testID)
{
float lCycMinCycleTime;
float lCycMaxCycleTime;
char buffer[100];
lCycMinCycleTime=KMIN_CYCLE_TIME;
lCycMaxCycleTime=KMAX_CYCLE_TIME;
write("start checkmsgenginedata");
snprintf(buffer,elcount(buffer),"check cycle time of msg 0x%X",testID);
TestCaseTitle("TC-1",buffer);
gCycCheckId=ChkStart_MsgAbsCycleTimeViolation(testID,lCycMinCycleTime,lCycMaxCycleTime);
CheckMsgCyc(lCycMinCycleTime,lCycMaxCycleTime);
}
CheckMsgCyc(float aCycMinCycleTime,float aCycMaxCycleTime)
{
float lQueryResultProbeMin;
float lQueryResultProbeMax;
char lbuffer[100];
TestAddCondition(gCycCheckId);
testWaitForTimeout(KTIMEOUT);
lQueryResultProbeMin=ChkQuery_StatProbeIntervalMin(gCycCheckId);
lQueryResultProbeMax=ChkQuery_StatProbeIntervalMax(gCycCheckId);
if(ChkQuery_NumEvents(gCycCheckId)>0)
{
snprintf(lbuffer,elcount(lbuffer),"Valid values %.0fms - %.0fms",aCycMinCycleTime,aCycMaxCycleTime);
TestStepFail(" ",lbuffer);
snprintf(lbuffer,elcount(lbuffer),"Min cycle time: %dms",lQueryResultProbeMin);
TestStepFail(" ",lbuffer);
snprintf(lbuffer,elcount(lbuffer),"Min cycle time: %dms",lQueryResultProbeMax);
TestStepFail(" ",lbuffer);
}
else
{snprintf(lbuffer,elcount(lbuffer),"Valid values %.0fms - %.0fms",aCycMinCycleTime,aCycMaxCycleTime);
TestStepPass(" ",lbuffer);
snprintf(lbuffer,elcount(lbuffer),"Min cycle time: %lfms",lQueryResultProbeMin);
TestStepPass(" ",lbuffer);
snprintf(lbuffer,elcount(lbuffer),"Min cycle time: %lfms",lQueryResultProbeMax);
TestStepPass(" ",lbuffer);
}
ChkControl_Destroy(gCycCheckId);
}
void MainTest()
{
long i = 0;
TestModuleTitle("CycleTest");
for(i=0;i<length;i++)
{
CheckMsgEngineData(testIDArray[i]);
}
}