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

一种基于QPIC实现的HMI仿真与自动化验证方法

文献发布时间:2023-06-19 13:45:04


一种基于QPIC实现的HMI仿真与自动化验证方法

技术领域

本发明涉及全液晶仪表技术领域,具体涉及一种基于基于QPIC实现的HMI仿真与自动化验证方法。

背景技术

随着汽车电子智能化的高速发展,机械式仪表或组合仪表已经无法满足用户的体验要求,全液晶仪表已经占据大部分高端市场,在智能化的趋势下,全液晶仪表显得越来越普及和重要,而与用户直接交互的就是全液晶仪表HMI界面的显示,当前用户更加倾向的是类似于游戏的炫酷画面,这对HMI实现难度上提升了一个巨大等级之外,同时也对HMI的测试和验证工作造成了巨大挑战,HMI界面的测试和验证工作是HMI设计的最后一道防线,也是最大化还原设计师原始设计的最大保证,显示元素的色差或位置差异会给用户带来不好的驾驶体验,也会影响到UI设计师的设计意图,目前主流的HMI测试有两种方式,一种是通过测试工程师肉眼对比效果图判别HMI设计是否正确,这无疑是最不准确的,因为像素级别的误差或者很小的色差,肉眼是根本无法识别到的;另一种方式是搭建自动化测试台架,输入每个界面的设计效果图,然后通过高清摄像机抓取实际显示的界面,然后做 图像对比,这种方式是目前主流的测试方法,但是自动化测试台架方案有以下几点局限:

1.需要搭建自动化测试台架,台架会占据比较大的工位空间,实际使用无法做到便携式;

2.自动化测试台架需要增加额外的硬件成本,并且一个台架同一时间只能测试一台仪表,效率低下;

3.通过摄像机抓取的图片容易存在干扰、误差和不精确等问题;

4.相比手动探索性的随机测试,自动化测试比较死板,不具备想象力。

发明内容

为解决上述问题,本发明公开了一种基于QPIC实现的HMI仿真与自动化验证方法,该方法依赖QNX系统、QPIC组件以及DBUS通信模块,整个自动化测试的过程只需要用户将每个HMI界面逐一触发,在触发界面的同时会自动激活CRC校验,并记录测试结果,应用程序利用QNX系统提供的图层检测功能实现对显示BUFFER的CRC校验,然后将校验结果记录下来,从而达到HMI自动化测试的结果,自动化测试的结果会记录到EXCEL表格文件,表格中可以清晰的看到每一条测试记录,测试记录包括测试的功能,显示位置,测试结果,测试次数等,清晰直观并有利于问题的分析和统计。其中:

QNX操作系统是一种实时操作系统,常用于嵌入式,QNX系统提供screen组件用于显示功能,screen组件将需要显示的内容推送到硬件显示接口的同时还会将显示数据的BUFFER缓存起来,QPIC组件将BUFFER数据作为输入获取显示内容。

QPIC组件是由QNX操作系统提供的一种服务,该服务包括一项基础的硬件CRC校验功能。

自动化测试程序包括LogManager模块(日志管理模块)、SymbolManager模块(配置管理模块)、EventManager模块(时间管理模块)、UnitsManager模块(测试单元管理模块)。

UnitsManager模块用于管理所有的Units,Units指每个测试单元。

EventManager模块是本方案最重要的模块,主要由一组回调函数和QGMS事件监听两个部分组成,所述QNX系统提供screen组件,用于推送需要显示的内容至硬件显示接口的同时缓存显示数据的BUFFER。

DBUS通信模块是基于TCP Socket协议封装的数据通信模块,DBUS通信方式具有延迟低、系统开销低、复用性强等特点,支持进程间点对点的数据传递也支持多对多的对等通信,主要用于进程间函数调用以及进程间信号广播,本方案中的DBUS通信模块主要用于接收整车CAN功能信号,每个功能激活和取消都是通过DBUS模块发送给测试程序和HMI显示程序。

DBUS通信模块是封装好的一套成熟的进程间通信机制,用于接收底层整车的功能信号然后将每个功能的状态缓存在DataCenter(数据中心)中,然后将最新的状态更新给自动化测试程序中的EventManager模块。

所述方法包括以下步骤:

1)在校验之前离线将显示素材信息提前录入QNX系统,生成显示元素列表配置文件,SymbolManager模块上电后读取配置文件并缓存在内存中备用;

2)HMI渲染进程启动某一功能的同时,自动化测试程序调用监听结果,利用硬件CRC校验,返回结果与预先离线计算值进行对比,如果值相同则表示校验通过,显示正确,若值不同则表示显示与预期不符;

3)通过LogManager模块监听发送来的测试结果并写入文件中。

作为本发明的一种改进,所述2)中,QPIC组件提取UnitsManager模块中的Unit结构体中的信息计算当前显示BUFFER的CRC校验值。

