2008-09-12
方案综述:
虚拟仪器是指具有虚拟仪器面板的个人计算机仪器,它是计算机资源、模块化功能硬件与用于数据分析、过程通信及图形用户界面的应用软件的有机结合。它利用软件在屏幕上生成各种仪器面板,完成对数据的处理、表达、传送、存储、显示等功能。虚拟仪器与传统仪器相比,其主要优点是可以由用户自己定义、自己设计仪器系统,以满足不同的要求,使仪器的功能更加强大、灵活,而且很容易同网络、外设及其他应用相连接。这样既降低了价格,节省开发、维护的费用,又缩短了技术开发周期。
虚拟仪器的关键技术之一就是应用软件,这是因为,虚拟仪器的主要功能是由软件来体现的,即“软件就是仪器”。虚拟仪器的软件开发平台应该提供一个图形化的编程设计环境,值得一提的是NI的LabView和LabWindows及HP的VEE。
本文介绍的基于网络的虚拟仪表系统是一个不包含数据采集及总线控制系统的虚拟测试平台,主要用于对测试数据文件的事后处理或对被测对象进行实时仿真测试,形成网络化测试仿真系统。
1、基于网络的虚拟仪表系统
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),便于用户直接操纵屏幕上不同的可见面板对象图元。
3.1面板对象图元集
定义了一个可扩充的面板对象图元集,这些对象是面板对象图形属性和操作的抽象表示。当建立一个面板对象或编辑其属性时,用户只需指定面板对象,直接进行绘制、移动、复制、删除等操作,该对象能够自己重新绘制或重画,用户不须关心如何做图。
3.2交互绘图工具类
对于交互反馈,没有集成在面板对象内,而是定义了交互绘图工具类(面板对象类的友元),用于处理施加在面板对象上的交互操作,这样保证了通用性、独立性和可扩充的能力。图4给出了交互绘图工具的类层次关系。
3.3数据的动
评论0