一种虚拟仪表的测试方法和装置转让专利

申请号 : CN201710166394.1

文献号 : CN106892134B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐瑶

申请人 : 北京润科通用技术有限公司

摘要 :

本发明提供一种虚拟仪表的测试方法和装置,从测试文件读取与待测试控件对应的测试数据,将其发送至虚拟仪表中与此数据对应的待测试控件中,接收所述虚拟仪表的待测试控件返回的结果数据,形成了测试系统与虚拟仪表之间的闭环。比较发送的每一项数据与接收到的每一项数据是否都相同,若每一项都相同,则测试通过,否则虚拟仪表的待测试控件异常。由于不需要测试人员逐一比较与虚拟仪表的每个控件的输入数据和输出数据是否相同,即可实现对虚拟仪表的测试,因此,提高了测试效率和测试结果的准确性。

权利要求 :

1.一种虚拟仪表的测试方法,其特征在于,包括:

从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;

将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中;

接收所述虚拟仪表的待测试控件返回的结果数据;其中,所述结果数据包括至少一项数据,每一项数据有唯一一个数据域;

顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同;

若所述测试数据中包括的每一项数据与所述结果数据中包括的每一项数据分别都相同,则测试通过;

其中,所述将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中,包括:将测试数据发送至虚拟仪表,使得虚拟仪表接收到测试数据后,根据预先定义的数据域规则对测试数据解析,以得知所述测试数据中包括的每一项数据的数据域,并将每一项数据发送给对应的待测试控件。

2.根据权利要求1所述的测试方法,其特征在于,若所述待测试控件为显示控件,所述测试数据包括至少一项显示数据,所述将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中,包括:将所述测试数据发送至与所述测试数据中的每一项显示数据的数据域分别对应的显示控件中;

所述接收所述虚拟仪表的待测试控件返回的结果数据,包括:接收所述虚拟仪表的显示控件通过与所述显示控件具有输出关系的输出插件,输出的显示结果数据。

3.根据权利要求1所述的测试方法,其特征在于,若所述待测试控件为控制控件,所述测试数据包括至少一项控制数据,所述将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中,包括:将所述测试数据通过所述虚拟仪表的输入插件,发送至与所述输入插件具有输入关系,且与所述测试数据中包括的每一项控制数据的数据域分别对应的控制控件中;

所述接收所述虚拟仪表的待测试控件返回的结果数据,包括:接收所述虚拟仪表的控制控件输出的控制结果数据。

4.根据权利要求1-3任一项所述的测试方法,其特征在于,所述接收所述虚拟仪表的待测试控件返回的结果数据后,还包括:将所述结果数据写入结果文件中;

其中,顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同,包括:比较每个数据域在所述测试文件中对应的数据,与所述每个数据域在所述结果文件中对应的数据是否相同。

5.根据权利要求1-3任一项所述的测试方法,其特征在于,从测试文件中读取测试数据,包括:根据测试数据中包括的时间行中存储的时间,顺序读取与所述时间行对应的数据行中存储的数据;

将同一时间读取到的所有数据,作为同一次测试的测试数据。

6.一种虚拟仪表的测试装置,其特征在于,包括:

读取单元,用于从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;

发送单元,用于将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中;

接收单元,用于接收所述虚拟仪表的待测试控件返回的结果数据;其中,所述结果数据包括至少一项数据,每一项数据有唯一一个数据域;

比较单元,用于顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同;

若所述测试数据中包括的每一项数据与所述结果数据中包括的每一项数据分别都相同,则测试通过;

其中,所述将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中,包括:将测试数据发送至虚拟仪表,使得虚拟仪表接收到测试数据后,根据预先定义的数据域规则对测试数据解析,以得知所述测试数据中包括的每一项数据的数据域,并将每一项数据发送给对应的待测试控件。

7.根据权利要求6所述的测试装置,其特征在于,若所述待测试控件为显示控件,所述测试数据包括至少一项显示数据,所述发送单元,用于将所述测试数据发送至与所述测试数据中的每一项显示数据的数据域分别对应的显示控件中;

