一种显示方法及装置与流程

文档序号:37936175发布日期:2024-05-11 00:15阅读:24来源:国知局
一种显示方法及装置与流程

本发明实施例涉及智能座舱,尤其涉及一种显示方法及装置。


背景技术:

1、近年来,随着技术和经济的发展,汽车在人们日常生活中变得越来越普及,这极大地带动了汽车产业的发展。特别地,伴随着新能源技术、通信技术、人工智能等技术的发展,汽车产业朝着新四化的方向努力前进。整车厂、汽车零部件企业以及其他相关企业都深入参与其中并发生着深刻变化,智能座舱、智能驾驶、车联网等成为行业热点,这也伴随着技术复杂度的提升以及成本的上升。与此同时,如何平衡成本、功能等指标以获取市场也成为整车最终落地必须考虑的问题。

2、以智能座舱为例,现在市场上汽车除了配置传统的汽车仪表之外,还配置了车载信息娱乐系统(in-vehicle infotainment,ivi)等系统,以实现车载娱乐、辅助驾驶等功能。最初版本的ivi系统配置了专用的主机,一方面成本较高,存在主机资源未被充分利用的情况,另一方面,ivi系统与车辆中原有设施的集成也存在一些问题。

3、针对这些问题,出现了一机多屏的方案,即汽车仪表系统、ivi系统等承载在一个主机上。具体地,已有方案中,采用虚拟机技术,汽车仪表系统、ivi系统等分别运行在一个虚拟机上。然而,多个虚拟机的系统程序需要较多的主机运算资源,这就要求主机具备较强大的运算能力,依然存在成本高的问题。

4、进一步地,针对虚拟机技术需要占用较多主机运算资源的问题,一种可能的方案是采用容器化技术,发明人对此进行了研究。


技术实现思路

1、本发明实施例旨在至少在一定程度上解决相关技术中的技术问题之一。

2、为此,本发明实施例公开一种显示方法及装置,将仪表以外的操作系统运行在容器中,实现了各操作系统的隔离,降低了整车制造成本。且仪表系统和ivi系统的显示框架互不影响,提升了仪表屏和ivi显示屏的安全性和用户体验。

3、在第一方面中,本发明实施例提供一种显示方法,应用于车载主机,所述车载主机上运行有内核,所述内核上运行有仪表系统和至少一个容器,所述至少一个容器包括ivi容器,所述ivi容器中运行有ivi系统;所述仪表系统包括第一surfaceflinger服务和第一hardwarecomposer服务;所述ivi系统包括第二surfaceflinger服务和第二hardwarecomposer服务;所述方法包括:

4、所述仪表系统中仪表应用在仪表显示layer上绘制仪表显示内容;其中,所述仪表显示layer由所述仪表应用请求所述第一surfaceflinger服务创建;

5、所述第一surfaceflinger服务将所述仪表显示内容合成为第一图像帧,并将所述第一图像帧发送给所述第一hardwarecomposer服务;

6、所述第一hardwarecomposer服务通过libdrm库调用第一子节点以将所述第一图像帧显示在仪表屏上;

7、所述ivi系统中ivi应用在ivi显示layer上绘制ivi显示内容;其中,所述ivi显示layer由所述ivi应用请求所述第二surfaceflinger服务创建;

8、所述第二surfaceflinger服务将所述ivi显示内容合成为第二图像帧,并将所述第二图像帧发送给所述第二hardwarecomposer服务;

9、所述第二hardwarecomposer服务通过libdrm库调用第二子节点以将所述第二图像帧显示在ivi屏上;

10、其中,所述第一子节点和所述第二子节点为内核中的显示驱动文件作为父节点虚拟出的两个模拟显示驱动文件。

11、在第一方面的一具体实施例中,所述方法还包括:

12、在所述仪表系统初始化阶段,所述仪表应用调用仪表投屏共享库文件,以开启仪表投屏功能;

13、在所述ivi系统初始化阶段,启动投屏系统服务;

14、在所述投屏系统服务启动成功后,所述仪表应用调用所述第一surfaceflinger服务创建投屏layer,并利用所述仪表投屏共享库文件将所述投屏layer对应的第一bufferqueue的producer映射到所述投屏系统服务。

15、在第一方面的一具体实施例中,所述方法还包括:

