分享

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

 ghostvip 2022-09-17 发布于广东

前言

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,停止录制

  1. /*@!Encoding:1252*/
  2. variables
  3. {
  4. msTimer start_logging;
  5. }
  6. on start
  7. {
  8. @sysvar::vin::EDR_type = 0;
  9. setTimer(start_logging, 5000);
  10. }
  11. on timer start_logging
  12. {
  13. if(@sysvar::vin::EDR_type == 0)
  14. {
  15. // start trgier
  16. @sysvar::vin::EDR_type = 5;
  17. setTimer(start_logging, 5000);
  18. }
  19. else if(@sysvar::vin::EDR_type == 5)
  20. {
  21. // stop trgier
  22. @sysvar::vin::EDR_type = 6;
  23. }
  24. }

下图 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后停止录制

  1. /*@!Encoding:1252*/
  2. variables
  3. {
  4. int i =0;
  5. msTimer start_logging;
  6. }
  7. on start
  8. {
  9. //设置 logging文件的路径和文件名
  10. setLogFileName('logging', 'C:\\Temp\\log1\\{UserName}_{LocalTime}.blf');
  11. setTimer(start_logging, 5000);
  12. }
  13. on timer start_logging
  14. {
  15. if(i==0)
  16. {
  17. startLogging('logging', 1000);
  18. setTimer(start_logging, 5000);
  19. }
  20. else
  21. {
  22. stopLogging('logging', 1000);
  23. }
  24. i++;
  25. }

解锁如下图所示,5s开始录制,10s结束录制

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

triggerEx()

发送一个trigger信号到指定的logging block,第一次执行这个API是开始录制,第二次执行时暂停,第三次是录制是开始

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

  1. variables
  2. {
  3. int i =0;
  4. msTimer start_logging;
  5. }
  6. on start
  7. {
  8. setLogFileName('logging', 'C:\\Temp\\log1\\{UserName}_{LocalTime}.blf');
  9. setTimer(start_logging, 5000);
  10. }
  11. on timer start_logging
  12. {
  13. if(i==0)
  14. {
  15. // startLogging('logging', 1000);
  16. triggerEx('logging');
  17. setTimer(start_logging, 5000);
  18. }
  19. else
  20. {
  21. triggerEx('logging');
  22. // stopLogging('logging', 1000);
  23. }
  24. i++;
  25. }

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多