1. 初始化CAPL脚本环境
任务目标
编写一个CAPL程序,实现两个功能:当CANalyzer仿真启动时,在Write窗口打印欢迎信息;同时启动一个周期为1秒的定时器,用于后续周期性任务。
实现代码
/* 全局定时器声明 */
msTimer cyclicTimer;
/* 系统启动事件:仿真开始时执行 */
on start
{
write("Welcome to CANalyzer CAPL!");
write("Timer will fire every 1000 ms.");
/* 设置定时器周期为1秒并启动 */
setTimer(cyclicTimer, 1000);
}
/* 定时器超时事件 */
on timer cyclicTimer
{
/* 定时器到期后重新启动,实现周期性触发 */
setTimer(cyclicTimer, 1000);
}
运行与验证
运行步骤:
- 在CANalyzer中新建或打开一个工程,进入Simulation Setup节点。
- 在节点上插入一个CAPL Program节点,将上述代码粘贴到该节点的CAPL Browser编辑器中。
- 点击编译按钮(Compile),确认无语法错误。
- 点击仿真启动按钮(Start Simulation)。
验证方法:
- 启动仿真后,在Write窗口(View → Write)中应看到两行欢迎信息,内容分别为
Welcome to CANalyzer CAPL!和Timer will fire every 1000 ms.。 - 在CAPL Browser的
on timer cyclicTimer事件处理函数第一行设置断点,运行仿真后观察断点是否每隔约1秒被命中一次,以此确认定时器周期正确。 - 若断点命中间隔明显偏离1秒,检查系统负载或仿真时间设置(Analysis → Measurement Setup中的仿真时间模式)。
通过条件:仿真启动后Write窗口立即显示两条欢迎信息,且定时器断点以约1秒的间隔周期性触发,即判定案例通过。