CANoe——系统变量/环境变量创建

一、环境变量创建

(1)DBC中创建环境变量

CANoe——系统变量/环境变量创建_第1张图片

参数的设置:

Name:环境变量的名称;

Value Type:数据类型;

Value Table:真值表;

初始值、最小值、最大值。

CANoe——系统变量/环境变量创建_第2张图片

 (2)CAPL创建

/*方法一*/
on envvar Switch {          /*声明一个CAN报文要传递给Controller msg*/
message Controller msg;     /*读出开关的值*/
msg.Stop = getvalue(this);  /*赋值:分配给信号Stop*/
output(msg);                /*在总线上输出报文*/
}


/*方法二*/
putValue(DiagData, dataBuf, 64);           /*将64字节的数据缓冲区拷贝到环境变量DiagData中*/
copiedBytes = getValue(NodeName, cBuf);    /*读取环境变量NodeName的值*/

 注:

环境变量的使用必须要以DBC的格式来使用,并且需要将DBC添加到CAN 网络中

二、创建系统变量

CANoe——系统变量/环境变量创建_第3张图片

系统变量参数 :

Namespace:定义系统变量组的名称;

Name:系统变量的名称;

Data type:数据类型;

Location:该系统变量组存放的路径、名称和格式;

Values:初始值、最小值、最大值、单位、值表

CANoe——系统变量/环境变量创建_第4张图片

$报文名称::信号 

@:读写赋值  等价于 putvalue()

/*方法一*/
on sysvar IO::DI_0     //系统变量:MyNameSpace::系统变量名称
{
$Gateway::IOValue = @this;  //系统变量赋值到报文信号中   $报文名称::信号
}



/*方法二*/
intValue = @Namespace1::Parameter2;
@Debug::MotorValues::EngineSpeed = $EngineSpeed;

on key 'b'
{
  double value;
  value = SysGetVariableFloat(sysvar::MyNamespace::FloatVar);
  write("Value of FloatVar is %g", value);
}

注:

1.系统变量相当于全局变量 

2.系统变量的初始值需要定义明确

3.自定义系统变量的真值表,选择custom来完成真值表的创建

CANoe——系统变量/环境变量创建_第5张图片

你可能感兴趣的:(CANoe,linux,windows,运维)