CANoe 案例教程

本文档介绍了DBC和CAPL编程的基础知识,包括DBC中消息和信号的定义,CAPL程序的结构,如头文件、全局变量、事件处理及自定义函数。在CAPL编程中,详细展示了如何设置定时事件、处理错误帧和环境变量,以及响应系统变量变化。此外,还讨论了网络节点的添加和报文的发送与接收。
摘要由CSDN通过智能技术生成


前言


DBC

节点以message为单位发送,以signal为单位接收。在定义完message后将其添加进发送节点,在定义完signal后将其添加进接受节点。

在这里插入图片描述

  1. 更改网络协议
  2. 添加网络节点
  3. 添加报文,将报文添加至发送节点
  4. 添加signal,将其添加至报文
  5. 从网络节点处添加接收信号

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;
}

自定义函数


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值