定义
CAPL是Communication Access Programming Language的缩写,是CANoe/CANalyzer专用的编程语言。
特征
- 类似于C语言
- 以事件驱动的程序执行形式运行,“在发生任何事情时做一些事情”
CAPL节点的作用
CAPL可以作为总线上存在的一个虚拟节点进行消息发送和接收。在CANoe中,您可以创建多个虚拟节点,因此您可以模拟虚拟网络。它还可以用作不同总线之间的网关,用于扩展过滤器和触发器等分析功能,并发挥不同的作用。
CAPL的记述
CAPL的术语
事件处理程序
CAPL所说的“事件”是指用户进行键盘操作和消息的接收等,“事件处理程序”是指检测发生的事件并执行某种处理的功能。CAPL的特征“发生某事时做某事”,“发生某事时”被称为事件处理程序。CAPL根据事件处理程序发生的事件进行处理。
如果发生这些“事件”,则会调用事件处理程序。每个事件处理程序都是独立的,并通过变量和函数连接和编程。
函数
函数(function)是指接收数据并按照规定执行处理的各种指令。该程序通过组合函数来描述。CAPL有一个专门的函数。
变量
变量(Variable)是一种“命名的盒子”,用于将程序中处理的数据存储一段时间,并在必要时使用,从这个盒子中使用时,它可以带来一个值。CAPL有用于C语言等的常见变量和专用于CAPL的变量。
CAPL事件处理程序
事件处理程序 | 事件 |
---|---|
on key | 按键盘上的键 |
on preStart | 测量初始化(测量开始前) |
on preStop | 测量初始化(测量停止前) |
on start | 测量开始 |
on stopMeasurement | 测量停止 |
on timer | 设定的计时器时间经过 |
CAPL函数
函数 | 特征 |
---|---|
write | 文本输出到输出Window(等同于C语言函数printf()) |
setTimer | 设置计时器 |
cancelTimer | 取消计时器 |
output | 输出消息变量 |
stop | 测量结束了 |
CAPL变量
变量种类 | 定义的地方 | 特征 |
---|---|---|
变量(一般) | CAPL编译器 | 有“整数”、“浮点”和“字符串”的数据类型 |
CAPL变量 | CAPL编译器 | 有“消息”和“计时器”的数据类型 |
系统变量 | Configuration | 保存在CANoe/CANalyzer的cfg文件中 |
环境变量 | Database | 在dbc文件中定义,仅在CANoe中可用 |
变量种类 | 定义的地方 | 可以使用的地方 | 特征 |
---|---|---|---|
全局变量 | Variables{}内 | 整个CAPL程序 | 开始测量CANoe/CANalyzer,并在执行CAPL程序时初始化 |
局部变量 | 每个事件处理器内 | 只在定义的事件处理程序内 | 当定义的事件处理程序的程序第一次运行时初始化 |