【CAPL】CAPL的简单介绍及变量


前言

CAPL(COMMUNICATION Access Programming Laguage)语言是类C语言,语法其实与C语言很相似,但同时包含了一些C++特性,例如指针、事件等。


一、CAPL

1.程序结构

参考下图,一个完整的CAPL程序的结构包含了头文件、全局变量、事件函数、自定义函数等。
在这里插入图片描述

2.数据类型

  • 无符号整数

  • byte (1字节)

  • word(2字节)

  • dword(4字节)

  • 有符号整数

  • int(2字节)

  • long(4字节)

  • 浮点数

  • float(8字节)

  • double(8字节)

  • CAN消息类型

  • message

  • 定时器类型

  • timer(秒为单位)

  • msTimer(毫秒为单位)

  • 单个字符

  • char(1字节)

3.常用关键字

  • 数据类型关键字:int,byte,long,etc
  • 控制语句关键字:if,else
  • 存储类型关键字:static。extern
  • 其他关键字:const,message

4.全局变量与局部变量

全局变量

  • 在variables部分声明全局变量
  • 可通过直接赋值进行初始化,如果没有初始化,编译器自动初始化为0
  • 全局变量的作用域:整个CAPL文件以及与此文件有链接的其他CAPL文件

局部变量

  • 局部变量被静态地创建,初始化只在程序题启动时执行,再次进入程序,局部变量被假定是上一次跳出程序时的值。
  • 局部变量的作用域:当前函数体范围内。

5.复合类型

结构struct

  • 结构体名在程序中必须唯一
  • 简单类型、枚举类型或者其他的结构都可以作为结构体的成员

枚举enum

  • 枚举的成员名必须唯一(有替代隐藏数据库中同名的报文和信号的风险)
  • 如果没有在声明枚举的同时对成员进行赋值,则编译器将按照成员成名的顺序对成员进行初始化(第一个为0,往后依次加1)

数组array

  • CAPL直接用字符串初始化字符数组的行为
  • CAPL支持多为数组
  • CAPL通过内建函数elCount(数组名)来或得数组成员的个数

6.其他类型

报文

  • 使用关键字message来声明一个报文变量,默认CAN报文
  • 声明报文变量,有数据库支撑时,完整的声明应包含message ID or message name
  • Message ID以x结尾的ID表示扩展帧
  • *表示这条报文在声明时还不含有CAN ID

诊断报文

  • 通过诊断请求和诊断相应两个对象来实现和ECU之间的诊断服务交互
  • 在声明诊断对象时进行初始化

系统变量

  • 系统变量用来描述某种特殊状态(例如某种事件的触发)或者记录测量数据

  • 可通过系统定义和用户自定义系统变量

  • 系统变量的作用域在其命名空间内
    定时器

  • CAPL提供了两种定时器变量timer基于秒,msTimer基于毫秒

总结

在本篇中简单介绍了一下CAPL的信息,对其中的结构和变量有了初步了解。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值