henry200
第1楼2006/11/19
2、虚拟仪表面板对象
2.1面向对象的设计方法
在虚拟仪表的可视化设计过程中,采用了面向对象方法。一个虚拟仪表系统由许多仪表组成,每个虚拟仪表均由面板控制,因此按照面向对象的设计思想将面板分解为具有继承关系的面板对象(Panel Object),每个面板对象都有各自的独立属性和行为。
对于虚拟仪表系统,可以将其仪表面板对象划分为基本的图形元素和专用面板对象两类,基本的图形元素即图元包括直线、矩形、椭圆、多边形和文本等;专用面板对象包括按钮、开关、旋钮、动态调节器等面板控制控件和指示灯、数字仪表、指针仪表、图像显示器、示波器等面板显示控件以及其它特殊显示控件。
2.2面板对象数据结构
在虚拟仪表系统中,面板对象是以图形的方式显示的,系统允许用户通过人机交互的方式对仪表对象的属性参数进行修改。对象的描述包括了定义面板对象各组成部分形状的几何坐标数据,对象的属性如线型、颜色等,还有非几何的文字或数值,如对象名称和可见信息等,它对于后处理程序或交互作用的使用是非常有用的。
各种面板对象都具有共同的属性,因此基于各种面板对象的数据类型和结构,可抽象出通用的基类数据结构。综上所述,可以如下定义面板对象的基类数据结构:
class base{
m_csObjectName; 面板对象名称
m_bVisible; 可视信息,0——不可见;1—— 可见
m_crPosition; 面板对象的位置信息及其包围框大小信息
m_logbrush; 绘制该面板对象时采用的画刷,决定填充属性
m_logpen; 绘制该面板对象时采用的画笔,决定线属性
};
具体的面板对象的数据结构均继承基类的数据结构,并在基类的基础上,根据不同的面板对象的属性和参数,添加相应的数据类型就可以确定特定的面板对象数据结构。
2.3 虚拟仪表实例
用户通过系统提供的虚拟
仪表面板对象,在计算机屏幕上通过鼠标可以方便地建立满足自身测试需要的虚拟仪表系统。
3、可视化设计与实现
虚拟仪表的可视化技术主要有两个方面:一是面板对象及其相关参数的可视化,即将数据转换为图形或图像,实现面板对象的可视化;二是基于面向对象技术的图形用户界面(GUI)设计,即可视界面设计。
在系统设计中采用面向对象直接操纵的图形交互方式(即GUI),便于用户直接操纵屏幕上不同的可见面板对象图元。
henry200
第2楼2006/11/19
3.1面板对象图元集
定义了一个可扩充的面板对象图元集,这些对象是面板对象图形属性和操作的抽象表示。当建立一个面板对象或编辑其属性时,用户只需指定面板对象,直接进行绘制、移动、复制、删除等操作,该对象能够自己重新绘制或重画,用户不须关心如何做图。
3.2交互绘图工具类
对于交互反馈,没有集成在面板对象内,而是定义了交互绘图工具类(面板对象类的友元),用于处理施加在面板对象上的交互操作,这样保证了通用性、独立性和可扩充的能力。图4给出了交互绘图工具的类层次关系。
3.3数据的动态图形显示
数据可视化(Data Visualization)就是将数据以特定
的动态图形方式显示在计算机屏幕上,供用户监控之用。在虚拟仪表中,诸如仪表的指针偏转和示波器的波形变化等都反映了数据的动态变化,即面板对象图形在测试过程中具有动画的效果。
虚拟仪表的数据可视化就是构造一个从数据集到面板对象集的映射函数F:DG→V,它需要刻划每一(dg,v)对的可视化语义。这样,对于不同的面板对象可以建立图形相对于其相应的输入变量变化的函数关系。
在应用系统的设计中,当数据变化频繁时,对应的面板对象实时刷新将造成屏幕闪烁。事实上,当数据变化时,面板对象图形的许多单元是固定不变的,变化的只是与数据存在参数映射的部分区域。因此在设计时,构造了用于显示动态数据的绘图函数。
在本系统中,虚拟仪表测试仿真计算机的数据是通过网络从主控计算机传来的。仿真计算机运行播出程序,启动面板对象显示线程,并通过网络不断地获取数据,同时为面板对象分派入数据,实时显示刷新仪表面板画面。
在Windows环境下,我们应用VC++面向对象的类编程技术开发的虚拟仪表可视化通用系统,具有友好的图形用户接口,用户可以方便地设计满足自己需要的仪表系统。同时该系统支持网络运行方式,实现了网络可视化仿真。