从零开始学习CANoe(十三)—— Logging Window

相关文章

2

从零开始学习CANoe(一)—— 新建工程
从零开始学习CANoe(二)—— CANdb++ 创建 dbc文件
从零开始学习CANoe(三)—— 系统变量的创建和使用
从零开始学习CANoe(四)—— 设计panel
从零开始学习CANoe(五)—— CAPL 测试节点
从零开始学习CANoe(六)—— XML 测试节点
从零开始学习CANoe(七)—— .NET 测试节点
从零开始学习CANoe(八)—— IG 模块
从零开始学习CANoe(九)—— 断点调试(Debug)
从零开始学习CANoe(十)—— 信号发生器(Signal Generator)
从零开始学习CANoe(十一)—— Statistics Window
从零开始学习CANoe(十二)—— Trace Window
在这里插入图片描述
系列用的CANoe演示工程我放在了Git上,不定时根据博客更新。
CANoe-Demn


文章目录

  • 相关文章
  • 前言
  • 创建logging Block
  • logging file 的命名规则
  • Logging 的触发方式
    • 方式一:直接Run
    • 方式二:user defined
    • 方式三:CAPL
      • setLogFileName()
      • startLogging()
      • stopLogging()
      • triggerEx()
  • 总结


前言

CANoe 的 Logging

创建logging Block

  1. 点击工具栏的Analysis-> Measurement Setup

从零开始学习CANoe(十三)—— Logging Window_第1张图片

  1. 在任意block上点击右键,然后选择 insert logging block,创建logging block ,名字默认是:blogging

从零开始学习CANoe(十三)—— Logging Window_第2张图片
3.或者通过下图的方式创建logging block ,名字默认是logging2
从零开始学习CANoe(十三)—— Logging Window_第3张图片

logging file 的命名规则

  1. logging file的名字可以编程定义,如下图可以是系统时间也可以是电脑名

从零开始学习CANoe(十三)—— Logging Window_第4张图片
2.文件的后缀可以是下图所示 常用后缀 .asc ;.blf
从零开始学习CANoe(十三)—— Logging Window_第5张图片

Logging 的触发方式

  1. 在logging block上单击右键 ,然后点击configuration。

从零开始学习CANoe(十三)—— Logging Window_第6张图片

方式一:直接Run

1.下图中,左边圆的图标是暂停,|| 是开始,当把工程run起来的时候,通过鼠标点击实现录制和停止

在这里插入图片描述
2. 也可以通过绑定按键触发,比如下图通过按键‘t’,可以开启录制。
从零开始学习CANoe(十三)—— Logging Window_第7张图片

  1. 回放Trace,简单的方式就是把logging文件直接拖到Trace Window中就可以回放,另外一种方式是如下图,打到offline ,然后选择要回放的文件,直接Run.

从零开始学习CANoe(十三)—— Logging Window_第8张图片

方式二:user defined

用户自己定义,可以选择的方式有很多,通过信号,报文,变量都可以触发;
下面我通过变量值得改变触发logging,当选择的系统变量等于5开始录制,等于6停止录制
从零开始学习CANoe(十三)—— Logging Window_第9张图片
创将一个simulation node .can文件,定义一个定时器,当工程开始5000ms之后设置变量为5,也就是开始录制,时间到后再设置变量为6,停止录制。

/*@!Encoding:1252*/
variables
{
     
	msTimer start_logging;
}
on start
{
     
  @sysvar::vin::EDR_type = 0;
  setTimer(start_logging, 5000);
}
on timer start_logging
{
     
  if(@sysvar::vin::EDR_type == 0)
  {
     
  // start trgier
    @sysvar::vin::EDR_type = 5;
    setTimer(start_logging, 5000);
  }
  else if(@sysvar::vin::EDR_type == 5)
  {
         
       // stop trgier
        @sysvar::vin::EDR_type = 6;
  }  
}

下图 trace中 5s的时间点,开始录制
在这里插入图片描述
下图 trace中 10s的时间点,停止录制
在这里插入图片描述
4.8s开始录制,10.2s停止录制,是因为设置了下图的 Pre-triger time 和 Post-triger time 等于200ms,也就是前后多录制200ms时间的数据
从零开始学习CANoe(十三)—— Logging Window_第10张图片

方式三:CAPL

在CAPL脚本中通过API控制logging的开始与停止,下面是一些常用的API.

setLogFileName()

设置logging文件的存放路径,不设置,会默认存放在logging block 设置的路径.

从零开始学习CANoe(十三)—— Logging Window_第11张图片

startLogging()

开始录制trace,可以指定logging block 和 preTriggerTime 时间
从零开始学习CANoe(十三)—— Logging Window_第12张图片

stopLogging()

停止录制可以指定logging block 和 postTriggerTime 时间

从零开始学习CANoe(十三)—— Logging Window_第13张图片

logging block 中设置如下
从零开始学习CANoe(十三)—— Logging Window_第14张图片
定义一个定时器,工程开始5s后开始录制,10后停止录制

/*@!Encoding:1252*/
variables
{
     
    int i =0;
	msTimer start_logging;
}
on start
{
       
//设置 logging文件的路径和文件名
  setLogFileName("logging", "C:\\Temp\\log1\\{UserName}_{LocalTime}.blf");
  setTimer(start_logging, 5000);
}
on timer start_logging
{
     
  if(i==0)
  {
     
      startLogging("logging", 1000);
      setTimer(start_logging, 5000);
  }
  else
  {
     
    stopLogging("logging", 1000);
  }
  i++;
}

解锁如下图所示,5s开始录制,10s结束录制
在这里插入图片描述在这里插入图片描述

triggerEx()

发送一个trigger信号到指定的logging block,第一次执行这个API是开始录制,第二次执行时暂停,第三次是录制是开始。。。
从零开始学习CANoe(十三)—— Logging Window_第15张图片

variables
{
     
    int i =0;
	msTimer start_logging;
}
on start
{
      
  setLogFileName("logging", "C:\\Temp\\log1\\{UserName}_{LocalTime}.blf");
  setTimer(start_logging, 5000);
}
on timer start_logging
{
     
  if(i==0)
  {
     
//      startLogging("logging", 1000);
      triggerEx("logging");
      setTimer(start_logging, 5000);
  }
  else
   {
     
      triggerEx("logging");
//    stopLogging("logging", 1000);
  }
  i++;
}

回放logging文件的结果和上面相同。

23

总结

7

此博客结束,感谢敢看,下篇更精彩。。。


在这里插入图片描述

  • 要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
  • 如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。当然执意选择白嫖也欢迎。
    18

你可能感兴趣的:(CAPL,Canoe,CAPL)