掌桥专利:专业的专利平台
掌桥专利
首页

一种仿真测试方法、装置、系统、设备及存储介质

文献发布时间:2024-04-18 19:58:21


一种仿真测试方法、装置、系统、设备及存储介质

技术领域

本申请涉及车辆技术领域,涉及但不限于一种仿真测试方法、装置、系统、设备及存储介质。

背景技术

随着车辆技术的日益发展,车辆设备的功能配置越来越丰富。为了验证分析车辆设备的各种功能,需要对车辆设备进行仿真测试。

相关技术中,在使用周立功仿真测试软件对车辆设备进行仿真测试时,只能进行单向仿真测试,在接收到下行报文之后,无法自动反馈上行报文,需要人工、手动生成上行报文,来对接收到的下行报文进行反馈,这样,使得仿真测试过程不符合实际业务需求,且自动化程度低,导致仿真效率较低。

发明内容

本申请提供一种仿真测试方法、装置、系统、设备及存储介质,可以使得仿真测试过程更符合实际业务需求,能够提高仿真测试的自动化程度,进而提高仿真效率。

本申请的技术方案是这样实现的:

第一方面,本申请提供了一种仿真测试方法,所述方法包括:

接收从车辆设备的第一模块下发的下行报文;

至少基于所述下行报文,生成与所述下行报文对应的上行报文;

将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

第二方面,本申请提供了一种仿真测试装置,所述装置包括:

接收单元,用于接收从车辆设备的第一模块下发的下行报文;

生成单元,用于至少基于所述下行报文,生成与所述下行报文对应的上行报文;

发送单元,用于将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

第三方面,本申请还提供了一种仿真测试系统,所述系统包括车辆设备和仿真测试设备;所述车辆设备包括第一模块和第二模块;所述仿真设备分别与所述第一模块、所述第二模块连接;所述仿真测试设备用于执行:接收从车辆设备的第一模块下发的下行报文;至少基于所述下行报文,生成与所述下行报文对应的上行报文;将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与所述仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

第四方面,本申请还提供了一种仿真测试设备,包括:存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述仿真测试方法。

第五方面,本申请还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述仿真测试方法。

本申请所提供的仿真测试方法、装置、系统、设备及存储介质,所述方法包括:接收从车辆设备的第一模块下发的下行报文;至少基于所述下行报文,生成与所述下行报文对应的上行报文;将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

对于本申请的方案,通过预先建立下行报文和上行报文之间的对应关系,使得仿真测试设备可以基于接收到的下行报文,实现与下行报文对应的上行报文的自动生成和自动反馈,从而完成从接收到响应的双向测试链路的验证。可以看出:本申请的方案中,通过建立下行报文和上行报文之间的对应关系,可以自动实现双向仿真测试,使得仿真测试过程更符合实际业务需求,且能够提高仿真测试的自动化程度,进而提高仿真效率。

附图说明

图1为本申请实施例提供的仿真测试场景的一种可选的流程示意图;

图2为本申请实施例提供的仿真测试方法第一种可选的流程示意图;

图3为本申请实施例提供的仿真测试方法第二种可选的流程示意图;

图4为本申请实施例提供的仿真测试方法第三种可选的流程示意图;

图5为本申请实施例提供的仿真测试方法第四种可选的流程示意图;

图6为本申请实施例提供的仿真测试方法第五种可选的流程示意图;

图7为本申请实施例提供的仿真测试方法第六种可选的流程示意图;

图8为本申请实施例提供的仿真测试方法中选择表格文件的一种可选的示意图;

图9为本申请实施例提供的仿真测试方法中选择DBC文件的一种可选的示意图;

图10为本申请实施例提供的仿真测试方法中车机应用初始界面的一种可选的示意图;

图11为本申请实施例提供的仿真测试方法中车机应用更新后的界面的一种可选的流程示意图;

图12为本申请实施例提供的仿真测试装置的一种可选的结构示意图;

图13为本申请实施例提供的仿真测试设备的一种可选的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。

在以下的描述中,涉及到“一些实施例,”其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一第二第三”仅是为例区别不同的对象,不代表针对对象的特定排序,不具有先后顺序的限定。可以理解地,“第一第二第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

本申请实施例提供了仿真测试方法、装置、系统、设备及存储介质。实际应用中,仿真测试方法可由仿真测试装置实现,仿真测试装置中的各功能实体可以由仿真测试设备的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