16、所述ivi应用调用所述投屏系统服务创建一个虚拟屏幕,将所述虚拟屏幕对应的第二bufferqueue的consumer映射到所述投屏系统服务,以将所述投屏layer对应的producer和所述虚拟屏幕对应的consumer绑定;

17、所述ivi应用通过presentation接口将ivi显示内容发送到所述虚拟屏幕上;

18、所述第一surfaceflinger服务将所述投屏layer和所述仪表显示layer合成,得到第三图像帧,并将所述第三图像帧发送给所述第一hardwarecomposer服务;

19、所述第一hardwarecomposer服务通过libdrm库调用第一子节点以将所述第三图像帧显示在仪表屏上。

20、在第一方面的一具体实施例中,所述方法还包括:

21、所述第一surfaceflinger服务调用所述仪表应用的opacitymask函数设置所述仪表显示layer中预设区域的透明度;其中,所述仪表显示layer位于所述投屏layer上方。

22、在第一方面的一具体实施例中,所述方法还包括:

23、所述第一surfaceflinger服务获取所述仪表显示layer和所述投屏layer的显示顺序指令;其中,所述显示顺序指令通过所述仪表应用或所述ivi应用输入;

24、所述第一surfaceflinger服务根据所述显示顺序指令确定所述仪表显示layer和所述投屏layer的显示顺序。

25、在第一方面的一具体实施例中,所述方法还包括:

26、在所述ivi系统初始化阶段,启动投屏系统服务;

27、所述ivi应用调用所述投屏系统服务时,设置窗口标题名称;其中,所述窗口标题名称表征需将所述ivi显示内容投屏至仪表屏上;

28、所述ivi应用根据所述窗口标题名称创建仪表surfacecomposerclient;

29、所述仪表surfacecomposerclient向第一surfaceflinger服务请求创建投屏layer。

30、在第一方面的一具体实施例中,所述方法还包括:

31、在所述ivi显示内容更新时,创建第三bufferqueue;

32、获取与所述窗口标题名称关联的surfacecontrol;

33、设置与所述窗口标题名称关联的surfacecontrol中的显示层参数;

34、所述仪表surfacecomposerclient根据所述显示层参数将所述更新后的ivi显示内容所述第三bufferqueue发送至所述投屏layer。

35、在第二方面中,本发明实施例还公开一种显示装置,应用于车载主机,所述车载主机上运行有内核,所述内核上运行有仪表系统和至少一个容器,所述至少一个容器包括ivi容器,所述ivi容器中运行有ivi系统;所述仪表系统包括第一surfaceflinger服务和第一hardwarecomposer服务;所述ivi系统包括第二surfaceflinger服务和第二hardwarecomposer服务;所述装置包括:

36、仪表应用单元,用于在仪表显示layer上绘制仪表显示内容;其中,所述仪表应用单元位于所述仪表系统中,所述仪表显示layer由所述仪表应用单元请求所述第一surfaceflinger服务创建;

37、第一合成单元,用于将所述仪表显示内容合成为第一图像帧,并将所述第一图像帧发送给所述第一hardwarecomposer服务;其中,所述第一合成单元位于所述第一surfaceflinger服务中;

38、第一调用单元,用于通过libdrm库调用第一子节点以将所述第一图像帧显示在仪表屏上;其中,所述第一调用单元位于所述第一hardwarecomposer服务中;

39、ivi应用单元,用于在ivi显示layer上绘制ivi显示内容;其中,所述ivi应用单元位于所述ivi系统中,所述ivi显示layer由所述ivi应用单元请求所述第二surfaceflinger服务创建;

40、第二合成单元,用于将所述ivi显示内容合成为第二图像帧,并将所述第二图像帧发送给所述第二hardwarecomposer服务;其中,所述第二合成单元位于所述第二surfaceflinger服务中;

41、第二调用单元,用于通过libdrm库调用第二子节点以将所述第二图像帧显示在ivi屏上;其中,所述第二调用单元位于所述第二hardwarecomposer服务中;

42、其中,所述第一子节点和所述第二子节点为内核中的显示驱动文件作为父节点虚拟出的两个模拟显示驱动文件。

43、在第二方面的一具体实施例中,所述装置还包括:

44、第三调用单元,用于在所述仪表系统初始化阶段,调用仪表投屏共享库文件,以开启仪表投屏功能;

45、第一启动单元,用于在所述ivi系统初始化阶段,启动投屏系统服务;

