使用CANoe进行Panel设计
- 摘要
- 1. Panel的新建及概述
- 2. 控件介绍
- 2.1 Analog Guage控件
- 2.2 Button控件
- 2.3 Check Box控件
- 2.4 Clock Control控件
- 2.5 Combo Box控件
- 2.6 File Button控件
- 2.7 Group Box控件
- 2.8 Input/Output Box控件
- 2.9 LCD Control控件
- 2.10 LED Control控件
- 2.11 Media Player控件
- 2.12 Numeric Up/Down控件
- 2.13 Panel Control Button控件
- 2.14 Path Dialog控件
- 2.15 Picture Box控件
- 2.16 Progress Bar控件
- 2.17 Radio Button控件
- 2.18 Static Text控件
- 2.19 Track Bar控件
- 小结
原文链接: https://blog.csdn.net/weixin_44536482/article/details/94171929
摘要
CANoe为我们提供了制作交互面板的功能——Panel Designer。通过该工具我们可以创建面板,对放置的控件关联上信号变量。当我们对控件进行操作时,则相应改变了关联上该控件的变量值,再通过CAPL编程获取该变量的值,我们便可以进行下一步的程序动作了。面板控件为交互,关联上的信号变量为桥梁,以此完成交互工作。
1. Panel的新建及概述
如下图,点击工具栏Home下的Panel,可以选择Add Panel导入之前保存的Panel文件(.xvp文件),也可以选择New Panel进行面板的新建。
Panel Designer的操作界面如下,在右侧调出控件列表并进行参数设置,中间是控件的形态显示,左侧是工程中定义的报文信号、环境变量、系统变量等信息的预览窗口。
如上图,我们放置了一个计量器控件,但此时我们还没有将其用起来,即还没有将该控件与CANoe进行关联。关联操作如下:
(1) 在Symbol Filter属性中选择该信号要进行关联的类型;常用到的有信号、环境变量、系统变量等;
Ps: 注意环境变量是在工程关联的dbc中创建的,而系统变量是在CANoe工程工具栏的Environment下的System Variables中创建的。
(2) 在前面步骤选好要关联的类型后,再在Symbol中选择该类型中具体的变量进行关联。
(3) 通过关联的信号或者环境变量等,我们就将控件的状态与CANoe联系起来了。当我们对控件进行操作时,改变其关联的变量值,通过CAPL编程获取该变量的值,我们便可以进行下一步的程序动作了(如将该值输入到某个报文信号进行发送,或者开始调用某个功能函数等操作)。
2. 控件介绍
2.1 Analog Guage控件
用于将数据的数值以仪表的形式显示(一般用于车速、转速等信号数值的显示)。如下图,需要设置的主要参数有:进行关联的变量、变量范围及扇形角度、单位等。
2.2 Button控件
作为开关按钮,通过该按键改变关联的变量值。在CAPL程序中,对关联的变量值进行判断,再对应执行相应的功能代码。如下图,需要设置的主要参数有:按下与松开的按键值、关联的变量、按键名。
2.3 Check Box控件
其作用与前面的Button按钮相似,只不过Check Box会锁住当前状态,而Button控件的状态只在按住的时候才改变,无法将状态锁住。如下图,需要设置的主要参数有:勾选与没有勾选时的值、关联的变量、控件指示名。
2.4 Clock Control控件
用于时间显示,可以指示工程的运行时间(需在CAPL中编程去实现,在Source中选择CAPL),或对当前时间进行显示(在Source中选择PCSystem Time)。如下图,需要设置的主要参数有:控件名、时间的输入源。该控件不关联变量也可以使用,因为其只是用于指示时间。
当Source选择CAPL时,在CAPL编程中,对该控件时间进行设置的函数是:
setClockControlTime(“当前Panel名字”, “上图中的控件名”, 要设置的数值);
所以,若要指示当前工程的工作时间,则需要定义一个1s的定时器和一个用于指示时间的变量,每1s将变量自加,并通过上面提到的函数进行时间更新显示。
CAPL代码如下:
Variables /*全局变量定义*/
{
int gTimeDownloadSec = 0;
timer CountTime;
}
on start /*系统事件,工程开始时执行*/
{
setTimer(CountTime, 1);
}
on timer CountTime /*CountTime为每秒运行一次的时间事件*/
{
gTimeDownloadSec++;
setClockControlTime("temp", "Clock Control", gTimeDownloadSec);
setTimer(CountTime, 1);
}
2.5 Combo Box控件
作为下拉列表,用于对变量值的设定。如下图,需要设置的主要参数有:选择进行关联的信号、选择显示方式、设置控件描述。
2.6 File Button控件
用于链接上一个文件,当点击按键时则会打开链接上的文件。如下图,需要设置的主要参数有:选择要链接的文件、按键的显示(通过加载的图片来修饰)
2.7 Group Box控件
用于控件的分组,可以将同一性质的控件放到一个Group Box控件之中。如下图,需要设置对这组控件的描述。
2.8 Input/Output Box控件
用于对关联变量值的输入与输出显示(当关联上String型变量时,则是做为文本输入输出框)。既可以显示关联变量的当前值;也可以输入值改变关联的变量值。如下图,需要设置的参数主要有:选择要进行关联的变量,对控件的描述等。
2.9 LCD Control控件
其作用是以LCD的形式显示关联的变量值(没有输入改变变量值的功能)。如下图,需要设置的内容主要有:选择要关联的变量、根据变量取值范围设置好LCD的整数及小数的位数。
2.10 LED Control控件
常用于关联上某个变量值,以LED亮灭的形式指示当前工程的运行状态。如下图,需要设置的内容主要有:选择要关联的变量、亮灭时灯的颜色、LED灯的大小、亮灭对应的触发值(下图即当关联的变量值置为1时LED灯才会点亮)。
2.11 Media Player控件
用于对音视频等媒体文件的播放控制。如下图,需要设置的内容主要有:选择要操作的媒体文件、选择关联的变量、设定对应播放、停止、暂停操作的变量值。
2.12 Numeric Up/Down控件
用于以数值增减箭头的方式对关联变量的值进行改变控制。如下图,需要设置的内容主要有:选择要关联的变量、设定每按一次的增减量、取值范围。
2.13 Panel Control Button控件
当按下该控件时进行关联面板的跳转。如下图,需要设置的内容主要有:选择要关联的面板、控件显示名。
2.14 Path Dialog控件
常用于对指定类型文件的选择,并通过关联的string类型变量存储选择的文件路径,便于在CAPL编程中进行下一步(如打开文件进行读取等)的工作。如下图,需要设置的内容主要有:选择要关联的string类型变量、文件过滤类型。
2.15 Picture Box控件
其作用是调取图片显示,用于面板的美化。如下图,需要只需关联上要显示的图片即可。
2.16 Progress Bar控件
其作用是以进度条的形式对关联变量的值进行显示(没有输入改变的功能)。如下图,需要设置的内容主要有:选择要关联的变量、取值范围、进度条的显示方向(水平/垂直)、信号数值的显示位置、显示的小数位数等。
2.17 Radio Button控件
其作用是以单选按钮的形式对关联变量的状态进行显示(选中或者没选中)。如下图,需要设置的内容主要有:选择要关联的变量、对应显示选中时的变量值、是否可点击选择、显示文本信息等。
2.18 Static Text控件
用于界面上文本信息的显示。如下图,需要设置的内容主要有:显示的内容、显示字体、大小的设置。
2.19 Track Bar控件
其作用是以刻度滑杠的形式对关联变量的状态进行显示及控制。如下图,需要设置的内容主要有:选择要关联的变量、设置范围、是否可拖动改变变量值、选择控件方向等。
小结
以上,我们介绍了CANoe工程中面板控件的作用及相关的参数设置,这里再对上述的十几种控件进行归类梳理,以便需要时查找对应满足功能的控件。
指示类控件:这一类控件以其控件形态展示其关联信号的当前值,没有对信号进行输入改动的能力,仅仅用于值的输出展示。
- Clock Control控件:以LCD的形式对当前时间或者工程的运行时间进行显示;
- LCD Control控件:以LCD的形式显示关联的变量值;
- LED Control控件:以LED亮灭的形式显示关联的信号值状态(只能有亮或灭对应的状态);
- Progress Bar控件:以进度条的形式对关联变量的值进行显示;
功能类控件:这一类控件用于调用其他功能块。
- File Button控件:通过该控件打开链接的文件;
- Media Player控件:用于播放关联上的音视频媒体文件;
- Panel Control Button控件:通过该控件调出关联上的Panel面板;
- Path Dialog控件:通过该控件可对指定文件类型进行过滤选择;
- Picture Box控件:显示关联上的图片,一般用于面板的美化;
信号值交互类控件:这一类控件用于对信号值的输入改变、输出显示,除信号值大小的显示外,还具备对信号值进行输入改动的能力。
- Analog Guage控件:用于以仪表盘的形式显示/控制关联上的信号值(如用于车速转速的控制);
- Button控件:通过关联上某个变量作为开关按钮(仅有按下、松开两种状态);
- Check Box控件:以勾选框形式去表示状态(仅有勾选、未选两种状态);
- Combo Box控件:以下拉列表的形式显示/控制关联上的信号值;
- Input/Output Box控件:输入输出框,用于对关联变量的输入控制及输出显示(数字或文本形式);
- Numeric Up/Down控件:以数值增减箭头的形式对关联变量的值进行控制和显示;
- Radio Button控件:以单选按钮的形式对关联变量的状态进行显示(选中或者没选中);
- Track Bar控件:以刻度滑杠的形式对关联变量的状态进行显示及控制;
其他类控件
- Group Box控件:用于对其他控件的分组(将同一特性的控件都置于一个Group Box
控件框内); - Static Text控件:用于界面上指示用的静态文本信息的显示;