canoe 中对ECU诊断的程序

来源:互联网 发布:马前课指算法日加时 编辑:程序博客网 时间:2024/04/30 21:41

testcase CheckMsgABSData()

  float lCycMinCycleTime;  // Minimum relative distance
  float lCycMaxCycleTime;  // Maximum relative distance
  long lQueryResultNumProbes;
  long lQueryResultProbeAvg;
  long lQueryResultProbeMin;
  long lQueryResultProbeMax;
  char lbuffer[100];

  lCycMinCycleTime = 40;
  lCycMaxCycleTime = 58;
  gCycCheckRes = 0;

  // Information for test report.
  TestCaseTitle("TC 2", "Check cycle time of message ABSData");


  gCycCheckId = ChkStart_MsgAbsCycleTimeViolation (ABSdata,   // Message to supervise
                                    lCycMinCycleTime,         // min-limit
                               lCycMaxCycleTime,         // max-limit
                               "CycCallback");           // CAPL callback for violation notification

  testWaitForTimeout(4000);
  
  lQueryResultNumProbes = ChkQuery_StatNumProbes(gCycCheckId); 
  lQueryResultProbeAvg = ChkQuery_StatProbeIntervalAvg(gCycCheckId); 
  lQueryResultProbeMin = ChkQuery_StatProbeIntervalMin(gCycCheckId);
  lQueryResultProbeMax = ChkQuery_StatProbeIntervalMax(gCycCheckId);  
  
  ChkControl_Destroy(gCycCheckId); // Destroy the check

  switch(gCycCheckRes)
  {
    case 1: 
      snprintf(lbuffer,elcount(lbuffer),"Valid values %.0fms - %.0fms", lCycMinCycleTime, lCycMaxCycleTime);     
      TestStepFail("", lbuffer);
      snprintf(lbuffer,elcount(lbuffer),"Average cycle time:  %dms", lQueryResultProbeAvg);
      TestStepFail("", lbuffer);
      snprintf(lbuffer,elcount(lbuffer),"Min cycle time:      %dms", lQueryResultProbeMin);
      TestStepFail("", lbuffer);
      snprintf(lbuffer,elcount(lbuffer),"Max cycle time:      %dms", lQueryResultProbeMax);
      TestStepFail("", lbuffer);
      break;
    default: 
      snprintf(lbuffer,elcount(lbuffer),"Valid values %.0fms - %.0fms", lCycMinCycleTime, lCycMaxCycleTime);     
      TestStepPass("", lbuffer);
      snprintf(lbuffer,elcount(lbuffer),"Average cycle time:  %dms", lQueryResultProbeAvg);
      TestStepPass("", lbuffer);
      snprintf(lbuffer,elcount(lbuffer),"Min cycle time:      %dms", lQueryResultProbeMin);
      TestStepPass("", lbuffer);
      snprintf(lbuffer,elcount(lbuffer),"Max cycle time:      %dms", lQueryResultProbeMax);
      TestStepPass("", lbuffer);
      break;
  }
}

 

对每个消息都是差不多的程序,大同小异!

原创粉丝点击