基于上述方案, CRC校验分为软件CRC校验和硬件CRC校验,软件CRC校验即通过软件方式计算CRC校验值,这无疑会占用一部分的系统资源,造成系统负荷增加,从而影响其他应用的系统相应时间;但是硬件CRC校验是指QPIC组件调用硬件驱动接口,由硬件计算并返回CRC校验值给QPIC组件,然后在本设计的事件监听模块中实时监听返回的CRC校验值,并于本地预存的校验值比较,本设计采用硬件CRC校验的方式,不会对系统产生任何影响。

作为本发明的一种改进,所述步骤2)中,所述显示元素列表中包括编号、功能定义、x, y坐标、宽高尺寸以及CRC正确的校验值。

基于上述方案,具体包括根据输入的x,y坐标和宽高尺寸,抓取当前显示的BUFFER数据,然后利用硬件CRC校验功能,返回一个CRC校验值,然后将此CRC校验值与预先离线计算出的正确CRC值对比。整个测试框架在不同的项目可以完全复用,不需要编写额外的代码,用户只需要在测试之前离线将所有显示素材的信息提前录入系统,目的是给测试应用程序提供标准的样式,即每个元素应该显示的正确位置和正确颜色,最终形成一张显示元素列表,在列表中包含:编号,功能定义,x, y坐标,宽高尺寸,CRC正确的校验值等,所述的显示元素列表会作为依据与实际显示的CRC校验值对比。

作为本发明的一种改进,所述2)中,通过EventManager模块中的回调函数使能每个功能对应的Unit结构体,QGMS事件监听子模块监听并返回CRC校验值,然后对比实际显示的CRC校验值和预先设定的校验值是否一致,然后将校验结果发送给LogManager模块。

作为本发明的一种改进,所述2)中,回调函数由DataCenter通过Signal-Slot发送的功能信号触发。Slog是一套完整的log机制,包括设置log等级,log输出机制等功能;Signal-Slot是一个非常重要数据通信机制,通过connect接口注册回调函数和信号的连接,通过Emit接口触发信号之后,对应的回调函数会被依次的调用,Signal-Slot支持一对一和多对一两种连接方式,同时支持同步和异步两种方式,在本发明中DataCenter模块就是通过Signal-Slot机制通知EventManager每个功能的激活状态。

作为本发明的一种改进,所述2)中,DBUS通信模块的数据协议与HMI显示进程的通信协议保持一致。

基于上述方案,DBUS通信的数据协议保证跟HMI显示进程的通信协议保持一致,从而达到某一功能触发后,HMI显示某一功能的同时也会同步触发该功能的CRC校验功能。

作为本发明的一种改进,所述2)中,上层应用将需要检测的Unit结构体通知QPIC组件中的qgms_monitor,并监听qgms_monitor的返回值。

作为本发明的一种改进,当测试HMI元素显示错误时,通过Render接口在屏幕上弹出用于提示测试者的报警框。

相较于现有技术,本发明的有益效果是:本发明所提出的HMI自动化测试方案,在不需要对HMI界面设计做任何更改的前提下,可以检测到HMI像素级别的差异,并且整个测试过程完全自动化,用户只需要正常触发不同的功能界面,即可自动触发检测,通过本设计提出的自动化测试,能够最大程度检测出UI设计和HMI实现的差异,并将差异点记录到本地表格文件,方便工程师分析和统计问题,另外此发明并不需要借助于其他硬件设备辅助,一定程度上节省了项目成本。

附图说明

图1为本发明所提出的QNX平台自动化测试工作流程图。

图2为本发明所提出的自动化测试平台架构设计框图。

图3为本发明所提出的测试流程框图。

具体实施方式

下面结合附图1-3和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。

实施例: 一种基于QPIC实现的HMI仿真与自动化验证方法,本方案中,包括两个集群,如图1所示,左侧是自动化测试框架,右侧是正常HMI渲染应用,两个应用保持完全独立,并且接收同一组协议的DBUS信号,这样是为了保证在HMI渲染进程启动某一功能的同时,自动化测试框架也可以同步激活校验功能, HMI渲染进程通过ScreenAPI在图层渲染子系统中刷写每一帧显示,在自动化测试框架中会调用图层监测子系统中QPIC组件中的注册,监听等接口循环监听校验结果,而实际真正获取当前显示的BUFFER并计算CRC校验值,是QPIC组件中的qgms_monitor服务实现的功能,qgms_monitor是QNX提供的QPIC组件中的另一个完整的Server服务,不需要用户修改,上层应用只需要将需要检测的Units(测试单元)通知qgms_monitor,然后监听qgms_monitor的返回值即可,具体方法包括以下步骤:

1)在校验之前离线将显示素材信息提前录入QNX系统,生成显示元素列表配置文件,SymbolManager模块上电后读取配置文件并缓存在内存中备用;所述QNX系统提供screen组件,用于推送需要显示的内容至硬件显示接口的同时缓存当前显示数据的BUFFER;

