TestModule脚本中需要注意的几点
(步骤1)先CANoe内,定义一个系统变量,如下图(步骤2)代码修改一下,如下图(步骤3)运行几次,查看结果CAPL内部定义系统变量,需要通过调用CAPL封装好的函数,函数一共4个,其中2个函数比较重要,一个是用来创建namespace,一个是在已经定义的namespace中定义具体的系统变量。解析以下代码//定义命名空间“Testp”Int//命名空间“Testp,创建int类型的系统变量CAP
1、代码内部的(全局变量、局部变量)每次开启后的状态
这里的开启是指,下图中的按键,每一次重新按下。我们先从最简单的一种情况说起,说详细一点
1.1 就是每次测试结束后,从新开启后局部变量和全局变量的变化。

简单代码如下:

测试一下,结果如下图:

结论:至少我们目前知道,每次testmodule结束后,重新开启,局部变量和全局变量都会重新初始化。
1.2 CANoe内定义的系统变量
(步骤1)先CANoe内,定义一个系统变量,如下图

(步骤2)代码修改一下,如下图

(步骤3)运行几次,查看结果

(1.3)CAPL内部定义的系统变量
CAPL内部定义系统变量,需要通过调用CAPL封装好的函数,函数一共4个,其中2个函数比较重要,一个是用来创建namespace,一个是在已经定义的namespace中定义具体的系统变量。
解析以下代码
void MainTest()
{
sysDefineNamespace("Testp"); //定义命名空间“Testp”
sysDefineVariableInt("Testp","test1",0); //命名空间“Testp,创建int类型的系统变量
}
CAPL定义的系统变量,不能被原代码中,直接被使用,且关闭-开启工程后,CAPL定义的系统变量会消失。
2、TestModule中的"on事件”,起作用的时间
TestModule中所有的"on事件”都在脚本运行后才会起作用。但是有2个例外,
(例外 1)
on strat
on stopMeasurement
事件在testmodule和TestUnit中无法使用,编写阶段就会直接报错,如下图:

例外2:
on preStop(这里很奇怪,为什么S是大写,下面的prestart又全部都是小写)
on prestart
可以被使用,但是具体执行时间,和作用域是多少?我们来试试
更多推荐




所有评论(0)