所述接收单元,用于接收所述虚拟仪表的显示控件通过与所述显示控件具有输出关系的输出插件输出的显示结果数据。

8.根据权利要求6所述的测试装置,其特征在于,若所述待测试控件为控制控件,所述测试数据包括至少一项控制数据,所述发送单元,用于将所述测试数据通过所述虚拟仪表的输入插件,发送至与所述输入插件具有输入关系,且与所述测试数据中包括的每一项控制数据的数据域分别对应的控制控件中;

所述接收单元,用于接收所述虚拟仪表的控制控件,输出的控制结果数据。

9.根据权利要求6-8任一项所述的测试装置,其特征在于,所述测试装置,还包括:写入单元,用于将所述结果数据写入结果文件中;

其中,所述比较单元,还用于比较每个数据域在所述测试文件中对应的数据,与所述每个数据域在所述结果文件中对应的数据,是否相同。

10.根据权利要求6-8任一项所述的测试装置,其特征在于,所述读取单元,包括:读取子单元,用于根据测试数据中包括的时间行中存储的时间,顺序读取与所述时间行对应的数据行中存储的数据;

将同一时间读取到的所有数据,作为同一次测试的测试数据。

说明书 :

一种虚拟仪表的测试方法和装置

技术领域

[0001] 本发明属于测试技术领域,尤其涉及一种虚拟仪表的测试方法和装置。

背景技术

[0002] 虚拟仪表广泛应用于航空航天领域,用于实时显示大量的飞行状态和飞行特性等信息。随着虚拟仪表的广泛应用,如何对虚拟仪表开展高效的测试显得尤为重要。
[0003] 目前,对虚拟仪表的测试方法是将虚拟仪表与飞行模拟器系统通过通讯接口建立连接,由飞行模拟器系统向虚拟仪表发送显示数据,虚拟仪表接收到显示数据后,在对应的显示控件上显示数据,然后测试人员通过查看虚拟仪表的显示控件显示的数据,判断虚拟仪表的显示控件是否能够实时、准确地显示数据;由虚拟仪表向飞行模拟器系统发送控制数据,飞行模拟器接收到控制数据后,显示控制数据或执行相应的动作,然后测试人员通过查看飞行模拟器显示的控制数据或执行的动作,判断虚拟仪表的控制控件是否能够实时、准确地输出控制数据。
[0004] 由于目前对虚拟仪表的测试方法中,需要测试人员人为的比较虚拟仪表的每个显示控件的显示数据与飞行模拟器系统发送的显示数据是否相同,虚拟仪表的每个控制控件的控制数据与飞行模拟器系统接收的控制数据是否相同,因此测试周期长且容易出错。

发明内容

