目录

目标

实现步骤

添加环境变量

在Panel面板中添加按钮

编写CAPL脚本

使用

环境变量事件相关的函数

后语


目标

当如下panel面板中的按钮按下时实现在CANoe中的Write窗口打印“Hello world!”

实现的效果

通过将CANoe中的panel图形组件与CAPL语言结合在一起,可能实现功能如:按下按钮发送某一诊断报文读取ECU版本号,通过图形化界面选取指定文件进行内容读取,通过Panel面板做一个ECU软件刷软工具等等。

实现步骤

  1. 添加环境变量 sbm_panel
  2. 在Panel中添加一个button组件 pannel
  3. 将添加的button组件与环境变量关联
  4. 在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面板实现按钮触发功能相关推荐

  1. 第一百九十九节,jQuery EasyUI,Panel(面板)组件

    jQuery EasyUI,Panel(面板)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解EasyUI中Panel(面板)组件的使用方法,这个组件不依赖于其 ...

  2. EasyUI中Panel面板的简单使用

    场景 效果 属性 名称 类型 描述 默认值 id string 面板(panel)的 id 属性. null title string 显示在面板(panel)头部的标题文字. null iconCl ...

  3. html5拖动的面板 panel,基于jQuery UI的Bootstrap Panel面板功能增强插件

    LobiPanel是一款基于jQuery UI的Bootstrap Panel面板功能增强插件.通过该插件可以为Bootstrap的原生Panel面板增加编辑标题,最大化,最小化,面板拖动关闭面板等功 ...

  4. CAN工具-VSpy(ValueCAN) - Panel面板(续)

    继续上次的Panel面板介绍!!! 7. LED 控件 LED控件可以用作指示器.在Graphical Panels中选中该控件,在界面右侧侧拉框的Properties中可设置LED控件的通用属性. ...

  5. 组件面板 html 页面,Html - Bootstrap Panel面板

    http://v3.bootcss.com/components/#panels Bootstrap Panel面板 Panel heading without title Panel content ...

  6. jQuery Easy UI Panel(面板)组件

    panel(面板)组件,跟前面的组件使用方法差点儿都差点儿相同,也是从设置一些面板属性.操作面板触发的事件.我们可针对面板对象的操作方法这三个点去学习. 后面有一些组件要依赖于这个组件. 另一点跟前面 ...

  7. Unity-live2D 实战篇笔记(背景音乐的设置,按钮触发的界面跳转)

    Unity-live2D 概述:经过之前第一章的学习,一些基础的关于live2D的操作学的差不多了,然后跟着课程进入了第二章,开始实战篇.就这里做个笔记吧. 背景音乐的设置 设置背景音乐,先以Canv ...

  8. CAN工具-VSpy(ValueCAN) - Panel面板

    在介绍CANoe工具的时候,有介绍过Panel面板的使用,同样,在VSpy软件工具中,也有同类型的工具可供使用 - Graphical Panels,同样也能提供一个控制面板,然后我们通过连接信号实现 ...

  9. js按钮触发网页提醒_js触发asp.net的Button的Onclick事件应用

    在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制的麻烦. asp.net带来便利的同时,也带来一个问题.在实际 ...

最新文章

  1. 第十六届全国大学生智能汽车竞赛 英飞凌芯片申请情况
  2. 网站内页权重高于首页的原因及解决方法攻略总结!
  3. android热更新插件,与Android热更新方案Amigo的再次接触
  4. C语言线性插值lerp算法(附完整源码)
  5. Java IO之File类详解
  6. 不同库表数据库迁移工具_Microsoft提供的数据库迁移助手工具概述
  7. c语言槟编程把两个数交换,第三章管理信息系统技术基础.doc
  8. Pytorch——DataLoader(批训练)
  9. k60单片机全称 恩智浦_k60 飞思卡尔k60芯片的串口查询接收例子源程序,曾用于 比赛 SCM 单片机开发 240万源代码下载- www.pudn.com...
  10. JDK1.6官方下载_JDK6官方下载
  11. 【A星算法】--第四篇(A星算法)
  12. python 估值模型_基于Python的客户价值细分模型(RFM)
  13. QT使用log4cpp日志库
  14. 嵌入式软件工程师—成长笔记#02
  15. windows meld的右键菜单的使用
  16. 结构动力学MATLAB编程例题,华工结构动力学编程 MATLAB
  17. 猫眼APP影院静态界面
  18. 屌丝的逆袭——手把手教你用100大洋打造1000大洋SSD固态硬盘的系统提速效果
  19. 使用YIN算法提取音频的F0 Contours
  20. houdini 简化太阳

热门文章

  1. 经典数字图像处理素材库
  2. C#: 星座星盘计算算法
  3. oracle进行排序,oracle排序的几种方法
  4. 新浪微博粉丝通推广效果分析
  5. iOS 诡异的崩溃EXC_BREAKPOINT (code=1, subcode=0x1c5691d2c)
  6. 浏览器f12, ::before ::after是什么意思?
  7. 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)
  8. 全网最全抖音运营攻略
  9. [Java 编程] -- style属性
  10. 超详细Office Online Server部署