前言
这是我的第一篇关于CAPL的文章。从事汽车电子的测试工作但是直到去年底才开始接触CAPL。因为C语言基础非常差并且网上资料特别少,对我来说学起来稍微有点困难。
以后会不定期在这里更新一下所学到的东西,包括CAPL、CAN总线之类的。一是做一个学习记录的功能,二是分享一下学习心得。
如果有错误的地方,希望大家能指出来,谢谢!
功能
在Panel界面创建一个控制车速的Track Bar,并且在Trace界面实时监测到当前车速
实现
- 创建环境变量
在DBC中创建一个环境变量命名为“En_VehicleSpeed”
创建完成后保存DBC文件。 - 创建面板
新建一个Panel面板,插入Trace Bar工具
在属性栏里,将最大值设置为200。过滤为Environment Variable,并关联到之前创建的变量“En_VehicleSpeed”
创建完成后保存。 - CAPL控制车速
variables
{
msTimer T1; //定义毫秒级计时器T1
message 0x202 Eng_Status={dlc=8}; //定义message
}
(1)首先定义一下所用到的变量
on start
{
setTimer(T1,100); //设置T1计时器,100ms
}
on timer T1
{
Eng_Status.Byte(0)=getValue(En_VehicleSpeed); //将En_Vehicle的值赋值到Eng_Status的byte0
output(Eng_Status); //输出信号
setTimer(T1,1000); //设置T1计时器,1000ms
}
(2)on start开启计时器; on timer T1设置计时器
总结&心得
- 关于message长度的定义
可以写成下面的格式
message 0x202 Eng_Status={dlc=8};
或者写成这种的格式
variables
{
msTimer T1
message 0x202 Eng_Status;
}
on start
{
setTimer(T1,100);
}
on timer T1
{
Eng_Status.dlc = 8; //在此设置202的DLC
output(Eng_Status);
setTimer(T1,1000);
}