【车载开发系列】CAPL语言入门基础

【车载开发系列】CAPL语言入门基础

CAPL语言入门基础

一. CAPL语言简介

CAPL的全称是Communication Access Programming Language,中文叫做通信访问编程语言。

它是一种类C语言的,应用于Vector CAN工具节点的编程,是基于事件建模的语言。

也是CAPL作为CAN总线测试的主要测试脚本语言。

二. CAPL语言的特性

  1. CAPL是以事件驱动的程序执行形式运行的,它是CANoe/CANalyzer专用的编程语言。
  2. 可以使用write()函数进行调试,用于将调试信息输出到CANoe的write窗口上;
  3. 通过output()函数进行指定报文的发送;
  4. 通常是通过环境变量事件与CANoe面板进行关联,实现交互;
  5. 提供调用dll文件的方法;这样保证了对由其他语言封装好的程序模块的调用;

三. 与C语言的区别

  1. 未定义返回类型,默认为void类型
  2. 像C++一样允许空的参数列表
  3. 像C++一样允许函数重载
  4. 参数检测与C++中一样
  5. CAPL提供一些自带的库函数
  6. CAPL编译时不对自带的关键字和自带的函数名做区分

四. CAPL关键字分类

  1. 数据类型关键字:int, byte, long etc.
  2. 控制语句关键字:if, else
  3. 存储类型关键字:static, extern
  4. 其他关键字:const, message

五. 变量种类

变量种类 定义的地方 可以使用的地方
全局变量 Variables{}内 整个CAPL程序
局部变量 每个事件处理器内 只在定义的事件处理程序内

1)全局变量

  1. 在variables部分声明全局变量
  2. 可通过直接赋值进行初始化,如果没有初始化,编译器自动初始化为0
  3. 全局变量的作用域是整个CAPL文件以及与此文件有链接的其他CAPL文件
c 复制代码
Variables
{
}
  • 在CAPL中可以通过将变量定义在Variables里面来实现全局变量的功能。

2)局部变量

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

3)变量声明定义规则

  1. 只能使用字母字符、数字和下划线
  2. 名称的第一个字符不能是数字
  3. 区分大小写字符
  4. 不能将CAPL关键字用作名称
  5. 不能将CAPL的函数名和对象名用作变量名
  6. 变量名的字符长度最好不要超过32个(编译系统只能识别前32个字符)
  7. 变量名最好具有易读性,"见名知意"

六. 变量类型

1)简单变量

  1. 整型:byte(0-255),word, dword, gword, int, long, int64
  2. 字符:char, 可以和byte类型直接转换
  3. 浮点型

2)struct变量

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

3)enum变量

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

4)message变量

  1. 使用关键字message来声明一个报文变量,默认是CAN报文也就是CAN消息类型。
  2. 声明报文变量,有数据库支撑时,完整的声明应包含message ID or message name
  3. MessageID以x结尾的ID表示扩展帧
  4. *表示这条报文在声明时还不含有CAN ID

5)Timer变量

  1. CAPL提供了两种定时器变量:timer和msTimer
  2. timer基于秒;msTimer基于毫秒

七. 函数

函数(function)是指接收数据并按照规定执行处理的各种指令。

该程序通过组合函数来描述。CAPL有一个专门的函数。

函数 特征
write 文本输出到输出Window(等同于C语言函数printf())
setTimer 设置计时器
cancelTimer 取消计时器
output 输出消息变量
stop 测量结束了
相关推荐
A_cainiao_A13 小时前
【软考】【2025年系统分析师拿证之路】【啃书】第七章 软件工程(八)
软件工程
network_tester13 小时前
手机网络性能测试仪器介绍
网络·网络协议·tcp/ip·测试工具·信息与通信·信号处理·tcpdump
天堂的恶魔94614 小时前
软件测试 ——Postman(Newman的使用)
测试工具·postman
开开心心就好16 小时前
极速、免费、体积小,一款PDF转图片软件
人工智能·智能手机·eclipse·pdf·软件工程·软件需求
天堂的恶魔9461 天前
软件测试 —— Postman(全局变量和环境变量,请求前置脚本,关联)
测试工具·lua·postman
夏旭泽2 天前
软件工程的基本原理
软件工程
夏旭泽2 天前
软件工程的本质特征
软件工程
風落2 天前
《告别复杂PDF编辑,PDF Eraser开启便捷办公新体验》
pdf·软件工程·软件需求
计软考研大C哥2 天前
【25考研】考清华的软件工程专业的研究生需要准备什么?
经验分享·考研·软件工程
moton20172 天前
5步打造完善的物联网IoT测试体系
物联网·测试工具·可用性测试·iot·物联网测试·测试体系