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的开发了。