超经典CANoe工程案例

入门 b 系列()基础应用 是Vr公司针对汽车电子行业总线分析工具现我用76版进行介绍其他版功能基差不多。

硬件我使用是 XL ,软件安装很简单先装驱动再装软件。

安装完成插上B连接硬件这样控制面板,Vr rr 进行看 通看信息可知XL两gg是5(高速)是769(L)另外常用还有05(低速或称容错)因XL只能支持两路通讯这样gg可以由组合 ,硬件连接正常打开软件 l> gr 可以选择新建工程模版我们这里选择_500kB,这样新建了波特率500K 工程可以l>v gr,进行保存 3,接下就要使用 b++ r工具对总线络节消息信进行定义了。

击工具栏这图标或开始菜单这工具启动 启动l>r b,选择lb,选择目录及件名进行保存 右键 rk > 进行络节定义,这里只要填写即可例如_ 然添加_B完成如下图这样rk 目录下面添加出两节 节添加完成下步添加消息右键g>,这是要定义名称L等信息如下 然rr页面击按钮添加_发送节思就是说消息是从_节发送出 其实还有种方法就是暂不定义发送节然直接以拖曳方式拖曳到发送节上功能上是样 有了消息消息里携带东西然是信咯那么我们开始创建信 右键gl>,填写如下信息 信当然要放到消息咯切换到g页面 我们刚刚建立g_,当然和上面样采用拖曳方式从gl到g建立关也是可以

上面信息l模式和rl格式区别如下 用0和表示开关信状态似乎还不是很直观我们可以使用和表示就了是V>Vl bl,右键空白处>键入如下信息 定义了还要跟信进行关。

右键要关信> gl,Vl bl 关刚才建立那Vl lb项 这样信就完成了另外还要加类似信可以击gl根目录右边选择gl复制及粘贴然双击复制gl进行些编辑然用上面方法关g即可快速建立二信了是不是很方便 继续添加三信r_跟上面样但是我这信想放g二节位置怎么办? 其实很简单有两种方法种右键已关即g目录下信 gl弹出对话框rb填8这样就这信就跑到该消息二节了。

二种方法右键消息> g,L页面拖动信色块进行移动 以上g_消息消息下所定义定义完成 如法炮制另外消息g_B完成如下图。

下面创建环境变量右键vr vrbl 陆续把其他环境变量加r属性r哦加完如下 数据库定义这款基上就K了。

保存关闭b++ r,回到主程序

请gr>>gr g>l g 设置使用通讯通道因这只要路其他都设置0就可以

这选项页面可出现l 界面 右键b>,把刚刚创建b给加进再连线上右键>r rk 结如下 右键这模块>gr,rk 选择_,完成然添加_B 完成如下图这样b与关就了。

界面设计 络及相应关系设置应该设计界面了良界面可以直观显示及控制各种信。

界面设计工具有两种种是l gr,新界面设计工具另外种是l r是老界面设计工具无论采用何种工具设计界面可以和很兼容没有问题。

下面我们先用种界面设计工具完成界面设计 击工具栏这图标或l> l gr,打开界面编辑器界面如下 保存下该界面起名l_,空界面可以放置右上边若干组件

放置选界面组件候右下侧回显示当前选组件属性可以更改相应位置等但重要是bl属性这里要说下每界面组件也都要与关否则单纯界面是没有任何义关主要是信和环境变量bl属性bl lr属性可以进行选择我们这里关是环境变量所以选择vr Vrbl然再击上面bl属性然弹出页面选择相应关变量 完成可以按样方法设计l_B,也可以v 方法快速建立样l但是与环境变量关和界面要进行微调。

这样两l都已完成。

也已建立了与关。

5L编程 所有前期准备工作和组装工作都已完成现要编写程序使整系统有机运行起。

回到l 界面然击_模块像铅笔样图标填写程序名称这里_,然打开编程界面完成以下程序

然完成_B程序

技巧如背不出具体消息名称信名称或环境变量可以右键程序空白处你会得到外惊喜试试看。

K功告成 6运行 现击工具栏运行程序

这里表示实际络所有消息发送到物理络上如只是验证程序设置成这样就可以了。

完整运行结如下 就是这样步步我们完成了完整应用工程虽然这只是入门步但整开发流程基涵盖如能跑出上面运行结依然能够给我们很多惊喜。

我们要这样惊喜因这是我们继续前行动力。

L就是 l rgrg Lgg缩写L类似语言语法因所有语法请参考语言教程这里不这里进行详述关语言毫无疑问首先推荐看谭浩强老师看完这语言应该没问题了。

L起到重要作用他将所有部分系起(请看下图)现我们给予上节基础上着重介绍L编程。

L语法是语言又有些++特性指针事件等对事件理可以学习任种面对对象语言首推,可以参考我博客学习当然这似乎比L身更加难事件也更加多但这并不妨碍对事件理其事件类型如下图 下面几例子助理 版ll rl兴奋下吧。

开整~ 打开新建工程l 加rk ,铅笔忘了吗上节刚讲右键r>,键入如下代码 编译关闭L Brr。

运行工程如下,哇塞成功咯有成就感啊。

这例子似乎跟通讯没啥太关系啊我们接下再做例子 运行结如下按键盘b键将发送消息连l是啥都不知道学推荐先学习下基础知识推荐瑞萨公司《入门》讲非常。

运行刚刚那例子你会发现按下b只发送消息但实际应用消息都是循环连续发送我们要对刚刚程序进行些修改。

完成这样功能。

程序如下 vrbl { g 0x00 g {l}; r r; 0; } k "" { !; ( ) { r(r,00); } } r r { () { r(r,00); } gb(0) gb(0); (g); } 运行结如下按键r启动发送消息 接下我们起看总结下L编程要 L编程学习要通不断实践积累外别无他法。