46、所述仪表应用单元还用于在所述投屏系统服务启动成功后,调用所述第一surfaceflinger服务创建投屏layer,并利用所述仪表投屏共享库文件将所述投屏layer对应的第一bufferqueue的producer映射到所述投屏系统服务。

47、在第二方面的一具体实施例中,所述ivi应用单元还用于调用所述投屏系统服务创建一个虚拟屏幕,将所述虚拟屏幕对应的第二bufferqueue的consumer映射到所述投屏系统服务,以将所述投屏layer对应的producer和所述虚拟屏幕对应的consumer绑定;通过presentation接口将ivi显示内容发送到所述虚拟屏幕上;

48、所述第一合成单元还用于将所述投屏layer和所述仪表显示layer合成,得到第三图像帧,并将所述第三图像帧发送给所述第一hardwarecomposer服务;

49、所述第一调用单元还用于通过libdrm库调用第一子节点以将所述第三图像帧显示在仪表屏上。

50、在第二方面的一具体实施例中,所述装置还包括:

51、第四调用单元,用于调用所述仪表应用的opacitymask函数设置所述仪表显示layer中预设区域的透明度;其中,所述第四调用单元位于所述第一surfaceflinger服务中,所述仪表显示layer位于所述投屏layer上方。

52、在第二方面的一具体实施例中,所述装置还包括:

53、第一获取单元,用于获取所述仪表显示layer和所述投屏layer的显示顺序指令;其中,所述获取单元位于所述第一surfaceflinger服务中,所述显示顺序指令通过所述仪表应用或所述ivi应用输入;

54、确定单元,用于根据所述显示顺序指令确定所述仪表显示layer和所述投屏layer的显示顺序;其中,所述确定单元位于所述第一surfaceflinger服务中。

55、在第二方面的一具体实施例中,所述装置还包括:

56、第二启动单元,用于在所述ivi系统初始化阶段,启动投屏系统服务;

57、所述ivi应用单元还用于在调用所述投屏系统服务时,设置窗口标题名称;其中,所述窗口标题名称表征需将所述ivi显示内容投屏至仪表屏上;根据所述窗口标题名称创建仪表surfacecomposerclient;

58、第一创建单元,用于使得所述仪表surfacecomposerclient向第一surfaceflinger服务请求创建投屏layer。

59、在第二方面的一具体实施例中,所述装置还包括:

60、第二创建单元,用于在所述ivi显示内容更新时,创建第三bufferqueue;

61、第二获取单元,用于获取与所述窗口标题名称关联的surfacecontrol;

62、设置单元,用于设置与所述窗口标题名称关联的surfacecontrol中的显示层参数;

63、更新单元,用于使得所述仪表surfacecomposerclient根据所述显示层参数将所述更新后的ivi显示内容所述第三bufferqueue发送至所述投屏layer。

64、本发明实施例的有益效果:

65、本发明实施例提供的一种显示方法及装置,应用于车载主机,车载主机上运行有内核,内核上运行有仪表系统和至少一个容器,至少一个容器包括ivi容器,ivi容器中运行有ivi系统;仪表系统包括第一surfaceflinger服务和第一hardwarecomposer服务;ivi系统包括第二surfaceflinger服务和第二hardwarecomposer服务;包括:仪表系统中仪表应用在仪表显示layer上绘制仪表显示内容;第一surfaceflinger服务将仪表显示内容合成为第一图像帧,并将第一图像帧发送给第一hardwarecomposer服务;第一hardwarecomposer服务通过libdrm库调用第一子节点以将第一图像帧显示在仪表屏上;ivi系统中ivi应用在ivi显示layer上绘制ivi显示内容;第二surfaceflinger服务将ivi显示内容合成为第二图像帧,并将第二图像帧发送给第二hardwarecomposer服务;第二hardwarecomposer服务通过libdrm库调用第二子节点将所述第二图像帧显示在ivi屏上。

66、本发明实施例的技术方案,将仪表以外的操作系统运行在容器中,实现了各操作系统的隔离,且相对于虚拟机技术,该技术方案需要的主机运算资源较少,因此可采用相对价格低廉的主机,降低整车的制造成本。另一方面,本发明实施例分别为仪表系统和ivi系统设置surfaceflinger服务和hardwarecomposer服务,以及显示驱动文件,使得仪表系统和ivi系统的显示框架互不影响,提升了仪表屏和ivi显示屏的安全性和用户体验。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1