【CAPL实战】system variables系统变量的基础与应用
基础
在CANoe系统中,变量可以用来对内部参数进行建模。系统变量既不描述节点的外部输入/输出信号,也不用于真实节点间的信号通信。系统变量用于开发和测试,提供改变和分析内部变量和参数的机会。通过还可以表示未在数据库中定义的IO信号。(摘自Vector Help)
在Vector Help中详细描述了在CANoe中对系统变量的操作,在CANoe-Environment-system variables弹窗中可以对系统变量进行增删改查等操作。
应用
在CAPL自动化测试中一般会用系统变量做什么呢?
一般我们可以通过系统变量关联的方式来进行信号值与变量值的映射建模,通过下图的on signal_update\on sysvar_update来实现。能够带来的优点:如果直接通过信号进行CAPL脚本编写,当数据库更新信号名称有变化时,需要把脚本中所有使用到的信号名全部更新一遍;而通过系统变量与信号关联的方式,只需要改变下图中的信号名就可以,自动化脚本不需要动。
系统变量需要用::来加上域空间来区分(变量名称相同,域空间不同是可以的);需要用@符号进行系统变量的读取。
时延要求非常高的场景不适用!可能会存在信号值已经跳变,但关联的系统变量值变化有延迟导致测试结果失败。