以上真真儿只是入门如你真心看不如你真心写。

学习方式是什么?模仿。

有人会问那不是山寨么?但是我认那是模仿初级阶段当把别人设计已融化到己血液里变成己东西而灵活运用候才是真正高级阶段。

正所谓画虎画皮难画骨。

但初级阶段仍然是必须历程他会使你达到高级阶段程少走很多弯路下面我们迈出这步。

先研究下别人简单例子。

例子莫Vr身了这安装完就会被动安装。

先看简单名叫但并不简单哦比我们前介绍所有东西都整合再起了很简单但很全面。

但是假如你说这我己也可以完全己写出(并不是仅仅是看懂哦)那么我可以肯定说工作你完全可以胜任般任要哦~剩下只是工作量问题了。

但我相信到现止你们很多人都无法写出这样程序所以我建议你们把这程序研究明白这很重要。

废话不多说上图下面是打开运行界面

通面板可以控制及显示很多动画效做非常漂亮。

其余窗体也将主要数据以图表等表现方式呈现出。

我们先看下B容吧 gl g车速信息 lLg双跳灯 Lg灯 引擎状态 g g引擎状态包含信有g Lg灯光状态包含信有lLgLg rk l显示节接收所有消息 g引擎节发送g 消息 Lg灯光节发送Lg 消息 vr vrbl环境变量般与界面组件相关这样就实现了图形化界面控制与显示下面就是关界面组件 vgr vgx vgr vg vg vzrLg vLg vLg 下信信息 页面Vl输入框使能了前是灰色状态什么呢?击下蓝色带下划线连接弹出窗台如下 思是说这值设置必须要定义属性才能有效前直没有提到信属性这次还是次遇到哦。

人理信属性是表明信特系列参数当然消息和节也都有对应属性

了更加详细了这属性我们助助。

哦明白了原是用初始化数据哦。

其实表示是物理值都要换成R值保存到GgrVl属性

属性创建我们前也没有提到这里讲下请b++ r菜单V>rb 右键填写信息即可。

属性背跟行是密切相关甚至跟底层ll其他些属性请参考l 档当然重要属性我们也会跟面提到。

b还有些细节就是接受消息定义也没介绍例如l节只接收消息那么你就应该节属性上进行配置方法是右击节然 Rx g就可以定义接收信了… 其实不定义接收消息也是可以但会l> k 检显示出无接收节等报警。

例如前面讲例子b检如下 再看下L程序

g 程序如下 vrbl { } vvr vg 当拨动开关候会更改发动机发出信 { $g @; 信和环境变量直接赋值信用$,环境变量用@ (@) $gg @vgr; l $gg 0; } vvr vgr 当移动车速滑条会更改发动机发出信 { (@vg) { $gg @; } } r 程序开始运行候将调用所有环境变量事件{ llllvVr(); ll ll vvr rr l r R VL ll vr vrbl r lz ll g vrbl rg r g g () r vl } lg 程序如下 vrbl { r lLgrq; 定义闪灯定器 glLgrq 500; 定义闪灯频率初始化500 gzrLg 0; 定义危险灯信 gbgrX 0; 用调试记录X报数 gbgrXRQ 0; 用调试记录XRQ报数 gbgrRX 0; 用调试记录RX报数 } vvr vLg 灯开关状态更改更新灯光消息信{ g V vl g gl $LgLg @; } r { llllvVr(); ll ll vvr rr l r R VL ll vr vrbl r lz ll g vrbl rg r g g () r vl rbgLvl(0); bgLvl g r r r } g Lg 调试用打印相关信息 { (r X) { gbgrX++; (gbgrX 0) { rbgLvl(,"Lg X rv b %_%"); gbgrX 0; } } (r XRQ) { gbgrXRQ++; (gbgrXRQ 0) { rbgLvl(,"Lg XRQ rv b %_%"); gbgrXRQ 0; } } (r RX) { gbgrRX++; (gbgrRX 0) { rbgLvl(,"rrr Lg RX rv b %_%"); gbgrRX 0; } } } vVr vzrLg 危险警示灯开关变化更新灯光消息闪灯信{ (@) { gzrLg ; r(lLgrq, glLgrq); } l { lr(lLgrq); gzrLg 0; } $LglLg gzrLg; } r lLgrq 危险报警灯隔闪烁控制 { gzrLg (gzrLg ? 0 ); $LglLg gzrLg; r(, glLgrq); } k "0" 按键事件定义打印调试信息等级 { rbgLvl(0); } k "" 按键事件定义打印调试信息等级 { rbgLvl(); } 以上程序有语言基础学应该都可以看得懂这里不用详细介绍了。

看完程序可能有疑问没有调用任何发送消息函数(只是更改其信)但报却真发出了这是什么呢? 这是因周期发送消息工作已消息属性定义了这样消息会动周期发送

如下消息属性界面当然也可以上面我们介绍V>rb 进行修改和看但区别是这只是针对别消息V>rb 是针对所有情况。

还有消息属性对进行归类以上归类到r Lr这是通讯交层。

上面各属性具体含义请参考助档都有详细说明。

下面说下界面

界面组件状态栏可显示他类型关对象等信息。

右边属性窗口定义组件属性组件类型r 属性栏 g 表示该组件使用图片因要表示几种状态所以做成这样尺寸05x3 x 表示状态数 其他属性不介绍了己试下基可以知道实不行助助档这里不介绍了。

到现整工程剖析基上结束了但说这些不足以覆盖所有细节但基脉络已很清晰了剩下可以己研究都不难理。

人建议实际工作创建己工程当遇到问题是参考例子实现方式这样更加助理。

进步也快。

相关热词 工程工作案例案例工程

2 次访问