CN111897306A - 一种信号设备测试方法及外部设备接口 - Google Patents
一种信号设备测试方法及外部设备接口 Download PDFInfo
- Publication number
- CN111897306A CN111897306A CN202010610374.0A CN202010610374A CN111897306A CN 111897306 A CN111897306 A CN 111897306A CN 202010610374 A CN202010610374 A CN 202010610374A CN 111897306 A CN111897306 A CN 111897306A
- Authority
- CN
- China
- Prior art keywords
- field
- test
- protocol
- equipment
- output
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
- G05B23/0243—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults model based detection method, e.g. first-principles knowledge model
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明实施例提供一种信号设备测试方法及外部设备接口,该方法包括:获取测试输入;基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,得到测试输入对应的仿真输入,并将仿真输入发送给信号设备;获取信号设备的设备输出;基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,得到设备输出对应的测试输出,并将测试输出发送给测试引擎,以使得测试引擎基于测试输出,确定信号设备的测试结果;其中,接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。本发明实施例提供的方法及外部设备接口,提高了可维护性、扩展性和复用性。
Description
技术领域
本发明涉及自动控制系统测试技术领域,尤其涉及一种信号设备测试方法及外部设备接口。
背景技术
控制系统中信号设备要求具备高安全性和高可靠性,因此,在信号设备的研制过程中,需要对信号设备进行测试。信号设备的测试环境是对信号设备进行功能测试的重要支撑。通过测试环境可以模拟信号设备各外部接口向信号设备发送的数据,解析信号设备向各外部接口的输出数据,进而完成整个测试。
现有的信号设备的测试环境包括测试引擎和信号设备,以及分别与测试引擎和信号设备相连的多个外部设备。信号设备与多个外部设备相连接,通过不同的接口协议进行数据交互。现有的信号设备测试方法中,由于多个外部设备接口是相互独立的结构,当信号设备需要增加一个外部设备时,测试环境需要相应的增加新增外部设备的接口,以实现交互数据按照通信协议的封装和解析。当信号设备与某个外部设备的接口通信协议发生变化时,测试环境需要相应的变更该外部设备的接口,使得新的外部设备接口能够按照变化后的接口通信协议进行数据的封装和解析。现有的信号设备测试方法中外部设备接口的独立结构使得软件结构松散,测试环境的扩展性低、可维护性差。
发明内容
本发明实施例提供一种信号设备测试方法及外部设备接口,用以解决现有技术中测试环境扩展性低和可维护性差的缺陷,实现测试环境的可维护性的增强,以及测试环境的扩展性和复用性的提高。
本发明实施例提供一种信号设备测试方法,包括:
获取测试输入;
基于所述测试输入对应的外部设备的接口协议和预设的通用封装规则,对所述测试输入进行封装,得到所述测试输入对应的仿真输入,并将所述仿真输入发送给信号设备;
获取所述信号设备的设备输出;
基于所述设备输出对应的外部设备的接口协议和预设的通用解析规则,对所述设备输出进行解析,得到所述设备输出对应的测试输出,并将所述测试输出发送给测试引擎,以使得所述测试引擎基于所述测试输出,确定所述信号设备的测试结果;
其中,所述接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
根据本发明一个实施例的信号设备测试方法,所述若干个属性包括字段名称、字段类型、字段长度、字段父节点、字段子节点、字段位置以及字段有效性中的至少一种。
根据本发明一个实施例的信号设备测试方法,所述预设的通用封装规则具体包括:
若所述当前协议字段的字段有效性为无效,则将所述当前协议字段更新为下一协议字段;
若所述当前协议字段的字段有效性为有效,且所述当前协议字段的字段子节点为空,则基于所述当前协议字段,对所述测试输入进行封装;
若所述当前协议字段的字段子节点不为空,则获取所述当前协议字段的所有叶子节点,并基于所述当前协议字段的所有叶子节点,对所述测试输入进行封装;
将所述当前协议字段更新为所述下一协议字段。
根据本发明一个实施例的信号设备测试方法,所述基于所述当前协议字段,对所述测试输入进行封装,具体包括:
基于所述当前协议字段的字段名称,从所述测试输入中获取当前原始数据;
基于所述当前协议字段的字段类型和字段长度,将所述当前原始数据封装为当前封装数据。
根据本发明一个实施例的信号设备测试方法,所述预设的通用解析规则具体包括:
若所述当前协议字段的字段有效性为无效,则将所述当前协议字段更新为下一协议字段;
若所述当前协议字段的字段有效性为有效,且所述当前协议字段的字段子节点为空,则基于所述当前协议字段,对所述设备输出进行解析;
若所述当前协议字段的字段子节点不为空,则获取所述当前协议字段的所有叶子节点,并基于所述当前协议字段的所有叶子节点,对所述设备输出进行解析;
将所述当前协议字段更新为所述下一协议字段。
根据本发明一个实施例的信号设备测试方法,所述基于所述当前协议字段,对所述设备输出进行解析,具体包括:
基于所述当前协议字段的字段类型和字段长度,从所述设备输出中解析出当前解析结果;
基于所述当前协议字段的字段名称,将所述字段名称对应的变量设为所述当前解析结果。
本发明实施例还提供一种外部设备接口,包括:
测试输入获取模块,用于获取测试输入;
测试输入封装模块,用于基于所述测试输入对应的外部设备的接口协议和预设的通用封装规则,对所述测试输入进行封装,得到所述测试输入对应的仿真输入,并将所述仿真输入发送给信号设备;
设备输出获取模块,用于获取所述信号设备的设备输出;
设备输出解析模块,用于基于所述设备输出对应的外部设备的接口协议和预设的通用解析规则,对所述设备输出进行解析,得到所述设备输出对应的测试输出,并将所述测试输出发送给测试引擎,以使得所述测试引擎基于所述测试输出,确定所述信号设备的测试结果;
其中,所述接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
本发明实施例还提供一种信号设备测试系统,包括测试引擎、信号设备,以及一个如上述实施例提供的外部设备接口;
所述外部设备接口分别与所述测试引擎和所述信号设备连接。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述信号设备测试方法的步骤。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述信号设备测试方法的步骤。
本发明实施例提供的一种信号设备测试方法及外部设备接口,通过基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,使用一个公共的外部设备接口即可实现信号设备与不同外部设备之间的数据交互,增强了测试环境的可维护性,提高了测试环境的扩展性和复用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的测试环境的结构示意图;
图2为本发明实施例提供的信号设备测试方法的流程示意图;
图3为本发明实施例提供的接口协议的示意图;
图4为本发明实施例提供的外部设备接口的结构示意图;
图5为本发明实施例提供的信号设备测试系统的结构示意图;
图6是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为现有的测试环境的结构示意图,如图1所示,现有的测试环境中,测试引擎通过独立的多个外部设备接口与信号设备相连,每个外部设备接口的功能类似。对于任一外部设备接口,该外部设备接口接收测试引擎发送的测试输入,随后按照信号设备与该外部设备之间的接口协议对测试输入进行格式转换,并发送给信号设备。该外部设备接口得到信号设备的反馈信息之后,按照信号设备与该外部设备之间的接口协议对反馈信息进行格式转换,并发送给测试引擎。
由于多个外部设备接口是相互独立的结构,当信号设备需要增加一个外部设备时,测试环境需要相应的增加新增外部设备的接口,以实现交互数据按照通信协议的封装和解析。当信号设备与某个外部设备的接口通信协议发生变化时,测试环境需要相应的变更该外部设备的接口,使得新的外部设备接口能够按照变化后的接口通信协议进行数据的封装和解析。现有的信号设备测试方法中外部设备接口的独立结构使得软件结构松散,测试环境的扩展性低、可维护性差。
对此,本发明实施例提供一种信号设备测试方法,图2为本发明实施例提供的信号设备测试方法的流程示意图,如图2所示,该方法包括:
步骤110,获取测试输入;
步骤120,基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,得到测试输入对应的仿真输入,并将仿真输入发送给信号设备;
步骤130,获取信号设备的设备输出;
步骤140,基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,得到设备输出对应的测试输出,并将测试输出发送给测试引擎,以使得测试引擎基于测试输出,确定信号设备的测试结果;
其中,接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
具体地,本发明实施例提供的信号设备测试方法的执行主体可以为一个公共的外部设备接口。公共的外部设备接口可以基于预设的通用封装规则和预设的通用解析规则,使得交互数据按照不同外部设备统一形式的接口协议进行封装和解析,实现信号设备与不同外部设备之间的数据交互,区别于现有技术中不同的外部设备需要通过多个不同的外部设备接口与信号设备进行交互。
公共的外部设备接口获取到测试引擎发送的测试输入之后,基于该测试输入,获取发送该测试输入的外部设备的信息,例如外部设备的标识、外部设备的编号或外部设备的名称等。基于该测试输入对应的外部设备接口协议和预设的通用封装规则,对该测试输入进行封装,得到该测试输入对应的仿真输入,并将该仿真输入发送至信号设备。其中,测试输入可以包括与其对应的外部设备的信息,仿真输入可以为基于该外部设备与信号设备之间的接口协议对测试输入进行封装后得到的信息。
信号设备接收到该仿真输入之后,经过内部运算,返回对应的设备输出。外部设备接口获取该设备输出之后,基于该设备输出,获取接收该设备输出的外部设备的信息。基于该设备输出对应的外部接口协议和预设的通用解析规则,对该设备输出进行解析,得到该设备输出对应的测试输出,并将该测试输出发送给测试引擎。其中,设备输出可以包括与其对应的外部设备的信息,测试输出可以为基于该外部设备与信号设备之间的接口协议对设备输出进行解析后得到的信息。
测试引擎接收到该测试输出之后,基于该测试输出,确定信号设备的测试结果。其中,信号设备的测试结果的确定方式包括但不限于:测试引擎将该测试输出以可视化的形式展现,测试人员通过观察该测试输出对应的可视化形式,判断信号设备是否实现预期的功能,进而确定信号设备的测试结果。
需要说明的是,测试输入对应的外部设备的接口协议和设备输出对应的外部设备的接口协议可以基于测试环境的配置文件,预先加载到外部设备接口中,也可以通过测试输入和设备输出,实时读取,本发明实施例对接口协议的获取方式不作具体限定。
当信号设备与不同的外部设备进行交互时,不同外部设备对应的接口协议的形式是统一的。基于统一形式的接口协议,公共的外部设备接口可以基于预设的通用封装规则和预设的通用解析规则,完成交互数据按照不同外部设备对应的接口协议的封装和解析。
当信号设备需要与一个新增的外部设备进行数据交互时,只需要将新增外部设备的接口协议按照预设的统一形式进行表示,即可完成交互数据按照新增外部设备的接口协议的封装和解析,无需重新编写代码实现新增外部设备接口与信号设备的交互,避免了相似功能的代码冗余。当信号设备与某一外部设备之间的接口协议发生变化时,只需要将变化后的接口协议按照预设的统一形式进行表示,无需随之更改该外部设备的接口,增强了测试环境的可维护性,提高了测试环境的扩展性和复用性。
接口协议包括若干个协议字段,若干个协议字段用于表示外部设备向信号设备发送的不同类型的信息。每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同,其中,属性格式可以为由若干个属性组成的特定的数据格式,每一属性存储对应的属性值。
接口协议可以表示为如下形式:
P=*T1,T2,…Tm…}
任一协议字段的属性格式可以表示如下形式:
Tm=*attrm1,attrm2,…attrmn…}
其中,P为接口协议,Tm为第m个协议字段,attrmn为第m个协议字段的第n个属性。
以城市轨道交通的CBTC(Communication Based Train Control,基于无线通信的列车自动控制系统)为例,假设信号设备为ZC(Zone Controller,区域控制器),外部设备为CI(Computer Interlocking,计算机联锁系统),CI与ZC之间的接口协议中协议字段可以包括进路信息、道岔信息和信号机信息等。
本发明实施例提供的信号设备测试方法,通过基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,使用一个公共的外部设备接口即可实现信号设备与不同外部设备之间的数据交互,增强了测试环境的可维护性,提高了测试环境的扩展性和复用性。
基于上述实施例,该方法中,属性格式包括字段名称、字段类型、字段长度、字段父节点、字段子节点、字段位置以及字段有效性中的至少一种。
具体地,任一协议字段的属性格式包括字段名称、字段类型、字段长度、字段父节点、字段子节点、字段位置以及字段有效性中的至少一种。其中,字段名称可以为该协议字段表示的信息的名称,字段类型可以为该协议字段存储的数据格式,字段长度可以为该协议字段存储的数据的长度,字段父节点可以为与该协议字段相连的上一层协议字段的信息,字段子节点可以为与该协议字段相连的下一层协议字段的信息,字段位置可以为该协议字段所处的层数以及在该层的位置信息,字段有效性用于表示字段是否有效,当字段有效性为无效时,对应协议字段不参与数据的封装和解析。需要说明的是,该协议字段的字段父节点和字段子节点均为与该协议字段形式相同的协议字段。
图3为本发明实施例提供的接口协议的示意图,下面以图3为例对接口协议的表示形式进行具体说明,如图3所示,该接口协议中包括协议字段T1和协议字段T2,协议字段T1包括两个子节点:协议字段T3和协议字段T4,协议字段T3包括两个子节点:协议字段T5和协议字段T6。协议字段T1可以表示为如下形式:
T1=*name1,type1,length1,0,(T3,T4),(1,1),1}
此处,协议字段T1的属性格式包括的若干个属性依次为:字段名称为name1,字段类型为type1,字段长度为length1,字段父节点为空,字段子节点包括T3和T4,字段位置为第一层第一个,字段有效性为有效。其中,字段有效性为1表示有效,字段有效性为0表示无效。
协议字段T4可以表示为如下形式:
T4=*name4,type4,length4,T1,0,(2,2),1}
此处,协议字段T4的属性格式包括的若干个属性依次为:字段名称为name4,字段类型为type4,字段长度为length4,字段父节点为T1,字段子节点为空,字段位置为第二层第二个,字段有效性为有效。
需要说明的是,本发明实施例仅以图3作为示例进行说明,本发明实施例对接口协议的具体形式不作限定。
由于接口协议中每一协议字段的属性格式中若干个属性分别存储与其对应的若干个属性值,可以通过调整不同的属性对应的属性值,以实现不同需求对应的接口协议的变化,增强了接口协议设计的灵活性。
基于上述任一实施例,该方法中,所述预设的通用封装规则具体包括:
若当前协议字段的字段有效性为无效,则将当前协议字段更新为下一协议字段;
若当前协议字段的字段有效性为有效,且当前协议字段的字段子节点为空,则基于当前协议字段,对测试输入进行封装;
若当前协议字段的字段子节点不为空,则获取当前协议字段的所有叶子节点,并基于当前协议字段的所有叶子节点,对测试输入进行封装;
将当前协议字段更新为下一协议字段。
具体地,在获取测试输入对应的外部设备的接口协议之后,外部设备接口首先获取该接口协议中首个协议字段,并将首个协议字段作为当前协议字段,基于当前协议字段的字段有效性,判断当前协议字段是否有效。若当前协议字段的字段有效性为无效,则获取下一协议字段,并将下一协议字段作为当前协议字段。其中,下一协议字段为与当前协议字段同一层且与当前协议字段相邻的协议字段。
若当前协议字段的字段有效性为有效,基于当前协议字段的字段子节点,判断当前协议字段是否存在子节点。需要说明的是,字段有效性可以根据实际需求进行更改,例如,将某一协议字段的字段有效性从有效更改为无效,以实现接口协议的变化。
若当前协议字段的字段子节点为空,例如图3中协议字段T2,则基于当前协议字段的属性信息,对测试输入进行封装。基于当前协议字段对测试输入的封装完成后,将下一协议字段作为当前协议字段,继续对测试输入进行封装。
若当前协议字段的字段子节点不为空,例如图3中协议字段T1,则基于当前协议字段的字段子节点,获取当前协议字段的当前子节点,随后基于当前子节点的字段子节点,获取当前子节点的子节点,重复上述步骤,通过对当前协议字段相连的节点进行深度遍历获取当前协议字段的所有叶子节点。其中,当前子节点为与当前协议字段直接相连的下一层的协议字段,当前协议字段的所有叶子节点为以当前协议字段为根节点的所有叶子节点。例如图3中,协议字段T1的所有叶子节点包括协议字段T4、协议字段T5和协议字段T6。
获取当前协议字段的所有叶子节点之后,基于当前协议字段的所有叶子节点各自的属性信息,依次对测试输入进行封装,基于当前协议字段对测试输入的封装完成后,将下一协议字段作为当前协议字段,继续对测试输入进行封装。
基于上述任一实施例,该方法中,所述基于当前协议字段,对测试输入进行封装具体包括:
基于当前协议字段的字段名称,从测试输入中获取当前原始数据;
基于当前协议字段的字段类型和字段长度,将当前原始数据封装为当前封装数据。
具体地,基于当前协议字段的字段名称,从测试输入中获取该字段名称对应的信息,并作为当前原始数据。例如,假设当前协议字段的字段名称为信号机信息,则将测试输入中信号机相关的信息作为当前原始数据。
基于当前协议字段的字段类型和字段长度,对当前原始数据进行封装,即基于外部设备与信号设备之间的接口协议进行格式转换,使得信号设备可以识别输入的信息。将封装好的当前原始数据作为当前封装数据。基于所有协议字段对应的封装数据,可以得到测试输入对应的仿真输入。
基于上述任一实施例,下面以图3为例,对字段子节点不为空的当前协议字段的封装过程进行具体说明:将协议字段T1作为当前协议字段;基于协议字段T1的字段子节点,确定协议字段T1的当前子节点包括协议字段T3和协议字段T4;基于协议字段T3的字段子节点,确定协议字段T3的子节点包括协议字段T5和协议字段T6。由于协议字段T5和协议字段T6的字段子节点为空,可以确定协议字段T5和协议字段T6为当前协议字段的叶子节点。完成对协议字段T3的子节点的遍历之后,随后判断协议字段T4是否存在子节点,由于协议字段T4的字段子节点为空,可以确定协议字段T4为当前协议字段的叶子节点。基于深度遍历得到的当前协议字段的所有叶子节点协议字段T5、协议字段T6和协议字段T4,依次对测试输入进行封装,由于所有叶子节点均为与当前协议字段形式相同的协议字段,因此基于任一叶子节点的封装方法与上一实施例相同,本发明实施例在此不再赘述。
基于上述任一实施例,该方法中,所述预设的通用解析规则具体包括:
若当前协议字段的字段有效性为无效,则将当前协议字段更新为下一协议字段;
若当前协议字段的字段有效性为有效,且当前协议字段的字段子节点为空,则基于当前协议字段,对设备输出进行解析;
若当前协议字段的字段子节点不为空,则获取当前协议字段的所有叶子节点,并基于当前协议字段的所有叶子节点,对设备输出进行解析;
将当前协议字段更新为下一协议字段。
具体地,在获取设备输出对应的外部设备的接口协议之后,外部设备接口首先获取该接口协议中首个协议字段,并将首个协议字段作为当前协议字段,基于当前协议字段的字段有效性,判断当前协议字段是否有效。若当前协议字段的字段有效性为无效,则获取下一协议字段,并将下一协议字段作为当前协议字段。
若当前协议字段的字段有效性为有效,基于当前协议字段的字段子节点,判断当前协议字段是否存在子节点。
若当前协议字段的字段子节点为空,则基于当前协议字段的属性信息,对设备输出进行解析,基于当前协议字段对设备输出的解析完成后,将下一协议字段作为当前协议字段,继续对设备输出进行解析。
若当前协议字段的字段子节点不为空,则基于当前协议字段的字段子节点,获取当前协议字段的当前子节点,随后基于当前子节点的字段子节点,获取当前子节点的子节点,重复上述步骤,通过对当前协议字段相连的节点进行深度遍历获取当前协议字段的所有叶子节点。
获取当前协议字段的所有叶子节点之后,基于当前协议字段的所有叶子节点各自的属性信息,依次对设备输出进行解析。基于当前协议字段对设备输出的解析完成后,将下一协议字段作为当前协议字段,继续对设备输出进行解析。
基于上述任一实施例,该方法中,所述基于当前协议字段,对设备输出进行解析具体包括:
基于当前协议字段的字段类型和字段长度,从设备输出中解析出当前解析结果;
基于当前协议字段的字段名称,将字段名称对应的变量设为当前解析结果。
具体地,基于当前协议字段的字段类型和字段长度,从设备输出中解析出当前解析结果,并基于当前协议字段的字段名称,将当前解析结果赋予与该字段名称对应的变量。其中,该字段名称对应的变量可以为存储当前解析结果的中间量。基于所有协议字段对应的变量。得到设备输出对应的测试输出。
基于上述任一实施例,图4为本发明实施例提供的外部设备接口的结构示意图,如图4所示,该外部设备接口包括:
测试输入获取模块410,用于获取测试输入;
测试输入封装模块420,用于基于所述测试输入对应的外部设备的接口协议和预设的通用封装规则,对所述测试输入进行封装,得到所述测试输入对应的仿真输入,并将所述仿真输入发送给信号设备;
设备输出获取模块430,用于获取所述信号设备的设备输出;
设备输出解析模块440,用于基于所述设备输出对应的外部设备的接口协议和预设的通用解析规则,对所述设备输出进行解析,得到所述设备输出对应的测试输出,并将所述测试输出发送给测试引擎,以使得所述测试引擎基于所述测试输出,确定所述信号设备的测试结果;
其中,所述接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
本发明实施例提供的外部设备接口,通过基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,使用一个公共的外部设备接口即可实现信号设备与不同外部设备之间的数据交互,增强了测试环境的可维护性,提高了测试环境的扩展性和复用性。
基于上述任一实施例,该外部设备接口中,所述属性格式包括字段名称、字段类型、字段长度、字段父节点、字段子节点、字段位置以及字段有效性中的至少一种。
基于上述任一实施例,该外部设备接口中,所述预设的通用封装规则具体包括:
若当前协议字段的字段有效性为无效,则将所述当前协议字段更新为下一协议字段;
若所述当前协议字段的字段有效性为有效,且所述当前协议字段的字段子节点为空,则基于所述当前协议字段,对所述测试输入进行封装;
若所述当前协议字段的字段子节点不为空,则获取所述当前协议字段的所有叶子节点,并基于所述当前协议字段的所有叶子节点,对所述测试输入进行封装;
将所述当前协议字段更新为所述下一协议字段。
基于上述任一实施例,该外部设备接口中,所述基于所述当前协议字段,对所述测试输入进行封装,具体包括:
基于所述当前协议字段的字段名称,从所述测试输入中获取当前原始数据;
基于所述当前协议字段的字段类型和字段长度,将所述当前原始数据封装为当前封装数据。
基于上述任一实施例,该外部设备接口中,所述预设的通用解析规则具体包括:
若当前协议字段的字段有效性为无效,则将所述当前协议字段更新为下一协议字段;
若所述当前协议字段的字段有效性为有效,且所述当前协议字段的字段子节点为空,则基于所述当前协议字段,对所述设备输出进行解析;
若所述当前协议字段的字段子节点不为空,则获取所述当前协议字段的所有叶子节点,并基于所述当前协议字段的所有叶子节点,对所述设备输出进行解析;
将所述当前协议字段更新为所述下一协议字段。
基于上述任一实施例,该外部设备接口中,所述基于所述当前协议字段,对所述设备输出进行解析,具体包括:
基于所述当前协议字段的字段类型和字段长度,从所述设备输出中解析出当前解析结果;
基于所述当前协议字段的字段名称,将所述字段名称对应的变量设为所述当前解析结果。
基于上述任一实施例,图5为本发明实施例提供的信号设备测试系统的结构示意图,如图5所示,该信号设备测试系统包括测试引擎510、外部设备接口520以及信号设备530,其中,外部设备接口520分别与测试引擎510和信号设备530连接。
具体地,测试引擎510将测试输入发送给外部设备接口520,外部设备接口520接收到该测试输入后,对该测试输入进行封装,得到该测试输入对应的仿真输入,并将该仿真输入发送给信号设备530。信号设备530接收到该仿真输入之后,经过内部运算,将设备输出发送给外部设备接口520。外部设备接口520接收到该设备输出之后,对该设备输出进行解析,得到该设备输出对应的测试输出,并将该测试输出发送给测试引擎510。测试引擎510基于该测试输出,确定信号设备530的测试结果。其中,外部设备接口520执行上述实施例提供的信号设备测试方法。
由于不同外部设备对应的接口协议的形式是统一的,外部设备接口520可以基于预设的通用封装规则和预设的通用解析规则,完成交互数据按照不同外部设备对应的接口协议的封装和解析,实现信号设备与不同外部设备之间的数据交互,区别于现有技术中不同的外部设备需要通过多个不同的外部设备接口与信号设备进行交互。
当信号设备530需要与一个新增的外部设备进行数据交互时,只需要将新增外部设备的接口协议按照预设的统一形式进行表示,即可完成交互数据按照新增外部设备的接口协议的封装和解析,无需重新编写代码实现新增外部设备接口与信号设备的交互,避免了相似功能的代码冗余。当信号设备530与某一外部设备之间的接口协议发生变化时,只需要将变化后的接口协议按照预设的统一形式进行表示,无需随之更改该外部设备的接口,增强了信号设备测试系统的可维护性,提高了信号设备测试系统的扩展性和复用性。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(CommunicationsInterface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行信号设备测试方法,该方法包括:获取测试输入;基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,得到测试输入对应的仿真输入,并将仿真输入发送给信号设备;获取信号设备的设备输出;基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,得到设备输出对应的测试输出,并将测试输出发送给测试引擎,以使得测试引擎基于测试输出,确定信号设备的测试结果;其中,接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的信号设备测试方法,该方法包括:获取测试输入;基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,得到测试输入对应的仿真输入,并将仿真输入发送给信号设备;获取信号设备的设备输出;基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,得到设备输出对应的测试输出,并将测试输出发送给测试引擎,以使得测试引擎基于测试输出,确定信号设备的测试结果;其中,接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的信号设备测试方法,该方法包括:获取测试输入;基于测试输入对应的外部设备的接口协议和预设的通用封装规则,对测试输入进行封装,得到测试输入对应的仿真输入,并将仿真输入发送给信号设备;获取信号设备的设备输出;基于设备输出对应的外部设备的接口协议和预设的通用解析规则,对设备输出进行解析,得到设备输出对应的测试输出,并将测试输出发送给测试引擎,以使得测试引擎基于测试输出,确定信号设备的测试结果;其中,接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种信号设备测试方法,其特征在于,包括:
获取测试输入;
基于所述测试输入对应的外部设备的接口协议和预设的通用封装规则,对所述测试输入进行封装,得到所述测试输入对应的仿真输入,并将所述仿真输入发送给信号设备;
获取所述信号设备的设备输出;
基于所述设备输出对应的外部设备的接口协议和预设的通用解析规则,对所述设备输出进行解析,得到所述设备输出对应的测试输出,并将所述测试输出发送给测试引擎,以使得所述测试引擎基于所述测试输出,确定所述信号设备的测试结果;
其中,所述接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
2.根据权利要求1所述的信号设备测试方法,其特征在于,所述属性格式包括字段名称、字段类型、字段长度、字段父节点、字段子节点、字段位置以及字段有效性中的至少一种。
3.根据权利要求2所述的信号设备测试方法,其特征在于,所述预设的通用封装规则具体包括:
若当前协议字段的字段有效性为无效,则将所述当前协议字段更新为下一协议字段;
若所述当前协议字段的字段有效性为有效,且所述当前协议字段的字段子节点为空,则基于所述当前协议字段,对所述测试输入进行封装;
若所述当前协议字段的字段子节点不为空,则获取所述当前协议字段的所有叶子节点,并基于所述当前协议字段的所有叶子节点,对所述测试输入进行封装;
将所述当前协议字段更新为所述下一协议字段。
4.根据权利要求3所述的信号设备测试方法,其特征在于,所述基于所述当前协议字段,对所述测试输入进行封装,具体包括:
基于所述当前协议字段的字段名称,从所述测试输入中获取当前原始数据;
基于所述当前协议字段的字段类型和字段长度,将所述当前原始数据封装为当前封装数据。
5.根据权利要求2所述的信号设备测试方法,其特征在于,所述预设的通用解析规则具体包括:
若当前协议字段的字段有效性为无效,则将所述当前协议字段更新为下一协议字段;
若所述当前协议字段的字段有效性为有效,且所述当前协议字段的字段子节点为空,则基于所述当前协议字段,对所述设备输出进行解析;
若所述当前协议字段的字段子节点不为空,则获取所述当前协议字段的所有叶子节点,并基于所述当前协议字段的所有叶子节点,对所述设备输出进行解析;
将所述当前协议字段更新为所述下一协议字段。
6.根据权利要求5所述的信号设备测试方法,其特征在于,所述基于所述当前协议字段,对所述设备输出进行解析,具体包括:
基于所述当前协议字段的字段类型和字段长度,从所述设备输出中解析出当前解析结果;
基于所述当前协议字段的字段名称,将所述字段名称对应的变量设为所述当前解析结果。
7.一种外部设备接口,其特征在于,包括:
测试输入获取模块,用于获取测试输入;
测试输入封装模块,用于基于所述测试输入对应的外部设备的接口协议和预设的通用封装规则,对所述测试输入进行封装,得到所述测试输入对应的仿真输入,并将所述仿真输入发送给信号设备;
设备输出获取模块,用于获取所述信号设备的设备输出;
设备输出解析模块,用于基于所述设备输出对应的外部设备的接口协议和预设的通用解析规则,对所述设备输出进行解析,得到所述设备输出对应的测试输出,并将所述测试输出发送给测试引擎,以使得所述测试引擎基于所述测试输出,确定所述信号设备的测试结果;
其中,所述接口协议包括若干个协议字段,每一协议字段具备相同的属性格式,不同协议字段的属性格式对应的属性值不同。
8.一种信号设备测试系统,其特征在于,包括测试引擎、信号设备,以及一个如权利要求7所述的外部设备接口;
所述外部设备接口分别与所述测试引擎和所述信号设备连接。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的信号设备测试方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的信号设备测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010610374.0A CN111897306B (zh) | 2020-06-29 | 2020-06-29 | 一种信号设备测试方法及外部设备接口 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010610374.0A CN111897306B (zh) | 2020-06-29 | 2020-06-29 | 一种信号设备测试方法及外部设备接口 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897306A true CN111897306A (zh) | 2020-11-06 |
CN111897306B CN111897306B (zh) | 2021-12-07 |
Family
ID=73207930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010610374.0A Active CN111897306B (zh) | 2020-06-29 | 2020-06-29 | 一种信号设备测试方法及外部设备接口 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897306B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434437A (zh) * | 2021-08-26 | 2021-09-24 | 北京全路通信信号研究设计院集团有限公司 | 一种接口协议数据解析方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005543A (zh) * | 2015-06-29 | 2015-10-28 | 浪潮通用软件有限公司 | 一种接口生成装置及方法 |
CN106557447A (zh) * | 2016-11-29 | 2017-04-05 | 中国电子科技集团公司第二十九研究所 | 一种通用总线接口转换与预处理装置 |
CN106980560A (zh) * | 2017-03-17 | 2017-07-25 | 北京临近空间飞行器系统工程研究所 | 一种基于icd数据库多总线协议测试及仿真方法和平台 |
CN208156650U (zh) * | 2018-05-31 | 2018-11-27 | 成都国信安信息产业基地有限公司 | 一种通用多接口协议测试设备 |
CN110113196A (zh) * | 2019-04-26 | 2019-08-09 | 中车青岛四方机车车辆股份有限公司 | 一种协议配置方法、装置、设备及介质 |
-
2020
- 2020-06-29 CN CN202010610374.0A patent/CN111897306B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005543A (zh) * | 2015-06-29 | 2015-10-28 | 浪潮通用软件有限公司 | 一种接口生成装置及方法 |
CN106557447A (zh) * | 2016-11-29 | 2017-04-05 | 中国电子科技集团公司第二十九研究所 | 一种通用总线接口转换与预处理装置 |
CN106980560A (zh) * | 2017-03-17 | 2017-07-25 | 北京临近空间飞行器系统工程研究所 | 一种基于icd数据库多总线协议测试及仿真方法和平台 |
CN208156650U (zh) * | 2018-05-31 | 2018-11-27 | 成都国信安信息产业基地有限公司 | 一种通用多接口协议测试设备 |
CN110113196A (zh) * | 2019-04-26 | 2019-08-09 | 中车青岛四方机车车辆股份有限公司 | 一种协议配置方法、装置、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434437A (zh) * | 2021-08-26 | 2021-09-24 | 北京全路通信信号研究设计院集团有限公司 | 一种接口协议数据解析方法及系统 |
CN113434437B (zh) * | 2021-08-26 | 2022-04-12 | 北京全路通信信号研究设计院集团有限公司 | 一种接口协议数据解析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111897306B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102244594B (zh) | 在手动和自动测试工具中的网络仿真技术 | |
CN106357457B (zh) | 一种告警测试方法、装置以及系统 | |
CN110287109A (zh) | 协议接口的测试方法、装置、计算机设备及其存储介质 | |
CN108829647A (zh) | 一种数据转换方法及装置 | |
CN106227660B (zh) | 一种用于模拟真实物理环境的仿真数据生成方法 | |
CN111190596A (zh) | 联调方法、装置、计算机设备及可读存储介质 | |
CN103746840B (zh) | 网络设备软件版本信息自动核对方法和系统 | |
CN108092854A (zh) | 基于iec61375协议的列车级以太网设备的测试方法及装置 | |
CN111679979B (zh) | 破坏性测试方法及装置 | |
CN111897306B (zh) | 一种信号设备测试方法及外部设备接口 | |
CN106357462A (zh) | 故障注入方法、芯片和设备 | |
CN106778280A (zh) | 一种填充式远程漏洞PoC编写方法及漏洞检测方法 | |
CN114816980A (zh) | 一种嵌入式通信系统用自动测试装置及方法 | |
EP2511841A2 (en) | System and method for generation of cim-based power system circuit models | |
CN110244688A (zh) | 基于LabVIEW的仪表总线面板自动生成方法及其系统 | |
CN114936062A (zh) | 一种设备自动调试的方法、装置、设备、系统及存储介质 | |
CN108804301A (zh) | 一种基于事件与故障记录数据的列车控制系统软件测试系统及方法 | |
CN103888460B (zh) | 基于状态空间搜索的控制器局域网协议验证方法 | |
CN110868341B (zh) | 就地化保护智能管理单元测试方法及装置 | |
Baur et al. | Realizing an effective and flexible ITS evaluation strategy through modular and multi-scaled traffic simulation | |
CN115470152A (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
CN112838938B (zh) | 一种物联网平台的测试系统 | |
CN106841842A (zh) | 二次设备的虚回路的测试方法和装置 | |
Gillingham et al. | MalcolmJS: a Browser-Based Graphical User Interface | |
Wäschle et al. | Development of an integrated validation environment for System of Systems in the context of V2X using the XiL-Approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |