一种虚拟仪器脚本语言解析器及其方法技术领域
本发明涉及计算机软件技术领域,尤其涉及一种虚拟仪器脚本语言解析器及
其方法。
背景技术
工业4.0提出了未来的制造业的商业模式将从以产品为中心向以用户为中心
转变,作为制造业的重要组成部分,随着测量应用对象复杂度的不断提高,测量
应用系统开发周期不断加快,用户为了满足不断改变的测量应用需求,需要开发
专用的测试解决方案来满足在线升级和功能调整要求。因此用户自定义测试系统
的功能成为最新的发展趋势。传统的虚拟仪器平台的功能由仪器厂商来定义,用
户根据测量系统的需求,根据平台提供的组件进行开发,经过需求分析、详细设
计、编码开发、编译和链接、系统测试等环节,测量系统完成后用户无法动态修
改和调整。
发明内容
为解决上述技术问题,本发明提出一种虚拟仪器脚本语言解析器及其方法,
使得终端用户在应用阶段可以使用该解析器动态加载不同的配置文档,对测量系
统进行在线的修改和功能的升级,而不需要像传统的虚拟仪器技术一样,经过编
译和链接等环节。
为达到上述目的,本发明采用以下技术方案:
本发明公开了一种虚拟仪器脚本语言解析方法,包括:读取第一配置文档的
构件和连接件的配置信息,根据所述构件和所述连接件的配置信息分别生成对应
的构件实例和连接件实例,并将所有的构件实例和连接件实例分别添加到构件实
例集合和连接件实例集合,生成应用程序。
优选地,所述解析方法还包括:新建第二配置文档,读取所述构件实例集合
和所述连接件实例集合,分别向所述第二配置文档中添加所有的构件实例和连接
件实例,并分别添加构件和连接件的配置信息,生成第三配置文档并保存。
优选地,所述构件的配置信息包括类型信息、显示参数信息和多个连接配置
信息,其中所述类型信息包括构件ID和构件类型,所述显示参数信息包括显示
横坐标、显示纵坐标、显示宽度、显示高度、显示文本和背景色,所述连接配置
信息包括连接状态、连接名称、连接件ID和连接数据类型。
优选地,所述连接件的配置信息包括连接件属性信息,所述连接件属性信息
包括连接件状态、连接件类型、源构件ID、源构件端口名称、源构件位置、目
的构件ID、目的构件端口名称和目的构件位置。
优选地,读取第一配置文档的构件和连接件的配置信息,根据所述构件和所
述连接件的配置信息分别生成对应的构件和连接件,并将所有的构件实例和连接
件实例分别添加到构件实例集合和连接件实例集合,生成应用程序的过程具体包
括:
判断步骤:依次读取所述第一配置文档的节点信息并判断当前节点的信息;
生成构件实例步骤:当所述判断步骤中判断当前节点为构件节点时,读取构
件的类型信息,根据构件类型生成构件实例;读取构件的显示参数信息,根据显
示参数信息设置所述构件实例的显示信息;读取构件的连接配置信息,根据有连
接状态的构件的连接名称设置所述构件实例的数据端口,并将构件实例添加到构
件实例集合中,并返回至判断步骤;
生成连接件实例步骤:当所述判断步骤中判断当前节点为连接件节点时,读
取连接件的属性信息,根据有连接状态的连接件的源构件的ID和端口名称、目
的构件的ID和端口名称确定连接件的输入输出端口,并根据所述源构件和所述
目的构件的位置设置所述连接件的位置,生成连接件实例并将所述连接件实例添
加到所述连接件实例集合中,并返回至判断步骤;
生成应用程序步骤:当所述判断步骤中判断当前节点为文档结尾时,则生成
应用程序,并结束流程。
优选地,所述虚拟仪器脚本语言是基于XML的虚拟仪器配置描述语言。
本发明还公开了一种虚拟仪器脚本语言解析器,包括:解析模块,用于读取
第一配置文档的构件和连接件的配置信息;构件和连接件实例管理模块,用于根
据所述构件和所述连接件的配置信息生成对应的构件实例和连接件实例,并将所
有的构件实例和连接件实例分别添加到构件实例集合和连接件实例集合;生成模
块,用于根据所述构件实例集合和所述连接件实例集合生成应用程序。
优选地,所述解析器还包括取存模块,用于读取所述构件实例管理模块和所
述连接件实例管理模块中的构件和连接件的配置信息,将所述构件和所述连接件
的配置信息保存到第三配置文档。
优选地,所述构件的配置信息包括类型信息、显示参数信息和多个连接配置
信息,其中所述类型信息包括构件ID和构件类型,所述显示参数信息包括显示
横坐标、显示纵坐标、显示宽度、显示高度、显示文本和背景色,所述连接配置
信息包括连接状态、连接名称、连接件ID和连接数据类型,进一步地,所述连
接件的配置信息包括连接件属性信息,所述连接件属性信息包括连接件状态、连
接件类型、源构件ID、源构件端口名称、源构件位置、目的构件ID、目的构件
端口名称和目的构件位置。
优选地,所述虚拟仪器脚本语言是基于XML的虚拟仪器配置描述语言。
本发明与现有技术相比的有益效果在于:本发明提出一种全新的虚拟仪器脚
本语言解析器及其方法,终端用户在应用阶段可以使用该解析器动态加载不同的
第一配置文档,从而可以对测量系统进行在线的修改和功能的升级,而不需要像
传统的虚拟仪器技术一样经过编译和链接等环节。
在进一步的方案中,本发明的解析方法中还可以在存储流程中通过新建第二
配置文档,对第二配置文档添加自定义的构件和连接件的配置信息,生成第三配
置文档来进行加载;其中第二配置文档是系统新建的一个空白的配置文档或一个
现有的配置文档,使得用户可以自由进行修改或升级以生成第三配置文档并保
存;第三配置文档是在第二配置文档的基础上进行添加构件和连接件的配置信息
所形成并保存在系统中的。而第一配置文档是指用来让解析器进行解析生成应用
程序的配置文件,其中第一配置文档可以是用户自行添加或者是保存在系统中的
第三配置文档。
附图说明
图1是本发明优选实施例中的XVIML配置文件的结构图;
图2是本发明优选实施例中的XVIML配置文件的构件组的描述规范示意
图;
图3是本发明优选实施例中的XVIML配置文件的连接件组的描述规范示意
图;
图4是本发明优选实施例中的XVIML解析器的组成模块示意图;
图5是本发明优选实施例中的XVIML解析器的解析流程图;
图6是本发明优选实施例中的XVIML解析器的存储流程图。
具体实施方式
下面对照附图并结合优选的实施方式对本发明作进一步说明。
XML是W3C定的一组规范,用来定义文档标记语言的框架。它提供了一
种描述结构数据的格式,使各种基于WEB的应用之间能方便的交换数据。作为
一种简单、可扩展的描述语言,XML系列技术具有从定义、描述、表示、查询、
传输直至处理等各阶段的标准,而且得到了广泛支持。本发明是基于XML的虚
拟仪器配置描述语言(XML-BasedVirtualInstrumentMarkupLanguage,简称
XVIML)定义虚拟仪器的统一数据交换规范,通过XML相关的数据处理和数据
解析技术,实现XVIML描述语言在虚拟仪器中的数据的交换和集成。
下面首先对本发明提出的XVIML语言的描述规范进行说明:
本发明提出的XVIML配置文件中主要包括构件组和连接件组的配置信息,
每个构建组下面包含多个构件的配置节点信息,每个连接件组下面包含多个连接
件的配置节点信息,连接件是用于为构件提供数据的传输通道;其中XVIML配
置文件的节点名称及其结构如图1所示。
其中构件组的描述规范如图2所示,每个构件组的描述规范包含多个构件的
描述规范,每个构件的描述规范主要包括类型信息、显示参数信息和连接配置信
息;类型信息主要描述构件的类型和构件的ID;显示参数信息主要描述构件在
实际运行中的显示信息,主要包括显示横坐标、显示纵坐标、显示宽度、显示高
度、显示文本、背景色等其他可扩展属性;连接配置信息主要描述构件与其他构
件的连接关系,主要包括连接状态、连接名称、连接件ID、连接数据类型。
其中连接件组的描述规范如图3所示,每个连接件组的描述规范包含多个连
接件的描述规范,每个连接件的描述规范包括连接件属性信息,连接件属性信息
主要包括连接件状态、连接件类型、源构件ID、源构件端口名称、源构件位置、
目的构件ID、目的构件端口名称、目的构件位置。
如图4所示,本发明提出一种虚拟仪器脚本语言解析器,即XVIML解析器,
主要包括XVIML解析模块、XVIML取存模块、构件实例管理模块、连接件实
例管理模块和生成模块,各个模块的功能如下:
XVIML解析模块:XVIML解析模块主要根据XVIML定义的文档属性,读
取XVIML文档的构件和连接件的配置信息,通过构件实例管理模块和连接件实
例管理模块,生成对应的构件和连接件;
XVIML取存模块:XVIML取存模块主要读取构件实例管理模块和连接件实
例管理模块保存的构件和连接件配置信息,根据XVIML定义的文档属性,将构
件和连接件的名称和属性信息保存到XVIML文件;
构件实例管理模块:构件实例管理模块主要根据XVIML解析模块解析的
XVIML文件中的构件配置信息,根据构件的名称和属性,生成对应的构件实例,
并将构件实例添加到构件实例集合;XVIML取存模块依次读取构件实例管理模
块中所有构件的信息,并将构件的名称和属性信息保存到XVIML文件;
连接件实例管理模块:连接件实例管理模块主要根据XVIML解析模块解析
的XVIML文件中的连接件配置信息,根据连接件的名称和属性,生成对应的连
接件实例,将连接件实例添加到连接件实例集合;XVIML取存模块依次读取连
接件实例管理模块中所有连接件的信息,将连接件的名称和属性信息保存到
XVIML文件;
生成模块:根据所述构件实例集合和所述连接件实例集合生成应用程序。
本发明提出的虚拟仪器脚本语言解析方法,即XVIML解析器的解析方法,
包括解析流程和存储流程。
如图5所示,是本发明的虚拟仪器脚本语言解析器的解析流程图,包括以下
步骤:
步骤500:XVIML解析模块依次读取XVIML配置文档(第一配置文档)的
节点信息并判断节点名称;如果当前节点名称为构件节点,则进入步骤511,如
果当前节点名称为连接件节点,则进入步骤521,如果当前节点名称为文档结尾
的话,则进入步骤531。
步骤511:判断当前节点名称为构件节点,进入步骤512;
步骤512:读取构件的类型信息节点,并根据构件类型生成构件实例,进入
步骤513;
步骤513:读取构件的显示参数信息节点,并根据构件显示参数信息设置构
件的位置大小等信息,进入步骤514;
步骤514:依次读取构件的连接配置节点信息,进入步骤515;
步骤515:判断是否为空,如果为空,进入步骤518,如果不为空,进入步
骤516;
步骤516:读取连接配置节点信息,判断连接状态是否为真,如果为真,进
入步骤517,如果不为真,返回步骤514;
步骤516:根据构件的连接名称设置数据端口,返回步骤514;
步骤517:构件实例管理模块将构件实例添加到构件实例集合,返回步骤
500;
步骤521:判断当前节点名称为连接件节点,进入步骤522;
步骤522:读取连接件的属性信息,进入步骤523;
步骤523:判断连接状态是否为真,如果为真,进入步骤524,如果不为真,
返回步骤500;
步骤524:根据源构件ID和端口名称、目的构件ID和端口名称确定连接件
的输入输出端口,进入步骤525;
步骤525:根据源构件和目的构件位置设置连接件位置,进入步骤526;
步骤526:连接件实例管理模块生成连接件实例并将连接件实例添加到连接
件实例集合;
步骤531:判断当前节点名称为文档结尾的话,进入步骤532;
步骤532:生成应用程序,流程结束。
如图6所示,是本发明的虚拟仪器脚本语言解析器的存储流程图,包括以下
步骤:
步骤600:新建XVIML配置文件(第二配置文档);
步骤611:依次读取构件实例集合,添加构件组节点,进入步骤612;
步骤612:判断读取的当前构件是否为空,如果不为空,则进入步骤613;
如果为空,则进入步骤621;
步骤613:添加构件节点,获取构件ID和构件类型,添加构件类型信息属
性,进入步骤614;
步骤614:获取构件显示参数信息,添加显示参数属性,进入步骤615;
步骤615:依次读取构件的端口集合,进入步骤616;
步骤616:判断读取的端口是否为空,如果不为空,进入步骤617,如果为
空,返回步骤611;
步骤617:读取端口的连接状态,判断连接状态是否为真,如果为真,进入
步骤618,如果不为真,返回步骤615;
步骤618:添加连接配置节点,设置构件节点的连接状态、连接名称、连接
件ID、连接类型,返回步骤615;
步骤621:依次读取连接件实例集合,添加连接件组节点,进入步骤622;
步骤622:判断读取的连接件是否为空,如果不为空,进入步骤623;如果
为空,进入步骤630;
步骤623:读取连接件的连接状态,进入步骤624;
步骤624:判断连接状态是否为真,如果为真,进入步骤625,如果不为真,
返回步骤621;
步骤625:添加连接件节点,设置连接件的连接件状态、连接件类型、源构
件ID、源构件端口名称、源构件位置、目的构件ID、目的构件端口名称、目的
构件位置;
步骤630:保存XVIML配置文档(第三配置文档),流程结束。
本发明提出了一种全新的虚拟仪器脚本语言解析器及其方法,终端用户在应
用阶段可以使用该解析器动态加载不同的第一配置文档,从而可以对测量系统进
行在线的修改和功能的升级,而不需要像传统的虚拟仪器技术一样经过编译和链
接等环节。进一步,本发明的解析方法中还可以在存储流程中通过新建第二配置
文档,对第二配置文档添加自定义的构件和连接件的配置信息,生成第三配置文
档来进行加载;其中第二配置文档是系统新建的一个空白的配置文档或一个现有
的配置文档,使得用户可以自由进行修改或升级以生成第三配置文档并保存;第
三配置文档是在第二配置文档的基础上进行添加构件和连接件的配置信息所形
成并保存在系统中的。而第一配置文档是指用来让解析器进行解析生成应用程序
的配置文件,其中第一配置文档可以是用户自行添加或者是保存在系统中的第三
配置文档。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能
认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员
来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而
且性能或用途相同,都应当视为属于本发明的保护范围。