快捷搜索: 王者荣耀 脱发

从零开始学习CANoe(八)—— IG 模块

相关文章

前言

这篇博客介绍下,在CANoe 工程中,我们常常用到的IG模块。 使用交互式生成器(IG模块),可以在测量运行时配置和发送message,也可以在不发送消息的情况下控制分析。 IG模块,相比其它模块有两个优点:

    快速的,可以在工程进行中更改,添加message 不需要CAPL编程

在Bus上创建 IG 模块

1, 在Bus 上 鼠标右键 ,然后选择Interactive Generator Block ,上面还有个 insert CAN interactive Block,其实功能都是一样的,就不说了。

通过IG 模块创建新报文

2,双击IG模块,选择下图的小三角,选择CAN mesage ,可以创建一下新的 message

3,我们把刚才创建的message ID定义为100(不得和bus其它报文ID冲突), data定义为1234567

4,IG模块定义了3中报文的发出方式:

  1. 按钮点击一次,发送一次;
  2. 绑定键盘,比如绑定“t”,按键一次,发送一次;
  3. 周期发送,设置发送周期

5,我选择了100ms周期发送,可以在trace中看出trace多了个ID为100的message,并且发送周期是100ms.:

通过IG 添加已有报文

添加报文之前我们需要先明白一件事,就是总线上已经有的报文(比如上图Trace中的EngineState),并且是周期发送着的,如果我们再在IG模块中添加这个报文,那就会产生冲突(如果让它发送到总线上),所以,我们需要先屏蔽掉总线上的这个报文,然后再在IG模块中,添加这个报文。更改放周期或者data值都可以。

6,屏蔽总线上的某条报,比如我们需要屏蔽掉总线上的EngineState这个报文,那我们就在Engine node的bus上点击右键,然后根据下图选择。

7 ,在 SF 上双击 弹出如下对话框。

8 ,双开Events 然后选择 EngineState,这样我们就实现了对EngineState报文的屏蔽。

9 ,Run工程,Trace中可以确认 EngineState报文成功的被屏蔽了。

10,再在IG模块中添加EngineState报文,并且我们改变OnOff信号 ,设置成1,这样在Trace中可以看到 EngineState报文的周期是100ms,并且OnOff的信号是1.这样我们就可以通过IG模块,在工程RUN的时候,进行报文的添加,减少,更改了,十分方便。

经验分享 程序员 微信小程序 职场和发展