虚拟仪器软件自动生成方法

文档序号:6554932阅读:206来源:国知局
专利名称:虚拟仪器软件自动生成方法
技术领域
本发明涉及计算机应用软件编程方法,特别是用于虚拟仪器平台自动连接机制自动生成虚拟仪器软件方法。
背景技术
虚拟仪器的核心思想是“软件即是仪器”,即在硬件的基础上,配合功能强大的软件系统可以生成不同种类的虚拟仪器。虚拟仪器利用计算机,加上硬件板卡和专用的软件系统就可以使计算机具备仪器功能。虚拟仪器利用计算机的图形处理能力的来建立仿真的仪器控制软面板,实现对组成仪器的硬件的控制。同时,利用计算机强大的数据处理能力来进行数据的处理与显示。虚拟仪器是用来替代传统仪器的一个重要研究方向,同时也是仪器科学领域的一个重要发展方向。
虚拟仪器由硬件板卡与软件所组成,软件是构成虚拟仪器的核心。目前比较流行的虚拟仪器软件在国际上主要实现方式有(1)美国国家仪器(NI)公司在其主导产品LabVIEW可进行虚拟仪器软件的开发,它较完善的结合了图形的美观易用和文本语言的强大灵活,并在此基础上提供面向广泛测试领域的虚拟仪器解决方案,在全球虚拟仪器领域占有垄断地位。(2)美国惠普公司(现Agilent)提供了虚拟仪器的另一种解决方案—VEE开发平台。虚拟仪器软件在中国现有的主要方式(1)基于国外软件平台如LabVIEW的二次开发和相关的硬件方案。(2)基于组件库的虚拟仪器组合平台,主要面向机械测试领域。(3)基于事件触发的并发数据流模型,并在此基础上实现了类似VEE的虚拟仪器开发平台VPP。像LabVIEW与VEE等中外比较流行的虚拟仪器开发平台采用图形化的的虚拟仪器软件开发方式,开发人员直接将代表仪器功能的控制拖动到屏幕上进行组装与设计,这些可视化的虚拟仪器生成平台为虚拟仪器软件的编制和开发提供了便利。然而,这些类型的开发软件有一个共同的缺点,从软件工程的角度来看,用户是需求的最好提供者,而不是软件本身最好的设计者。对于以上的这些虚拟仪器开发平台来讲,要求用户具备专门程序设计人员的程序设计能力,从通用的角度来看,这就使得虚拟仪器软件的开发变得繁琐起来,不利于推广和普及。

发明内容
本发明的目的就在于针对上述现有技术的不足,提供一种用户不需要具备计算机硬件方面知识的专门人员,就可以根据测试测量任务的需要选择模块,通过对所选择模块的推理,得出所选择模块之间的数据流入与流出的兼容性,自动决定数据流在各个模块之间的流入与流出的先后顺序,就可自动生成虚拟仪器软件。
本发明的目的是通过以下方式实现的虚拟仪器软件自动生成方法,包括以下方法和步骤a.建立模块总集,建立模块总集有数据获取、数据处理、数据显示和数据存储四种功能模块构成父辈层,四种功能模块又分别由具有层状继承关系的PCI、USB……n,FFT、PWE……n,DSO、LINE……n构成子辈层;b.建立全局数据区,全局数据区是由一个以上大小相同的内存块1、2、3……n构成,全局数据区是模块之间进行数据流动的通路,模块关系推理是用来实现功能模块读取全局数据区中的数据的权利的先后顺序以及判断数据在各个模块之间的兼容性;c.建立模块关系规则集,是若干个模块之间所形成具有同一父辈层模块之间的匹配关系,生成模块规则集的过程是生成具有同一父辈层模块的子辈层模块规则表的过程;d.模块之间匹配推理,从用户所选模块集中顺序读取两个模块,通过查找模块关系树,形成如IF条件1 and条件2 and…and条件n THEN决策e.自动生成虚拟仪器软件,通过对用户所选择模块的推理,得出用户所选择模块之间的数据流入与流出的兼容性,自动决定数据流在各个模块之间的流入与流出的先后顺序,自动生成虚拟仪器软件。
本发明的目的还可以通过以下方式实现模块总集中的模块分为具备显示界面的模块与不具备显示界面的模块,所有的模块具有统一的数据流向接口;模块规则集分为生成元模块规则集和生成非元模块规则集。
积极效果本发明所提供的虚拟仪器软件自动生成方法,无需编码,编译,连接等操作步骤,只需选择相应的功能模块即可自动生成虚拟仪器软件,通过对所选择模块的推理,得出所选择模块之间的数据流入与流出的兼容性,自动决定数据流在各个模块之间的流入与流出的先后顺序,就可自动生成虚拟仪器软件,简化了程序,提高了效率。
附图及


