1. CANoe自动化测试环境搭建与第一个CAPL脚本
任务说明
本案例目标为:从零创建一个CANoe工程,完成CAN通道的硬件/软件配置,并验证通道配置正确性。你将得到一个最小可用的CANoe工程文件结构,以及用于验证配置的CAPL脚本框架。完成本案例后,你将拥有一个可打开、可运行、通道状态可观测的CANoe工程。
工程创建与配置步骤
CANoe工程的核心是.cfg配置文件,它描述了总线通道、网络节点、仿真设置等。我们采用手工编写配置文件的方式创建工程,这样能精确控制每个配置项,也便于版本管理。
首先创建以下目录结构:
CanoeDemo/
├── CanoeDemo.cfg # 工程主配置文件
├── CanoeDemo.cin # 工程包含文件(可选)
└── CanoeDemoCAPL/
└── ChannelCheck.can # 通道验证CAPL脚本
编写工程配置文件 CanoeDemo.cfg
该文件定义了两个虚拟CAN通道(CAN1、CAN2),并挂载了通道检查脚本。关键配置项说明:
- [Database]块:可在此加载DBC文件,本案例为空,不影响通道配置。
- [Nodes]块:定义网络节点,本案例不涉及具体节点仿真。
- [CAN]块:配置CAN通道数量、波特率、通道模式(无硬件时使用模拟模式)。
version = 8.5
[Include]
include = CanoeDemo.cin
[Global]
Name = CanoeDemo
Description = First CANoe project - Channel Configuration Demo
StartupDelay = 100ms
[Database]
; 本案例不加载DBC,通道配置不依赖数据库
[Nodes]
; 无仿真节点,仅使用CAPL测试模块
[CAN]
ChannelCount = 2
Channel1Name = CAN1
Channel2Name = CAN2
Baudrate1 = 500
Baudrate2 = 500
Channel1Mode = Simulated
Channel2Mode = Simulated
; 模拟模式无需硬件即可运行
[CAPL]
; 关联通道检查脚本
TestModule = CanoeDemoCAPL\ChannelCheck.can
[SimulationSetup]
; 使用默认仿真设置
编写通道验证CAPL脚本 ChannelCheck.can
该脚本在工程启动时自动执行,读取当前通道配置并输出到Write窗口,用于验证配置是否生效。脚本不依赖外部输入,逻辑自包含。
/*@!Encoding:1252*/
includes
{
}
variables
{
int gCh1Baudrate;
int gCh2Baudrate;
char gCh1Name[32];
char gCh2Name[32];
}
on start
{
// 读取通道1配置
gCh1Baudrate = GetBusBaudrate(1);
GetBusName(1, gCh1Name, elcount(gCh1Name));
// 读取通道2配置
gCh2Baudrate = GetBusBaudrate(2);
GetBusName(2, gCh2Name, elcount(gCh2Name));
// 输出到Write窗口
write("=== Channel Configuration Check ===");
write("CAN1 Name: %s, Baudrate: %d kbps", gCh1Name, gCh1Baudrate);
write("CAN2 Name: %s, Baudrate: %d kbps", gCh2Name, gCh2Baudrate);
// 判定配置正确性
if (gCh1Baudrate == 500 && gCh2Baudrate == 500)
{
write("RESULT: PASS - Both channels configured at 500 kbps");
}
else
{
write("RESULT: FAIL - Baudrate mismatch detected");
}
}
运行与验证方法
验证路径如下:
- 启动Vector CANoe(建议版本15.0及以上,支持8.5格式配置)。
- 通过菜单File → Open,选择
CanoeDemo.cfg打开工程。 - 点击工具栏Home → Start Simulation(或按F9)启动仿真。
- 观察仿真启动后,Write窗口(View → Write)中输出的通道信息。
判定标准
满足以下条件即判定案例通过:
- 工程能正常打开,无配置错误弹窗。
- 仿真启动后,Write窗口显示两行通道信息,名称分别为
CAN1和CAN2。 - 两行信息中的波特率均显示为
500 kbps。 - 最后一行输出
RESULT: PASS。
预期输出
当仿真启动后,Write窗口应显示以下内容(顺序可能因时序略有不同):
=== Channel Configuration Check ===
CAN1 Name: CAN1, Baudrate: 500 kbps
CAN2 Name: CAN2, Baudrate: 500 kbps
RESULT: PASS - Both channels configured at 500 kbps
该输出由CAPL脚本中的write()函数直接生成,与配置文件的参数严格对应。若配置文件中波特率被修改为其他值,脚本将输出RESULT: FAIL,从而验证配置与脚本的联动正确性。