下面,对本申请实施例提供的仿真测试方法、装置、系统、设备及存储介质的各实施例进行说明。

示例性的,本申请实施例提供的仿真测试方法,可以应用于图1所示的场景,包括仿真测试设备10、车辆设备20。

其中,车辆设备20包括至少一个第一模块201和至少一个第二模块202。第一模块201和第二模块202分别用于实现车辆设备20的相应功能。

车辆设备20,可以为任一车辆设备。本申请实施例对车辆设备20的具体类型不作限定,可以根据实际情况确定。例如,车辆设备可以包括但不限于轿车、越野车、工程车、商务车以及房车等等。

仿真测试设备10,其上运行有仿真测试软件,用于进行仿真测试,可以为任一具有相关数据处理能力的电子设备。

仿真测试设备10与车辆设备20通过连接链路相连接。本申请实施例对仿真测试设备10和车辆设备20之间的连接链路的具体类型不作限定,可以根据实际情况确定。例如,可以是无线链路,也可以是有线链路。

第一方面,本申请实施例提供了一种仿真测试方法。该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。

下面,以仿真测试设备作为执行主体,对本申请实施例提供的仿真测试方法进行说明。

图2为本申请实施例的仿真测试方法的流程示意图,如图2所示,该过程可以包括但不限于下述S201至S203。

本申请实施例对仿真测试设备的具体类型不作限定,可以根据实际情况进行确定。示例性的,仿真测试设备可以包括但不限于服务器、电脑、终端设备等。例如,仿真测试设备可以为运行有仿真测试软件的服务器。示例性的,仿真测试软件可以是周立功仿真测试软件(如ZCANPRO软件)。

S201、仿真测试设备接收从车辆设备的第一模块下发的下行报文。

车辆设备的第一模块用于实现车辆设备的至少一个功能。

本申请实施例对第一模块的具体类型不作限定,可以根据实际情况自行设置。示例性的,第一模块可以为车辆设备的任意一个实体模块如空调模块,也可以为车辆设备的车机系统的任意一个应用。

下行报文为车辆设备的任一模块发送给仿真测试设备的报文。

本申请实施例对下行报文的具体内容不作限定,可以根据实际情况自行设置。示例性的,下行报文可以包括下行信号的信号名称、信号ID、信号值、发送方、接收方等等。

本申请实施例对下行报文所包括的下行信号的数目不作限定,可以根据实际情况自行设置。示例性的,下行报文中可以仅包括一个下行信号,也可以包括多个下行信号。

示例性的,S201可以实施为:仿真测试设备通过其与车辆设备的第一模块之间的连接链路,接收从车辆设备的第一模块下发的下行报文。

S202、仿真测试设备至少基于所述下行报文,生成与所述下行报文对应的上行报文。

上行报文为仿真测试设备发送给车辆设备的任一模块的报文。

本申请实施例对上行报文的具体内容不作限定,可以根据实际情况自行设置。示例性的,上行报文可以包括上行信号的信号名称、信号ID、信号值、发送方、接收方等等。

本申请实施例对上行报文所包括的上行信号的数目不作限定,可以根据实际情况自行设置。示例性的,上行报文中可以仅包括一个上行信号,也可以包括多个上行信号。

在一种可能的实施方式中,S202可以实施为:仿真测试设备基于下行报文和下行信号与上行信号之间的对应关系,生成与下行报文对应的上行报文。

S203、仿真测试设备将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果。

所述测试链路包括所述第一模块与仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

车辆设备的第二模块用于实现车辆设备的至少一个功能。

本申请实施例对第二模块的具体类型不作限定,可以根据实际情况自行设置。示例性的,第二模块可以为车辆设备的任意一个实体模块如空调模块,也可以为车辆设备的车机系统的任意一个应用。

需要说明的是,本申请实施例中的第一模块和第二模块可以相同,也可以不同。示例性的,针对第一模块与第二模块相同的情况,可以是第一模块与第二模块均为车辆设备的空调模块的情况,也可以是第一模块与第二模块均为车辆设备的音乐应用的情况;针对第一模块与第二模块不同的情况,可以是第一模块为车辆设备的音乐应用,第二模块为车辆设备的音响模块的情况,也可以是第一模块为车辆设备的车窗模块,第二模块为车辆设备的空调模块的情况。

