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

相关文章

从零开始学习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(十三)—— Logging Window

前言

CANoe 的 Logging

创建logging Block

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

å¾ä¸

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

å¨è¿éæå¥å¾çæè¿°

3.或者通过下图的方式创建logging block ,名字默认是logging2

å¨è¿éæå¥å¾çæè¿°

logging file 的命名规则

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

å¨è¿éæå¥å¾çæè¿°

2.文件的后缀可以是下图所示 常用后缀 .asc ;.blf

å¨è¿éæå¥å¾çæè¿°

Logging 的触发方式

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

å¨è¿éæå¥å¾çæè¿°

方式一:直接Run

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

å¨è¿éæå¥å¾çæè¿°

2. 也可以通过绑定按键触发,比如下图通过按键‘t’,可以开启录制

å¨è¿éæå¥å¾çæè¿°

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

å¨è¿éæå¥å¾çæè¿°

方式二:user defined

用户自己定义,可以选择的方式有很多,通过信号,报文,变量都可以触发;
下面我通过变量值得改变触发logging,当选择的系统变量等于5开始录制,等于6停止录制

å¨è¿éæå¥å¾çæè¿°

创将一个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时间的数据
å¨è¿éæå¥å¾çæè¿°

方式三:CAPL

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

setLogFileName()

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

å¨è¿éæå¥å¾çæè¿°

startLogging()

开始录制trace,可以指定logging block 和 preTriggerTime 时间

å¨è¿éæå¥å¾çæè¿°

stopLogging()

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

å¨è¿éæå¥å¾çæè¿°

logging block 中设置如下

å¨è¿éæå¥å¾çæè¿°

定义一个定时器,工程开始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是开始录制,第二次执行时暂停,第三次是录制是开始

å¨è¿éæå¥å¾çæè¿°

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文件的结果和上面相同。

————————————————
版权声明:本文为CSDN博主「蚂蚁小兵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34414530/article/details/14281314

猜你喜欢

转载自blog.csdn.net/king110108/article/details/115872916