如何学习和提高CAPL语言编程能力

CAPL是Vector公司开发的,用来配合它的系列产品使用的一款面向过程的语言。CAPL是Communication Access Programming Language的缩写,从字面意思来说,是专门用于通信访问的编程语言。

最初访问CAN总线,现在已扩展到所有的汽车总线系统,例如 LIN、FlexRay、MOST、J1587,Ethernet,以及ARINC和CANopen等其他一些系统。

CAPL语言是类C语言,C语言是过程语言,所以CAPL也是面向过程,而不是面向对象。CAPL内函数体的执行,由事件触发,比如按下按键’a’时触发on key ‘a’的函数体的执行。CAPL程序在专用的编辑器“CAPL Browser”中开发和编译,所以可以直接访问各种类型的数据库里的对象和变量,比如消息、信号、系统变量和诊断服务对象等。

CAPL的目标一直是尽可能简单地解决特定任务。典型的任务是对收到的消息做出反应、检查和设置信号值以及发送消息。

如下代码实现:

  1. 观察一个CAN网络的元素(在数据库中描述),例如总线节点、消息和传输信号。
  2. 当接收到EngineState消息时,它包含的EngineSpeed信号被设置在显示面板上显示。
  3. 当接收到LightState消息时,它所包含的HeadLight和FlashLight信号将被同步到面板上显示。
variables
{
  const long                kOFF = 0;
  const long                kON = 1;
}

on message EngineState
{
  @sysvar::Engine::EngineSpeedDspMeter = this.EngineSpeed / 1000.0;
}

on message LightState
{
  if (this.dir == rx)
  {
    SetLightDsp(this.HeadLight, this.FlashLight);
  }
  else
  {
    write("Error: LightState TX received by node %NODE_NAME%");
  }
}

void SetLightDsp(long headLight, long hazardFlasher)
{
  long          tmpLightDsp;
  
  tmpLightDsp = 0;
  if (HeadLight == kON)
    tmpLightDsp = 4;
  if (hazardFlasher == kON)
    tmpLightDsp += 3;
  @sysvar::Lights::LightDsiplay = tmpLightDsp;
}

从上面的介绍和代码可以看出:

CAPL语言对于熟悉C语言的人来说上手很快。而没有接触过编程,或者是只学过Python的人来说,语法上需要有一个学习的过程。毕竟一个是编译型语言,一个是解释型语言;一个是强类型语言,一个是弱类型语言。我的经验是可以先学习了解C#语言,首先C#语言在windows窗体上有一定的优势,以后有可能会用到。而且C#语言是由C和C++衍生出来的,你也可以把CAPL看成是类C#的语言,学会了C#,上手CAPL就会很快。

CAPL作为一门小众的、服务于Vector产品和用于特定场景的语言,就注定了它的学习资料不会很多,更不会像Python那样有大量的第三方库可用。这就造成了它:想学习难入门、想精通难深入、遇到问题难解决。

CAPL语言由于缺少第三方库的支持,导致你想实现很多功能,比如处理某些数据时,需要自己编写基础函数。

官方的Help文档提供了CAPL所必需的内容,但由于其全英文界面,加上内容繁杂,有的时候真的很难找到自己想要的东西。

CAPL语言虽小众,但由于其服务于Vector产品,所以你还需要学会使用CANoe等工具。由于其用于访问汽车总线,你还需要了解各种总线协议:CAN总线、LIN总线、Flexray总线、Ethernet总线、TCP/IP协议、UDS诊断协议、DoIP协议、SOME/IP协议、AVB协议等等。真是一个头两个大!!!

扫描二维码关注公众号,回复: 15781137 查看本文章

但是随着国内汽车行业的快速发展和竞争加剧,对汽车从业人员,尤其是测试人员,要求越来越高。功能测试岗已经要求熟练使用CANoe,具有CAPL语言编写能力了。不信?随便打开一个招聘网站看看。

卷吧,往死了卷!

既然已经这么卷了,我再来添一把火:《CAPL编程语言》第二期开始报名啦!!!

超30各小时的视频直播,以CAPL语言为主题,代码实操,由易到难,层层深入,环环相扣。全面扩展CAPL以外的知识面,把握细节和底层逻辑。拨开迷雾,看清本质。

这里不只有:

  • CAPL基本概念、语法、常用函数介绍
  • CAPL使用中的注意事项
  • CAPL进阶教程

还有:

  • CANoe的功能介绍,包括:软件安装、环境配置、面板设计、诊断通信等
  • 计算机数据存储、内存对齐、大小端转换等
  • DBC、CDD数据库文件介绍
  • Autosar网络管理分析
  • UDS诊断服务全功能详解
  • 以太网TCP/IP协议介绍

另外还有:

  • 多个章节的课后习题及讲解
  • 20道基础知识选择题及讲解
  • 网络管理、诊断DTC等练习题及讲解

由于大部分名额被熟人所定,目前只有少量几个名额,感兴趣的加我微信报名!

附课程大纲:

CAPL编程语言


猜你喜欢

转载自blog.csdn.net/wjz110201/article/details/131418223