首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过CAPL脚本发送诊断ID(DID)?

如何通过CAPL脚本发送诊断ID(DID)?
EN

Stack Overflow用户
提问于 2016-09-27 14:06:35
回答 4查看 15.3K关注 0票数 0

目前,我正在自动化测试仪表组中的仪表的测试用例。我遇到过通过DID将单位从公制改为美制的情况。谁能帮助我如何发送诊断相关的东西使用CAPL脚本。

EN

回答 4

Stack Overflow用户

发布于 2016-09-28 15:02:22

尝试一下,也许它可以使用SendDiagRequest(reqobj)来工作;

===============================================================

  1. 在向量中添加相应的CDD文件
  2. 在独木舟设置中设置目标ECU
  3. 您必须定义服务的内容每个字节值,可以在can trace
  4. 中获取这些值在CAPL中创建服务对象并使用CAPL发送
票数 1
EN

Stack Overflow用户

发布于 2017-12-22 01:00:24

如果你有一个加载到CANoe中的诊断库(CDD/ODX/PDX等),那么它通常会定义传输协议,在Tx和Rx长度超过8个字节的地方对它们进行分段。

你的帖子说你正在自动化你的测试用例。这在CANoe的测试模块中完成得最好。如果已加载CDD,则可以将DID从CAPL浏览器的符号窗格(通过诊断程序过滤)拖动到CAPL中,例如,在diagRequest之后拖动"DID_01_ReadInfo“。

代码语言:javascript
复制
long size;
byte returnBytes[4096];
diagRequest  DID_01_ReadInfo  readInfoReq;   // diag request object
diagResponse DID_01_ReadInfo  readInfoResp;  // diag reponse object

diagSendRequest(readInfoReq); 

switch (testWaitForDiagResponse(readInfoReq, 2000)) // 2 sec timeout
{
  case 0: // timeout
          teststepfail("No reply from ECU");
          break;

  case 1: // response received

          if (diaggetLastResponseCode(readInfoReq) == -1) 
          { 
            teststepPass("Positive Response");

            // Get the number of bytes from the last response and store in 'returnBytes'
            diagGetLastResponse(readInfoReq, readInfoResp);
            size = diagGetPrimitiveData(readInfoResp, returnBytes, elCount(returnBytes));   
          }
          else 
          {
            teststepfail("Negative Response");
          }
          break;
}
票数 1
EN

Stack Overflow用户

发布于 2016-09-30 15:22:39

长对象(diagRequest DiagSendRequest )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39717140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档