[0005] 有鉴于此,本发明的目的在于提供一种虚拟仪表的测试方法和装置,用于提高对虚拟仪表的测试效率和准确性。
[0006] 技术方案如下:
[0007] 本发明提供一种虚拟仪表的测试方法,包括:
[0008] 从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;
[0009] 将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中;
[0010] 接收所述虚拟仪表的待测试控件返回的结果数据;其中,所述结果数据包括至少一项数据,每一项数据有唯一一个数据域;
[0011] 顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同;
[0012] 若所述测试数据中包括的每一项数据与所述结果数据中包括的每一项数据分别都相同,则测试通过。
[0013] 优选地,若所述待测试控件为显示控件,所述测试数据包括至少一项显示数据,[0014] 所述将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中,包括:
[0015] 将所述测试数据发送至与所述测试数据中的每一项显示数据的数据域分别对应的显示控件中;
[0016] 所述接收所述虚拟仪表的待测试控件返回的结果数据,包括:
[0017] 接收所述虚拟仪表的显示控件通过与所述显示控件具有输出关系的输出插件,输出的显示结果数据。
[0018] 优选地,若所述待测试控件为控制控件,所述测试数据包括至少一项控制数据,[0019] 所述将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中,包括:
[0020] 将所述测试数据通过所述虚拟仪表的输入插件,发送至与所述输入插件具有输入关系,且与所述测试数据中包括的每一项控制数据的数据域分别对应的控制控件中;
[0021] 所述接收所述虚拟仪表的待测试控件返回的结果数据,包括:
[0022] 接收所述虚拟仪表的控制控件输出的控制结果数据。
[0023] 优选地,所述接收所述虚拟仪表的待测试控件返回的结果数据后,还包括:
[0024] 将所述结果数据写入结果文件中;
[0025] 其中,顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同,包括:
[0026] 比较每个数据域在所述测试文件中对应的数据,与所述每个数据域在所述结果文件中对应的数据是否相同。
[0027] 优选地,从测试文件中读取测试数据,包括:
[0028] 根据测试数据中包括的时间行中存储的时间,顺序读取与所述时间行对应的数据行中存储的数据;
[0029] 将同一时间读取到的所有数据,作为同一次测试的测试数据。
[0030] 本发明还提供一种虚拟仪表的测试装置,包括:
[0031] 读取单元,用于从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;
[0032] 发送单元,用于将所述测试数据发送至与所述测试数据中的每一项数据的数据域分别对应的待测试控件中;
[0033] 接收单元,用于接收所述虚拟仪表的待测试控件返回的结果数据;其中,所述结果数据包括至少一项数据,每一项数据有唯一一个数据域;
[0034] 比较单元,用于顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同;
[0035] 若所述测试数据中包括的每一项数据与所述结果数据中包括的每一项数据分别都相同,则测试通过。
[0036] 优选地,若所述待测试控件为显示控件,所述测试数据包括至少一项显示数据,[0037] 所述发送单元,用于将所述测试数据发送至与所述测试数据中的每一项显示数据的数据域分别对应的显示控件中;
[0038] 所述接收单元,用于接收所述虚拟仪表的显示控件通过与所述显示控件具有输出关系的输出插件输出的显示结果数据。
[0039] 优选地,若所述待测试控件为控制控件,所述测试数据包括至少一项控制数据,[0040] 所述发送单元,用于将所述测试数据通过所述虚拟仪表的输入插件,发送至与所述输入插件具有输入关系,且与所述测试数据中包括的每一项控制数据的数据域分别对应的控制控件中;
[0041] 所述接收单元,用于接收所述虚拟仪表的控制控件,输出的控制结果数据。
[0042] 优选地,所述测试装置,还包括:
[0043] 写入单元,用于将所述结果数据写入结果文件中;
[0044] 其中,所述比较单元,还用于比较每个数据域在所述测试文件中对应的数据,与所述每个数据域在所述结果文件中对应的数据,是否相同。
[0045] 优选地,所述读取单元,包括:
[0046] 读取子单元,用于根据测试数据中包括的时间行中存储的时间,顺序读取与所述时间行对应的数据行中存储的数据;
[0047] 将同一时间读取到的所有数据,作为同一次测试的测试数据。
[0048] 与现有技术相比,本发明提供的上述技术方案具有如下优点:
[0049] 从上述技术方案可知,本申请公开的虚拟仪表的测试方法中,从测试文件读取与待测试控件对应的测试数据,将其发送至虚拟仪表中与此数据对应的待测试控件中,接收所述虚拟仪表的待测试控件返回的结果数据,形成了测试系统与虚拟仪表之间的闭环。比较发送的每一项数据与接收到的每一项数据是否都相同,若每一项都相同,则测试通过,否则虚拟仪表的待测试控件异常。由于不需要测试人员逐一比较与虚拟仪表的每个控件的输入数据和输出数据是否相同,即可实现对虚拟仪表的测试,因此,提高了测试效率和测试结果的准确性。

附图说明

[0050] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051] 图1是本发明实施例提供的一种虚拟仪表的测试方法的流程图;
[0052] 图2是本发明实施例提供的另一种虚拟仪表的测试方法的流程图;
[0053] 图3是本发明实施例提供的一种虚拟仪表的测试装置的结构示意图。

具体实施方式

