【CANoe使用大全】——使用CAPL脚本自动开始和停止报文录制

本专栏为CANoe使用入门级别保姆教程,主要面对CANoe使用的零基础受众。
持续更新中…

🚗【CANoe使用大全】——工程新建

🚗【CANoe使用大全】——DBC数据库制作

🚗【CANoe使用大全】——Trace窗口

🚗【CANoe使用大全】——Graphics窗口

🚗【CANoe使用大全】——报文发送(IG)

🚗【CANoe使用大全】——Logging窗口

🚗【CANoe使用大全】——离线回放数据

🚗【CANoe使用大全】——在线回放数据

🚗【CANoe使用大全】——cdd导入CANoe流程详解

🚗【CANoe使用大全】——使用Frame Histogram窗口检测报文周期

🚗【【CANoe使用大全】——使用CAPL脚本自动开始和停止报文录制

1.概述

在日常测试使用CANoe过程中,一般都需要录制log文件。
用于对问题排查分析。
本章主要介绍如何使用CAPL脚本对log的录制启动与结束进行控制

2.触发方式配置

对于log窗口基本配置见“ 【CANoe使用大全】——Logging窗口
本章需要结合CAPL,所有需要更改触发方式
在这里插入图片描述

在这里插入图片描述

3.脚本编写

/*@!Encoding:936*/
includes
{
 
}
variables
{
 
}
testcase Logging_Tes()
{
  testCaseTitle("TC Logging","TC_Logging_Start_Stop");
 
  setLogFileName("Logging", ".\\Logging\\Start_Stop_Logging{LocalTime}.asc");//设置日志文件的名称:相对路径+文件名(添加当前时间)
  startLogging("Logging",1000);//开始录制log(提前1秒开始记录)
 
 
  TestWaitForTimeout(1000);
 
  stopLogging("Logging",1000);//停止录制log(滞后1秒停止记录)
}
//执行测试用例
void MainTest()
{
  Logging_Tes();
}

下面对文中使用的到函数进行解读
setLogFileName:

setLogFileName(char fileName[]); setLogFileName(char
strLoggingBlockName[], char fileName[]);

以下示例使用:
在这里插入图片描述

stopLogging

void stopLogging();
void stopLogging(char strLoggingBlockName[]);
void stopLogging(char strLoggingBlockName[], long postTriggerTime);
strLoggingBlockName:即Logging Block的名字,设置触发哪一个Logging Block。
上述CAPL脚本中取自
在这里插入图片描述

preTriggerTime:设定触发时提前多久开始录制,单位为ms。

### CANoe 测试 Log 配置 在 CANoe 中,测试日志的配置对于调试分析汽车网络通信至关重要。为了确保有效的日志记录,需设置多个参数来控制日志的内容、格式以及存储位置。 #### 日志文件路径与命名规则 可以通过 `File` -> `Options` 菜单下的 `Log Files` 选项卡指定日志保存的位置,并定义自动化的文件名模式[^1]。这有助于保持良好的组织结构并简化后续检索过程。 ```cpp // 设置日志文件路径及名称模板 void SetLogFileConfig(const std::string& path, const std::string& templateName){ // 假设API用于设定CANoe内部配置 canoe.SetLogFilePath(path); canoe.SetLogFileNameTemplate(templateName); } ``` #### 过滤条件配置 利用过滤器可以减少不必要的信息量,专注于感兴趣的事件。通过图形界面或脚本编程的方式,在测量窗口中添加特定的消息ID或其他属性作为筛选依据。 ```cpp // 添加消息ID过滤器示例 void AddMessageIdFilter(int messageId){ Filter filter; filter.AddCondition("Msg.ID", "==", messageId); measurementWindow.AddFilter(filter); } ``` ### CANoe 测试 Log 解析方法 解析 CANoe 的日志通常涉及读取二进制或文本形式的日志文件,并将其转换成易于理解的形式以便进一步分析。 #### 使用 CAPL 编程语言编写自定义解析函数 CAPL 是一种专为车载总线仿真设计的语言,可用于开发复杂的触发逻辑数据分析工具。下面是一个简单的例子,展示如何遍历已捕获的数据帧: ```capl on key 'p' { message m; while (getnext(m)) { write("Received Message ID: %d Data:",m.id); for(i=0;i<m.dlc;i++) { write("%X ",m.byte(i)); } } } ``` #### 导入第三方软件进行高级可视化 除了内置的功能外,还可以借助 MATLAB/Simulink 或 Python 等外部应用程序加载 CANoe 日志文件,实现更深入的时间序列分析、统计建模等功能。 ### CANoe 测试 Log 故障排除指南 当遇到无法正常生成预期日志的情况时,可以从以下几个方面着手排查问题所在: - **确认硬件连接状态**:检查物理层面上各节点间的链接是否稳定无误; - **验证环境变量设置**:确保所有必要的驱动程序服务均已正确安装且处于活动状态; - **查阅官方文档技术论坛**:获取更多关于错误代码含义及其解决方案的信息资源;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值