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

基于VAPSXT与QT的显示画面模型验证方法、存储介质及终端

文献发布时间:2024-04-18 20:01:55


基于VAPSXT与QT的显示画面模型验证方法、存储介质及终端

技术领域

本发明涉及显示画面模型技术领域,尤其涉及基于VAPSXT与QT的显示画面模型验证方法、存储介质及终端。

背景技术

汽车仪表是驾驶员与汽车进行人机交互的窗口,对于提高汽车行驶的安全性、经济性等起着至关重要的作用。随着微电子技术、网络通信技术和液晶显示技术在汽车仪表中的应用,汽车仪表正加速朝着数字化和多元化的方向发展。汽车数字仪表属于显示画面模型的一种,在显示画面模型的设计研发过程中,为了避免因为缺少某些设备而影响整个开发进度、提高数字仪表盘的适应性、快速完成需求收敛和降低研发成本,可用实物代替在仿真计算机上实现的对象的仿真模型,进行半实物仿真,方便研发人员对显示画面模型进行快速验证测试,进而对显示画面模型的功能和设计进行优化。

由于汽车数字仪表相对于传统指针式仪表的种种优势,使其成为汽车仪表制造厂家竞相发展的产品。汽车数字仪表盘的可塑造性太强,再加上每个人的爱好和习惯不同,数字仪表盘的界面布局和各个组件图标的样式需要根据用户的需求和爱好进行改变,在开发者设计数字仪表盘的时候,当一个组件的模型给设计完成,可能需要结合用户使用建议对模型进行修改。目前市面上使用最多、专业性最强的显示画面开发软件有VAPSXT、GLSTUDIO、SCADE-Display等。其中VAPSXT作为专业的座舱仪表开发工具,其开发的仪表图像能在安卓、Linux、树莓派、Vxworks、Windows、苹果等各类操作系统上显示,著名的梦想客机B787的座舱仪表显示画面模型开发工具采用的就是VAPSXT。

然而目前VAPSXT软件存在以下三个缺陷:(1)设计模型时,只要模型处于运行状态,就无法修改模型元素属性;(2)模型测试验证时必须结合硬件接口进行测试,每次测试模型时,均需事先完成相关硬件设备的准备;(3)不能够有效支持设计人员根据用户需求现场快速调整仪表盘的基本元素属性,向用户展示显示画面模型的变化效果,无法快速完成需求收敛。由于VAPSXT不支持实时改变显示画面模型的样式,从设计者修改完成到用户再次反馈之间间隔较久,不可避免地浪费了大量人力物力,极大降低了显示画面模型的开发效率。

发明内容

本发明的目的在于克服现有技术的问题,提供了一种基于VAPSXT与QT的显示画面模型验证方法、存储介质及终端。

本发明的目的是通过以下技术方案来实现的:一种基于VAPSXT与QT的显示画面模型验证方法,该方法包括以下步骤:

采用显示画面开发软件VAPSXT的代码生成器将显示画面模型导出为显示画面动态链接库文件;

将显示将画面动态链接库文件拷贝至以应用程序开发框架QT作为基础框架的模型验证系统中,以加载动态链接库,进而获取显示画面动态链接库文件的操作句柄;

对当前显示画面模型的任意属性值进行编辑,以获取用户输入的画面驱动数据;

根据画面驱动数据调用VAPSXT显示画面模型的驱动接口,驱动编辑后的显示画面模型进行实时变化显示。

在一示例中,所述获取显示画面动态链接库文件的操作句柄包括:

调用动态链接器装载动态链接库;

动态链接器解析动态库的依赖关系;

动态链接器加载依赖的动态库;

动态链接器向可执行程序交付控制权,进而获取显示画面动态链接库文件的操作句柄。

在一示例中,所述方法还包括初始化显示步骤:

根据动态链接库操作句柄调用画面动态接库提供的接口对象进行初始化和刷新操作,从而使由VAPSXT设计的显示画面模型在QT窗口进行显示。

在一示例中,初始化显示步骤具体包括:

获取显示画面动态链接库文件的操作句柄后,调用dlsym函数获取VAPSXT控制函数;

建立QT窗口与VAPSXT画面程序之间的关联,进而实现显示画面模型的初始化显示。

在一示例中,方法还包括画面实时更新步骤:

向VAPSXT显示画面模型的数据地址中写入的驱动数据,调用vExecuteIteration函数请求VAPSXT显示画面刷新,进而驱动显示画面模型变化。

在一示例中,所述根据画面驱动数据调用VAPSXT显示画面模型的驱动接口包括:

根据输入的画面驱动数据判断是否产生显示画面内交互,若是,利用ProcessPointerEvent函数向VAPSXT显示画面传递事件消息,进而进行事件转换处理并发送,执行画面刷新步骤,实现显示画面模型的实时变化显示。

