一、环境变量创建
(1)DBC中创建环境变量
参数的设置:
Name:环境变量的名称;
Value Type:数据类型;
Value Table:真值表;
初始值、最小值、最大值。
(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 网络中
二、创建系统变量
系统变量参数 :
Namespace:定义系统变量组的名称;
Name:系统变量的名称;
Data type:数据类型;
Location:该系统变量组存放的路径、名称和格式;
Values:初始值、最小值、最大值、单位、值表
$报文名称::信号
@:读写赋值 等价于 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来完成真值表的创建