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

一种用于汽车座舱的显示管理方法及系统与流程

2022-11-12 22:52:28 来源:中国专利 TAG:


1.本发明涉及人机交互技术领域,尤其涉及一种用于汽车座舱的显示管理方法及系统。


背景技术:

2.在传统qnx系统上,由于运行的程序较少且是单屏显示,程序的显示控制管理并不是很需要,仅仅在单个程序内部就可以完成。随着汽车智能化、网联化水平提高,汽车座舱逐渐向大屏智能座舱发展。
3.随着系统功能的复杂化、多样化,在qnx系统中可能需要运行很多不同功能的进程,这些进程会要求在不同的显示区域显示,或者在显示屏的不同层级及位置显示。而现有的车载系统无法智能化的管理不同程序相同层级间的进程显示,因此容易出现显示冲突和黑屏等问题。


技术实现要素:

4.本发明提供一种用于汽车座舱的显示管理方法及系统,解决了现有的车载显示方法无法实现多个不同应用程序之间的显示管理,导致的显示冲突和黑屏的技术问题。
5.为解决以上技术问题,本发明提供一种用于汽车座舱的显示管理方法,包括步骤:
6.s1、判断是否接收到启动显示程序的启动消息,若是进入下一步,若否进入步骤s4;
7.s2、根据所述启动消息启动或更新对应的目标进程;
8.s3、查询所述目标进程对应的状态信息,根据所述状态信息执行显示冲突管理策略或创建显示窗口,并进入步骤s5;
9.s4、判断是否接收到隐藏显示程序的隐藏消息,若是则根据所述隐藏消息执行隐藏管理策略,若否返回步骤s1;
10.s5、更新显示队列中各个显示程序的状态信息,并刷新显示驱动中的上下文环境。
11.本基础方案以接收到的启动显示程序的启动消息为触发节点,直接启动对应的目标进程,并根据其状态信息判断执行显示冲突管理策略或创建显示窗口;以隐藏显示程序的隐藏消息为触发节点,直接对对应的当前进程执行隐藏管理策略,从而能够支持所有上层应用程序在不同的pipeline及不同的软件层级上配置运行,仅需在项目开始时对应用程序进行相应的启动、隐藏配置,无需修改其设计方案,大幅度提高了系统的运行效率,并且有效避免了显示冲突和黑屏等问题。
12.在进一步的实施方案中,所述步骤s2包括步骤:
13.s21、根据所述启动消息,查询是否存在对应的目标程序,若是则进入下一步,若否则直接返回错误;
14.s22、查询所述目标程序是否存在真实的程序逻辑路径,若是则进入下一步,若否返回步骤s1;
15.s23、在进程队列中查询所述目标程序对应的目标进程是否处于运行状态,若是则更新所述目标程序的状态信息;若否则启动所述目标进程并保存对应的进程信息。
16.在进一步的实施方案中,所述步骤s3具体为:在进程队列中查询所述目标进程所在的窗口是否处于显示状态,若是则更新该窗口的进程状态,并根据所述目标进程的状态信息执行显示冲突管理策略;若否则根据所述目标程序创建对应的显示窗口,并进入步骤s5。
17.在进一步的实施方案中,所述显示冲突管理策略包括:
18.a、查询所述目标进程的状态信息,判断其显示属性是否为显示,若是则结束,若否则进入下一步;
19.b、更新显示队列中所述目标进程的显示属性,并将所述目标进程置于显示队列的队首;
20.c、读取显示队列中的下一个进程作为冲突进程,查询所述冲突进程的显示属性,若为显示则进入下一步,否则重复执行本步骤;
21.d、判断所述冲突进程与所述目标进程的显示层级是否相同,若是则将所述冲突进程的显示属性设置为隐藏,若否则返回步骤c。
22.本方案在获取到启动消息后,先启动对应目标程序的目标进程,完成显示操作,随后通过对显示队列中队首的显示属性、显示层级查询,判断其是否与目标程序冲突,若冲突则将对应的冲突进程的显示属性设置为隐藏,从而保障目标程序的显示,避免显示冲突。
23.在进一步的实施方案中,所述根据所述目标程序创建对应的显示窗口具体包括:
24.a、根据所述目标程序,更新窗口句柄到进程管理模块中;
25.b、根据所述目标程序将窗口设置到对应的显示屏、pipeline及其在显示屏中的位置。
26.在进一步的实施方案中,所述步骤s4包括步骤:
27.s41、判断是否接收到隐藏显示程序的隐藏消息,若是则进入下一步,若否返回步骤s1;
28.s42、查询所述隐藏消息对应的当前进程的显示属性,若为隐藏则返回步骤s41,否则进入下一步;
29.s43、获取所述当前进程对应的当前显示屏的队首进程,判断所述队首进程与所述当前进程是否一致,若否则将所述当前进程的显示属性设置为隐藏,并将所述当前进程移到队列末尾,若是则进入下一步;
30.s44、从当前显示屏的进程队列中获取下一个待显示进程,将其显示属性设置为显示。
31.本方案在接收到隐藏显示程序的隐藏消息后,查询对应的当前进程是否处于显示状态,若是则直接通过将其显示属性设置为隐藏、移到队列末尾来实现快速隐藏,可以减少系统显示资源的消耗,从而保障了系统资源的合理利用。
32.在进一步的实施方案中,所述状态信息包括程序的进程pid、窗口id、窗口显示状态、程序对应的逻辑名称,其中窗口显示状态为程序的显示属性。
33.本发明还提供一种用于汽车座舱的显示管理系统,用于实现上述的显示管理方法,包括消息触发模块、程序配置模块、控制模块、进程管理模块、资源处理模块、刷新模块
和screen模块,所述消息触发模块、程序配置模块、进程管理模块与所述控制模块连接,所述控制模块与所述资源处理模块、刷新模块和screen模块连接,所述刷新模块与screen模块连接;
34.所述消息触发模块,用于接收外部进程发布的启动消息或隐藏消息;
35.所述程序配置模块,用于管理及加载程序的配置信息;
36.所述控制模块,用于根据所述启动消息启动、显示对应的目标程序,或根据隐藏消息和隐藏管理策略隐藏对应的当前进程;
37.所述进程管理模块,用于对显示队列中的进程进行管理,提供显示队列操作接口给调用它的模块;
38.所述资源处理模块,用于执行显示冲突管理策略,并在窗口隐藏后释放相应资源;
39.所述刷新模块,用于按显示队列的显示属性同步更新到系统的窗口中,并调用screen模块中的screen接口刷新显示驱动中的上下文环境;
40.所述screen模块,用于接收来自系统的窗口事件消息及提供screen的相关操作接口,并在所述控制模块的驱动下根据所述目标程序创建对应的显示窗口。
41.在进一步的实施方案中,所述配置信息包括:程序逻辑路径、程序所在的显示屏id、程序要显示的pipeline、程序的显示层级、显示的位置、程序的类型及程序所在的分组。
42.本显示管理系统采用各个模块实现测试方法中的各个步骤,为显示管理方法提供硬件基础,便于方法实施。
附图说明
43.图1是本发明实施例提供的一种用于汽车座舱的显示管理方法的工作流程图;
44.图2是本发明实施例提供的进程隐藏示意图;
45.图3是本发明实施例提供的一种用于汽车座舱的显示管理系统的系统框架图;
46.图4是本发明实施例提供的显示屏、显示队列单独管理示意图;
47.图5是本发明实施例提供的状态信息示意图。
具体实施方式
48.下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
49.实施例1
50.本发明实施例提供的一种用于汽车座舱的显示管理方法,如图1所示,在本实施例中,包括步骤s1~s5:
51.s1、消息触发模块1判断是否接收到启动显示程序的启动消息,若是进入下一步,若否进入步骤s4;
52.s2、根据启动消息启动或更新对应的目标进程,包括步骤s21~s23:
53.s21、控制模块3根据启动消息,查询是否存在对应的目标程序,若是则进入下一步,若否则直接返回错误;
54.s22、控制模块3查询目标程序是否存在真实的程序逻辑路径,若是则进入下一步,
若否返回步骤s1;
55.s23、控制模块3在进程队列中查询目标程序对应的目标进程是否处于运行状态,若是则更新目标程序的状态信息;若否则启动目标进程,并通知进程管理模块4保存对应的进程信息。
56.在本实施例中,状态信息包括程序的进程pid、窗口id、窗口显示状态、程序对应的逻辑名称,其中窗口显示状态为程序的显示属性。
57.s3、查询目标进程对应的状态信息,根据状态信息执行显示冲突管理策略或创建显示窗口,并进入步骤s5。具体为:
58.进程管理模块4在进程队列中查询目标进程所在的窗口是否处于显示状态,若是则在进程管理模块4中更新该窗口的进程状态,并通知资源管理模块根据目标进程的状态信息执行显示冲突管理策略;若否则驱动screen模块7根据目标程序创建对应的显示窗口,并进入步骤s5。
59.其中,显示冲突管理策略包括:
60.a、查询目标进程的状态信息,判断其显示属性是否为显示,若是则结束,若否则进入下一步;
61.b、更新显示队列中目标进程的显示属性,并将目标进程置于显示队列的队首;
62.c、读取显示队列中的下一个进程作为冲突进程,查询冲突进程的显示属性,若为显示则进入下一步,否则重复执行本步骤;
63.d、判断冲突进程与目标进程的显示层级(即zorder)是否相同,若是则将冲突进程的显示属性设置为隐藏,若否则返回步骤c。
64.本实施例在获取到启动消息后,先启动对应目标程序的目标进程,完成显示操作,随后通过对显示队列中队首的显示属性、显示层级查询,判断其是否与目标程序冲突,若冲突则将对应的冲突进程的显示属性设置为隐藏,从而保障目标程序的显示,避免显示冲突。
65.根据目标程序创建对应的显示窗口具体包括:
66.a、根据目标程序,更新窗口句柄到进程管理模块4中;
67.b、根据目标程序将窗口设置到对应的显示屏、pipeline及其在显示屏中的位置。
68.s4、判断是否接收到隐藏显示程序的隐藏消息,若是则根据隐藏消息执行隐藏管理策略,若否返回步骤s1,包括步骤:
69.s41、消息触发模块1判断是否接收到隐藏显示程序的隐藏消息,若是则进入下一步,若否返回步骤s1;
70.s42、查询隐藏消息对应的当前进程的显示属性,若为隐藏则返回步骤s41,否则进入下一步;
71.s43、获取当前进程对应的当前显示屏的队首进程,判断队首进程与当前进程是否一致,若否则将当前进程的显示属性设置为隐藏,并将当前进程移到队列末尾,若是则进入下一步;
72.s44、从当前显示屏的进程队列中获取下一个待显示进程,将其显示属性设置为显示。
73.例如,参见图2,若显示队列的进程依次为进程a~进程n,其中进程a对应程序a,进程b对应程序b,现在要隐藏程序b,则首先需要读取显示队列的队首进程进行判断,若队首
进程不是进程b,则将进程b的显示属性设置为隐藏;若队首进程是对进程b,则读取下一个需要显示的程序(例如进程d),并将其进行显示。
74.本实施例在接收到隐藏显示程序的隐藏消息后,查询对应的当前进程是否处于显示状态,若是则直接通过将其显示属性设置为隐藏、移到队列末尾来实现快速隐藏,可以减少系统显示资源的消耗,从而保障了系统资源的合理利用。
75.s5、刷新模块6更新显示队列中各个显示程序的状态信息,并调用screen模块7中的screen接口刷新显示驱动中的上下文环境。
76.本发明实施例以接收到的启动显示程序的启动消息为触发节点,直接启动对应的目标进程,并根据其状态信息判断执行显示冲突管理策略或创建显示窗口;以隐藏显示程序的隐藏消息为触发节点,直接对对应的当前进程执行隐藏管理策略,从而能够支持所有上层应用程序在不同的pipeline及不同的软件层级上配置运行,仅需在项目开始时对应用程序进行相应的启动、隐藏配置,无需修改其设计方案,大幅度提高了系统的运行效率,并且有效避免了显示冲突和黑屏等问题。
77.实施例2
78.本实施例附图中的附图标记包括:消息触发模块1、程序配置模块2、控制模块3、进程管理模块4、资源处理模块5、刷新模块6、screen模块7。
79.本发明还提供一种用于汽车座舱的显示管理系统,用于实现上述的显示管理方法,包括消息触发模块1、程序配置模块2、控制模块3、进程管理模块4、资源处理模块5、刷新模块6和screen模块7,消息触发模块1、程序配置模块2、进程管理模块4与控制模块3连接,控制模块3与资源处理模块5、刷新模块6和screen模块7连接,刷新模块6与screen模块7连接;
80.消息触发模块1,用于接收外部进程发布的启动消息或隐藏消息;
81.程序配置模块2,用于管理及加载程序的配置信息;
82.控制模块3,用于根据启动消息启动、显示对应的目标程序,或根据隐藏消息和隐藏管理策略隐藏对应的当前进程;
83.进程管理模块4,用于对显示队列中的进程进行管理,提供显示队列操作接口给调用它的模块。
84.程序的显示队列管理如图4和图5所示,程序的显示队列管理以显示屏为单位,为每个显示屏分配一个显示队列单独管理,每个显示屏下的程序,除前文所述的配置信息外,还有一些状态信息需要管理,如程序的进程pid、窗口id、窗口显示状态、程序对应的逻辑名称等。
85.资源处理模块5,用于执行显示冲突管理策略,并在窗口隐藏后释放相应资源;
86.具体的,资源处理模块5用于执行显示冲突管理策略,用于解决多个程序在同一显示层级上冲突,确保在相同的显示层级上只允许显示一个程序;将当前要显示的程序对应的进程置于队首,以及在窗口隐藏后释放相应资源。
87.刷新模块6,用于按显示队列的显示属性同步更新到系统的窗口中,并调用screen模块7中的screen接口刷新显示驱动中的上下文环境;
88.screen模块7,用于接收来自系统的窗口事件消息及提供screen的相关操作接口,并在控制模块3的驱动下根据目标程序创建对应的显示窗口。
89.在本实施例中,配置信息包括:程序逻辑路径、程序所在的显示屏id、程序要显示的pipeline、程序的显示层级(zorder)、显示的位置、程序的类型及程序所在的分组。
90.本显示管理系统采用各个模块实现测试方法中的各个步骤,为显示管理方法提供硬件基础,便于方法实施。
91.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献