基于嵌入式Qt的车载嵌入式娱乐系统软件,最大限度的满足了车载视听娱乐的要求。提供视频播放、音频播放等多媒体软件,个人信息管理软件,无线网络服务等。其系统架构如图l所示。
4.2 基于嵌入式Qt的窗口系统结构设计
本文设计的上层GUI窗口系统采用了客户/服务器系统结构。该窗口系统包括:一个服务器进程、一个或者多个客户进程。服务器负责为客户和本身分配显示区域,生成鼠标、键盘或者触摸屏事件,它通常包含那些启动客户的用户界面。而客户则通过与服务器通信来申请显示区域,接受鼠标或触摸屏事件。客户可以直接访问所分配的显示区域,以便为用户提供GUI服务。服务器和客户通过共享内存的方式来传递所分配显示区域上的信息。窗口系统体系结构如图2所示。
服务器(进程)维护着一组区域,当窗口被创建、移动、改变大小和破坏时,通过这组区域来改变每个客户的申请。该区域存放在共享内存中,在执行绘图操作时,客户可以从中读取信息;服务器连接着一些系统设备,如鼠标、键盘或者触摸屏,服务器负责将这些设备所产生的事件发送到适当的客户进程。服务器能够生成一个设备独立的鼠标或键盘事件,并将其发送到相应的客户进程。触笔设备通常没有鼠标光标,但是触笔操作能转化为设备独立的鼠标事件,然后由客户以标准事件进行处理。
嵌入式Qt为客户(进程)提供API,当客户使用Qt API画线时,QT/Embedded库能直接访问显存,完成画线工作;在一些情况下嵌入式Qt客户库需要与服务器进程建立连接,如在客户进程启动时,发生了会影响到全局后果的操作而与服务器通信时。例如,当客户进行了拖放操作后,由于窗口覆盖而导致显示区域的变化,则从用户那里接收到鼠标和键盘事件时就需要建立这样的连接;嵌入式Qt客户库负责处理所有的绘画操作,包括文本显示和字体处理等。