虹科分享|CANEasy的开发-VBA篇

如果想要在CANEasy中实现自动化功能,那么最快的方式就是使用里面的VBA功能。

VBA最常见的是在excel和word中被用于开发的宏。在CANEasy中使用的方式和它们也差不多:我们需要在宏内,让变量匹配到软件中的对象,然后用代码去控制它们。

新建一个VBA宏的方式,只要选择VBA,然后右键菜单选择新建。这时候会弹出一个VB编译器的界面。

在这里插入图片描述
今天我们会做一个简单的实现crc和counter功能的代码,为了方便,我们可以先和硬件建立连接,并新建一个想要实现该功能的报文。具体的步骤可以咨询虹科。

首先,我们在代码中新建ECU和CAN报文,然后把它们匹配到对应的Object。这里我们按照编号来选择第一个Channel和第一个Control unit,因为这里我建立的对象都只有一个,可以直接匹配到想要的内容。除了像这样匹配序号:
Set ecu = canbus.ControlUnits(1)
直接匹配名字也是没有问题的
Set ecu = canbus.ControlUnits(“ECU”)

在这里插入图片描述
在这里插入图片描述
在匹配CAN报文的时候,我选择利用for…each语句进行轮询,保证使用CAN ID为0x123,这样以后新建报文也不会打乱这个顺序了。如果没有对应CAN ID的报文,那么宏也无法执行成功。

关于调用的顺序和能够使用的属性和方法,可以在帮助文档中找到。目前帮助文档的版本有些旧,我们会在后续推出用Doxygen输出的帮助文档。

在这里插入图片描述
接下来只要把crc的算法放到VBA的宏里即可。这里我选择调用message里的send方法,在宏里控制发送时间。

在这里插入图片描述
结果如下图:在这里插入图片描述
那么接下来讲一些常用的内容:
make report方法可以把内容输出到CANEasy的状态栏,比较常用
例如:MakeReport "Connected to bus: " + canbus.Name, ReportTypeInformation

在这里插入图片描述
CanEasyApplication.Sleep 10,它的含义是让程序等待10ms,这里我选择用它来控制报文循环发送的时间。当然,更合适的方式是用event功能,可以在每次报文发送前修改其中的内容。这部分可以参考帮助文档,这里就不做赘述了。

不过需要注意的是,这时候需要在主页面提前设置好报文发送的循环时间。

在这里插入图片描述
另外,关于设置crc,我们也可以利用CANEasy提供的插件,不过这个的详细使用方法就留到下期再说吧。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值