SymbolManager模块主要用来管理配置文件,本发明需要用户在测试之前将需要测试的UI元素制作成一个配置文件,配置文件中包含UI元素的坐标,宽高尺寸和正确的CRC校验值,SymbolManager上电后读取配置文件并缓存在内存作为备用;

2)HMI渲染进程启动某一功能的同时,自动化测试程序调用监听结果,利用硬件CRC校验,返回结果与预先离线计算值进行对比,如果值相同则表示校验通过,显示正确,若值不同则表示显示与预期不符;通过EventManager模块中的回调函数使能每个功能对应的Unit结构体。

根据显示元素列表的信息,QPIC组件抓取当前显示的BUFFER数据;QPIC组件提取UnitsManager模块中的Unit结构体中的信息计算当前显示BUFFER的CRC校验值。所述显示元素列表中包括编号、功能定义、x, y坐标、宽高尺寸以及CRC正确的校验值。

UnitsManager模块用于管理所有的Units,Units是指每个测试单元,本发明简单将每一个Symbol作为一个测试单元,每一个Unit由一个QPIC组件声明的结构体管理,QPIC会提取Unit结构体中的信息计算当前显示BUFFER的CRC校验值。

EventManager模块主要由一组回调函数和QGMS事件监听两个部分组成,回调函数由DataCenter(数据中心)通过Signal-Slot发送的功能信号触发,在回调函数中使能每个功能对应的Unit,如收到DBUS ID=4001,DBUS SUBID=00,则激活对应的左转指示灯的Unit;QGMS事件监听子模块通过qgms_request_event_wait接口监听qgms_monitor事件,API会返回一个或多个Unit的CRC校验值,然后只需要对比实际显示的CRC校验值与预先存放在配置文件中的校验值是否一致,然后将校验结果发送给LogManager模块。

通过DBUS通信模块接收整车CAN功能信号,每个功能激活和取消均通过DBUS通信模块发送至HMI渲染进程和自动化测试程序。回调函数由DataCenter通过Signal-Slot发送的功能信号触发。DBUS通信模块的数据协议与HMI显示进程的通信协议保持一致。上层应用将需要检测的Unit结构体通知QPIC组件中的qgms_monitor,并监听qgms_monitor的返回值。

3)通过LogManager模块监听发送来的测试结果并写入文件中。每次系统启动时都会当作是一次新的测试开始,LogManager会根据时间戳新建一个.csv格式的日志文件,每一条测试case作为一条记录存放在日志文件中,LogManager设计为一个独立的线程,这个线程的唯一任务就是监听EventManager发送来的测试结果并写入文件,设计为独立线程的好处是占用系统资源独立,不会阻塞主线程导致误判。

另外,本方案中的框架还集成了一些必要的基础组件,包括Slog是一套完整的log机制,包括设置log等级,log输出机制等功能,Signal-Slot是一个非常重要数据通信机制,通过connect接口注册回调函数和信号的连接,通过Emit接口触发信号之后,对应的回调函数会被依次的调用,Signal-Slot支持一对一和多对一两种连接方式,同时支持同步和异步两种方式,在本发明中DataCenter模块就是通过Signal-Slot机制通知EventManager每个功能的激活状态。Thread和Timer分别用于创建线程和定时器。

本发明直接使用UI团队输出给HMI开发团队的UI切图素材,然后制作成测试须要的配置文件,此配置文件在UI不变动的前提下可以完全通用,在UI变更时,或者开发新的HMI项目时,只需要重新生成静态配置文件即可,整个方案的应用程序不需要做任何更改;在HMI渲染的同时自动化测试激活并将测试结果记录到日志文件,值得一提的是,本设计还预留了Render的接口,当测试有HMI元素显示错误时,可以在屏幕上弹出一个报警框,用于提示测试者某一位置的功能显示有误。

表1。

如表1所示,在自动化测试之前测试工程师必须要生成的一个配置文件表,这个配置文件在测试应用程序启动时会被加载,用于告诉系统所有的测试项和每个功能对应正确的CRC校验值,这个配置文件中的内容至关重要,如果输入的信息有误,如CRC值错误,或者输入的坐标错误,则必然会导致这个功能CRC校验每次都失败。需要记录在配置文件中的内容包括:功能编号,三基色的CRC校验值,UI元素的宽高,坐标,DBUS ID和简要文本说明。

表2。

如表2所示,为测试输出的日志文件,在日志文件中记录了每个测试项的总测试次数和出错的测试次数,日志文件保存为.csv格式,可用EXCEL软件打开,方便统计和分析。

在本发明的描述中,需要说明的是,术语 “上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;此外,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

最后应说明的是:以上所述的实施例仅用于说明本发明的技术方案,而非对其限制,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换,而这些修改或替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

相关技术
  • 一种基于QPIC实现的HMI仿真与自动化验证方法
  • 一种基于技术手册提取的芯片寄存器自动化仿真验证方法
技术分类

06120113793019