一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

仪表系统启动方法、装置和仪表设备与流程

2022-11-09 23:09:36 来源:中国专利 TAG:


1.本技术涉及电子电气领域,尤其涉及一种仪表系统启动方法、装置和仪表设备。


背景技术:

2.在车辆开启时,车辆的仪表设备通常需要快速启动并显示。即,车辆启动后,车辆的仪表系统需要快速启动,仪表设备中的表盘需要快速显示画面。
3.目前,车辆的仪表系统通常使用linux操作系统。仪表系统中的显示框架通常采用eglfs显示框架。为了使仪表装置的表盘可以适用于多图像或多应用显示,现有技术中,通常使用weston显示方式,取代eglfs显示框架。
4.然而,该weston显示方式启动时会有五百多毫秒的耗时且会黑屏,严重影响该仪表设备开机显示的流畅性,存在仪表设备开机流畅性差的问题。


技术实现要素:

5.本技术提供一种仪表系统启动方法、装置和仪表设备,用以解决现有技术中,仪表设备开机流畅性差的问题。
6.第一方面,本技术提供一种仪表系统启动方法,应用于仪表设备,仪表设备中包括表盘,方法包括:并行启动开机动画程序和显示程序,以使所述开机动画程序在启动后读取第一预设目录下的预设图片,并在所述表盘播放所述预设图片;在所述显示程序完成初始化后,读取第二预设目录下用于判断所述开机动画程序读取的所述预设图片是否播放完成的标记文件;当未读取到所述标记文件时,强制设置所述显示程序的显示属性为在所述表盘显示所述开机动画程序读取的所述预设图片;当读取到所述标记文件时,通过所述显示程序获取仪表程序渲染好的工作图片,并将所述工作图片显示于所述表盘。
7.可选地,所述开机动画程序在启动后读取预设图片,并在所述表盘播放所述预设图片,具体包括:通过所述开机动画程序,读取第一预设目录下的至少一张预设图片;通过所述开机动画程序,在所述表盘中顺序播放所述第一预设目录下的所述预设图片。
8.可选地,所述方法,还包括:当所述第一预设目录下的所述预设图片播放完成时,通过所述开机动画程序,在第二预设目录下生成标记文件。
9.可选地,启动开机动画程序和显示程序之前,所述方法,还包括:获取仪表文件,所述仪表文件中包括中至少包括开机动画程序、显示程序和仪表程序三个待启动程序。
10.可选地,所述方法,还包括:通过所述开机动画程序,在所述仪表设备的底层驱动申请第一内存区域,当所述预设图片被写入到所述第一内存区域时,所述预设图片将显示在所述表盘中,所述第一内存区域包括第一地址;通过所述显示程序,在所述底层驱动申请第二内存区域,当所述工作图片被写入到所述第二内存区域时,所述工作图片将显示在表盘中,所述第二内存区域包括第二地址。
11.可选地,所述强制设置所述显示程序的显示属性为在所述表盘显示所述开机动画程序读取的所述预设图片,具体包括:将所述显示程序的显示属性从第二地址强制修设置为第一地址,以使所述表盘显示所述预设图片。
12.第二方面,本技术提供一种仪表系统启动装置,应用于仪表设备,仪表设备中包括表盘,装置包括:开机动画模块,用于启动开机动画程序,读取第一预设目录下的预设图片,并在所述表盘播放所述预设图片;显示模块,用于启动并初始化显示程序,并第二读取预设目录下用于判断所述开机动画程序读取的所述预设图片是否播放完成的标记文件;当未读取到所述标记文件时,强制设置所述显示程序的显示属性为在所述表盘显示所述开机动画程序读取的所述预设图片;当读取到所述标记文件时,通过所述显示程序获取仪表程序渲染好的工作图片,并将所述工作图片显示于所述表盘。
13.可选地,所述开机动画模块,具体用于:通过所述开机动画程序,读取第一预设目录下的至少一张预设图片;通过所述开机动画程序,在所述表盘中顺序播放所述第一预设目录下的所述预设图片。
14.可选地,所述开机动画模块,还用于:当所述第一预设目录下的所述预设图片播放完成时,通过所述开机动画程序,在第二预设目录下生成标记文件。
15.可选地,所述装置,还包括:获取模块,用于获取仪表文件,所述仪表文件中包括中至少包括开机动画程序、显示程序和仪表程序三个待启动程序。
16.可选地,所述开机动画模块,还用于:通过所述开机动画程序,在所述仪表设备的底层驱动申请第一内存区域,当所述预设图片被写入到所述第一内存区域时,所述预设图片将显示在所述表盘中,所述第一内存区域包括第一地址;所述显示模块,还用于通过所述显示程序,在所述底层驱动申请第二内存区域,当所述工作图片被写入到所述第二内存区域时,所述工作图片将显示在表盘中,所述第二内存区域包括第二地址。
17.可选地,所述显示模块,具体用于:将所述显示程序的显示属性从第二地址强制修设置为第一地址,以使所述表盘显示所述预设图片。
18.第三方面,本技术提供一种仪表设备,包括:存储器、处理器和表盘;所述存储器用
于存储计算机程序;所述处理器用于根据所述存储器存储的计算机程序,实现第一方面及第一方面任一种可能的设计中的仪表系统启动方法,所述表盘用于显示开机信息和车辆中与所述仪表设备连接的各系统的工作状态。
19.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当仪表设备的至少一个处理器执行该计算机程序时,仪表设备执行第一方面及第一方面任一种可能的设计中的仪表系统启动方法。
20.第五方面,本技术提供一种计算机程序产品,计算机程序产品包括计算机程序,当仪表设备的至少一个处理器执行该计算机程序时,仪表设备执行第一方面及第一方面任一种可能的设计中的仪表系统启动方法。
21.本技术提供的仪表系统启动方法、装置和仪表设备,通过并行的启动初始化开机动画程序和显示程序;直接读取第一预设目录下的预设图片,并调用驱动节点,该仪表设备可以在该显示程序被启动后,初始化该显示程序;通过显示程序读取第二预设目录下的标记文件;当未读取到标记文件时,通过该显示程序将其显示属性强制设置为在表盘显示开机动画程序读取的预设图片;当读取到标记文件时,通过显示程序可以获取仪表程序渲染好的工作图像,并将该工作图像显示在表盘中的手段,实现避免显示程序在初始化过程中出现黑屏,以及提高仪表设备的开机流畅性的效果。
附图说明
22.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1为本技术一实施例提供的一种车辆仪表系统的开机场景示意图;图2为本技术一实施例提供的一种仪表系统启动方法的流程图;图3为本技术一实施例提供的一种仪表系统启动方法的示例图;图4为本技术一实施例提供的一种仪表系统启动示意图;图5为本技术一实施例提供的另一种仪表系统启动示意图;图6为本技术一实施例提供的一种仪表系统启动装置的结构示意图;图7为本技术一实施例提供的一种仪表设备的硬件结构示意图。
具体实施方式
24.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
26.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
27.再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。
28.应当进一步理解,术语“包含”、“包括”表明存在的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。
29.此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a、b和c”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
30.在车辆开启时,车辆的仪表设备通常需要快速启动并显示。即,车辆启动后,车辆的仪表系统需要快速启动,以使仪表设备中的表盘快速显示画面。目前,车辆的仪表系统通常使用linux操作系统。仪表系统中的显示框架通常采用eglfs显示框架。但是,eglfs显示框架不适用于多图像或多应用显示。例如,在仪表设备的表盘中同时显示仪表程序和hud。于是,现有技术使用weston显示方式取代eglfs显示框架。然而,weston显示方式启动本身会有500多毫秒的耗时且会黑屏,影响开机显示的流畅性。并且,weston显示方式从系统文件启动到weston初始化完成需要1.5秒以上的时间。后续的仪表程序启动时也需要较长时间才能输出画面。即,屏幕会存在至少1.5秒以上的时间无内容输出。该显示方式与车辆的仪表设备在车辆开启时快速显示的需求不符,容易导致用户的使用体验不友好,仪表设备开机流畅性差等问题。
31.针对上述问题,本技术提出了一种仪表系统启动方法。本技术在linux仪表系统和weston显示方式基础上进行改进,实现了仪表设备开机画面的快速显示。由于仪表系统启动后,仪表设备会根据仪表文件启动很多服务,非常耗时。因此,仪表设备的表盘,从仪表系统启动到显示图像可能需要消耗较长时间。本技术中,仪表设备可以在开机时,先运行一个开机动画程序。该开机动画程序可以调用fb节点进行刷图。仪表设备还可以在启动开机动画程序的同时,启动显示程序(weston)。weston使用的是密钥管理服务后端(key management service,kms)和数字版权管理驱动(digital rights management,drm)。在开机动画程序刷图的过程中,weston可以强制使用开机动画程序申请的帧缓冲区域(framebuffer)。这样可以避免weston启动导致的表盘在显示开机动画程序对应的预设图片后,中途变成黑屏,从而导致500多毫秒的时间无法在表盘显示内容的问题。仪表设备可以在执行开机动画程序和显示程序后,紧接着启动仪表程序。仪表程序可以为qt程序。当仪表程序启动后,该仪表程序需要1秒多的时间进行渲染等初始化动作。在该仪表程序执行初始化动作时,开机动画程序继续播放预设图片。当仪表程序初始化完成后,该显示程序可以在表盘中显示渲染后的工作图像。仪表设备可以控制开机动画程序在仪表程序完成渲染时结束预设图片的播放。
32.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
33.图1示出了本技术一实施例提供的一种车辆仪表系统的开机场景示意图。如图1所
示,该车辆中至少包括仪表设备、存储设备和传感器三个部分。该仪表设备的控制器中至少运行有开机动画程序、显示程序和仪表程序三个进程。其中,开机动画程序开始运行后,该开机动画程序可以从存储设备中读取开机动画。该开机动画程序可以在仪表设备的表盘中显示该开机动画。显示程序的启动和初始化时间远大于开机动画程序的启动时间。并且。显示程序的显示优先级高于开机动画程序的显示优先级。即,当显示程序启动后,显示程序可以优先调用fb节点进行刷图,以使内容显示于表盘中。当该开机动画播放结束、仪表程序完成初始化后,该显示程序可以从仪表程序中获取完成渲染的工作图片,该显示程序可以将该工作图片显示在该仪表设备的表盘中。并且,该显示程序还可以根据仪表程序从各个传感器中获取的数据信息,实时更新表盘中的工作图片。
34.本技术中,以仪表设备为执行主体,执行如下实施例的仪表系统启动方法。具体地,该执行主体可以为仪表设备的硬件装置,或者为仪表设备的仪表系统中实现下述实施例的软件应用,或者为安装有实现下述实施例的软件应用的计算机可读存储介质,或者为实现下述实施例的软件应用的代码。
35.图2示出了本技术一实施例提供的一种仪表系统启动方法的流程图。在图1所示实施例的基础上,如图2所示,以仪表设备为执行主体,仪表设备中包括表盘,本实施例的方法可以包括如下步骤:s101、并行启动开机动画程序和显示程序,以使开机动画程序在启动后读第一预设目录下的取预设图片,并在表盘播放预设图片。
36.本实施例中,仪表设备可以并行的启动初始化开机动画程序和显示程序。当开机动画程序被启动后,由于该开机动画程序为一个轻量化程序,因此,该开机动画程序可以直接读取第一预设目录下的预设图片,并调用驱动节点,刷写预设图像。该开机动画程序的使用,不依赖显示程序的执行。显示程序可以在启动后进入初始化阶段。因此,相较于显示程序,该开机动画程序可以在启动后,更加快速的实现开机动画的显示,实现表盘快速显示画面的效果。当开机动画程序启动后,该开机动画程序可以读取指定目录下的预设图片。该开机动画程序可以获取这些预设图片中的rgb数据。其后,该开机动画程序调用/dev/fb0节点实现brg数据的写入,从而实现开机动画的显示。
37.一种示例中,该开机动画程序可以在完成初始化之后,在仪表设备的底层驱动申请第一内存区域。该第一内存区域即为该开机动画程序申请的帧缓冲区域(framebuffer)。该第一内存区域的申请可以由该开机动画程序调用/dev/fb0节点完成。该/dev/fb0节点为底层驱动提供给应用层进行图像刷写显示的工具。该/dev/fb0节点可以在底层驱动中申请帧缓冲区域(framebuffer)。该framebuffer是驱动和应用层都能访问的一块内存区域。该framebuffer可以包括id。该id用于唯一标记该framebuffer对应的内存地址。该第一内存区域对应的id即为第一地址。当/dev/fb0节点向该framebuffer的内存区域填写rgb数据时,该rgb数据对应的预设图片将被显示在表盘上。因此,当该开机动画程序被启动后,该仪表设备可以实现读取指定目录下的预设图片,以及将该预设图片在表盘中播放的效果。
38.一种示例中,仪表设备实现播放预设图片的具体过程可以包括如下步骤:步骤1、仪表设备通过开机动画程序,读取第一预设目录下的至少一张预设图片。该第一预设目录可以设定在该开机动画程序的代码中。当该开机动画程序启动后,该开机动画程序可以从该第一预设目录下读取存储在该目录下的预设图片。在该预设目录下可以
存储有至少一张预设图片。当这些预设图片被按照一定顺序循环播放时,可以组成开机动画。该预设图片的格式可以为jpg或者png。或者,该第一预设目录下还可以存储有至少一个预设视频。当该第一预设目录下包括预设视频时,该开机动画程序可以读取该预设视频。
39.步骤2、仪表设备通过开机动画程序,在表盘中顺序播放第一预设目录下的预设图片。该开机动画程序根据这些预设图片的图片名称,确定这些预设图片的播放顺序。该开机动画程序可以根据该播放顺序,顺序播放这些预设图片。例如,该图片名称可以为1、2、3等数字序号。该仪表设备可以根据该数字序号,确定其播放顺序。在该预设图片播放过程中,该开机动画程序中还可以预设有播放规则。例如,该播放规则可以为每5秒更新一张预设图片等。
40.该预设图片的播放过程可以为一个循环的过程。仪表设备中可以根据播放的预设图片张数判断该预设图片是否播放完成。当该预设图片播放完成时,仪表设备可以执行下一步骤。否则,仪表设备可以继续执行下一张预设图片的播放。其中,仪表设备可以通过在开机动画程序的代码中设定预设图片张数的方式,实现是否播放完成的判断。例如,当开机动画程序的代码中设定预设图片张数为30时,仪表设备可以在播放的预设图片张数达到30张,确定播放完成。或者,仪表设备还可以通过判断第一预设目录下预设图片的张数,确定需要播放的预设图片的张数。例如,当第一预设目录下包括30张图片时,仪表设备可以在播放的预设图片张数达到30张,确定播放完成。此时,当该30张图片均被播放后,该预设图片播放完成。否则,当仪表设备仅播放到29张图片时,仪表设备将继续播放第30张图片。
41.一种示例中,在上述示例的基础上,当该开机动画程序完成该预设图片的播放后,该开机动画程序还可以执行如下步骤,以使该预设图片完成播放的状态被显示程序获知。其具体步骤可以包括:步骤3、当第一预设目录下的预设图片播放完成时,仪表设备通过开机动画程序,在第二预设目录下生成标记文件。当该开机动画程序完成该标记文件的生成后,该开机动画程序可以执行退出操作。即,该开机动画程序对应的进程被关闭。该第二预设目录可以为系统/tmp目录。或者,该第二预设目录还可以为系统的其它可读写目录。由于,该标记文件需要被其他进程读取,因此,该标记文件需要存储在系统目录下,从而避免该开机动画程序关闭后,该标记文件被删除。该标记文件可以为一个普通文件。其文件名可以为boota_flag。其内容可以为空。该仪表设备主要通过判断是否存在该标记文件,来执行对应的操作。
42.s102、在显示程序完成初始化后,读取第二预设目录下用于判断开机动画程序读取的预设图片是否播放完成的标记文件。
43.本实施例中,该显示程序(weston)是类似windows的人机交互和窗口管理程序,用来管理系统的图像显示功能。不同的应用想要同时显示图像,如hud和仪表程序,需要使用weston这样的框架。在仪表设备的显示中,该显示程序通常具有最高优先级。即,当该显示程序开始运行后,仪表中显示该显示程序指定显示的内容。显示程序被启动后,该仪表设备可以初始化该显示程序。该显示程序的初始化阶段可以执行包括申请帧缓冲区域(framebuffer)等操作。
44.一种示例中,该显示程序,可以在完成初始化后,在仪表设备的底层驱动中申请第二内存区域。该第二内存区域即为该显示程序的申请帧缓冲区域(framebuffer)。该
framebuffer可以包括id。该id用于唯一标记该framebuffer对应的内存地址。该第二内存区域对应的id即为第二地址。当工作图片被写入到第二内存区域时,工作图片将显示在表盘中。
45.当该显示程序完成启动和初始化后,该显示程序会执行图像显示操作。在图像显示操作中,该显示程序会调用属性设置函数。该属性设置函数的函数名可以为drm_output_apply_state_atomic()。该属性设置函数是该显示程序在显示图像的过程中为输出信息做属性设置的函数。在该函数执行过程中,本技术改变了其中一些属性设置,并增加了一些逻辑,从而实现了该显示程序判断是否完成开机动画播放的功能。该新增的逻辑可以包括读取第二预设目录下的标记文件。该显示程序可以根据该读取结果,判断开机动画程序是否完成播放。
46.一种示例中,当该显示程序未读取到该标记文件时,该显示程序可以周期性从该第二预设目录中读取该标记文件。由于该显示程序的最终目的是在开机动画播放结束后,在表盘中显示已经渲染好的工作图片。而在未读取到该标记文件之前,说明该开机动画程序的预设图片还没有完成播放。此时,该显示程序需要继续保持该开机动画的播放,直至该开机动画播放完成。仪表设备可以在该显示程序读取到该标记文件后,确定该开机动画播放完成。此时,该显示程序可以停止该周期性的读取操作。
47.s103、当未读取到标记文件时,强制设置显示程序的显示属性为在表盘显示开机动画程序读取的预设图片。
48.本实施例中,当显示程序未读取到标记文件时,说明该开机动画正在播放过程中。并且,该显示程序读取该标记文件的时间通常在该显示程序完成初始化之前。如果,在该显示程序完成初始化之前,任由该显示程序使用默认的显示参数在表盘中显示图像,则可能导致该表盘出现长时间黑屏的情况。而开机动画程序设置的预设图片的播放完成时间通常在显示程序和仪表程序完成初始化后。因此,为了保证开机效果,当显示程序未读取到标记文件时,该仪表设备可以通过该显示程序将其显示属性wdrm_plane_fb_id强制设置为在表盘显示开机动画程序读取的预设图片。
49.一种示例中,该显示程序可以通过将显示程序的显示属性的参数值从第二地址强制修改为第一地址,实现使表盘显示预设图片的效果。其中,第二地址为该显示程序完成初始化时,该显示属性的默认参数值。当该显示属性的参数值被修改为第一地址时,该显示程序可以读取开机动画程序的fb节点刷写到第一地址对应的framebuffer的rgb数据,并将该rgb数据对应的预设图片显示在表盘中。其中,该开机动画程序对应的第一地址可以通过该显示程序的逻辑函数drm_head_read_current_setup获取。
50.在完成该修改后,该显示程序的显示图像被强制设置为开机动画程序刷写到framebuffer中的预设图片。该设置可以保证开机动画程序播放的开机动画的完整性。同时,该设置还可以规避显示程序在初始化阶段的显示黑屏的问题。
51.s104、当读取到标记文件时,通过显示程序获取仪表程序渲染好的工作图片,并将工作图片显示于表盘。
52.本实施例中,当读取到标记文件时,说明开机动画程序读取的预设图片已经完成播放。为了保证开机动画的效果,完成该预设图片的播放所需要的时间通常大于或者等于该显示程序和该仪表程序启动和初始化时间。因此,当显示程序获取到该标记文件时,仪表
程序通常已将完成初始化和工作图片的渲染。显示程序可以获取仪表程序渲染好的工作图像,并将该工作图像显示在表盘中。目前,该显示程序启动的时间在500毫秒左右。
53.当显示程序完成初始化时,该显示程序中的显示属性wdrm_plane_fb_id为默认值。该默认值可以为在表盘中显示仪表程序渲染好的工作图片。即,该显示属性的默认值为第二地址。如果完成初始化时,该显示属性的参数值已经被设置为第一地址,则该显示程序可以将该参数值修改回默认值。此时,该显示程序可以通过fb节点向该第二地址对应的framebuffer中刷写工作图片对应的rgb数据,从而将该工作图片显示在表盘中。其后,该显示程序可以开始接收client端的图像进行显示。该client端的图像包括仪表程序已经渲染好的工作图像,以及,该仪表程序获取各个传感器的数据后,实时更新的工作图像。
54.本技术提供的仪表系统启动方法,仪表设备可以并行的启动开机动画程序和显示程序。该开机动画程序可以在启动后,直接读取第一预设目录下的预设图片,并将该预设图片显示在表盘中。该仪表设备可以在该显示程序被启动后,初始化该显示程序。该仪表设备可以通过显示程序读取第二预设目录下的标记文件。当未读取到标记文件时,该仪表设备可以通过该显示程序将其显示属性强制设置为在表盘显示开机动画程序读取的预设图片。当读取到标记文件时,仪表设备可以通过显示程序可以获取仪表程序渲染好的工作图像,并将该工作图像显示在表盘中。本技术中,通过增加开机动画播放程序,使仪表设备可以避免显示程序在初始化过程中使表盘黑屏的情况,提高仪表设备的开机流畅性。
55.在上述实施例的基础上,在执行步骤s101之前,仪表设备还需要获取仪表文件。该仪表文件中可以包括启动该仪表设备时需要启动的多个待启动程序。例如,这些待启动程序中至少可以包括开机动画程序(bootanimation)、显示程序(weston)和仪表程序。仪表设备可以根据仪表文件,并行启动仪表文件中的待启动程序。或者,仪表设备可以根据该仪表文件,顺序启动各个待启动程序。该仪表文件中可以包括各个待启动程序的启动顺序。一个待启动程序的开启,可以看成该待启动程序对应的进程被开启。当这些进程被开启后,仪表设备可以并行的执行各个待启动程序的进程,从而实现这些待启动程序的初始化和/或运行。在本技术中,开机动画程序、显示程序和仪表程序三个待启动程序中,开机动画程序、显示程序和仪表程序的启动,没有先后依赖关系。
56.在上述实施例的基础上,一种实现方式中,上述步骤可以如图3所示。仪表设备中的仪表系统启动。该仪表系统可以为linux系统。当该仪表系统启动后,该仪表设备中的引导加载程序(bootloader)随之启动。其后,该仪表设备的内核(kernel)启动。其后,该仪表设备加载根文件系统(rootfs)。该根文件系统可以包括仪表文件。该仪表设备可以根据该仪表文件,同步启动开机动画程序(bootanimation)和显示程序(weston)。其中,开机动画程序运行后,可以调用fb节点在底层申请的帧缓冲区域(framebuffer)中刷写图像数据。该仪表设备还可以通过该开机动画程序判断该预设图片是否刷写完成。如果刷写完成,则该开机动画程序退出,并将标记文件写入到第二预设目录下。该第二预设目录可以为/tmp路径。其中,显示程序启动后,可以执行属性设置函数drm_output_apply_state_atomic()。该属性设置函数可以读写第二预设目录下的标记文件,并根据是否读取到该标记文件,判断开机动画程序是否执行完成。当该开机动画程序没有执行完成时,该显示程序可以将显示属性wdrm_plane_fs_id的参数强制修改为开机动画程序的帧缓冲区域(framebuffer)对应的地址(id)。当该开机动画程序执行完成时,该显示程序可以使用自己申请的帧缓冲区
域(framebuffer)进行图片的刷写。此时,说明该显示程序和仪表程序均已完成初始化。仪表程序的工作图像将通过该显示程序在表盘中显示。
57.在上述实施例的基础上,如图4所示为未使用上述方法之前的系统启动流程,如图5所示为使用上述方法后的系统启动流程。该图4和图5为使用systemd-analyze自动生成的仪表系统在启动过程中,仪表文件中各个待启动程序的启动示意图。该启动示意图的生成指令可以为:systemd-analyze plot》plot.svg。如图4和图5所示,图片顶部包括启动的时间刻度。其中,最左侧的起点为0.0s,该起点为设备上电开始的时刻。其后,每一个竖格子代表1秒。从图4和图5中可以看出,该仪表设备的仪表系统的每个待启动程序的具体启动时间。其中,斜杠区域代表服务处于激活状态的时间。例如,正在进行初始化。点点区域代表服务正常运行的时间。该图4和图5中,第一个运行的程序均为才仪表系统的内核(kernel)。该内核从该仪表设备上电开始启动进入初始化状态,并在13秒之后完成初始化。当该内核启动完成后,仪表设备的操作系统(systemd)开始启动。该操作系统开始启动,即代表着仪表文件(rootfs)启动。因此,在该操作系统下面启动的程序均为仪表文件中的待启动程序。这些待启动程序即为该仪表设备中的各种服务。在本技术中,主要需要关注的待启动程序可以包括weston@root.service、cluster.service和bootanimation.service。其中,weston@root.service代表显示程序,cluster.service代表仪表程序,bootanimation.service代表开机动画程序。在图4中,操作系统与显示程序之间、显示程序和仪表程序之间以及仪表程序之后都还可以包括多个其他的待启动程序。在图5中,操作系统与开机动画程序之间、开机动画程序与显示程序之间、显示程序和仪表程序之间以及仪表程序之后都还可以包括多个其他的待启动程序。
58.图4所示为未使用上述方法之前的仪表系统启动流程。因此,在该启动流程中,仅需要关注weston@root.service和cluster.service两个待启动程序。并且,显示程序只有在仪表程序初始化完成后才能显示工作图像。从图4可以明显看到,从kernel启动到cluster.service启动,大概间隔了15格,大约15秒。以及从systemd启动到cluster.service启动,大概间隔了1格多,大约1秒多。并且,如图4仅能反应仪表设备的各个待启动程序的启动时间。其完成的时间并未在图4中体现。在实际使用过程中,仪表程序从启动到初始化完成耗时在1秒以上。即,从系统文件启动到表盘显示工作图像大概需要耗时3秒左右。
59.图5是使用上述方法之后的仪表系统启动流程。因此,在该启动流程中,主要需要关注的待启动程序可以包括weston@root.service、cluster.service和bootanimation.service三个待启动程序。如图5所示,从仪表文件启动到开机动画程序启动的间隔在1格以内,大约在300多毫秒。开机动画程序从启动到在表盘中显示开机动画,大概耗时几十毫秒。因此,上述方法只需要耗时400多毫秒,就可以在表盘上显示图像了。并且,本技术的优势不仅仅在于增加了开机动画,本技术还解决了开机动画显示到工作图片显示之间的流畅衔接。因为在显示程序启动的过程中,显示程序会清除屏幕显示并黑屏一段时间。如果不对显示程序进行处理,则会出现表盘显示一部分开机动画后突然黑屏,直至仪表程序启动完成后,该表盘转而显示工作图像。显然,这样的显示方式非常的不流畅。本技术通过修改显示程序中的显示参数,使该显示程序可以与开机动画程序配合显示,从而解决了上述问题。此外,本技术中,开机动画程序和仪表程序是并行启动的。该并行启动可
以比串行启动更加节省了时间。该并行执行的情况可以如图5所示,仪表程序运行时,开机动画程序正在播放。开机动画程序执行完成后,仪表程序已经完成了初始化。因此,当开机动画程序执行完成后,该显示程序就可以直接显示仪表程序的工作图片了。
60.通过以上对比可知,本技术使仪表系统从启动到显示图像只需要400多毫秒,极大的提高了开机显示速度,满足了快速启动的需求。并且,本技术实现了开机动画和仪表程序的工作图片的无缝衔接,进一步避免了开机显示时间的浪费,提高了开机显示的流程性。
61.图6示出了本技术一实施例提供的一种仪表系统启动装置的结构示意图,如图6所示,本实施例的仪表系统启动装置10用于实现上述任一方法实施例中对应于仪表设备的操作,仪表设备中包括表盘,本实施例的仪表系统启动装置10包括:开机动画模块11,用于启动开机动画程序,读取第一预设目录下的预设图片,并在表盘播放预设图片。
62.显示模块12,用于启动并初始化显示程序,并第二读取预设目录下用于判断开机动画程序读取的预设图片是否播放完成的标记文件。当未读取到标记文件时,强制设置显示程序的显示属性为在表盘显示开机动画程序读取的预设图片。当读取到标记文件时,通过显示程序获取仪表程序渲染好的工作图片,并将工作图片显示于表盘。
63.一种示例中,开机动画模块11,具体用于:通过开机动画程序,读取第一预设目录下的至少一张预设图片。
64.通过开机动画程序,在表盘中顺序播放第一预设目录下的预设图片。
65.一种示例中,开机动画模块11,还用于:当第一预设目录下的预设图片播放完成时,通过开机动画程序,在第二预设目录下生成标记文件。
66.一种示例中,装置,还包括:获取模块13,用于获取仪表文件,仪表文件中包括中至少包括开机动画程序、显示程序和仪表程序三个待启动程序。
67.一种示例中,开机动画模块11,还用于:通过开机动画程序,在仪表设备的底层驱动申请第一内存区域,当预设图片被写入到第一内存区域时,预设图片将显示在表盘中,第一内存区域包括第一地址。
68.显示模块12,还用于通过显示程序,在底层驱动申请第二内存区域,当工作图片被写入到第二内存区域时,工作图片将显示在表盘中,第二内存区域包括第二地址。
69.一种示例中,显示模块12,具体用于:将显示程序的显示属性从第二地址强制修设置为第一地址,以使表盘显示预设图片。
70.本技术实施例提供的仪表系统启动装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
71.图7示出了本技术实施例提供的一种仪表设备的硬件结构示意图。如图7所示,该仪表设备20,用于实现上述任一方法实施例中对应于仪表设备的操作,本实施例的仪表设备20可以包括:存储器21,处理器22、通信接口24和表盘25。
72.存储器21,用于存储计算机程序。该存储器21可能包含高速随机存取存储器(random access memory,ram),也可能还包括非易失性存储(non-volatile memory,nvm),
例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
73.处理器22,用于执行存储器存储的计算机程序,以实现上述实施例中的仪表系统启动方法。具体可以参见前述方法实施例中的相关描述。该处理器22可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
74.可选地,存储器21既可以是独立的,也可以跟处理器22集成在一起。
75.当存储器21是独立于处理器22之外的器件时,仪表设备20还可以包括总线23。该总线23用于连接存储器21和处理器22。该总线23可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
76.通信接口24用于与该车辆中的传感器连接。这些传感器可以通过该通信接口24,将信息上送到该仪表设备10的处理器22中。处理器22可以通过仪表程序将这些信息添加到工作图片中。
77.表盘25相当于该仪表装置10的显示器。该表盘25用于在仪表设备10开机过程中显示开机动画,以及在仪表设备10开机后显示仪表程序渲染好的工作图片。
78.本实施例提供的仪表设备可用于执行上述的仪表系统启动方法,其实现方式和技术效果类似,本实施例此处不再赘述。
79.本技术还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
80.其中,计算机可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,计算机可读存储介质耦合至处理器,从而使处理器能够从该计算机可读存储介质读取信息,且可向该计算机可读存储介质写入信息。当然,计算机可读存储介质也可以是处理器的组成部分。处理器和计算机可读存储介质可以位于专用集成电路(application specific integrated circuits, asic)中。另外,该asic可以位于用户设备中。当然,处理器和计算机可读存储介质也可以作为分立组件存在于通信设备中。
81.具体地,该计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random-access memory,sram),电可擦除可编程只读存储器(electrically-erasable programmable read-only memory,eeprom),可擦除可编程只读存储器(erasable programmable read only memory,eprom),可编程只读存储器(programmable read-only memory,prom),只读存储器(read-only memory,rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
82.本技术还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。设备的至少一个处理器可以从计算机可读存储介质中读取该计算机程序,至少一个处理器执行该计算机程序使得设备实施上述的各种实施方式提供的方法。
83.本技术实施例还提供一种芯片,该芯片包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
84.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
85.其中,各个模块可以是物理上分开的,例如安装于一个的设备的不同位置,或者安装于不同的设备上,或者分布到多个网络单元上,或者分布到多个处理器上。各个模块也可以是集成在一起的,例如,安装于同一个设备中,或者,集成在一套代码中。各个模块可以以硬件的形式存在,或者也可以以软件的形式存在,或者也可以采用软件加硬件的形式实现。本技术可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
86.当各个模块以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例方法的部分步骤。
87.应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
88.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制。尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献