示例性的,S203可以实施为:仿真测试设备通过其与车辆设备的第二模块之间的连接链路,将上行报文反馈至车辆设备的第二模块。对应的,第二模块在接收到上行报文之后,发送反馈消息给仿真测试设备,仿真测试设备基于该反馈消息得到测试链路的仿真测试结果。或者,第二模块在接收到上行报文之后,基于该上行报文进行相关操作,并将操作结果进行显示,以通过观察显示内容得到测试链路的仿真测试结果。

本申请实施例提供的仿真测试方法,包括:接收从车辆设备的第一模块下发的下行报文;至少基于所述下行报文,生成与所述下行报文对应的上行报文;将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

对于本申请的方案,通过预先建立下行报文和上行报文之间的对应关系,使得仿真测试设备可以基于接收到的下行报文,实现与下行报文对应的上行报文的自动生成和自动反馈,从而完成从接收到响应的双向测试链路的验证。可以看出:本申请的方案中,通过建立下行报文和上行报文之间的对应关系,可以自动实现双向仿真测试,使得仿真测试过程更符合实际业务需求,且能够提高仿真测试的自动化程度,进而提高仿真效率。

下面,对S202中仿真测试设备至少基于下行报文,生成与下行报文对应的上行报文的过程进行说明。

参考图3所示的内容,该过程可以包括但不限于下述S2021至S2024。

S2021、仿真测试设备解析所述下行报文,得到目标下行信号的信号标识和所述目标下行信号的信号值。

由于本申请实施例的下行报文可以包括至少一个下行信号的信号名称、信号ID、信号值、发送方、接收方等等,所以,仿真测试设备通过解析下行报文,可以得到至少一个目标下行信号的信号标识、信号值。

S2022、仿真测试设备至少基于所述目标下行信号的信号标识,确定与所述目标下行信号对应的目标上行信号的信号标识。

在一种可能的实施方式中,S2022可以实施为:仿真测试设备基于目标下行信号的信号标识、下行信号的信号标识与上行信号的信号标识之间的对应关系,确定与目标下行信号对应的目标上行信号的信号标识。

S2023、仿真测试设备至少基于所述目标下行信号的信号值,确定所述目标上行信号的信号值。

在一种可能的实施方式中,S2023可以实施为:仿真测试设备基于目标下行信号的信号值、下行信号的信号标识与换算逻辑之间的对应关系,确定与目标下行信号对应的目标上行信号的信号标识。

S2024、仿真测试设备基于所述目标上行信号的信号标识和所述目标上行信号的信号值,生成所述上行报文。

本申请实施例对仿真测试设备基于目标上行信号的信号标识、信号值生成上行报文的具体方式不作限定,可以根据实际情况自行设置。示例性的,仿真测试设备可以通过将目标上行信号的信号标识、信号值整理成上行报文所要求的格式,来生成上行报文。

示例性的,S2024可以实施为:仿真测试设备将多个目标上行信号中每个上行信号的信号标识、信号值整理成上行报文所要求的的格式,以生成上行报文。

下面,对S2022中仿真测试设备至少基于所述目标下行信号的信号标识,确定与所述目标下行信号对应的目标上行信号的信号标识的过程进行说明。

参考图4所示的内容,该过程可以包括但不限于下述S401和S403。

S401、仿真测试设备获取至少一个第一对应关系。

所述第一对应关系用于表征下行信号的信号标识与上行信号的信号标识之间的对应关系。

在第一对应关系中,一个下行信号的信号标识可以对应至少一个上行信号的信号标识。

示例性的,预先建立至少一个下行信号的信号标识与至少一个上行信号的信号标识之间的第一对应关系,并存储于数据库中,S401可以实施为:仿真测试设备从数据库中获取至少一个第一对应关系。

S402、仿真测试设备将所述至少一个第一对应关系中,包括所述目标下行信号的信号标识的第一对应关系,确定为目标第一对应关系。

示例性的,S402可以实施为:仿真测试设备在至少一个第一对应关系中遍历下行信号的信号标识,将包括目标下行信号的信号标识的第一对应关系,确定为目标第一对应关系。

S403、仿真测试设备将所述目标第一对应关系中的上行信号的信号标识确定为所述目标上行信号的信号标识。

由于第一对应关系用于表征下行信号的信号标识与上行信号的信号标识之间的对应关系,在确定目标第一关系之后,便可将目标第一对应关系中的上行信号的信号标识确定为目标上行信号的信号标识。

