终于到官方视频学习的最后一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还会慢慢再学习,希望以后再写一下详细的学习笔记。
官方教程学习完毕!收获很大