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

可以被使用,但是具体执行时间,和作用域是多少?我们来试试

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