这样,基于目标下行信号的信号标识,来确定与目标下行信号对应的目标上行信号的信号标识,具有简单、可靠,准确度高的特点。

下面,对S2023中仿真测试设备至少基于所述目标下行信号的信号值,确定所述目标上行信号的信号值的过程进行说明。

参考图5所示的内容,该过程可以包括但不限于下述S501和S503。

S501、仿真测试设备获取至少一个第二对应关系。

所述第二对应关系用于表征下行信号的信号标识与换算逻辑之间的对应关系。

在第二对应关系中,一个下行信号的信号标识可以对应至少一个换算逻辑。

换算逻辑用于表征下行信号的信号值和上行信号的信号值之间的换算关系。

本申请实施例对换算逻辑的具体表现形式不作限定,可以根据实际情况自行设置。示例性的,可以是换算公式,也可以是逻辑代码。

示例性的,预先建立至少一个下行信号的信号标识与至少一个换算逻辑之间的第二对应关系,并存储于数据库中,S501可以实施为:仿真测试设备从数据库中获取至少一个第二对应关系。

S502、仿真测试设备将所述至少一个第二对应关系中,包括所述目标下行信号的信号标识的第二对应关系,确定为目标第二对应关系。

示例性的,S502可以实施为:仿真测试设备在至少一个第二对应关系中遍历下行信号的信号标识,将包括目标下行信号的信号标识的第二对应关系,确定为目标第二对应关系。

S503、仿真测试设备将所述目标第二对应关系中的换算逻辑确定为目标换算逻辑。

由于第二对应关系用于表征下行信号的信号标识与换算逻辑之间的对应关系,在确定目标第二关系之后,便可将目标第二对应关系中的换算逻辑确定为目标换算逻辑。

这样,基于目标下行信号的信号标识来确定目标换算逻辑,实现简单。

S504、仿真测试设备基于所述目标换算逻辑和所述目标下行信号的信号值,确定所述目标上行信号的信号值。

由于换算逻辑用于表征下行信号的信号值和上行信号的信号值之间的换算关系,那么,已知目标下行信号的信号值和目标换算逻辑,便可通过计算确定目标上行信号的信号值。

下面,对S203中仿真测试设备将所述上行报文反馈至所述车辆设备的第二模块的过程进行说明。

该过程可以包括下述情况一和情况二。

情况一:在第一模块与第二模块相同的情况下,仿真测试设备将上行报文反馈至车辆设备的第二模块;

情况二:在第一模块与第二模块不同的情况下,仿真测试设备将上行报文反馈至车辆设备的第二模块。

下面,对情况一中仿真测试设备将上行报文反馈至车辆设备的第二模块的过程进行说明。

在第一模块与第二模块相同的情况下,仿真测试设备将第一模块确定为车辆设备的第二模块,并将上行报文反馈至车辆设备的第二模块。

下面,对情况二中仿真测试设备将上行报文反馈至车辆设备的第二模块的过程进行说明。

参考图6所示的内容,该过程可以包括但不限于下述S601至S603。

S601、在所述第一模块与所述第二模块不同的情况下,所述将所述上行报文反馈至所述车辆设备的第二模块之前,仿真测试设备获取至少一个第三对应关系。

所述第三对应关系用于表征上行信号的信号标识与所述车辆设备的模块之间的对应关系。

在第三对应关系中,一个上行信号的信号标识可以对应车辆设备的至少一个模块。

在一种可能的实施方式中,第三对应关系还用于表征下行信号的信号标识与所述车辆设备的模块之间的对应关系。

在第三对应关系中,一个下行信号的信号标识可以对应车辆设备的至少一个模块。

示例性的,预先建立至少一个上行信号的信号标识与车辆设备的至少一个模块之间的第三对应关系,并存储于数据库中,S601可以实施为:在所述第一模块与所述第二模块不同的情况下,仿真测试设备从数据库中获取至少一个第三对应关系。

S602、仿真测试设备将所述至少一个第三对应关系中,包括所述目标上行信号的信号标识的第三对应关系,确定为目标第三对应关系。

示例性的,S602可以实施为:仿真测试设备在至少一个第三对应关系中遍历上行信号的信号标识,将包括目标上行信号的信号标识的第三对应关系,确定为目标第三对应关系。

