环境变量必须用作节点的输入/输出,大多数它们属于指定的ECU.它们由以下系统参数定义:
您可以使用@直接访问环境变量:
@EnvLightState
Run Code Online (Sandbox Code Playgroud)
但你不能只为int或float这样做.可以使用以下两个简单函数访问任何数据类型:
CAPL功能概述»常规»getValue
CAPL功能概述»常规»putValue
系统变量被CANoe组件广泛使用,其中许多是自动生成的,无法编辑.它们属于定义的命名空间.sysvars的值仅在测量运行时可用,因此您不希望将它们用于例如UI面板.
你可以通过使用"直接"访问sysvar
@Namespace1::ParameterArray[2];
@Namespace1::Parameter2;
Run Code Online (Sandbox Code Playgroud)
但是,这种方式不可能访问整个数组或字符串(数据在帮助中没有提到,但可能是同样的事情).您也无法使用@访问XML-Test模块中定义的任何sysvar,请在帮助中阅读:
从系统变量直接访问值
为系统变量(SysGet ...,SysSet ...,SysDefine ...,SysUndefine ......和其他一些)定义了CAPL函数,请查看帮助:
CAPL功能概述»系统变量CAPL功能
这里是一个来自XML测试函数Set的例子,在这里使用了两者,你可以在CANoe帮助中找到这个例子
<!-- Context of this test function is e.g. a testcase, other contexts are possible -->
<set title="Set">
<cansignal name="CrashDetected"> 0 </cansignal>
<linsignal name="MotorControl"> 0 </linsignal>
<flexraysignal name="BreakLight"> 0 </flexraysignal>
<envvar name="EnvAccelerate"> 0 </envvar>
<sysvar name="SysFrontLight_Right" namespace="Lights">0</sysvar>
</set>
<wait time="200" title="Swing in time for system" />
Run Code Online (Sandbox Code Playgroud)
如果您知道/发现任何其他差异,请延长