当前位置:首页 > 汽车电子 > 汽车电子
[导读]文章通过对现行几种嵌入式GUI系统进行分析比较,选择嵌入式Qt系统作为车载GUI的开发平台,提出了基于嵌入式Qt的车载娱乐系统GUI平台的设计方案及多媒体处理软件的构架。文章还对车载娱乐系统GUI平台设计过程中涉及到的窗口系统结构设计和事件响应设计做了详细的论述,并提出了自己的解决方案,实现了嵌入式车载娱乐系统GUI的基本功能。

1 引言
   
随着经济社会的不断发展汽车已进入普通家庭,汽车用户对车载娱乐系统的要求不断地提高,希望汽车载娱乐系统的功能更加强大娱乐设施更加完美。嵌入式GUI(Graphical User Interface)可以满足用户需求,人机交互好,作为车载娱乐系统中人机交互界面的开发平台,对整个系统的设计起着决定性作用,越来越受到开发者的青睐。目前比较流行的GUI平台有Qt/Embedded、紧缩的X Windows系统、MicroWindows以及MiniGUI系统。
    X Window系统是一个基于客户/服务器(Client/Server)结构的视窗系统,基于X的终端(服务器)上显示出来。此系统配置在大多数的UNIX系统、DEC的VAX/VMS操作系统以及Linux系统中,可以自由拷贝以及传播,但是系统庞大,占用内核资源较多。MicroWindows是一个完全开放源码、分层设计的经典GUI系统,可以替代X Window系统,但是某些关键性代码使用了汇编语言。MiniGUI系统适应于中小型企业的嵌入式GUI平台,采用分层结构,并在核心层采用hash表的方式。本文采用的Qt/Embedded也是分层体系结构,在功能提供方面采用C++类方式。

2 嵌入式GUI的实现平台
    GUI是图形用户接口,一般用于PC机上人机交互界面的设计。而对于嵌入式GUI来说,由于嵌入式设备对资源的要求很严格,不同的嵌入式设备需要定制不同的嵌入式系统,那么对GUI的要求也就不一样,因此,对于不同的嵌入式系统来说GUI也必须是可定制的。对于嵌入式的硬件来说,要求定制的嵌入式GUI应具有轻型、占用资源少、性能高、可靠性高、可配置等特点。由于Linux操作系统具有源码公开性、可移植性、可裁剪性和灵活性等优点,所以嵌入式GUI的开发常在Linux环境下进行。
    Qt/Embedded是著名的Qt库开发商正在进行的面向嵌入式系统的Qt版本。它是专门为嵌入式系统设计图形用户界面的工具包,包括一个完整的窗口系统。它的特点是可移植性比较好,设计者能轻易的加入各种显示设备和硬件输入设备,很多基于Qt的XWindow都可以非常方便的移植到嵌入式版本。
    Qt/Embedded为开发者提供了丰富的API调用功能,并公开源代码。Qt/Embedded提供了非常丰富的窗口小部件(Widgets),并且还支持窗口部件的定制,因此它可以为用户提供漂亮的图形界面,但同时丰富的窗口对象也增大了软件的体积,所以,Qt/Embedded一般用于对运行环境不太苛刻的嵌入式设备中。

3 嵌入式Qt系统的特点
    Qt/Embedded移植了大量的原来基于Qt的XWindows程序,并提供了非常完整的嵌入式GUI解决方案,是一个成熟的GUI平台,具有如下特点:
    (1)Qt遵循GPL协议,开放主要的源代码,用户可以在GPL的规定下自由添加新特性。
    (2)与其他嵌入式GUI相比,嵌入式Qt不仅是一个完整的窗口系统,而且也是一个应用程序框架,这更有利于应用程序的开发。
    (3)Qt具有丰富的API,包括多达250个以上的C++类,支持诸如对图形、网络、数据库、I/O操作、各种控件和XMI等众多功能,可满足大多数嵌入式应用系统开发的需要。
    (4)Qt是一个GUI仿真工具包,它使用各自平台上的低级绘图函数仿真MS Windows和Motif(商用Llnix的标准GUI库),因此程序运行速度快。
    (5)Qt良好的封装机制使得Qt的模块化程度非常高,可靠性好,易于程序开发。
    基于Qt的这些特点,在本车载嵌入式娱乐系统的开发过程中,本文采用了嵌入式Qt作为图形用户界面开发的GUl支持平台,有效提高了应用程序的开发速度。

4 基于嵌入式Qt的车载GUI的设计
4.1 基于嵌入式Qt的车载GUI的总体设计
   
基于Linux的车载娱乐系统运行环境如表l所示,底层由Linux内核和驱动程序构成。该内核是经过裁减过的嵌入式Linux2.4,其中包括电源管理系统;驱动程序提供对各种接口硬件的支持;中间层是基于QT/Embedded的嵌入式Qt库。它精简和优化了各种图形操作,程序运行时无需额外系统的支持,可以有效减少内存消耗和CPU负担。QT/Embedded本身是可扩展的,并能不断地升级。开发人员可以根据自己所面对的嵌入式设备的实际需要,对其进行适当的裁减,经过裁减所得到的QT/Embedded可以大约节约800k到3MB的内存空间,这样也就意味着用Qt开发比用其他工具包开发相同的应用程序,在生成可执行文件后,代码所占用的内存空间要小。最顶层是整个车载娱乐应用系统,它是实现车载娱乐具体功能的应用集合。

    基于嵌入式Qt的车载嵌入式娱乐系统软件,最大限度的满足了车载视听娱乐的要求。提供视频播放、音频播放等多媒体软件,个人信息管理软件,无线网络服务等。其系统架构如图l所示。

