以下内容为自己学习笔记,若看不懂,可以去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