CN102253853B - 利用虚拟仪器进行功能在线重构及演化的方法 - Google Patents
利用虚拟仪器进行功能在线重构及演化的方法 Download PDFInfo
- Publication number
- CN102253853B CN102253853B CN 201110087481 CN201110087481A CN102253853B CN 102253853 B CN102253853 B CN 102253853B CN 201110087481 CN201110087481 CN 201110087481 CN 201110087481 A CN201110087481 A CN 201110087481A CN 102253853 B CN102253853 B CN 102253853B
- Authority
- CN
- China
- Prior art keywords
- function
- subfunction
- virtual instrument
- chained list
- evolution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了利用虚拟仪器进行功能在线重构及演化的方法,其特征在于:包括以下步骤:A、启动虚拟仪器;B、从功能库中选择需要的基本功能模块以及子功能,虚拟仪器自动生成选择的子功能所包括的函数信息,并将子功能所包括的函数信息添加至用户自定义功能链表;C、读取用户自定义功能链表中子功能所包括的函数信息中的输入参数和输出参数进行分析,将输入参数和输出参数分别加入输入参数链表和输出参数链表;D、定义演化功能模块的函数名,虚拟仪器自动生成演化功能模块的函数编号,并记录演化功能模块的输入参数、输出参数,生成统一数据接口;E、虚拟仪器保存新生成的演化功能模块,以便再次使用时能够直接调用;G、在线执行重构功能。
Description
技术领域
本发明属于虚拟仪器,具体涉及利用虚拟仪器进行功能在线重构及演化的方法。
背景技术
随着工业的快速发展,测试测量仪器领域的传统的硬件化仪器已逐渐被以软件为中心的虚拟仪器所代替。虚拟仪器软件化的仪器功能具有开放、灵活、易升级扩展、开发维护费用低、用户可自定义功能、无穷生命周期等优点;随着计算机技术的飞速发展,计算位数的增长,虚拟仪器的精度也越来越高;同时,它减少了仪器开发中对不可再生资源的消耗,符合当今社会绿色、环保、节约的主题。但是虚拟仪器的发展任然存在一个瓶颈问题,即虚拟仪器一旦开发制造完成其功能即已确定,当该虚拟仪器不再满足测试功能要求时就必须重新开发,使得虚拟仪器灵活性低,更新换代成本高,制约着虚拟仪器的快速发展和广泛应用。
发明内容
为了解决现有技术中存在的缺陷,本发明所要解决的技术问题在于提供一种利用虚拟仪器进行功能在线重构及演化的方法。
根据本发明的技术方案,一种利用虚拟仪器进行功能在线重构及演化的方法,其特征在于:包括以下步骤:
A、启动虚拟仪器; 包括:
A1、读取初始化文件;
A2、初始化链表,包括初始化目录链表、列表链表和功能链表;
A3、读取未读初始化文件,添加子功能的目录节点,加入目录链表;获取子功能目录分类号、功能标号、功能名称,加入列表链表;获取功能索引、输入参数、输入参数个数、输出参数、输出参数个数,建立子功能节点,并加入功能链表;
A4、检索初始化文件,若还有初始化文件,则重复步骤A3;若无初始化文件,仪器启动结束;
B、从功能库中选择需要的基本功能模块以及子功能,虚拟仪器自动生成选择的子功能所包括的函数信息,并将子功能所包括的函数信息添加至用户自定义功能链表,重复这个过程,直到需要的子功能添加完毕;
C、读取用户自定义功能链表中子功能所包括的函数信息中的输入参数和输出参数进行分析,删除重复参数和中间变量,当输入参数和输出参数分析完毕后,将输入参数和输出参数分别加入输入参数链表和输出参数链表;
D、定义演化功能模块的函数名,虚拟仪器自动生成演化功能模块的函数编号,并记录演化功能模块的输入参数、输出参数,生成统一数据接口;
E、虚拟仪器保存新生成的演化功能模块;即虚拟仪器将功能重构演化生成的演化功能模块保存到虚拟仪器的功能库中,以便再次使用时能够直接调用;
G、在线执行重构功能,包括:
G1、选择用户自定义功能函数;
G2、读取用户自定义功能文件,获取自定义功能描述信息;
G3、读取自定义功能标识号,读取子功能列表,查找功能链表,读取子功能信息节点,初始化子功能,分配临时内存空间,执行子功能;
G4、根据子功能列表顺序查找并执行功能链表中子功能节点,直至完毕,清除临时内存空间。
本发明所述的具有在线重构及演化功能的虚拟仪器以及方法的有益效果是:本发明由于具有支持功能重构及演化的功能库架构模型,使得本虚拟仪器可利用其已经具有的功能在线构造新的功能以适应新的测试要求,虚拟仪器功能能在线重构、演化,在线重构、演化无需修改虚拟仪器软件;演化功能可以作为一项基本功能保存后永久使用;使用方便,效率高,并且,由于具有功能索引模块,使功能检索和定位方便、快捷,提高了虚拟仪器功能检索定位及执行效率和灵活性和开放性。
附图说明
以下将结合附图对本发明的实施例作进一步的说明。
图1是本发明所述的具有在线重构及演化功能的虚拟仪器功能库的构成示意图。
图2是本发明所述的具有在线重构及演化功能的虚拟仪器的构成框图。
图3是本发明所述的利用虚拟仪器进行功能在线重构及演化流程图。
图4是本发明所述的功能列表初始化流程图。
图5是本发明所述的演化功能执行流程图。
图6是具有在线重构及演化功能的虚拟仪器的功能重构界面示意图。
具体实施方式
参见图1和图2 ,一种具有在线重构及演化功能的虚拟仪器,其特征在于:该虚拟仪器包括支持功能重构及演化的功能库,所述功能库包括若干个基本功能模块,每个基本功能模块包括若干项子功能;并且从虚拟仪器的功能库中现有的若干个基本功能模块中选择部分子功能或全部子功能按照指定的顺序进行重构,能够演化成演化功能模块;再在若干个基本功能模块中和/或演化功能模块中选择部分子功能或全部子功能按照指定的顺序进行重构,又能够演化成新的演化功能模块,其中,演化功能模块的执行效果与演化成演化功能模块之前所选择的子功能按照指定的顺序进行相继执行的执行效果相同。
所述虚拟仪器还包括功能索引模块、功能接口、数据接口和数据池;其中:
功能索引模块:与基本功能模块以及演化功能模块连接,用于快速检索定位基本功能模块、演化功能模块及子功能;在功能索引模块中设置有用于快速检索定位各基本功能模块以及演化功能模块和各项子功能的功能编号;
功能接口:功能接口的一端与外部设备接口,另一端与功能索引模块连接;
数据接口:数据接口一端与基本功能模块以及演化功能模块连接,数据接口另一端与数据池连接,数据接口用于设置基本功能模块以及演化功能模块,处理数据源,更改基本功能模块以及演化功能模块的参数;
数据池:与数据接口连接,用于存放数据。
其中,所述子功能包括函数信息,所述函数信息包括函数名、函数编号、输入参数,输出参数。
功能库中的子功能使用领域分类管理,各个大类里面又包含如干小类,例如:10201中10代表高级信号处理大类,2代表小波分析类功能,01代表小波滤波。
由于测试测量虚拟仪器功能多样,功能参数也不尽相同。为了使虚拟仪器功能重构及执行过程方便、高效,在具体实施例中,对虚拟仪器功能接口进行统一建模,形成的统一调用形式如下:
ReturnType Func(FuncIndex funcID,
int inputParamNum,Param inputParam[],
int outputParamNum,Param outputParam[])
其中,funcID :功能索引号;inputParamNum :输入参数个数;inputParam:输入参数信息;outputParamNum:输出参数个数;outputParam输出参数信息。
参见图3和图4,一种利用虚拟仪器进行功能在线重构及演化的方法,其特征在于:包括以下步骤:
A、启动虚拟仪器;具体包括:
A1、读取初始化文件;
A2、初始化链表,包括初始化目录链表、列表链表和功能链表;
A3、读取未读初始化文件,添加子功能的目录节点,加入目录链表;获取子功能目录分类号、功能标号、功能名称,加入列表链表;获取功能索引、输入参数、输入参数个数、输出参数、输出参数个数,建立子功能节点,并加入功能链表;
A4、检索初始化文件,若还有初始化文件,则重复步骤A3;若无初始化文件,仪器启动结束;
B、从功能库中选择需要的基本功能模块以及子功能,虚拟仪器自动生成选择的子功能所包括的函数信息,并将子功能所包括的函数信息添加至用户自定义功能链表,重复这个过程,直到需要的子功能添加完毕;
C、读取用户自定义功能链表中子功能所包括的函数信息中的输入参数和输出参数进行分析,删除重复参数和中间变量,当输入参数和输出参数分析完毕后,将输入参数和输出参数分别加入输入参数链表和输出参数链表;
D、定义演化功能模块的函数名,虚拟仪器自动生成演化功能模块的函数编号,并记录演化功能模块的输入参数、输出参数,生成统一数据接口;
E、虚拟仪器保存新生成的演化功能模块;即虚拟仪器将功能重构演化生成的演化功能模块保存到虚拟仪器的功能库中,以便再次使用时能够直接调用。
虚拟仪器根据当前执行子功能的功能编号,并通过数据接口调用功能库中处理函数,并把输入数据、参数值、输出数据保存地址作为接口参数传递入功能库;虚拟仪器功能编号列表与功能库中的处理函数一一对应。子功能列表由系统初始化时通过读入初始化文件载入,用户可以修改初始化文件达到更改仪器功能特性的目的。子功能列表目录节点与子功能节点信息分开存储,以方便子功能列表的动态增减。
虚拟仪器调用基本功能模块和演化功能模块均采用动态调用方式,即只有该功能模块需要执行时才将其执行模块加载入计算机内存。
并且,演化功能模块生成的过程中自动产生唯一的功能编号,其功能编号与基本功能模块的功能编号具有相同的结构和作用。该演化功能模块保存时需要同时保存功能编号及各子功能具体信息,子功能信息包括子功能编号及参数重构信息。演化功能模块调用时,按照重构时指定的顺序调用各子功能。
在具体实施例中,保存结构体如下:
typedef struct
{
Func newFunc;
int NOofconstructFuncs;
Func constructFuncs[10];
int NOoftempParam;
mediateParam tempParam[20];
} userdefFunc;
userdefFunc结构体中,newFunc:新功能接口信息;NoofconstructFuncs:构成子功能数目;constructFuncs:构成子功能信息;NOoftempParam:临时变量个数;tempParam:临时变量信息。mediateParam为临时变量结构体;
typedef struct
{
char tempname[100];
int temptype;
int templen;
} mediateParam;
mediateParam中tempname:临时变量名称;temptype:临时变量类型;templen:临时变量内存长度。
参见图5,在线执行重构功能包括如下步骤:
G1、选择用户自定义功能函数;
G2、读取用户自定义功能文件,获取自定义功能描述信息;
G3、读取自定义功能标识号,读取子功能列表,查找功能链表,读取子功能信息节点,初始化子功能,分配临时内存空间,执行子功能;
G4、根据子功能列表顺序查找并执行功能链表中子功能节点,直至完毕,清除临时内存空间。
参见图6,图6是具有在线重构及演化功能的虚拟仪器的功能重构界面示意图。图6的左侧列表框中是虚拟仪器的基本功能模块列表,中间列表框中为选用的子功能,可通过右侧的按钮调整顺序或删除其中部分。右上窗口用于定义演化功能模块功能名,右中为演化功能模块的输入参数情况,右下为演化功能模块的输出参数情况。
下面,结合图6,举例说明进行功能在线重构及演化的过程:
运行系统;
选择基本功能模块列表中“滤波、细化、解调”;
进一步选择“级联IIR_贝塞尔”;
重复选择子功能,选中“加窗”、“幅相谱”;
修改各个子功能的输入、输出参数,其中“加窗”、“幅相谱”函数的信号长度同“级联IIR_贝塞尔”信号长度,“级联IIR_贝塞尔”的输出参数设为“加窗”的输入参数,“加窗”的输出参数设为“幅相谱”的输入参数;如图6中间列所示;
输入新子功能名“特定幅值谱”,点击“生成”,如图6右列所示;
点击“确定”,系统保存演化功能模块。
Claims (1)
1.一种利用虚拟仪器进行功能在线重构及演化的方法,其特征在于:包括以下步骤:
A、启动虚拟仪器,包括:
A1、读取初始化文件;
A2、初始化链表,包括初始化目录链表、列表链表和功能链表;
A3、读取未读初始化文件,添加子功能的目录节点,加入目录链表;获取子功能目录分类号、功能标号、功能名称,加入列表链表;获取功能索引、输入参数、输入参数个数、输出参数、输出参数个数,建立子功能节点,并加入功能链表;
A4、检索初始化文件,若还有初始化文件,则重复步骤A3;若无初始化文件,仪器启动结束;
B、从功能库中选择需要的基本功能模块以及子功能,虚拟仪器自动生成选择的子功能所包括的函数信息,并将子功能所包括的函数信息添加至用户自定义功能链表,重复这个过程,直到需要的子功能添加完毕;
C、读取用户自定义功能链表中子功能所包括的函数信息中的输入参数和输出参数进行分析,删除重复参数和中间变量,当输入参数和输出参数分析完毕后,将输入参数和输出参数分别加入输入参数链表和输出参数链表;
D、定义演化功能模块的函数名,虚拟仪器自动生成演化功能模块的函数编号,并记录演化功能模块的输入参数、输出参数,生成统一数据接口;
E、虚拟仪器保存新生成的演化功能模块;即虚拟仪器将功能重构演化生成的演化功能模块保存到虚拟仪器的功能库中,以便再次使用时能够直接调用;
G、在线执行重构功能,包括:
G1、选择用户自定义功能函数;
G2、读取用户自定义功能文件,获取自定义功能描述信息;
G3、读取自定义功能标识号,读取子功能列表,查找功能链表,读取子功能信息节点,初始化子功能,分配临时内存空间,执行子功能;
G4、根据子功能列表顺序查找并执行功能链表中子功能节点,直至完毕,清除临时内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110087481 CN102253853B (zh) | 2011-04-08 | 2011-04-08 | 利用虚拟仪器进行功能在线重构及演化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110087481 CN102253853B (zh) | 2011-04-08 | 2011-04-08 | 利用虚拟仪器进行功能在线重构及演化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102253853A CN102253853A (zh) | 2011-11-23 |
CN102253853B true CN102253853B (zh) | 2013-10-23 |
Family
ID=44981133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110087481 Expired - Fee Related CN102253853B (zh) | 2011-04-08 | 2011-04-08 | 利用虚拟仪器进行功能在线重构及演化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102253853B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594588A (zh) * | 2012-01-19 | 2012-07-18 | 中兴通讯股份有限公司 | 一种管理web功能模块的方法和系统 |
CN103697916B (zh) * | 2013-12-24 | 2017-01-11 | 河北汉光重工有限责任公司 | 惯性测量单元虚拟仪器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1555008A (zh) * | 2003-12-29 | 2004-12-15 | 秦树人 | 智能虚拟显示器的制作方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124237B2 (en) * | 2002-10-03 | 2006-10-17 | Seagate Technology Llc | Virtual machine emulation in the memory space of a programmable processor |
-
2011
- 2011-04-08 CN CN 201110087481 patent/CN102253853B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1555008A (zh) * | 2003-12-29 | 2004-12-15 | 秦树人 | 智能虚拟显示器的制作方法 |
Non-Patent Citations (2)
Title |
---|
万相奎等.组件技术与虚拟仪器的开发.《中国机械工程》.2004,第15卷(第2期), |
组件技术与虚拟仪器的开发;万相奎等;《中国机械工程》;20040131;第15卷(第2期);正文第2页左栏第2-5段,第3页左栏第1-5段及图1-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN102253853A (zh) | 2011-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918666B (zh) | 一种区块链上的数据同步方法和系统 | |
CN104182484B (zh) | 一种实现HBase数据与Java域对象映射的方法和装置 | |
CN105022739B (zh) | 数据的存储方法及装置 | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN105279285B (zh) | 一种关系型数据库与非关系型数据库的同步系统及方法 | |
CN101291253B (zh) | 一种网管客户端基于图形界面的人机命令交互方法 | |
CN101944114A (zh) | 内存数据库和物理数据库间的数据同步方法 | |
CN109408493A (zh) | 一种数据源的迁移方法及系统 | |
CN103607494B (zh) | 一种分时段自动化测试终端续航时间的方法及终端 | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN102799624B (zh) | 基于Datalog的分布式环境下大图数据查询方法 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发系统及其方法 | |
CN102207935A (zh) | 用于创建索引的方法和系统 | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN102253853B (zh) | 利用虚拟仪器进行功能在线重构及演化的方法 | |
CN102314514B (zh) | 一种表格数据结构化的作用域方法 | |
Grefenstette et al. | Search Based Applications | |
CN109947705B (zh) | 一种石油工程数据的存取系统与方法 | |
CN112035466B (zh) | 一种区块链查询外置索引开发框架 | |
CN105988792A (zh) | 核电软件开发自动化系统和方法 | |
Gil | Intelligent workflow systems and provenance-aware software | |
CN110032586B (zh) | 储能电芯数据的存储方法、查询方法及采集存储系统 | |
CN104281604A (zh) | 生成Targetlink数据字典分层树的方法和系统 | |
CN109491904A (zh) | 一种SparkSQL应用程序的自动化测试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131023 Termination date: 20140408 |