以demo002为例,整理思路
control 可以看做是控制器 display看做是显示器 两者要建立联系
1.引擎点火(钥匙往右拧开)同时小汽车显示灯要亮起来
可以看到引擎开关 关联的是系统变量,也就是打开开关,系统变量的值会发生变化,如果同时需要小汽车显示灯亮起来,那么就需要把系统变量的值赋给小汽车车灯
那么控制器要如何把值传递给显示器呢,因为总线上传递的只能是报文,那么我们需要把引擎开关的值通过报文的信号(EngineState:OnOff)输出出去,然后刚好小汽车车灯显示器关联的就是EngineState:OnOff这个信号,也就是说只要系统变量发生变化--将系统变量赋值给EngineState:OnOff信号--车灯必定会亮。
那如果让系统变量的值发生变化呢,我们手动点击引擎点火能触发系统变量值发生变化,那在代码中是需要一个系统变量事件去触发。
整个思路为
系统变量事件被触发--系统变量的值发生变化--赋值给信号--引擎灯亮起
那么代码编写如下:
保存CPAL脚本,运行脚本
可以看到,打开引擎开关后,车灯自动就亮起来,实现了仿真。