CANOE入门:CAPL语言(1)

本文介绍了如何在CANoe项目中添加CAPL节点,包括预处理节点和仿真节点的区别。预处理节点用于内部处理,不涉及物理总线交互;而仿真节点模拟ECU功能,参与物理总线通信。同时,提供了一个简单的CAPL代码示例,演示了如何响应键盘事件并发送CAN报文。
摘要由CSDN通过智能技术生成

CANoe项目中添加一个CAPL节点

添加CAPl节点有以下两种方法。

操作方法一

Simulation ->Measurement Setup ->选中要添加节点的地方右键->Insert  Progran Node ->双击添加的节点->选择已有的CAPL文件或直接输入名称自动创建->保存即可打开编辑界面

操作方法二 

Simulation ->Simulation Setup ->选中要添加节点的地方右键->Insert  Progran Node ->双击添加的节点->选择已有的CAPL文件或直接输入名称自动创建->保存即可打开编辑界面

 

两种添加方式的区别 

Measurement Setup中添加CAPL节点,表示该程序是一个预处理或后处理节点,所有发送的CAN信号不只会在Trace窗口中收到,也不会在物理总线上接收到。而且从物理总线上接收到的信号都不会在Trace窗口中显示。可以把这个节点理解为ECU内的一个内置处理器,是ECU的一部份。

Simulation Setup中添加的CAPL节点,表示这是一个ECU节点,具有所有ECU的功能,和CANoe的IG仿真模块功能是一样的。跟CAN总线上的物理ECU具有一样的功能。所有的报文都会发送到物理总线上,所有从物理总线上收到的报文都会在Trace窗口中显示。可以直接理解为汽车上的一个ECU。

以上两种方式,需要根据实际场景去选择用哪一个。

添加一个简单的键盘事件代码

在打开的CAPL编辑界面中添加以下代码

Simulation ->Simulation Setup ->选中要添加节点的地方右键->Insert  Progran Node ->双击添加的节点->选择已有的CAPL文件或直接输入名称自动创建->保存即可打开编辑界面

代码如下:

includes
{
  
}

variables
{
   
}

//键盘事件
on key 'a'
{
  message 0x401 msg1;  //报文id和名称
  msg1.dlc = 8; //设置有效载何长度
  msg1.byte(0) = 0x02;  //字节0的内容
  msg1.byte(1) = 0x02;  //字节1的内容
  msg1.byte(2) = 0x03;  //字节2的内容
  msg1.byte(3) = 0x04;  //字节3的内容
  msg1.byte(4) = 0x01;  //字节4的内容
  msg1.byte(5) = 0x01;  //字节5的内容
  msg1.byte(6) = 0x01;  //字节6的内容
  msg1.byte(7) = 0x01;  //字节7的内容
  output(msg1);  //发送报文到总线上
  
  write("键盘事件..."); //在CANoe的屏幕上打印
}

上面的代码是最简单的测试代码,功能就是按下键盘上的"a"时,往总线上发送一个id为0x401的报文,并在Write窗口上打印一串文字。以上代码保存编译通过后,运行CANoe软件,按下A键就可以看到效果了。

 到这里就就完成了一个最简单的CAPL语言demo的开发了。

 

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值