
CAPL编程进阶之路
文章平均质量分 69
主要介绍CAPL编程中的基础知识,和实际项目经验
帅气小胖子
在学习中成长,在成长中学习
展开
-
CAPL_学习笔记(Itoa/_atoi64)
变量不一定只能是long类型,因为隐式转换机制(即,实参传递形参时,数据类型优先转换为形参类型),使用byte,word,dword,int arr[2](数组中的具体元素),甚至可以是ASCIL编码的字符变量或字符常量均可。3:最后是转换进制的形参,可以是变量可以是常数,(但是不管是常量还是变量),该参数只支持2进制,8进制,10进制,16进制,其他参数运行时会报错。第一行中 1 标注处 可以知道该函数,是没有返回值的,包含了三个参数,看6处,详细标注了,每个参数的含义。,先看描述,提取出几个关键词,原创 2024-06-12 14:09:05 · 933 阅读 · 0 评论 -
CAPL中的一种特殊类型Signal(信号)
故,我建议,在capl编程中,我们尽量不要使用,信号,message,系统变量作为实参或形参。而且数据的读取也是按照字节的整数倍来读取的。写过DBC文件的同学,应该都知道我们设置一个车速信号 VehicleSpeed信号,该信号起始位 2bit,位长度,12位。2:signal,并不是CAPL中的数据类型,对应的message则属于CAPL的数据类型,这就表明了我们是不可以直接定义一个signal类型的变量。1:信号表示的是交互层中的总线信号,交互层可以理解为信号的物理值和总线值之间的一个层。原创 2023-11-24 10:50:37 · 3644 阅读 · 1 评论 -
CAPL变量中的系统变量+环境变量+DBC信号变量
我们需要知道的是,我们在使用系统变量时,一定要加上@+命名空间+::+信号名,如我们需要创建一个Door模块的系统变量合集,我们将这个namespace命名为:DoorModuleSysVars。这啥破玩意,但是吐槽归吐槽,我们现在还只能接受它的这种设定。第二个选项是:name,也就是我们定义的信号,如我们定义一个DoorStus的系统变量,唯一需要注意的就是需要符合自定义标识符命名规则,即只能使用字母,数字,下划线,且开头第一个字符只能使用字母和下划线,同理namespace名称也要符合上述要求。原创 2023-11-09 22:19:03 · 7526 阅读 · 1 评论 -
CAPL编程实例(如何实现固定ID范围报文的循环发送,以达到期待的总线负载率)
1:实现固定ID报文如0x100-0x200的报文发送,并可以设置一个期望达到的总线负载率。2:检测总线负载率的检测,并可以调节总线负载率。原创 2024-03-07 13:42:54 · 1553 阅读 · 0 评论 -
CAPL编程实例_网关转发数据正确性检查
报文0x110 :Byte0=0开始 到Byte0=0xFF结束,然后Byte0置0。Byte1又按照Byte0的规则依次发送。转发到CAN2 0X210 [10 23 45 00 00 00 00 00]1:本代码实现,有一个重要前提,就是转发帧和被转发帧,数据结构上是一模一样的。如:CAN1: 0X110 [10 23 45 00 00 00 00 00]1:实现模拟发送 我们要实现覆盖所有数据转发的完整性测试,以下规则。且报文需要按照固定周期发送。原创 2024-03-07 14:07:19 · 677 阅读 · 0 评论 -
CAPL中的自定义函数
*示例1)int fun_1(int a);**示例2)fun_2(int a);这两种都是CAPL中合法的自定义函数。不过示例2中,默认返回类型为void。重载函数概念:即在同一作用域中中,同时定义多个函数名相同的自定义函数。有c基础的,应该都知道,同一个工程中除非使用static限定函数,不然同名函数在编译时会出现错误。重载函数的定义和声明格式要求函数名相同,但是形参个数,参数类型,参数排列顺序,存在差异。return a*b;原创 2024-02-29 22:58:02 · 2502 阅读 · 0 评论 -
CAPL编程学习笔记--关于on 事件的详细解释
目前本人使用的CANoe15自带的编译器**2):大括号内,可以调用CAPL自带的库函数,和用户自定义的函数扩展:on 事件的本质是,是通过回调函数实现的下表总结了各种ON事件,以及他们的作用和应用场景。原创 2024-02-29 21:40:54 · 1887 阅读 · 0 评论