CANoe自带的CAPL Browser是CAPL程序的开发环境。学习CAPL基本语法之前,先来认识下CANoe是如何创建CAPL程序。 3.1 创建CAPL程序文件 1)进入CAPL浏览器:CANoe主界面Tools → CAPL Browser 2)创建CAPL程序文件:在CAPL Browser主页点击File→New→New CAPL Document CAPL程序的文件后缀为.can 3.2 浏览器功能区 1)Home功能...
如下,一个完整的CAPL程序的结构包含了头文件、全局变量、事件函数、自定义函数;当然不是每个因素都要有,视具体程序功能确定。 1.3、CAPL的数据类型 1.4、CAPL事件类型概述 CAPL是基于事件建模的语言,从1.2小节对CAPL的程序结构的介绍也可以看出,关于CAPL的运用主要就是在于熟悉其事件的使用;其常用的事件如下: 接下来,...
三、新建capl脚本,模拟ECU节点 includes { } variables { message ESC_FrontWhlSpd ESC_FrontWhlSpd_message; //定义要模拟发送的报文名称 msTimer mstimer20ms; //定义一个毫秒定时器,用于实现周期性发送报文,名称可自定义 } on start { setTimer(mstimer20ms,20); //当点击start开始运行脚本后打开定时器,...
三、新建capl脚本,模拟ECU节点 includes { } variables { message ESC_FrontWhlSpd ESC_FrontWhlSpd_message; //定义要模拟发送的报文名称 msTimer mstimer20ms; //定义一个毫秒定时器,用于实现周期性发送报文,名称可自定义 } on start { setTimer(mstimer20ms,20); //当点击start开始运行脚本后打开定时器,...
CAPL脚本是CANoe中一种类C的语言,需要与网络节点关联,也可以利用其加强测量分析功能,以及搭建高效的自动化测试模块。 2. CAPL基础 2.1 CAPL概述 CAPL的主要用途: 仿真节点或模块 仿真时间报文、周期报文或者附加条件的重复报文 使用PC键盘模拟操作按钮等人工操作事件 ...
CAPL是一种面向过程、由事件驱动的类C语言。 事件驱动针对于顺序执行,其区别如下: 顺序执行: 顺序执行流程中,子例程或过程函数按照代码编写顺序逐句执行。 事件驱动: CAPL程序由事件驱动,工程运行过程中发生指定的事件时才会运行相应的事件处理函数。[1]
on start顾名思义是在CAPL开始运行时执行,但这里还有另一个on prestart 这两者之间也存在一定区别,这里不做过多介绍,有需要去看具体的help文档就可以了。 setTimer这个是个极其重要的函数,可以说无论是在那个CAPL的编程中,这个函数的使用都是极为广泛的。这个函数的作用是设置一个计时器,第一个实参是作为计时器...
我在CAPL中运行一个脚本,在这里我应该注意到来自ECU的信号(例如:信号B)的值发生了变化。在定时器开始时,我更改了另一个信号(例如:信号A)的值,并通过CAN总线将其发送到ECU。在定时器运行时,我想看到来自ECU的信号B的变化值,作为对信号A的变更值的响应。定时器超时后,我想要将信号A重置回其原始值。 *注:我将...
setTimer(timerA,200); } msgA.byte(0) = msgA.byte(0)-1; output(msgA); } 运行结果如下:按A键,Timer启动,发送消息 接下来我们一起来看总结一下CAPL编程的要点: CAPL编程的学习,需要通过不断在实践中的积累,此外别无他法。以上真真儿的只是入门,如果你真心看过,不如你真心写过。
‘setTimer(msTimer t,long duration)’是设置定时器函数,他有两个输入参数,第一个为声明的定时器变量,第二个是设定的时间。‘cancelTimer(msTimer t)’是取消定时器函数,入参为定时器变量,该函数的作用为取消设定的定时器。 图16 时间事件 ‘on timer’为时间事件,定时时间超过时执行,它与设置定时器函数联用...