使用CANoe的IL层构建总线仿真系统+CAPL学习笔记

以下内容为自己学习笔记,若看不懂,可以去b站看视频,链接如下。

https://www.bilibili.com/video/BV1n7411n7Tm?t=2188

其中包括CANdb++创建DBC数据库文件,PANEL设计控制面板,一些简单的CAPL语言介绍。
使用软件CANoe10.0,其他版本可能会有点不一样,仅供参考。

CANdb++创建DBC数据库文件

1、在Tools下打开CANdb++界面。

在这里插入图片描述

2、创建一个数据库文件

在这里插入图片描述
创建好后,会弹出下图,选择Vector_IL_……选项。,根据提示保存(我这里是保存到工程的文件夹下)。
在这里插入图片描述

3、创建message(报文)

在这里插入图片描述
默认会弹出以下界面,其中Name、ID是必须设置的。除此之外还可以设置默认循发送的周期,见第二张图。如果后期想要修改发送周期,可以通过canoe里面设置,详细见后面。
在这里插入图片描述
在这里插入图片描述

4、创建信号–>绑定到报文帧–>分配到对应节点

创建一个新的信号(方法与上面创建messages一致),会弹出以下界面。可以根据需要设置信号名称、数据长度、数据类型、最大、最小值等。
在这里插入图片描述
不仔细踩的小坑:需要变量的范围是0~4000,12位就够了,但是定义时未注意,变量类型选择默认的有符号,当我调整变量值时,超过2048后(Panel中设置变量范围是0 ~ 4000),结果就显示跳到0了,后来才发现是数据类型不对。
信号创建好后,直接在左边拖拽信号到需要的Messages中即可。
在这里插入图片描述
messages设置好后,将对应的报文帧,一样的拖拽到对应的网络节点中(完了后,没有展开是看不出任何变化的,点击“+”展开后,就可以检查是否成功)。
到这里,数据的创建已经完成,下面是添加数据库文件(创建canoe工程,自行百度了解)。这里我们选择第二个添加方式(他可以直接将数据库中的网络节点一起添加)。
在这里插入图片描述
下图是添加完成的效果图。
在这里插入图片描述

补充1

批量修改报文方法,例如批量修改周期发送的时间为50ms
在这里插入图片描述
上图右下窗口
在这里插入图片描述

补充2

对于开关信号,0、1可能看起来不明显,可以设置为On、Off去区分,步骤如下
在这里插入图片描述
修改为自己需要的名称后,开始定义对应的description。
在这里插入图片描述
最后与打开需要关联的信号,添加刚才创建的Value Table。
在这里插入图片描述

Panel控制面板设计

这里就简单的介绍Analog Gauge与Track Bar控件。
在这里插入图片描述

CAPL程序

在这里插入图片描述

效果

实现用滑竿控制一个变量的大小。
具体演示效果去看上面网站的视频。

# CAPL学习笔记

1、常用的事件类型/CAPL事件处理

在这里插入图片描述
在这里插入图片描述

2、定时器

在这里插入图片描述
备注:该定时器与单片机定时器不同,定时器时间到后,定时器就关闭了,若要一直定时,需要在定时触发中重新初始化。针对ms级别定时器,有一个特别的函数,可以直接设置为循环定时。(与单片机一样,启动后,一直运行,除非执行停止命令)。

setTimerCyclic(myTimer2,200);//设置定时器myTimer2为一个200ms为周期的循环定时器;

3、消息触发

总线上接收到该ID号后,触发该事件,这里用到了“this”,具体使用,看下面解释。
this代表触发事件的对象,使用this即使用相关对象
在这里插入图片描述

4、消息过程

在这里插入图片描述

5、发送报文

在这里插入图片描述

6、信号/变量触发事件

在这里插入图片描述

7、对变量赋值/读取

这里write函数与printf函数使用未看出区别。
在这里插入图片描述

8、CAPL数据类型

在这里插入图片描述
备注:CAPL中的定义局部变量与C语言不同,具体为c语言定义变量前加上了static。

9、补充知识

①、注释程序方法与C语言一致,多行注释如下图。
在这里插入图片描述
②、@与$区别

环境变量&系统变量的索引方式:@环境变量名或系统变量名
信号的索引方式:$报文名称::信号名称,物理值索引.phys

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值