4.2 基于嵌入式Qt的窗口系统结构设计
   
本文设计的上层GUI窗口系统采用了客户/服务器系统结构。该窗口系统包括:一个服务器进程、一个或者多个客户进程。服务器负责为客户和本身分配显示区域,生成鼠标、键盘或者触摸屏事件,它通常包含那些启动客户的用户界面。而客户则通过与服务器通信来申请显示区域,接受鼠标或触摸屏事件。客户可以直接访问所分配的显示区域,以便为用户提供GUI服务。服务器和客户通过共享内存的方式来传递所分配显示区域上的信息。窗口系统体系结构如图2所示。

    服务器(进程)维护着一组区域,当窗口被创建、移动、改变大小和破坏时,通过这组区域来改变每个客户的申请。该区域存放在共享内存中,在执行绘图操作时,客户可以从中读取信息;服务器连接着一些系统设备,如鼠标、键盘或者触摸屏,服务器负责将这些设备所产生的事件发送到适当的客户进程。服务器能够生成一个设备独立的鼠标或键盘事件,并将其发送到相应的客户进程。触笔设备通常没有鼠标光标,但是触笔操作能转化为设备独立的鼠标事件,然后由客户以标准事件进行处理。
    嵌入式Qt为客户(进程)提供API,当客户使用Qt API画线时,QT/Embedded库能直接访问显存,完成画线工作;在一些情况下嵌入式Qt客户库需要与服务器进程建立连接,如在客户进程启动时,发生了会影响到全局后果的操作而与服务器通信时。例如,当客户进行了拖放操作后,由于窗口覆盖而导致显示区域的变化,则从用户那里接收到鼠标和键盘事件时就需要建立这样的连接;嵌入式Qt客户库负责处理所有的绘画操作,包括文本显示和字体处理等。
4.3 基于嵌入式Qt的事件响应设计
   
在前述的客户/服务器系统结构中,每个键的按下、释放都以QWSKeyEvent事件发出。一个QWSKeyEvent事件通常包括以下各域:
    Unicode:Unicode值。
    Keycode:Qt键码值,定义在qnamespace.h头文件中。
    Modifier:位域, 包括Qt::ShiftButton,Qt::ControlButton和Qt::AltButton。
    Is press:键按下时为真,释放时为假。
    Is auto repeat:键处于自动重复状态时为真。
    嵌入式Qt处理键事件的过程为:键盘驱动程序负责从设备中读取数据,并将键事件发送到服务器中。当服务器从键盘驱动程序接收到一个键事件时,它首先要经过一个事件过滤器,然后再将其发送至每个客户进程,最后由客户进程负责处理键事件,并将其发送到适当的窗口。具体流程如图3所示。

    这里,键事件未必都来自键盘设备,包括触摸屏,触笔都可以产生键事件。服务器在任何时候都可以调用函数QWSServer::sendKeyEvent()产生键事件。根据这个特点,再结合事件过滤器的特性,便可构造出所需的输入服务器平台。
    在Qt中,一个事件通过调用QObject::event()被发送到继承自QObject的对象。事件发送就是一个事件已经产生,由QEvent正好去表达,且QObject需要去回应。多数事件来自窗口系统类QWidget,如QMouseEvent,QkeyEvent事件。某些事件来自其他源头,如QTimerEvent,而某些来自应用程序,Qt会一视同仁的处理。
    事件过滤器在目标对象处理之前去处理事件。过滤器通过调用QObject::eventFilter()实现,它可以接受或丢弃过滤,也可容许或拒绝进一步去处理事件。如果所有的事件过滤器允许进一步的处理事件,事件自己就被送达目标对象。本文在服务器进程中安排事件过滤器,接收键事件,经过处理后,将结果发送到客户进程。在客户进程中,处理键事件,并发送到适当的窗口中。

5 结语
   
嵌入式Linux是目前流行的嵌入式系统解决方案,而嵌入式GUI是嵌入式Linux不可缺少的组成部分。本文通过分析、比较目前流行的几种嵌入式GUI,选择了嵌入式Qt作为研究对象并对其进行了深入讨论,在此基础上完成了基于嵌入式Qt的车载GUI的设计和实现,具有较高的经济价值,并可为其他嵌入式娱乐系统提供参考价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

慕尼黑2024年5月9日 /美通社/ -- TÜV南德意志集团(以下简称"TÜV南德")持续保障安全、可靠及可持续发展。作为全球化的服务提供商,TÜV南德2023年全年营收达约31亿欧元,首次突破30亿欧元大关,同比增长...

关键字: BSP 可持续发展 数字化 人工智能

凭借深度学习技术和SmartBid产品,百度国际MediaGo获得美国商业奖认可 旧金山2024年5月6日 /美通社/ -- 第22届美国商业奖(American Business Award®)近日发布获奖名...

关键字: MEDIA GO SMART BSP

加利福尼亚州圣克拉拉市—2024年4月30日―AMD(NASDAQ: AMD)今日公布2024年第一季度营业额达55亿美元,毛利率为47%,经营收入3600万美元,净收入1.23亿美元,摊薄后每股收益为0.07美元。基于...

关键字: 嵌入式 PC 人工智能

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机
关闭
关闭