需要进一步说明的是,上述方法各示例对应的技术特征可以相互组合或替换构成新的技术方案。

本发明还包括一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一示例或多个示例组成形成的所述的基于VAPSXT与QT的显示画面模型验证方法的步骤。

本发明还包括一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一示例或多个示例形成的所述的基于VAPSXT与QT的显示画面模型验证方法的步骤。

与现有技术相比,本发明有益效果是:

1.在一示例中,通过将VAPSXT开发的显示画面模型导出成一个DLL动态链接库文件,结合模型验证系统,用户在验证系统直接输入参数,经过信息接口直接实时驱动模型接口,进而驱动汽车数字仪表盘模型组件中的样式变化,无需在测试时使用其他硬件设备,减轻设计人员的工作量;有效支持设计人员根据用户的需求现场快速调整显示画面模型的基本元素属性,向用户展示显示画面模型的变化效果,快速完成需求收敛,获得信息的具体表示方法和表示形式,提高组件之间交互控制显示效率和用户认知效率。

2.在一示例中,将动态链接库文件装入验证系统内存,加载VAPS动态链接库,有效避免在传统静态加载中所需要额外lib包的使用,并可以快速拿到显示画面动态链接库文件的操作句柄,便于后续对模型的操作和验证,使用该加载方法可以有效使用VAPSXT模型提供的API接口。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明,此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,在这些附图中使用相同的参考标号来表示相同或相似的部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明一示例中的方法流程图;

图2为本发明一示例中验证方法框架示意图;

图3为本发明一示例中显示控制程序生成的画面驱动数据结构图;

图4为本发明优选示例基于VAPSXT动态链接库的加载流程图;

图5为本发明基于VAPSXT+QT的模型数据驱动流程图。

具体实施方式

下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,属于“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方向或位置关系为基于附图所述的方向或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,使用序数词(例如,“第一和第二”、“第一至第四”等)是为了对物体进行区分,并不限于该顺序,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,属于“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

为了解决当前VAPSXT无法快速验证等问题,本发明提出的快速验证的方法从VAPSXT开发的显示画面模型的特点出发,基于VAPSXT自带的代码生成器,导出模型文件,使用QT提供的一些组件来完成模型文件的加载和数据驱动,最终达到快速验证的目的。由于显示画面模型种类太多,本发明主要是围绕显示画面模型中的一种(汽车数字仪表盘显示模型)进行研究。分析汽车电子技术和仪表盘技术,基于汽车数字仪表盘的工作原理和功能需求,使用VAPSXT对数字仪表盘中的车速表、转速表、燃油表、压力表、温度表等组件进行显示画面模型建模,后续整合到一个界面中。接着对各个组件之间的交互关系和信息交流开展研究,配合对用户操作逻辑的梳理分析,最后结合QT设计出一种简洁、一致、清晰、人性化的验证方法满足用户对显示画面模型的快速验证测试。先对本发明方法采取的主要策略和功能结构进行说明:

(1)采用QT作为验证系统的基础框架。本发明基于显示画面模型的运行原理和开发人员的操作习惯,分析系统的总体框架和功能。系统核心功能是显示画面模型的快速验证测试。根据VAPSXT开发过程的的局限性,无法直接在VAPSXT中对显示画面模型接口输入驱动数据的。但是由于VAPSXT开发的显示画面模型的可移植性很强,由其开发的模型文件可以导入到第三方平台运行,所以在选择框架时本发明选择QT作为实现该发明的基础框架。

(2)采用VAPSXT对显示画面模型进行建模。对于汽车数字仪表盘这个应用场景,在显示画面中,需要根据功能需求将整个显示画面分为若干个组件,每个组件负责反映车辆各系统工作状况,常见的组件有车速表、转速表等。基于VAPSX功能的强大以及其专业性,使用VAPSXT对每个显示画面进行建模。结合计算机图形技术,将汽车内部机械装置的工作状态通过图形的方式逼真的展现出来,达到信息图形化输出。模型自身是由很多符号对象组成的,每个符号对象都有自身属性,所以每个模型都有接口进行数据驱动。在汽车数字仪表的工作时,各个组件之间可能存在相互作用的情况,所以在设计模型接口时需要考虑其逻辑关系。

(3)对组件模型中符号对象关键属性进行封装。显示画面模型大多数都是由符号对象组成,每个符号对象都有自身属性。通过调整属性的数值,可以控制符号对象的显示要素,进而控制组件模型的变化。对于显示画面模型其中一个组件来说,组成该组件的符号对象数量是庞大的,如果直接控制每一个属性是非常困难的。因此,我们将分析组件模型中的关键属性组成结构,将其合理封装成一个模型接口,后续使用第三方软件QT的一些自定义接口直接通过封装的模型接口高效驱动汽车数字仪表显示画面模型中的组件的样式变化。

