CAPL之3E服务的保持与停止(代码在最后)

0 前言

        在测试中3E的保持服务十分重要,如果不打开它,那你27解锁之后可能还没有完成后续测试步骤就会因为回到了默认会话而报错。因此tester present这里我都是常年打勾让他自动保持连发状态:

CAPL之3E服务的保持与停止(代码在最后)_第1张图片 

        但这样一个问题又随之出现,由于诊断的一直在线会导致Autorsar中网络无法休眠,一开始我准备用定时器来解决这个问题,但在VT的CAPL中无法使用定时器(使用定时器编译不会报错,但实际代码不会运行),因此让我开始在CAPL函数内疯狂搜寻终于找到了。

1 控制3E保持和停止的函数

        我一共找到了以下四个函数,函数用途也已描述出来,从中我们可以看到选择的应该是第一个和第二个。

diagStartTesterPresent:开始从CANoe向指定的或当前的ECU发送自主/循环的Tester Present请求。
diagStopTesterPresent:停止从CANoe向指定的或当前的ECU发送自主/循环的Tester Present请求。

diagSetEcuPresent:已被删除,将此ECU接收回待处理的ECU组。网络请求再次发送给它。
diagIsPresent:已被删除,如果已经从ECU收到响应,则返回!0。

CAPL代码附上:

export void Tester_Present_Switch(dword SW)
{
  write("111");

  if(SW == 1)
  {
     write("222");
    diagStartTesterPresent();
  }
  else
  {
    diagStopTesterPresent();
    write("3E 关闭");
  }
}

测试结果: 

CAPL之3E服务的保持与停止(代码在最后)_第2张图片 

你可能感兴趣的:(CAPL应用基础,学习,笔记,测试工具,功能测试,开发语言)