S603、仿真测试设备将所述目标第三对应关系中的模块确定为所述第二模块。

由于第三对应关系用于表征上行信号的信号标识与车辆设备的模块之间的对应关系,在确定目标第三关系之后,便可将目标第三对应关系中的模块确定为第二模块。

这样,基于目标上行信号的信号标识来确定车辆设备的第二模块,实现方案简单高效、不易出错。

需要说明的是,本申请实施例中的第一对应关系、第二对应关系和第三对应关系可以融合后存储于同一数据库表或同一文件(如Excel文件)中,也可以分别存储于不同的数据库表或不同的文件(如Excel文件)中,本申请实施例对此不作限定。

本申请实施例提供的仿真测试方法还可以包括仿真测试结果的确定过程。参考图7所示的内容,该过程可以包括但不限于下述S701至S702。

S701、所述将所述上行报文反馈至所述车辆设备的第二模块之后,若接收到所述第二模块发送的反馈消息,仿真测试设备确定所述测试链路的仿真测试结果为测试成功。

反馈消息为第二模块发送的针对上行报文的反馈消息。

本申请实施例对第二模块发送反馈消息的具体方式不作限定,可以根据实际情况自行设置。示例性的,第二模块可以仅在上行报文被成功接收的情况下发送反馈消息,也可以无论上行报文是否被成功接收均发送反馈消息。

在一种可能的实施方式中,若接收到所述第二模块发送的、表征所述上行报文被成功接收的反馈消息,仿真测试设备确定所述测试链路的仿真测试结果为测试成功。

S702、若未接收到所述第二模块发送的反馈消息,仿真测试设备确定所述测试链路的仿真测试结果为测试失败。

在一种可能的实施方式中,若接收到所述第二模块发送的、表征所述上行报文未被成功接收的反馈消息,仿真测试设备确定所述测试链路的仿真测试结果为测试失败。

下面以一个完整的过程为例,通过该实施例对本申请实施例提供的仿真测试方法进行说明。

现有技术中,在使用周立功软件(如ZCANPRO软件)结合DBC(DataBase Can,CA N的数据库文件)文件进行仿真测试的过程中,只能进行单向仿真测试,即在接收到来自车机的下行信号(座舱域控制器(Cabin Domain Controller,CDC)请求的信号)之后,周立功软件是不能自动反馈上行信号(反馈给CDC的信号)的。

本申请的方案目的是通过让用户配置指定表格文件,表格文件中包括CDC下行信号所在帧的帧标识can-id(相当于上述下行信号的信号标识),下行信号名称(相当于上述下行信号的信号标识),与之相关联的上行信号名称(相当于上述上行信号的信号标识)、所在帧的帧标识can-id(相当于上述上行信号的信号标识),反馈信号值的换算公式(相当于上述换算逻辑)等,在使用周立功软件接收接口接收并解析下行信号后,通过下行信号名称,can-id,在表格文件中匹配到待反馈的上行信号,并结合DBC文件生成相应上行信号的数据帧(相当于上述上行报文),通过周立功发送接口发送给车机,从而达成车机应用利用周立功软件进行仿真测试的目的。

下面,以仿真测试软件为周立功软件(如ZCANPRO软件),以及第一对应关系、第二对应关系和第三对应关系融合存储于同一表格文件为例,对本申请的自动双向仿真测试方法的流程进行说明。本申请的方案具体可以包括以下过程:

例如,编写自动反馈信号程序(相当于上述仿真测试方法对应的程序)所使用的开发语言为Python。

1、定义表格文件。

表格文件至少应当包含下行信号名称,所在帧的can-id;上行信号名称,所在帧的can-id,换算公式,接收模块。示例性的,参考表1所示的内容,为包括第一对应关系、第二对应关系和第三对应关系的表格文件。

表1表格文件示例

下面,以第二行的内容为例,对表格文件进行说明。

其中,请求信号opq的发送方为车辆设备的模块3,其帧ID为789;对应的反馈信号有两个,第一个反馈信号的信号名称为uvw,帧ID为633,换算公式为{last+1},代表反馈信号uvw的信号值为上一次反馈的反馈信号的信号值加1,反馈信号uvw的接收模块和请求信号opq的发送方相同,均为车辆设备的模块3;第二个反馈信号的信号名称为xyz,帧ID为525,换算公式为{current+1if current<=8else current},代表若请求信号opq的信号值小于等于8,则反馈信号xyz的信号值为请求信号opq的信号值加1,否则反馈信号xyz的信号值等于请求信号opq的信号值,反馈信号xyz的接收模块和请求信号opq的发送方不同,反馈信号xyz的接收模块为车辆设备的模块4。