(4)动态加载显示画面动态链接库文件并进行数据驱动。目前使用VAPSXT设计好显示画面模型之后,是无法直接对模型属性进行修改和测试验证的。因此,本发明利用VAPSXT内置的一个GODN代码生成器,导出一个显示画面动态链接库文件。该文件中包括了显示画面的对象模型及模型接口,由于该动态链接库文件独有的特性,传统的加载DLL的方式不能满足当前的任务需求,因此第三方平台QT是无法直接加载动态链接库文件的。为此本发明通过分析该显示画面动态链接库文件的结构以及QT平台的开发特性提出一种新的加载方法:将该动态链接库文件装入内存,同时返回一个动态链接库操作句柄,利用这个句柄,调用画面动态接库提供的接口对象进行初始化和刷新操作,从而使由VAPS-XT设计的显示画面模型模型可以显示在QT的窗口中。后续还可以通过接口对象获取接口数据地址函数来确定显示画面的驱动数据地址,向显示画面提供驱动数据。

在一示例中,如图1所示,一种基于VAPSXT与QT的显示画面模型验证方法,具体包括以下步骤:

S1:采用显示画面开发软件VAPSXT的代码生成器将显示画面模型导出为显示画面动态链接库文件;

S2:将画面动态链接库文件拷贝至以应用程序开发框架QT作为基础框架的模型验证系统中,加载动态链接库,进而获取显示画面动态链接库文件的操作句柄;

S3:在验证系统对当前显示画面模型的任意属性值进行编辑,以获取用户输入的画面驱动数据;

S4:根据画面驱动数据调用VAPSXT显示画面模型的驱动接口,驱动编辑后的显示画面模型进行实时变化显示,达到快速验证目的。

步骤S1中,在VAPSXT完成模型设计后,具体可使用VAPSXT的GODN代码生成器,选择合适的导出配置之后,将模型导出成一个DLL显示画面动态链接库文件。该动态链接库文件可以放在一个文件集合中,且该文件集合只存放DLL文件。

步骤S2中,快速验证模型的方式需要使用QT的窗口。验证系统如图2所示,可采用Linux系统,通过显示控制程序驱动窗口进行显示。具体地,窗口是为画面提供绘制和控制区域的基本单位,是由QT绘制的。窗口可以被动态地创建、移动、停靠、改变尺寸和改变显示层级。QT可以调用由VAPSXT生成的DLL画面动态链接库文件,并将画面显示在期望的窗口范围内。一般情况下,一个动态链接库仅包含一个画面,最终一个窗口显示一个画面。当然,在某些特殊的情况下,如果用户需要或者设计者偏好,也可以将两个或多个显示画面组合在一起,生成一个动态链接库文件,当这个动态链接库文件被调用并显示在某个窗口中,该窗口看上去呈现了多个画面。这些画面作为一个整体,同样可以被移动、停靠、改变尺寸和改变显示层级,如果用户更换窗口画面内容或者关闭该窗口,那么该窗口内的多个画面一同消失在窗口内部,这些画面之间的排布和组织由动态链接库内部功能负责。当QT绘制好窗口之后,初始化OpenGL画布。然后使用QTGUI(Graphical User Interface,图形用户界面)提供的DLOPEN接口加载画面动态链接库文件集合中的DLL文件,进而获取VAPS画面的操作句柄,以对VAPS模型进行初始化。

步骤S3中,完成DLL显示动态库文件加载后,获取DLL的操作句柄,用户可以选择对当前模型的任意一个属性的值进行编辑,编程成功之后,将用户输入的值转化为如下图3所示的数据结构,包括单个显示画面驱动数据结构和单个画面数据结构的具体属性信息。

本示例中,通过将VAPSXT开发的显示画面模型导出成一个DLL动态链接库文件,结合模型验证系统,用户在验证系统直接输入参数,经过信息接口直接实时驱动模型接口,进而驱动汽车数字仪表盘模型组件中的样式变化,无需在测试时使用其他硬件设备,减轻了设计人员的工作量;有效支持设计人员根据用户的需求现场快速调整显示画面模型的基本元素属性,向用户展示显示画面模型的变化效果,快速完成需求收敛,获得信息的具体表示方法和表示形式,提高组件之间交互控制显示效率和用户认知效率。

同时,VAPSXT模型多数都是由符号对象组成,每个符号对象都有自身的一些属性。本发明利用开发设计模型时附属生成的接口文件,通过递归遍历文件的形式,分层级去提取出当前模型中的所有属性信息,并用QT相关组件进行属性的分层级可视化展示。

在一示例中,QTGUI调用dlopen函数加载动态链接库,进而获取显示画面动态链接库文件的操作句柄包括:

调用动态链接器装载动态链接库;

