CAPL入门:结合panel面板实现按钮触发功能
目录
目标
实现步骤
添加环境变量
在Panel面板中添加按钮
编写CAPL脚本
使用
环境变量事件相关的函数
后语
目标
当如下panel面板中的按钮按下时实现在CANoe中的Write窗口打印“Hello world!”
实现的效果
通过将CANoe中的panel图形组件与CAPL语言结合在一起,可能实现功能如:按下按钮发送某一诊断报文读取ECU版本号,通过图形化界面选取指定文件进行内容读取,通过Panel面板做一个ECU软件刷软工具等等。
实现步骤
- 添加环境变量 sbm_panel
- 在Panel中添加一个button组件 pannel
- 将添加的button组件与环境变量关联
- 在CAPL节点中,添加一个on envVar sbm_panel 事件,在该事件中编写具体的实现逻辑。
添加环境变量
1、打开CANOE软件 ->Tool ->CANdb++ Editor -> File ->Create Database ->CANTemplate.dbc -> ok->命名并保存dbc文件(如果已有DBC文件可以忽略这一步)。
2、在CANOE软件 ->Tool ->CANdb++ Editor ->Environment variables ->NEW ->在打开的编辑界界面中填入对应的参数。如下:
3、创建值表
操作方法:CANdb++ Editor -> View -> Value Tables ->空白处右键->New ->在弹出的选项卡中填入名称->Value Descriptions->Add ->添加数值表内容->保存。
4、将值表和环境变量关联在一起。
在Panel面板中添加按钮
1、打开CANOE软件 ->Tool ->Panel Designer ->新建一个Pnael并保存。
2、添加一个button,命名并关联环境变量。
编写CAPL脚本
打开CAPL编辑界面,添加以下代码。
/*@!Encoding:936*/
includes
{}variables
{}on envVar sbm_panel
{write("Hello world!");
}
说明一下:
on envVar sbm_panel 为环境变量事件,当环境变量sbm_panel的值发生变化时会触发该事件。在CANoe中,环境变量就是连接Panel和CAPL的桥梁,通过Panel组件改变已创建的环境变量的值,实现对CAPL事件的调用。
使用
完成以上步骤后,启动CANoe。在CANoe的Home选项卡中的Panel选项中,可以调出自定义的Panel组件。点击后可以实现相应的效果。需要特别说明的是:button按下时会触发一次环境变量事件,松开时也会触发一次环境变量事件,如果只需要按下时触发,则需要在代码先获取环境变量的值,然后根据当前环境变量的值去判断是否执行。
环境变量事件相关的函数
1、获取环境变量的值
int getValue(EnvVarName); |
2、设置环境变量的值
void putValue(EnvVarName, int val); |
3、使用示例
on envVar sbm_panel
{//获取环境变量sbm_panel的值int i;i = getValue(sbm_panel);write("sbm_panel = %d ",i);//设置环境变量sbm_panel的值putValue(sbm_panel,1);write("Hello world!");
}
后语
以上只是将Panel与CAPL结合的入门示例,目的只是熟悉如何使用这两个组件实现更强大的工具。后续可以根据自已的需求实现相应的CAN工具。
CAPL入门:结合panel面板实现按钮触发功能相关推荐
- 第一百九十九节,jQuery EasyUI,Panel(面板)组件
jQuery EasyUI,Panel(面板)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解EasyUI中Panel(面板)组件的使用方法,这个组件不依赖于其 ...
- EasyUI中Panel面板的简单使用
场景 效果 属性 名称 类型 描述 默认值 id string 面板(panel)的 id 属性. null title string 显示在面板(panel)头部的标题文字. null iconCl ...
- html5拖动的面板 panel,基于jQuery UI的Bootstrap Panel面板功能增强插件
LobiPanel是一款基于jQuery UI的Bootstrap Panel面板功能增强插件.通过该插件可以为Bootstrap的原生Panel面板增加编辑标题,最大化,最小化,面板拖动关闭面板等功 ...
- CAN工具-VSpy(ValueCAN) - Panel面板(续)
继续上次的Panel面板介绍!!! 7. LED 控件 LED控件可以用作指示器.在Graphical Panels中选中该控件,在界面右侧侧拉框的Properties中可设置LED控件的通用属性. ...
- 组件面板 html 页面,Html - Bootstrap Panel面板
http://v3.bootcss.com/components/#panels Bootstrap Panel面板 Panel heading without title Panel content ...
- jQuery Easy UI Panel(面板)组件
panel(面板)组件,跟前面的组件使用方法差点儿都差点儿相同,也是从设置一些面板属性.操作面板触发的事件.我们可针对面板对象的操作方法这三个点去学习. 后面有一些组件要依赖于这个组件. 另一点跟前面 ...
- Unity-live2D 实战篇笔记(背景音乐的设置,按钮触发的界面跳转)
Unity-live2D 概述:经过之前第一章的学习,一些基础的关于live2D的操作学的差不多了,然后跟着课程进入了第二章,开始实战篇.就这里做个笔记吧. 背景音乐的设置 设置背景音乐,先以Canv ...
- CAN工具-VSpy(ValueCAN) - Panel面板
在介绍CANoe工具的时候,有介绍过Panel面板的使用,同样,在VSpy软件工具中,也有同类型的工具可供使用 - Graphical Panels,同样也能提供一个控制面板,然后我们通过连接信号实现 ...
- js按钮触发网页提醒_js触发asp.net的Button的Onclick事件应用
在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制的麻烦. asp.net带来便利的同时,也带来一个问题.在实际 ...
最新文章
- 第十六届全国大学生智能汽车竞赛 英飞凌芯片申请情况
- 网站内页权重高于首页的原因及解决方法攻略总结!
- android热更新插件,与Android热更新方案Amigo的再次接触
- C语言线性插值lerp算法(附完整源码)
- Java IO之File类详解
- 不同库表数据库迁移工具_Microsoft提供的数据库迁移助手工具概述
- c语言槟编程把两个数交换,第三章管理信息系统技术基础.doc
- Pytorch——DataLoader(批训练)
- k60单片机全称 恩智浦_k60 飞思卡尔k60芯片的串口查询接收例子源程序,曾用于 比赛 SCM 单片机开发 240万源代码下载- www.pudn.com...
- JDK1.6官方下载_JDK6官方下载
- 【A星算法】--第四篇(A星算法)
- python 估值模型_基于Python的客户价值细分模型(RFM)
- QT使用log4cpp日志库
- 嵌入式软件工程师—成长笔记#02
- windows meld的右键菜单的使用
- 结构动力学MATLAB编程例题,华工结构动力学编程 MATLAB
- 猫眼APP影院静态界面
- 屌丝的逆袭——手把手教你用100大洋打造1000大洋SSD固态硬盘的系统提速效果
- 使用YIN算法提取音频的F0 Contours
- houdini 简化太阳
热门文章
- 经典数字图像处理素材库
- C#: 星座星盘计算算法
- oracle进行排序,oracle排序的几种方法
- 新浪微博粉丝通推广效果分析
- iOS 诡异的崩溃EXC_BREAKPOINT (code=1, subcode=0x1c5691d2c)
- 浏览器f12, ::before ::after是什么意思?
- 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)
- 全网最全抖音运营攻略
- [Java 编程] -- style属性
- 超详细Office Online Server部署