[0054] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055] 本发明公开了一种虚拟仪表的测试方法,所述测试方法应用于搭建的测试仿真模型,本实施例以在simulink中搭建的测试仿真模型为例进行描述,参见图1,该实施例包括以下步骤:
[0056] S101、从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;
[0057] 创建测试文件,测试文件中包括时间行和数据行,数据行用于存储数据,其可以由测试人员根据虚拟仪表上的待测试控件的特性设置,时间行用于存储时间,根据时间行中存储的时间,可以获知测试仿真模型读取数据行中数据的时间。
[0058] 可选地,多项数据可以对应同一个时间,一个时间对应一次测试,即进行一次测试时,同时读取一个时间下的所有数据。例如,时间行1-时间行3存储的时间都是时间1,时间行4-时间行6存储的时间都是时间2,而数据行1-数据行6分别存储有数据,那么在时间1读取数据行1-数据行3的三个数据,将此作为第一次测试的测试数据,测试数据包括三项数据,在时间2读取数据行4-数据行6的三个数据,将此作为第二次测试的测试数据。时间1和时间2之差,即为两次测试之间的时间间隔。
[0059] 其中,测试数据中包括的数据项数,是由待测试控件的数目决定的。且每一项数据可以是不同形式的数据,例如数组、浮点数据等。具体数据的形式由待测试控件的性能决定。例如,待测试控件是用于显示数组的,那么与待测试控件对应的这一项数据的形式就是一个数组。
[0060] 基于simulink的测试仿真模型,通过使用simulink系统自带的“From File”模块,实现从测试文件中采集时间,即实现了从测试文件中按照时间行中的时间读取数据行中的数据。
[0061] 通过设置“From File”模块的采样周期,实现了设置测试仿真模型的仿真步长。其中,采样周期等于仿真步长。所述仿真步长和测试文件中时间行内存储的时间之间的间隔相同。
[0062] 测试数据中的每一项数据有唯一一个数据域,所述数据域用于标识此数据的属性,每个数据域对应虚拟仪表中的一个待测试控件,即通过数据域即可得知一项数据是用于对虚拟仪表的哪个控件进行测试的。
[0063] 例如,读取到的测试数据中的第一个数据,有唯一一个数据域1,所述数据域1代表飞行高度,那么测试数据中的第一个数据就是对虚拟仪表中对应飞行高度的控件进行的测试。读取到的测试数据中的第二个数据,有唯一一个数据域2,数据域2代表飞行速度,那么测试数据中的第二个数据就是对虚拟仪表中对应飞行速度的控件进行的测试。
[0064] S102、将所述测试数据发送至与所述测试数据中包括的每一项数据的数据域分别对应的待测试控件中;
[0065] 测试仿真模型将测试数据发送至虚拟仪表中,虚拟仪表接收到测试数据后,根据预先定义的数据域规则,对测试数据解析,以得知所述测试数据中包括的每一项数据的数据域,并将每一项数据发送给对应的待测试控件,以实现对待测试控件的测试。
[0066] 例如,测试数据包括两项数据,分别是3、5,第一项数据有数据域1,所述数据域1代表飞行高度,第二项数据有数据域2,数据域2代表飞行速度。将测试数据3、5发送至虚拟仪表后,虚拟仪表按照预先定义的“数据域1代表飞行高度,数据域2代表飞行速度”数据域规则对接收到的测试数据3、5进行解析,得到飞行高度3、飞行速度5的信息,然后将飞行高度3发送至对应飞行高度的控件中,将飞行速度5发送至对应飞行速度的控件中。
[0067] 可选地,本实施例中可以在基于simulink的测试仿真模型中使用以太网通讯模块“UDP Send”和“UDP Receive”建立测试仿真模型与虚拟仪表之间的通讯接口,通过以太网通讯方式实现测试仿真模型与虚拟仪表之间的通讯。
[0068] 可选地,分别设置以太网通讯模块“UDP Send”和以太网通讯模块“UDP Receive”的采样周期,以太网通讯模块的采样周期和用于从测试文件中读取数据的“From File”模块的采样周期相同。
[0069] 测试仿真模型通过太网通讯模块“UDP Send”将每一项数据发送至虚拟仪表的待测试控件中。
[0070] S103、接收所述虚拟仪表的待测试控件返回的结果数据;其中,所述结果数据包括至少一项数据,每一项数据有唯一一个数据域;
[0071] 虚拟仪表的待测试控件接收测试仿真模型发送的测试数据,并响应所述测试数据,待测试控件响应测试数据后,得到结果数据。虚拟仪表通过以太网通讯模块将结果数据返回给测试仿真模型的以太网通讯模块“UDP Receive”,实现测试仿真模型接收虚拟仪表的待测试控件返回的结果数据。
[0072] 测试仿真模型接收到结果数据后,按照虚拟仪表对接收到的测试数据进行解析的预先定义的数据域规则,对结果数据进行解析,得到的结果数据中每一项数据有唯一一个数据域。
[0073] S104、顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同;
[0074] 若所述测试数据中包括的每一项数据与所述结果数据中包括的每一项数据分别都相同,则测试通过。
[0075] 测试仿真模型将测试数据与结果数据,按照顺序逐一比较。由于测试数据中数据的数据域规则,与结果数据中数据的数据域规则是相同的,即测试数据中每一项数据的数据域组成的顺序,与结果数据中每一项数据的数据域组成的顺序是相同的。按照顺序比较测试数据和结果数据,即可获知每一个数据域对应的测试数据与结果数据是否相同,进而可以获知与此数据域对应的待测试控件的测试数据与结果数据是否相同。
[0076] 若每一个数据域对应的测试数据和结果数据都相同,则说明待测试控件的功能正常。
[0077] 若一个数据域对应的测试数据和结果数据不同,则说明与此数据域对应的待测试控件的功能异常。
[0078] 由于可以获知虚拟仪表中具体是哪一个待测试控件发生了异常,因此可以重点查看此发生异常的待测试控件发生异常的原因,实现了快速排除虚拟仪表中发生的异常情况的目的。
[0079] 从上述技术方案可知,本申请公开的虚拟仪表的测试方法中,从测试文件读取与待测试控件对应的测试数据,将其发送至虚拟仪表中与此数据对应的待测试控件中,接收所述虚拟仪表的待测试控件返回的结果数据,形成了测试系统与虚拟仪表之间的闭环。比较发送的每一项数据与接收到的每一项数据是否都相同,若每一项都相同,则测试通过,否则虚拟仪表的待测试控件异常。由于不需要测试人员逐一比较与虚拟仪表的每个控件的输入数据和输出数据是否相同,即可实现对虚拟仪表的测试,因此,提高了测试效率和测试结果的准确性。
[0080] 在本发明公开了另一种虚拟仪表的测试方法中,参见图2,该实施例包括以下步骤:
[0081] S201、从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;
[0082] 测试文件中数据行存储的数据,包括显示数据和控制数据这两类数据,其中,显示数据用于对虚拟仪表中的显示控件进行测试,控制数据用于对虚拟仪表中的控制控件进行测试。
[0083] 可选地,显示数据和控制数据分别存储在不同的测试文件中。
[0084] 若所述待测试控件为显示控件,所述测试数据包括至少一项显示数据,执行步骤S202;
[0085] 若所述待测试控件为控制控件,所述测试数据包括至少一项控制数据,执行步骤S204;
[0086] S202、将所述测试数据发送至与所述测试数据中包括的每一项显示数据的数据域分别对应的显示控件中;
[0087] 由于虚拟仪表的显示控件本身具有从虚拟仪表的输入接口接收输入数据的功能,因此测试仿真模型将显示数据通过以太网通讯发送模块,发送至虚拟仪表的以太网通讯接收模块后,虚拟仪表按照预定的数据域规则对显示数据进行解析后,即可直接将显示数据发送至与每一项显示数据的数据域对应的显示控件中,显示控件接收显示数据并显示所述显示数据。
[0088] S203、接收所述虚拟仪表的显示控件通过与所述显示控件具有输出关系的输出插件,输出的显示结果数据;执行S206;
[0089] 由于虚拟仪表的显示控件并不具有将自身显示的数据输出的功能,因此为了将显示控件显示的数据输出,需要在虚拟仪表中插入输出插件,将显示控件作为输入控件,并建立所述输出插件与输入控件之间的输出关系。
[0090] 所述输出关系具体为使得与一个数据域对应的显示控件的输出顺序与此数据域在预定的数据域规则中的顺序相同。例如,数据域1对应的显示控件为飞行高度显示控件,那么建立的飞行高度显示控件与输出插件之间的输出关系为飞行高度显示控件第一个输出。
[0091] 虚拟仪表的以太网通讯发送模块接收到虚拟仪表的输出插件输出的显示控件的显示结果数据后,将所述显示结果数据发送至测试仿真模型的以太网通讯接收模块。
[0092] 需要注意的是,由于建立的虚拟仪表的软件不同,因此在虚拟仪表中插入输出插件,并建立输出插件与作为输入控件的显示控件之间的输出关系时,需要进行相应的操作才能实现虚拟仪表与测试仿真系统之间数据的正常交互。
[0093] 下面以基于Vaps(Virtual Application Prototyping Software,虚拟仪表平台)建立的虚拟仪表为例来描述。
[0094] VAPS软件与外部程序的接口主要采用的是ncom,ncom需要配置的文件主要包括:dd文件,mappings文件,connection文件。其中,dd文件主要规定其传输变量名字、属性和传输数量等内容;mappings文件是规定映射文件的关联关系,指定传输变量BUFFER和服务器;
connection是规定ncom口的传输方式,主要包括共享内存和网络端口传输两种方式。
[0095] 为了实现基于Vaps建立的虚拟仪表与测试仿真模型之间的数据交互,在建立输出插件与作为输入控件的显示控件之间的输出关系时,需要对配置文件进行相应的修改,才能实现数据的正常传输。在基于Vaps的虚拟仪表中,输出插件为DialCircle。作为输入控件的显示控件为SliderHoriz。
[0096] 对配置文件的修改包括:
[0097] 创建Float1.dd文件,编辑文件中DataDescription名称为Float1,数据元素名称为OutData;
[0098] 创建数据发送和数据流,具体包括:先设置I/O Buffer为Float1Buffer,在输出插件DialCirle的Format中拖拽生成rcvFloat1Buffer,然后在Data Flow视图中建立数据流连接;
[0099] 创建Connection使用ncom端口的共享内存或UDP通讯;
[0100] 创建Mappings,指定I/O Buffer为Float1Buffer,速率与测试仿真模型中各个模块的采样周期即仿真步长相同,Connection为Float1Buffer。
[0101] 对配置文件完成修改后,能够实现虚拟仪表与测试仿真模型之间的数据交互。
[0102] S204、将所述测试数据通过所述虚拟仪表的输入插件,发送至与所述输入插件具有输入关系,且与所述测试数据中包括的每一项控制数据的数据域分别对应的控制控件中;
[0103] 由于虚拟仪表的控制控件本身不具有从虚拟仪表的输入接口接收输入数据的功能,因此为了使得控制控件能够接收到控制数据,需要在虚拟仪表中插入输入插件,将控制控件作为输出控件,并建立所述输入插件与输出控件之间的输入关系。
[0104] 所述输入关系具体为使得与一个数据域对应的控制控件的接收顺序与此数据域在预定的数据域规则中的顺序相同。例如,数据域1对应的控制控件为飞行高度控制控件,那么建立的飞行高度控制控件与输入插件之间的输入关系为飞行高度控制控件第一个输入。
[0105] 测试仿真模型将控制数据通过以太网通讯发送模块,发送至虚拟仪表的以太网通讯接收模块后,虚拟仪表按照预定的数据域规则对控制数据进行解析,并将解析后的控制数据通过输入插件发送至与每一项控制数据的数据域对应的控制控件中,控制控件接收到控制数据后,对所述控制数据进行响应。
[0106] 需要注意的是,由于建立的虚拟仪表的软件不同,因此在虚拟仪表中插入输出插件,并建立输出插件与作为输入控件的显示控件之间的输出关系时,需要进行相应的操作才能实现虚拟仪表与测试仿真系统之间数据的正常交互。
[0107] 下面以基于Vaps(Virtual Application Prototyping Software,虚拟仪表平台)建立的虚拟仪表为例来描述。
[0108] VAPS软件与外部程序的接口主要采用的是ncom,ncom需要配置的文件主要包括:dd文件,mappings文件,connection文件。其中,dd文件主要规定其传输变量名字、属性和传输数量等内容;mappings文件是规定映射文件的关联关系,指定传输变量BUFFER和服务器;
connection是规定ncom口的传输方式,主要包括共享内存和网络端口传输两种方式。
[0109] 为了实现基于Vaps建立的虚拟仪表与测试仿真模型之间的数据交互,在建立输入插件与作为输出控件的控制控件之间的输入关系时,需要对配置文件进行相应的修改,才能实现数据的正常传输。在基于Vaps的虚拟仪表中,作为输出控件的控制控件为DialCircle,输入插件为SliderHoriz。
[0110] 对配置文件的修改包括:
[0111] 创建Float1.dd文件,编辑文件中DataDescription名称为Float1,数据元素名称为OutData;
[0112] 创建数据发送和数据流,具体包括:先设置I/O Buffer为Float1Buffer,在输入插件SliderHoriz的Format中拖拽生成sndFloat1Buffer,然后在DataFlow视图中建立数据流连接;
[0113] 创建Connection使用ncom端口的共享内存或UDP通讯;
[0114] 创建Mappings,指定I/O Buffer为Float1Buffer,速率与测试仿真模型中各个模块的采样周期即仿真步长相同,Connection为Float1Buffer。
[0115] 对配置文件完成修改后,能够实现虚拟仪表与测试仿真模型之间的数据交互。
[0116] S205、接收所述虚拟仪表的控制控件,输出的控制结果数据;
[0117] 由于虚拟仪表的控制控件本身具有从虚拟仪表的输出接口输出数据的功能,因此虚拟仪表的控制控件响应接收到的控制数据后,直接将响应后的数据通过虚拟仪表的以太网通讯发送模块,发送至测试仿真模型的以太网通讯接收模块。测试仿真模型接收到虚拟仪表返回的数据后,按照预定的数据域规则,对其进行解析,得到控制结果数据。
[0118] S206、将所述结果数据写入结果文件中;
[0119] 创建结果文件,结果文件用于存储虚拟仪表返回的显示结果数据和控制结果数据。
[0120] 基于simulink的测试仿真模型,通过使用simulink系统自带的“To File”模块,实现将结果数据按照预定的数据域规则写入到结果文件中。优选地,可以设置“To File”模块的写入周期,其中写入周期等于仿真步长。
[0121] 可选地,显示结果数据和控制结果数据分别写入不同的结果文件中。
[0122] S207、比较每个数据域在所述测试文件中对应的数据,与所述每个数据域在所述结果文件中对应的数据,是否相同;
[0123] 若每个数据域在测试文件中对应的数据分别都与每个数据域在结果文件中对应的数据相同,则测试通过。
[0124] 对测试文件和结果文件中存储的数据的比较,可以人为逐一的比较,也可以通过编写程序自动完成逐一比较的过程。
[0125] 可选地,对一个数据域而言,测试文件中包括的数据与结果文件中包括的数据之差,不超过预先设置的阈值,则判定相同。
[0126] 可以理解的是,针对不同的数据域,预先设置不同的阈值。在本实施例中,当完成对虚拟仪表的测试后,可以删除插入的输入插件和输出插件,而不会影响虚拟仪表的其他功能。
[0127] 从上述技术方案可知,本申请公开的虚拟仪表的测试方法中,从测试文件读取与待测试控件对应的测试数据,将其发送至虚拟仪表中与此数据对应的待测试控件中,接收所述虚拟仪表的待测试控件返回的结果数据,形成了测试系统与虚拟仪表之间的闭环。比较发送的每一项数据与接收到的每一项数据是否都相同,若每一项都相同,则测试通过,否则虚拟仪表的待测试控件异常。由于不需要测试人员逐一比较与虚拟仪表的每个控件的输入数据和输出数据是否相同,即可实现对虚拟仪表的测试,因此,提高了测试效率和测试结果的准确性。
[0128] 同时,在测试文件中设置时间行,通过合理设置时间行中的时间,实现了设置测试仿真模型的仿真步长,进而可以实现按照仿真步长向虚拟仪表发送测试数据,实现了对虚拟仪表的实时性动态测试,可以测试虚拟仪表的待测试控件是否可以实时刷新。
[0129] 对应上述虚拟仪表的测试方法,本发明还提供了一种虚拟仪表的测试装置,其结构示意图请参阅图3所示,本实施例提供的一种虚拟仪表的测试装置包括:
[0130] 读取单元11、发送单元12、接收单元13和比较单元14。
[0131] 其中,所述读取单元11,用于从测试文件中读取测试数据;其中,所述测试数据包括至少一项数据,每一项数据有唯一一个数据域,每一个数据域对应虚拟仪表中的一个待测试控件;
[0132] 可选地,所述读取单元11,包括读取子单元,
[0133] 所述读取子单元用于根据测试数据中包括的时间行中存储的时间,顺序读取与所述时间行对应的数据行中存储的数据;
[0134] 将同一时间读取到的所有数据,作为同一次测试的测试数据。
[0135] 所述发送单元12,用于将每一项数据发送至与所述每一项数据的数据域对应的待测试控件中;
[0136] 可选地,当所述待测试控件为显示控件时,所述测试数据包括至少一项显示数据,所述发送单元12用于将所述测试数据发送至与所述测试数据中的每一项显示数据的数据域分别对应的显示控件中;
[0137] 当所述待测试控件为控制控件时,所述测试数据包括至少一项控制数据,所述发送单元12用于将所述测试数据通过所述虚拟仪表的输入插件,发送至与所述输入插件具有输入关系,且与所述测试数据中包括的每一项控制数据的数据域分别对应的控制控件中。
[0138] 所述接收单元13,用于接收所述虚拟仪表的待测试控件返回的结果数据;其中,所述结果数据包括至少一项数据,每一项数据有唯一一个数据域;
[0139] 可选地,当所述待测试控件为显示控件时,所述测试数据包括至少一项显示数据,所述接收单元13,用于接收所述虚拟仪表的显示控件通过与所述显示控件具有输出关系的输出插件,输出的显示结果数据;
[0140] 当所述待测试控件为控制控件时,所述测试数据包括至少一项控制数据,所述接收单元13,用于接收所述虚拟仪表的控制控件,输出的控制结果数据。
[0141] 所述比较单元14,用于顺序比较所述测试数据中包括的每一项数据,与所述结果数据中包括的每一项数据是否相同;
[0142] 若所述测试数据中包括的每一项数据与所述结果数据中包括的每一项数据分别都相同,则测试通过。
[0143] 可选地,所述测试装置还包括:写入单元15;
[0144] 所述写入单元15,用于将所述结果数据写入结果文件中;
[0145] 其中,所述比较单元14,还用于比较每个数据域在所述测试文件中对应的数据,与所述每个数据域在所述结果文件中对应的数据,是否相同。
[0146] 从上述技术方案可知,本实施例中通过读取单元从测试文件读取与待测试控件对应的测试数据,发送单元将其发送至虚拟仪表中与此数据对应的待测试控件中,接收单元接收所述虚拟仪表的待测试控件返回的结果数据,形成了测试系统与虚拟仪表之间的闭环。比较单元比较发送的每一项数据与接收到的每一项数据是否都相同,若每一项都相同,则测试通过,否则虚拟仪表的待测试控件异常。由于不需要测试人员逐一比较与虚拟仪表的每个控件的输入数据和输出数据是否相同,即可实现对虚拟仪表的测试,因此,提高了测试效率和测试结果的准确性。
[0147] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0148] 对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
[0149] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。