动态链接器解析动态库的依赖关系;

动态链接器加载依赖的动态库;

动态链接器向可执行程序交付控制权,进而获取显示画面动态链接库文件的操作句柄。

本示例中,将动态链接库文件装入验证系统内存,使用Load动态加载+DrawingIntegration机制加载VAPS动态库,有效避免在传统静态加载中所需要额外lib包的使用,并可以快速拿到显示画面动态链接库文件的操作句柄,便于后续对模型的操作和验证,使用该加载方法可以有效使用VAPSXT模型提供的API接口。

在一示例中,方法还包括初始化显示步骤:

根据动态链接库操作句柄调用画面动态接库提供的接口对象进行初始化和刷新操作,从而使由VAPSXT设计的显示画面模型在QT窗口进行显示。

在一示例中,QT获取VAPS画面句柄后,以QTGUI作为执行主体进行画面初始化显示和刷新具体包括:

调用dlsym函数获取VAPSXT控制函数;

建立QT窗口与VAPSXT画面程序之间的关联,进而实现显示画面模型的初始化显示以及刷新处理。

将上述初始画面加载示例进行组合,得到画面初始化加载优选示例,如图4所示,以QTGUI作为执行主体包括以下步骤:

S21:绘制窗口;

S22:初始化OpenGL画布;

S23:调用dlopen函数加载VAPS动态链接库,包括以下子步骤:

S231:调用动态链接器装载动态链接库;

S232:动态链接器解析动态库的依赖关系;

S233:动态链接器加载依赖的动态库;

S234:动态链接器向可执行程序交付CPU控制权;

S24:基于交付的CPU控制权判断是否能够获取VAPS操作句柄,若是执行步骤S25;反之,执行步骤S23;

S25:调用dlsym函数获取VAPSXT控制函数;

S26:建立QT窗口与VAPSXT画面程序之间的关联;

S27:执行初始化VAPS画面指令,进而实现VAPS画面程序初始化;

S28:执行刷新VAPS画面指令,进而实现VAPS画面程序刷新。

优选地,在QTGUI调用dlsym函数获取VAPSXT控制函数后,可通过画面驱动数据地址实现画面更新显示。

在一示例中,当一个VAPSXT显示画面模型显示在窗口中,QTGUI将按需或者周期刷新该画面。此时,以QTGUI作为执行主体的画面实时更新步骤包括:

向VAPSXT显示画面模型的数据地址中写入的画面驱动数据(例如:显示画面模型的大小、颜色等),调用vExecuteIteration函数请求VAPSXT显示画面刷新,VAPSXT显示画面响应指令并刷新显示画面。

在一示例中,如图5所示,在画面初始化显示基础上,当用户对当前模型任一属性值进行编辑后,QTGUI读取并写入用户输入的画面驱动数据,此时实时更新步骤包括:

根据输入的画面驱动数据判断是否产生显示画面内交互,若是,利用ProcessPointerEvent(处理点击事件)函数向VAPSXT显示画面传递事件消息,VAPSXT显示画面收到消息后,根据内部的逻辑进行基本计算和处理,实现事件转换,输出响应参数(例如:键码、缩放尺度等),最后将VAPSXT显示画面的事件响应参数发往显示控制程序,实现显示画面模型的实时变化显示,能够快速完成需求收敛,获得显示画面模型信息的具体表示方法和表示形式,提高了组件之间交互控制显示效率和用户认知效率。

本实施例提供了一种存储介质,与上述任一示例或多个示例组合形成的基于VAPSXT与QT的显示画面模型验证方法具有相同的发明构思,其上存储有计算机指令,所述计算机指令运行时执行上述任一示例或多个示例组合形成的所述基于VAPSXT与QT的显示画面模型验证方法的步骤。

基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还包括一种终端,与上述基于VAPSXT与QT的显示画面模型验证方法对应的任一示例或多个示例组合具有相同的发明构思,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述基于VAPSXT与QT的显示画面模型验证方法的步骤。处理器可以是单核或者多核中央处理单元或者特定的集成电路,或者配置成实施本发明的一个或者多个集成电路。

在一示例中,终端即电子设备以通用计算设备的形式表现,电子设备的组件可以包括但不限于:上述至少一个处理单元(处理器)、上述至少一个存储单元、连接不同系统组件(包括存储单元和处理单元)的总线。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元执行,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元可以执行上述基于VAPSXT与QT的显示画面模型验证方法。

存储单元可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)3201和/或高速缓存存储单元,还可以进一步包括只读存储单元(ROM)。

存储单元还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本示例性实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行本申请示例性实施例的方法。

以上具体实施方式是对本发明的详细说明,不能认定本发明的具体实施方式只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演和替代,都应当视为属于本发明的保护范围。

技术分类

06120116571029