我们在文章《CANoe中的工作模式之争:由一段简单的代码引出的问题》中,介绍了模拟总线模式下的三种工作方式:
- animated with factor
- as fast as possible
- slave mode
由于模拟总线模式不需要连接真实ECU,无需和真实ECU保持时间同步,那么就可以在模拟总线上加速或放缓程序的运行,用更短或更长的时间运行程序。
as fast as possible是尽可能快的运行程序,而animated with factor可以选择加速、放缓或保持原速度:
当值为1时,表示按照原速度运行程序。当小于1时,是加速;大于1时,是减速。这是一个动画因子,当你选择animated with factor时,程序的运行时间 = 程序的正常运行时间 x 因子值。所以,因子值越小,程序的运行速度越快;因子值越大,程序的运行速度越慢。
那程序的加速运行,会改变程序本身设置的时间参数吗?比如说,我编写的CAPL代码实现一个定时器事件的循环触发,循环周期为5秒。为了验证循环周期有没有变化,在每次触发定时器事件时打印模拟时间戳:
variables
{
timer t1;
}
on timer t1
{
write("t1 timeout, simulated timestamp: %lu", timeNow()/100000);
setTimer(t1, 5);
}
on start
{