前言:上一章节中通过系统变量可以实现CAPL和Panel之前的交互,这是针对报文是周期性报文的一种解决方案。如果需要当系统变量发生变化时再发出报文该如何操作呢?
针对上面的问题,需要用到CAPL中针对系统变量的两个事件
On SysVar和On SysVar_Update。
On SysVar和On SysVar_Update相同点是当系统变量发生变化时两个事件都会触发。
但是On SysVar_Update只要是对系统变量赋值不诊断是否和前一次的数据一样都会触发。
如 A--->B 两个函数事件都会触发
A--->A 只有On SysVar_Update会触发。
基于之前的工程,下面通过按键'A'和'W'来触发相应的动作。
代码修改如下。
测试先按下A:
可以发现只有sysvar_update被调用了,这是因为系统变量VehSpd的默认值为0
当W被按下时
两个函数都被调到了。
再按一次W
可以发现这一次只有upate被调用了,因为系统变量VehSpd的值没有发生变化,所以on sysvar不会被调用。
--------------------------------------分割线--------------------------------------------