前言
DBC
节点以message为单位发送,以signal为单位接收。在定义完message后将其添加进发送节点,在定义完signal后将其添加进接受节点。
- 更改网络协议
- 添加网络节点
- 添加报文,将报文添加至发送节点
- 添加signal,将其添加至报文
- 从网络节点处添加接收信号
CAPL编程
程序结构
头文件
includes
{
#include "CommonFunctions.cin"
#include "BaseServeces.cin"
}
全局变量声明
variables
{
int i = 0;
message 100 msg;
msTimer my_timer;
byte ECU_SERIAL_NUMBER[3] = {0x31, 0x32, 0x33};
}
事件处理
on *
{
;
}
on preStart
{
write("Simulationg starting.");
}
void UserDefinedFunc()
{
return;
}
on key NewKey
{
}
on busOff
{
}
on message 0x150
{
}
定时事件
variables
{
message 0x555 msg1 = {dlc=1};
msTimer my_timer;
}
on start
{
setTimer(my_timer, 100);
}
on timer my_timer
{
setTimer(my_timer, 100);
msg1.byte(0) = msg1.byte(0) + 1;
output(msg1);
}
错误帧事件
环境变量事件
// 读取环境变量switch的数值,并赋值给环境变量val
val = getValue(Switch);
// 将数值0赋值给环境变量Switch
putValue(Switch, 0);
系统变量
on sysVar IO::DI_0
{
$Gateway::IOValue1 = @this;
}
on sysvar_update IO::DI_0
{
$Gateway::IOValue2 = @this;
}