CANoe学习笔记3_--_Panel_Designer

CANoe学习笔记3_--_Panel_Designer
CANoe学习笔记3_--_Panel_Designer

CANoe学习资料3 --- Panel Designer

Xiang wei

2011-3-14

Panel Designer(面板设计器)是CANoe软件中另一个自带的交互式面板设计工具,与另一个面板设计工具Panel Editor(面板编辑器)具有相似的功能。

Panel Designer所设计出的面板,其保存格式是“.xvp”(Extended Vector Panel)。

Panel Designer中包含的基本控件供有16种,其名称、作用等信息参见下表,注意,有部分控件仅仅能够在CANoe中使用;还有部分控件在作为控制类型控件时,也仅适用于CANoe 软件,在CANazer中则以限制模式使用(也即仅仅能够作为显示控件使用,而且无法绑定环境变量)。

Panel Designer与Panel Editor的区别可参见下表所示:

对上表的几点总结:

(1)从表中可以看出,在创建面板上的控制或显示控件时,Panel Designer可以方便地使用拖拽功能,直接将控件元素从工具栏拖拽到面板上,从而完成创建工作;在关联环境变量或是信号时,也可直接将变量拖拽到控件上,以完成自动关联。这种特性在Panel Editor中是没有的。

(2)在使用Panel Editor编辑面板时,,可以使用工具栏上的运行按钮来随时运行编写的面板,以检验面板功能是否正确,这种特性被称之为面板的“测试模式“(Test Mode),注意该特性并没有在Panel Designer中提供。

(3)可以使用CAPL命令来控制Panel Editor制作的面板,如激活/不激活面板、改变面板上控件的颜色等,而这个功能在Panel Designer中也未提供。

(4)Panel Designer中并没有提供撤销/重做功能(这样有可能会给面板的编辑工作带来不便),该项功能仅仅在Panel Editor中提供。

Panel Designer中的大多数控件的功能都与Panel Editor相似,下表中提供了更加详细的对照信息。总体来说,Panel Editor中提供的控件更加丰富,但是Panel Designer中的控件拥有“属性”(Properties)窗口,在编辑时更加方便高效。

Analog Gauge Analog Gauge

Push Button

Button

Bitmap Push Button

Check Box

Combo Box Value Table Box Group Box Frame

Numeric Up/Down SpinControl Panel Help Button Panel Help Button Path Dialog FileSelection Picture Box

Bitmap

Static_Bitmap Progress Bar VectorBar

Radio Button Radio Button Static Text Text

Switch/Indicator Switch

Bitmap Switch/Indicator Bitmap_Button

Bitmap_Switch

Text Box Input/Output Box

Track Bar Slider,

BitmapSlider

Slider

Hex Editor

Panel Control button MessageDisplay MessageGroupControl Meter

这里列举了一个综合利用各种控件制作面板的实例。图中的面板包含有音量减、静音、音量加三个按钮,分别绑定了VOLUME_DWN、VCI_MUTE、VOLUME_UP三个环境变量,用以控制RNEG2010的音量;在“Trame 0Xb6 switch”区域则包含一个开关控件和一个文本框,分别绑定了环境变量Trame_switch、Speed2,按下开关时,CANoe开始自动发送信息帧0xB6

(ID_DONNEES_BSI_RAPIDES),在VITV框中输入十进制的速度值后,在右侧的仪表上能观测到对应的速度值,仪表控件同样绑定了环境变量Speed2。

源程序如下所示:

variables

{

message0xB6 mSpeed; // 定义信息帧ID_DONNEES_BSI_RAPIDES message 0x21F mRadio; // 定义信息帧ID_CDE_RADIO

msTimer tSpeed; // 为循环发送信息帧0xB6定义一个定时器

}

on envVar Trame_switch // 是否发送信息帧0xB6

{

if(getvalue(this) == 0x1) // 当开关被按下时

{

setTimer(tSpeed,10); // 10ms之后开始发送信息帧0xB6

}

else if(getvalue(this) == 0x0) // 若开关弹起后

{

cancelTimer(tSpeed); // 停止发送

}

}

on envVar Speed2 // 仪表控件接收到VITV文本框中的速度信号后{

mSpeed.VITV = getvalue(this)*100; // 显示出速度值

on envVar VCI_MUTE // 静音功能

{

If(getvalue(this) == 0x1) // 静音激活

{

mRadio.VOLUME_DWN_ET_HDC = 0x1;

mRadio.VOLUME_UP_ET_HDC = 0x1;

output(mRadio);

}

else if(getvalue(this) == 0x0) // 静音关闭

{

mRadio.VOLUME_DWN_ET_HDC = 0x0;

mRadio.VOLUME_UP_ET_HDC = 0x0;

output(mRadio);

}

}

on envVar VOLUME_UP // 音量加{

if(getvalue(this) == 0x1)

{

mRadio.VOLUME_DWN_ET_HDC = 0x1;

output(mRadio);

}

}

on envVar VOLUME_DWN // 音量减

{

if(getvalue(this) == 0x1)

{

mRadio.VOLUME_DWN_ET_HDC = 0x1;

output(mRadio);

}

}

on timer tSpeed // 循环发送信息帧0xB6

output(mSpeed);

setTimer(tSpeed,200); // 每隔200毫秒发送一次}

相关主题
相关文档
最新文档