CANOE学习(5) CAPL简介

这篇博客介绍了CANoe/CANalyzer官方教程的最后部分,重点讲解了CAPL语言的基础知识,包括CAPL的添加方式、事件控制、发送CAN消息及访问信号的方法。通过实例展示了如何使用CAPL发送自定义和数据库中存在的CAN消息,以及如何在特定事件(如按键、测量开始/结束、CAN消息接收)时执行程序。此外,还提到了CAPL访问和修改信号值的语法。
摘要由CSDN通过智能技术生成

终于到官方视频学习的最后一Par了!【官方自制】CANoe/CANalyzer基础教程合集(已完结)共17P_哔哩哔哩_bilibili

11. CAPL语言 简介

CAPL是CANOE自带的一种编程语言,要和CANOE中的一个节点绑定在一起。它的文件后缀是.can。

两种添加方式:1. 在simulation setup中增加一个网络节点,配置与其关联的CAPL文件,点击小铅笔符号;2. 在measurement setup中的hot spot, 右击,添加编程节点,在之前的hot spot的介绍中提到过啦。

CAPL文件是在CAPL browser中编写编译的。

 在browser的右边,可以选择CAPL function 和DBC中的frame、signal等信息。

12. CAPL语言 Event事件

CAPL语言的一大特点是有事件控制进行的,只有事件发生时,才会触发执行指定的程序。CAPL中常见的事件类型有以下几种:

事件例子

start of measurement

测量开始时触发

on start

{

write ("Start!");

}

stop of meaurement

测量停止时触发

on StopMeasurement

{

write ("Stop");

}

CAN message

接收到CAN消息时触发

on message 0X123

{

write ("CAN message 0X123");

}

Time event

定时器到达时触发

on timer tmrcycle

{

write ("within cycle");

}

keystroke

按下某个按键时触发

on key 'a'

{

write ("Key >a< is pressed");

}

16. CAPL语言 发送CAN messsage

万事开头难,先用CAPL发送一条message打开学习之路吧

这里会介绍两种CAPL发送报文的方法:1. 发送自定义的报文;2. 发送数据库里已有的报文

例1.

on key 'a' //定义一个按键事件

{

message 0X1A msg1; //定义一个ID为0x1A的报文,命名为msg1

msg1.dlc=4; //设置msg1 DLC为4,

msg1.byte(0)=0x55; //定义msg1 数据场第一个字节为0x55

msg1.byte(1)=0xff; //定义 msg 数据场第二个字节为0xff;

output(msg1); //在总线上发送报文msg1

}

例2 发送一个数据库已有的报文,因为有DBC,所以数据场的内容可以用信号来直接表示。

on key 'b'

{

message EngineState msg2;

msg2.EngineSpeed=100;

msg2.OnOff=1;

outupt(msg2);

}

17. CAPL语言 Access Signal

下面是两条和信号相关的事件的语句:

on signal SignalA //当信号值发生改变时被触发

on signal_update SignalA //当信号值发送到总线时触发

获取信号值的语句:$SignalA

给信号赋值的语句:$SignalA=100或者setSignal(SignalA, 100);

下面是和系统变量相关的语句:

on sysvar sysDemo::sysVar_1 //当系统变量改变时触发

on sysvar_update sysDemo::sysVar_1 //当系统变量激活时触发

CAPL还会慢慢再学习,希望以后再写一下详细的学习笔记。

官方教程学习完毕!收获很大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值