2、表格文件输入程序。

表格文件的保存路径可以直接设置一个固定路径,或动态配置并记录之前使用的路径。

本申请实施例使用PyQt5库的QFileDialog让使用者动态配置表格路径,QFileDialog.ge tOpenFileName(self,'选择xlsx文件',self.xlsx_path,'Excel文件(*.xlsx)'),运行示例参见图8所示的内容,用户可点击按钮选择任一xlsx文件。在获取表格路径xlsx_path后,可以使用Pandas解析表格的内容,pandas.ExcelFile(xlsx_path),代表使用Pandas解析路径为x lsx_path的Excel表格文件。

3、DBC文件输入程序。

DBC文件的保存路径可以直接设置一个固定路径,或动态配置并记录之前使用的路径。

本申请实施例使用PyQt5库的QFileDialog让使用者动态配置DBC路径,运行示例参见图9所示的内容,用户可点击按钮选择任一DBC文件。在获取DBC文件路径dbc_path后,可以使用cantools进行DBC文件解析,cantools.db.load_file(dbc_path,encoding='gbk'),代表使用cantools解析路径为dbc_path的DBC文件。

3、打开仿真测试设备,初始化CAN通道。

从周立功官网上获取周立功二次开发库,本申请方案中使用的是Python版本的周立功二次开发库,涉及以下周立功二次开发库的应用程序接口(Application ProgrammingInterfa ce,API):

打开设备(_zcan.OpenDevice);

初始化CAN通道(_zcan.InitCAN)。

4、运行自动反馈信号程序。

5、接收来自车机的下行信号,匹配计算后反馈上行信号。

步骤1、使用周立功二次开发库的API(_zcan.ReceiveFD或_zcan.Receive)接收下行C AN报文;

步骤2、接收到下行CAN报文后,使用CanTools库(dbc.decode_message)解析出下行CAN报文包含的下行信号数据;

步骤3、通过比较表格中定义的下行信号can-id,确定是否匹配到对应的待反馈的上行信号,以及下行信号的信号值是否发生变化;

步骤4、对于信号值发生变化的下行信号,利用表格定义的换算公式进行换算,得到待反馈的上行信号的信号值。

其中,利用current=input_signal.value可以获取到下行信号当前的信号值;利用last=out put_signal.last_value可以获取到上一次反馈的上行信号的信号值;利用feedback_value=eval(f ormula)可以获取到待反馈的上行信号的信号值,formula为换算逻辑。

步骤5、将得到的待反馈的上行信号的信号名称,can-id,信号值合入所在反馈信号帧的报文,得到更新后的上行CAN报文。

6、使用周立功二次开发库的API(_zcan.TransmitFD或_zcan.Transmit)发送上行CAN报文给车机。

下面,以一个完整的运行示例对本申请的自动双向仿真测试过程进行说明。

使用基于周立功的自动反馈信号程序替代周立功软件(如ZCANPRO软件)进行仿真测试的交互过程:车机应用<-->ZLG USBCANFD硬件<-->基于周立功的自动反馈信号程序。其中,基于周立功的自动反馈信号程序运行于个人计算机(Personal Computer,PC)端。

基于周立功的自动反馈信号程序利用周立功开发库API进行开发,可按表格定义自动匹配需要反馈的信号。

本申请的自动双向仿真测试过程具体可以包括以下步骤:

1、为自动反馈信号程序接输入以下表格内容。

表2表格文件示例

上述表格中第一行的内容表示自动反馈信号程序接收到来自CDC下发的下行信号Wind LvSet之后,将会反馈上行信号WindLvL给CDC,其信号值等于下行信号WindLvSet的信号值;上述表格中第二行的内容表示自动反馈信号程序接收到来自CDC下发的下行信号BlowModSet之后,将会反馈上行信号BlowMod给CDC,其信号值为下行信号BlowModSet的信号值减1,同时也将会反馈上行信号Defroster给CDC,其信号值为{若下行信号BlowM odSet的信号值等于4,则为1,否则为0}。

