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);
}

运行与验证

运行步骤:

  1. 在CANalyzer中新建或打开一个工程,进入Simulation Setup节点。
  2. 在节点上插入一个CAPL Program节点,将上述代码粘贴到该节点的CAPL Browser编辑器中。
  3. 点击编译按钮(Compile),确认无语法错误。
  4. 点击仿真启动按钮(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秒的间隔周期性触发,即判定案例通过。