图1为虚拟仪器软件自动生成方法结构框2为虚拟仪器软件自动生成方法模块层状关系框3为虚拟仪器软件自动生成方法全局数据区与数据在模块之间流动框4为虚拟仪器软件自动生成方法全局数据区连接框5为虚拟仪器软件自动生成方法步骤框图
具体实施例方式下面结合附图和具体实施例作进一步说明建立模块总集把功能模块分成四个基本的模块数据获取、数据处理、数据显示、数据存储。并把这四个基本模块作为模块关系树中的第一层,进行细划,即从功能角度对四个基本模块进行细分。新形成的模块与数据获取、数据处理、数据显示、数据存储四个基本模块具有层状的继承关系。模块的定义可以形式化地表示为M=M(T,P,Dom),其中M为模块名,T为模块的父辈层模块名,P为模块的属性名集合,Dom为P中属性名所对应的值域;如果P中的下层属性值为0,称之为元模块MM(Meta-Module),如果P中的下层属性值为1,称之为非元模块NMM(Non-Meta-Module)。
建立全局数据区全局数据区类似于体系结构中的数据总线,负责多个模块之间的数据交换与共享。同时,也是模块之间进行数据流动的通路。全局数据区是一个可变长的DOUBLE类型全局变量用来实现数据的交换与共享。全局数据区可以分成专用区与共享区。专用区用于特定的两个模块之间进行数据的交换,即只有此两个模块具有读、写或读写的权利。共享区是指所有选择的功能模块均具有读、写或读写的权利。起初只分配一个256个DOUBLE大小的存储区域,对于存放大型数组时再根据系统资源来进行扩张。对于大型的数据交换但系统资源无法分配更多内存时,得用磁盘文件来进行读入读出交互。
模块之间关系的建立模块关系是若干个模块之间所形成的具有父子关系的层状模块关系树,生成模块关系规则集的过程是生成同层模块之间关系规则表的过程,由所有的关系规则表组成模块关规则集。
从模块集中顺序读取下一个模块,通过查找模块关系树,找出两模块之间是否匹配,如结果为空,则查找其中一个模块的父辈层模块与另一模块之间的匹配关系,若仍为空,则查找两个模块的各自的同一父辈层模块的匹配关系数,最终形成如IF条件1 and条件2 and…and条件n THEN决策。
生成非元模块规则集选定在程序自动生成机制下给定的所有模块集合,包括所有的元模块与非元模块,同时加入一个虚拟模块M00作为所有模块的最上层父类模块。修改M00中P属性集中的下层属性为1,设所有模块集用于建立模块关系推理树的模块集合为D。
生成元模块规则集选择所有模块中T属性为0的模块形成模块关系树的第一层模块集D1(M1i(i=0,1,2,3)),D1中包含若干个父辈层模块均为0的模块,同时指定和个模块之间的关系,也即是第一层模块之间的相互匹配关系,相互匹配关系存储于模块关系树中的结点。修改第一层模块集中各个模块的T属性为M00;从模块集(D-D1)挑选其T属性为M10的模块形成模块集D21,从模块集(D-D1-D21)挑选T属性为M11的模块形成模块集D22,依此类推,从模块集(D-D1-D21-……-D2i)挑选T属性为Mli的模块形成模块集D2i;各个模块集D21,D22,…D2i形成第二层模块集D2,将D2中的模块加入到模块关系树中;并指定各个模块集中各模块之时的关系;修改D21模块集中所有的模块T属性M10,修改D22模块集中所有的模块T属性M11,…修改D2i模块集中所有的模块T属性M1i;指定同一模块集中模块之间的关系;同时修改模块集D21,D22,…D2i的父类模块属性集P中的下层属性,如果集合不为空,则下层属性值为1,如果集合空,则下层属性值为0;如果集合不为空,指定各个集合中非元模块间的匹配关系。
重复上面的算法,直到满足集合(D-D1-D2-Dj)(j=1,2,3,……n)为空;保存此模块关系树用以后继程序自动生成机制的推理过程。
新模块加入时如果其父辈层模块为元模块,则修改父辈层模块P中的下层属性为1,并修改新模块的属性;如果其父辈层模块为非元模块,则在加入模块关系树过程中需要指出此模块与其具有同一父辈层模块的模块之间的关系。然后存储此修改后的模块关系树,用以推理过程。
进行模块之间的匹配推理利用生成的模块关系树进行模块关系匹配推理的过程即是判断所选多个功能模块之间是否匹配的问题。收集所选择的功能模块,形成模块集,按顺序读取第一个模块,读取模块关系树树,准备进行推理决策过程,从模块集中顺序读取下一个模块,找出此两个模块的各自的同一父辈层模块之间的匹配关系,如果父辈层模块全匹配,则此两模块全匹配;如果父辈层模块完全不匹配,则此两模块完全不匹配;如果查找的结果为空,则查找其中一个模块的父类的模块子另一模块之间的匹配关系,如果查找结果仍为空,则查找两个模块的各自的同一父辈层模块的匹配关系数。最终可以形成如“IF条件1 and条件2 and…and条件n THEN决策”的判断规则。
虚拟仪器软件自动生成依据判断推理结果,如果在推理过程中出现条件为假的时候报错,说明模块之间有不匹配关系。如果条件为真,则说明模块之间的数据流可兼容,可以自动连接各个模块形成虚拟仪器软件,使数据流在各个模块之间进行流入与流出。数据在各个模块之间的流动。
通过对用户所选择模块的推理,得出用户所选择模块之间的数据流入与流出的兼容性,自动决定数据流在各个模块之间的流入与流出的先后顺序,自动生成虚拟仪器软件。
功能模块统一对外接口。在每一个功能模块中,都包含标准的功能模块启动与停止的接口。自动生成利用此标准接口来控制所有模块的运行与停止。
权利要求
1.一种用于虚拟仪器平台的虚拟仪器软件自动生成方法,其特征在于,包括以下方法和步骤a.建立模块总集,模块总集是由数据获取、数据处理、数据显示和数据存储四种功能模块构成父辈层,四种功能模块又分别由具有层状继承关系的PCI、USB……n,FFT、PWE……n和DSO、LINE……n构成子辈层;b.建立全局数据区,全局数据区是由一个以上大小相同的内存块1、2、3……n构成,全局数据区是模块之间进行数据流动的通路,模块关系推理是实现功能模块读取全局数据区中的数据的权利的先后顺序以及判断数据在各个模块之间的兼容性;c.建立模块关系规则集,模块关系是若干个模块之间所形成的具有父子关系的层状模块关系树,生成模块关系规则集的过程是生成同层模块之间关系规则表的过程,由所有的关系规则表组成模块关规则集。d.模块之间匹配推理,从用户所选模块集中顺序读取两个模块,通过查找模块关系树,形成如IF条件1and条件2and…and条件n THEN决策;e.自动生成虚拟仪器软件,通过对用户所选择模块的推理,得出用户所选择模块之间的数据流入与流出的兼容性,自动决定数据流在各个模块之间的流入与流出的先后顺序,自动生成虚拟仪器软件。
2.按照权利要求1所说的虚拟仪器软件生成方法,其特征在于,步骤a模块总集中的模块分为具备显示界面的模块与不具备显示界面的模块,所有的模块具有统一的数据流向接口。
3.按照权利要求1所说的虚拟仪器软件生成方法,其特征在于,步骤c模块规则集分为生成元模块规则集和生成非元模块规则集。
全文摘要
本发明公开一种虚拟仪器软件自动生成方法,该方法是以需求为驱动建立程序所需模块,数据的获取、数据的处理、数据的显示、数据的存储四个层面进行抽象提取与细划,经功能模块集进行模块之间的匹配关系推理,得出用户所选择模块之间的数据流入与流出的兼容性,自动决定数据流在各个模块之间的流入与流出的先后顺序,在每一个功能模块中,都包含标准的功能模块启动与停止的统一对外接口,控制所有模块的运行与停止。消除了在非编码式虚拟仪器软件开发过程的设计和控制环节,只需选择相应的功能模块即可自动生成虚拟仪器软件,实现了基于模块选择的虚拟仪器软件自动连接生成,简化了程序,提高了效率。
文档编号G06F9/44GK1838072SQ200610016779
公开日2006年9月27日 申请日期2006年4月19日 优先权日2006年4月19日
发明者林君, 范永开, 谢宣松, 隋阳轶, 朱振悦 申请人:吉林大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1