2、将ZLG USBCANFD硬件分别连接车机和PC。

3、在PC端运行自动反馈信号程序。

4、车机端运行演示应用。

车机应用初始界面参见图10所示的内容,吹风模式为模式一,除霜模式为关闭状态。

5、在车机应用界面点击模式四按钮。

车机应用将下发至少包括下行信号BlowModSet=4的下行CAN报文给ZLG USBCANFD硬件。

6、自动反馈信号程序接收来自车机应用的下行CAN报文,计算并反馈上行CAN报文。

自动反馈信号程序通过周立功接收信号接口监听到车机下行信号帧数据(相当于上述下行CAN报文)的变化,解析该报文后发现在表格中能够匹配到信号名‘BlowModSet’的下行信号,其信号值也发生了变化,随即处理下行信号帧数据,根据表格定义,需要反馈BlowMode和Defroster两个上行信号,并且,按换算公式{current-1}进行换算得到上行信号Blo wMode的信号值为3,按换算公式{1if current=4else 0}进行换算得到上行信号Defroster的信号值为1。自动反馈信号程序将上行信号BlowMode=3和上行信号Defroster=1组成用于反馈上行信号的上行信号帧数据(相当于上述上行CAN报文),通过周立功发送信号接口向车机发送。

7、车机端接收上行CAN报文。

CDC接收到包括上行信号BlowMode=3和上行信号Defroster=1的上行CAN报文,解析并执行该报文后,车机应用更新后的界面参见图11所示的内容,吹风模式由初始的模式一更新为模式四,除霜模式由初始的关闭状态更新为开启状态。

至此,表示车机应用发送的下行CAN报文经由自动反馈信号程序接收并换算后得到了与之匹配的上行CAN报文,完成了从接收到响应的双向测试链路的验证,双向测试链路包括车机应用与仿真测试设备之间的下行链路以及仿真测试设备与车机应用之间的上行链路。

下面,以一个完整的运行示例对相关技术中的单向仿真测试过程进行说明,以与本申请的自动双向仿真测试过程进行对比。

使用周立功软件(如ZCANPRO软件)进行仿真测试的交互过程:车机应用<-->ZLGUSBCANFD硬件<-->周立功配套ZCANPRO软件(运行于PC端)。

上述方案的局限之处在于:接收到车机端信号后无法自动进行反馈。

相关技术中的单向仿真测试过程具体可以包括以下步骤:

1、将ZLG USBCANFD硬件分别连接车机和PC。

2、在PC端运行周立功软件(如ZCANPRO软件)。

3、车机端运行演示应用。

车机应用初始界面参见图10所示的内容,吹风模式为模式一,除霜模式为关闭状态。

4、在车机应用界面点击模式四按钮。

车机应用将下发包括下行信号BlowModSet=4的下行CAN报文给ZLG USBCANFD硬件。

5、通过观察周立功软件的实时曲线以确认收到车机端的下行信号。

在周立功软件的实时曲线上过滤信号名称为BlowModSet的下行信号,得到下行信号Bl owModSet的曲线,观察曲线变化以确认收到车机端的下行信号。

6、车机应用的界面无变化。

因为周立功软件不带自动反馈信号的功能,所以车机应用的界面没有变化。

对于该实施例提供的仿真测试方法,具有以下效果:

本申请的方案中,通过预先建立下行报文和上行报文之间的对应关系,使得仿真测试设备可以基于接收到的下行报文,实现与下行报文对应的上行报文的自动生成和自动反馈,从而完成从接收到响应的双向测试链路的验证。可以看出:本申请的方案中,通过建立下行报文和上行报文之间的对应关系,可以自动实现双向仿真测试,使得仿真测试过程更符合实际业务需求,且能够提高仿真测试的自动化程度,进而提高仿真效率。

第二方面,本申请实施例提供了仿真测试装置,如图12所示,仿真测试装置120包括:接收单元1201、生成单元1202和发送单元1203。其中:

接收单元1201,用于接收从车辆设备的第一模块下发的下行报文;

生成单元1202,用于至少基于所述下行报文,生成与所述下行报文对应的上行报文;

发送单元1203,用于将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

在一些实施例中,生成单元1201具体用于:解析所述下行报文,得到目标下行信号的信号标识和所述目标下行信号的信号值;至少基于所述目标下行信号的信号标识,确定与所述目标下行信号对应的目标上行信号的信号标识;至少基于所述目标下行信号的信号值,确定所述目标上行信号的信号值;基于所述目标上行信号的信号标识和所述目标上行信号的信号值,生成所述上行报文。

