前面已经介绍了很多CAPL相关的函数极其应用,今天CAPL能够完成的功能来介绍在车载网络测试中都能够帮助测试工程师完成哪些工作?让我们对它有一个最基础的认识。
CAPL在总线中的应用
> 分析特定消息或特定数据
> 分析数据流量
> 创建和修改工具的测量环境
> 设计定制模块测试仪
> 创建一个黑匣子来模拟网络的其余部分
> 创建模块模拟器
> 创建自定义模块制造测试仪
> 创建自定义模块诊断或服务工具
> 创建程序来执行网络日志(回放)文件的定制分析
> 创建复杂的日志过滤器
> 创建用于模块/网络验证的综合消息或数据内容生成测试器。
> 对两个不同网络之间的功能网关进行编程
> 通过在仿真中生成CAN错误帧来评估模块网络软件策略,以查看模块是否正常工作
> 使用可读的英文指令和值来模拟节点或系统的行为,而不是使用十六进制值
> 事件消息、周期性消息或有条件重复的消息
> 人为事件,例如在PC键盘上按下按钮
> 定时节点或网络事件
> 多个时间事件,每个事件都具有可编程的行为
> 正常操作、诊断操作或制造操作
> 物理参数或符号值的变化(例如,“ON”,“OFF”)
> 模块和网络故障,以评估有限操作策略
> 简单或复杂的函数(如sin、cos)
CANoe在测试中的常用模式
1)离线模式(Offline Mode)
通过CANoe制作多个仿真节点,来模拟我们想要的实际节点和仿真节点进行通信,一次来验证我们的软件逻辑是通的,作为项目预研使用。
2)在线模式(Online Mode)
这种模式使我们最常见的一个使用模式,我们日常的测试中,使用最多的一种情况,我们通过CANoe中CAPL进行仿真,与实际的物理总线进行通信,并且能够监听仿真和物理总线的通信状态。
3)在线监听(Online Mode)
此种情况主要作为监听物理总线的通信情况,并对实际物理总线通信状态进行分析。实际也是上面使用情况的一部分
CAPL简介
CAPL(即 CAN Access Programming Language)是基于 C 编程语言,是专门在 CANalyzer 、 CANoe 和vTESTstudio基于 PC 的工具环境中使用的编程语言。 CAPL(读作“kapple”)的最初设计意图是满足基于 CAN 的分布式嵌入式系统开发人员的要求,包括:
> 最大程度地控制所有测试和测量操作
> 最大程度地控制系统或模块仿真 – CANoe 或 CANalyzer
> 最大限度地支持一个或多个通信通道
> 最大程度的事件和消息记录以及回放控制
> 能够与其他 PC 应用程序互连
CAPL及其编程环境的创建成为满足这些要求的实现。将 CANalyzer 或 CANoe 与 CAPL 结合使用,可以创建具有用户定义行为的自定义工具应用程序。 潜在应用仅受想象力、可用通信硬件限制(如果适用)和 PC 速度的限制。
CAPL面向事件
1、总线事件
on message 0x100
{
write("message 0x100");
}
2、键盘事件
on key 'p'
{
write("按下‘p’键");
}
3、时间事件
variables
{
msTimer timers;
message * canmsg;
}
on timer timers
{
output(canmsg);
}
CAPL Browser界面
左侧工具栏主要是Include(包含外部以实现的.cin、.can、.dll等文件);Variables(全局变量存放位置);System(时间事件和按键事件都可以在这里查看到);CAN(总线事件显示位置);Functions(开发的函数可以在这里看到)。
右侧工具栏主要是CAPL Browser内置的一些函数,我们可以在这里搜索自己需要的函数,直接拖拽到中间的编辑界面即可。当然我们也可以通过打开dbc、MOST、LIN等数据库,也是通过拖拽直接使用,非常的方便使用。
下方Output是我们通过Compile All编译的所有脚本情况,如果有错误我们可以在这里看到具体的编译情况。
直接点击右上角或者直接点击F1即可打开CAPL帮助文档,在里面搜索查看需要的函数,里面包含所有内置函数的说明。