在一些实施例中,生成单元1202还用于:获取至少一个第一对应关系;所述第一对应关系用于表征下行信号的信号标识与上行信号的信号标识之间的对应关系;将所述至少一个第一对应关系中,包括所述目标下行信号的信号标识的第一对应关系,确定为目标第一对应关系;将所述目标第一对应关系中的上行信号的信号标识确定为所述目标上行信号的信号标识。

在一些实施例中,生成单元1202还用于:获取至少一个第二对应关系;所述第二对应关系用于表征下行信号的信号标识与换算逻辑之间的对应关系;将所述至少一个第二对应关系中,包括所述目标下行信号的信号标识的第二对应关系,确定为目标第二对应关系;将所述目标第二对应关系中的换算逻辑确定为目标换算逻辑;基于所述目标换算逻辑和所述目标下行信号的信号值,确定所述目标上行信号的信号值。

在一些实施例中,生成单元1202还用于:在所述第一模块与所述第二模块不同的情况下,所述将所述上行报文反馈至所述车辆设备的第二模块之前,获取至少一个第三对应关系,所述第三对应关系用于表征上行信号的信号标识与所述车辆设备的模块之间的对应关系;将所述至少一个第三对应关系中,包括所述目标上行信号的信号标识的第三对应关系,确定为目标第三对应关系;将所述目标第三对应关系中的模块确定为所述第二模块。

在一些实施例中,仿真测试装置120还包括确定单元,确定单元用于:所述将所述上行报文反馈至所述车辆设备的第二模块之后,若接收到所述第二模块发送的反馈消息,确定所述测试链路的仿真测试结果为测试成功;若未接收到所述第二模块发送的反馈消息,确定所述测试链路的仿真测试结果为测试失败。

需要说明的是,本申请实施例提供的仿真测试装置包括所包括的各单元,可以通过仿真测试设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU,Central Processing Unit)、微处理器(MPU,MicroProcessor U nit)、数字信号处理器(DSP,Digital Signal Processor)或现场可编程门阵列(FPGA,Fiel d-Programmable Gate Array)等。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的仿真测试方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

第三方面,本申请实施例提供一种仿真测试系统,所述系统包括车辆设备和仿真测试设备;所述车辆设备包括第一模块和第二模块;所述仿真设备分别与所述第一模块、所述第二模块连接;所述仿真测试设备用于执行:接收从车辆设备的第一模块下发的下行报文;至少基于所述下行报文,生成与所述下行报文对应的上行报文;将所述上行报文反馈至所述车辆设备的第二模块,以基于所述上行报文得到测试链路的仿真测试结果;所述测试链路包括所述第一模块与所述仿真测试设备之间的下行链路,以及所述仿真测试设备与所述第二模块之间的上行链路。

在一些实施例中,仿真测试系统用于执行上述第一方面提供的仿真测试方法中的步骤。

第四方面,本申请实施例提供一种仿真测试设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的仿真测试方法中的步骤。

下面结合图13所示的仿真测试设备130,对仿真测试设备的结构图进行说明。

在一示例中,如图13所示,所述仿真测试设备130包括:一个处理器1301、至少一个通信总线1302、至少一个外部通信接口1303和存储器1304。其中,通信总线1302配置为实现这些组件之间的连接通信。其中,外部通信接口1303可以包括标准的有线接口和无线接口。

存储器1304配置为存储由处理器1301可执行的指令和应用,还可以缓存待处理器1301以及仿真测试设备中各模块待处理或已经处理的数据(例如,报文数据、图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

第五方面,本申请实施例提供一种存储介质,也就是计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的仿真测试方法中的步骤。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Re ad Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种系统性能测试方法、装置、设备及存储介质
  • 自动驾驶车辆的仿真测试方法、装置、设备及存储介质
  • 一种备份特性测试方法、装置、设备及存储介质
  • 一种硬盘测试方法、装置、设备以及计算机可读存储介质
  • 一种测试方法、装置、电子设备和存储介质
  • 仿真测试装置、仿真测试方法、仿真测试系统及存储介质
  • 一种燃料电池系统仿真测试方法、装置、设备及存储介质
技术分类

06120116485480