构建用户图形界面开发环境_第1页
构建用户图形界面开发环境_第2页
构建用户图形界面开发环境_第3页
构建用户图形界面开发环境_第4页
构建用户图形界面开发环境_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

构建用户图形界面开发环境第1页,共45页,2023年,2月20日,星期五本章提要1嵌入式系统中的GUI2典型的嵌入式GUI系统3MiniGUI4MiniGUI应用程序开发第2页,共45页,2023年,2月20日,星期五9.1嵌入式系统中的GUI图形用户接口GUI(GraphicalUserInterfaces)是指计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。第3页,共45页,2023年,2月20日,星期五9.1.1嵌入式系统需要独特的GUI需要高性能的、特殊显示要求的GUIWAP手机、可视电话、PDA等要求在尺寸小的显示屏上显示更多的信息。轻量级GUI的要求工业实时控制系统实时性要求比较高,不希望建立在累赘、庞大的GUI上。第4页,共45页,2023年,2月20日,星期五9.1.1嵌入式系统需要独特的GUI嵌入式对GUI的基本要求包括:轻型、高效、高可靠性、可配制、有内存意识等。GUI是类似于OS的基础软件。从二次开发的角度看,GUI应能提供友好的开发环境,开发者可直观开发。第5页,共45页,2023年,2月20日,星期五9.1.2嵌入式GUI解决方案(1)不将GUI作为一个软件层从应用程序中剥离出来,GUI的支持逻辑由应用程序自己负责。针对特定的图形设备开发图形相关的功能函数。特点:显示逻辑和功能逻辑不分、程序结构差、可移植性能差,有大量重复代码。应用于:简单、单色的LCD输出屏的低端嵌入式产品。第6页,共45页,2023年,2月20日,星期五9.1.2嵌入式GUI解决方案(2)购买针对特定嵌入式操作系统的图形中间件软件包。特点:GUI和OS配合良好,可以直接使用。价钱昂贵。应用:uC/OS-II的uC/GUI包、Nucleus的GRAFLX包、VxWorks的WinML包。第7页,共45页,2023年,2月20日,星期五9.1.2嵌入式GUI解决方案(3)采用独立软件开发商提供比较成熟的GUI产品。特点:采用双授权模式。应用:MiniGUI应用于中低端产品、跨OS,小巧高效。占用Flash300-500K。Qt/embeded应用于高端产品,只支持Linux。占用16MBFlash。第8页,共45页,2023年,2月20日,星期五9.1.2嵌入式GUI解决方案(4)采用开放源代码的嵌入式GUI。特点:价钱便宜、功能强大。存在软件缺陷和商业支持。应用:MicroWindows、OpenGUI等。

第9页,共45页,2023年,2月20日,星期五9.1.3GUI体系结构应用程序GUIOS抽象层嵌入式操作系统驱动程序设备抽象层MCU存储设备输入设备输出设备GUI在嵌入式体系中的层次第10页,共45页,2023年,2月20日,星期五9.1.3GUI体系结构GU

I

内部体系结构API编程接口嵌入式GUI核心GAL层IAL层图形显示设备输入设备第11页,共45页,2023年,2月20日,星期五9.1.3GUI体系结构API编程接口嵌入式GUI核心GAL层IAL层图形显示设备输入设备图形操作功能;消息机制;字体、窗体、桌面管理等核心图形操作功能GraphicAbstractLayerInputAbstractLayer各种GUI对象第12页,共45页,2023年,2月20日,星期五9.1.4GUI主要技术消息机制和事件驱动

消息过滤ISR1硬件设备1ISRn硬件设备n消息过滤应用程序A消息队列应用程序B消息队列系统消息应用程序B系统消息应用程序A应用程序B消息处理窗口应用程序A消息处理窗口第13页,共45页,2023年,2月20日,星期五9.1.4GUI主要技术屏幕管理技术

GUI由单窗口向多窗口发展。对于屏幕中的多个窗口的管理称为“屏幕管理技术”。屏幕管理要解决:窗口之间的位置关系;窗口单元之间的显示顺序;当窗口位置和显示顺序发生变化时候窗口单元之间的变化关系等。另外,除了窗口单元,屏幕还要管理大量资源:字库、图标ICON,位图bitmap、输入法等。

每个可见的,具有独立功能的矩形区域称为一个“窗口单元”。第14页,共45页,2023年,2月20日,星期五9.1.4GUI主要技术屏幕管理技术

窗口单元2(150,20)窗口单元3(100,85)窗口单元n(40,168)(0,0)窗口单元1(319,239)窗口单元位置关系图窗口单元2窗口单元3Z序窗口单元n窗口单元Z序关系图第15页,共45页,2023年,2月20日,星期五颜色平滑的过渡算法对两种位图的每个颜色值按比例进行混合9.1.4GUI主要技术Alpha混合技术

渐变效果

第16页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统1、MicroWindowsMicroWindows是一个较早出现的开放源码的嵌入式GUI软件。目前由Century软件公司维护。类似Windows的的API类似XWindow的客户/服务器结构提供三层结构:驱动-->窗口管理-->API接口更新速度较慢、图形引擎效率较低。第17页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统1、MicroWindows它的主要特色在于提供了比较完整的图形功能,支持多种外部设备输入,包括液晶显示器、鼠标和键盘等。MicroWindows能通过调色板技术将RGB格式的颜色空间转换成目标机器上最相近的颜色,然后显示出来第18页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统2、MiniGUIMiniGUI是一个面向实时嵌入式系统或者实时系统的轻量级图形用户界面支持系统,主要运行在Linux平台上。早期由魏永明先生和众多志愿者开发,是我国为数不多的在国际比较知名的自由软件之一,现在由北京飞漫软技术有限公司()进行维护和商业运作。第19页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统2、MiniGUI提供了完备的窗口机制,提供了多个线程中的多窗口机制;支持多种字体和字符集合;支持GIF、BMP、JPEG、PCX、TGA等图象文件。支持Windows的资源文件。小巧,包括全部功能的支持库大小为300K左右;可定制配置并编译高稳定性和高性能。第20页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统3、Qt/embededQt/Embedded是一个专门为嵌入式系统设计图形用户界面的工具包,Qt/Embedded兼容Qt的软件包,便于移植。采用C++编程实现Qt是挪威Trolltech软件(被诺基亚收购)公司的产品,它为各种系统提供图形用户界面的工具包,Linux桌面系统的KDE就是基于Qt库开发的。第21页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统3、Qt/embeded功能强大、控件丰富。结构复杂,资源消耗较大,效率滴,适合于高端配置的硬件环境。第22页,共45页,2023年,2月20日,星期五MiniGUI和Qt界面比较第23页,共45页,2023年,2月20日,星期五9.2典型的嵌入式GUI系统第24页,共45页,2023年,2月20日,星期五MiniGUI是一种面向嵌入式系统和实时系统的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有线程支持的POSIX兼容系统上。MiniGUI同时也是国内最早出现的几个自由软件项目之一。与Microwindows相比,MiniGUI和MicroWindows均为自由软件,只是前者遵循LGPL条款,后者遵循MPL条款。这两个系统的技术路线也有所不同。MiniGUI的策略是首先建立在比较成熟的图形引擎之上,比如SVGALib和LibGGI,开发的重点在于窗口系统如图形接口;MicroWindows目前的开发重点则在底层的图形引擎,窗口系统和图形接口方面的功能还比较欠缺。举个例子来说,MiniGUI有一套用来支持多字符集和多编码的函数接口,可以支持各种常见的字符集,包括GB、Big5、Unicode等,而MicroWindows在多字符集的支持上尚没有统一接口。第25页,共45页,2023年,2月20日,星期五9.3MiniGUI

MiniGUI是一个基于SVGALib、Framebuffer和LinuxThread库的多窗口图形用户界面支持系统,可以应用在电视顶置盒、实时控制系统、掌上型电脑等诸多场合,可定制、小巧,开放源代码。

第26页,共45页,2023年,2月20日,星期五多线程和多窗口,使用消息驱动作为应用程序的构架MiniGUI中的窗口分为四类:主窗口、对话框、控件和主窗口中的子窗口。9.3.1MiniGUI主要特点第27页,共45页,2023年,2月20日,星期五MiniGUI还支持一些常见的GUI元素弹出式菜单、插入符、定时器、光标、快捷键等。9.3.1MiniGUI主要特点第28页,共45页,2023年,2月20日,星期五多字体和多字符集支持

9.3.1MiniGUI主要特点第29页,共45页,2023年,2月20日,星期五MiniGUI采用分层结构,引入的图形抽象层和输入抽象层,大大提高了MiniGUI的可移植性API编程接口CoreGAL层IAL层图形显示设备输入设备系统硬件驱动9.3.1MiniGUI主要特点第30页,共45页,2023年,2月20日,星期五MiniGUI需要多线程支持MiniGUI的许多模块都以单独的线程运行。利用线程来支持多窗口MiniGUI利用线程之间的同步操作实现了客户线程和服务器线程之间的微客户/服务器机制

9.3.1MiniGUI主要特点第31页,共45页,2023年,2月20日,星期五如何获取MiniGUI目前,MiniGUI可免费下载的稳定版本是1.3.3。可以从北京飞漫软件技术有限公司的网站下载MiniGUI源代码、开发文档及示例程序。免费下载的MiniGUI只能用于开发GPL或其他公开源码的应用软件,如果您要利用MiniGUI开发专有或商业软件,则必须从北京飞漫软件技术有限公司购买商业授权。第32页,共45页,2023年,2月20日,星期五模式1MiniGUI-thread可以在不同的线程中建立多个窗口,但所有的窗口都在一个进程空间特点:占用资源少,控制简单对系统可靠性有影响9.3.2MiniGUI的三种模式第33页,共45页,2023年,2月20日,星期五

模式2MiniGUI-lite每个程序都是单独的进程,每个进程可以建立多个窗口,进程之间、窗口之间互不影响。

特点:占用资源多,较好解决了进程间窗口管理9.3.2MiniGUI的三种模式第34页,共45页,2023年,2月20日,星期五9.3.2MiniGUI的三种模式模式3MiniGUI-StandaloneMiniGUI以独立进程方式运行,当其它进程有需要时候,每次只能以最大化的方式显示一个窗体。

特点:几乎可以运行在所有操作系统上,应用最广的模式。第35页,共45页,2023年,2月20日,星期五9.3.3MiniGUI配置和交叉编译Step1.宿主机上配置Framebuffer

需要激活VESAFrameBuffer驱动程序修改/boot/grub/menu.lst文件,TitleRedHatLinux(2.4.x,framebuffer)Root(hd0,0)Kernel/boot/vmlinux-2.4.xroroot=/dev/hda1vga=0x0317initrd/boot/initrd-2.4.x.imgFramebuffer是linux内核的一种驱动程序接口,这种接口将显示设备抽象为帧缓冲区。Framebuffer通过缓冲区提供了使用显示设备的一般接口第36页,共45页,2023年,2月20日,星期五9.3.3MiniGUI配置和交叉编译Step2.下载MiniGUI源代码

从网上免费得到MiniGUI的资源文件压缩包MiniGUI函数库源代码;libminigui-1.6.x.tar.gzMiniGUI所使用的资源,包括基本字体、图标、位图、输入法等;minigui-res-1.6.tar.gz

MiniGUI的综合演示程序。mg-samples-1.6.x.tar.gz第37页,共45页,2023年,2月20日,星期五9.3.3MiniGUI配置和交叉编译Step3.在PC机上编译并安装libminigui[root@vm-dev/]#tarjxvflibminigui-1.6.x.tar.gz[root@vm-dev/]#cdlibminigui-1.6.x[root@vm-devlibminigui-1.6.x]#./configure[root@vm-devlibminigui-1.6.x]#make[root@vm-devlibminigui-1.6.x]#su–cmakeinstall

第38页,共45页,2023年,2月20日,星期五9.3.3MiniGUI配置和交叉编译Step4.把libminigui加入库搜索路径

默认情况下MiniGUI的函数库被安装在/usr/local/lib目录中,所以应该确保此目录已经在/etc/ld.so.conf.d中[root@vm-dev/]#cd/etc/ld.so.conf.d[root@vm-devld.so.conf.d]#viminigui.conf写上/usr/local/lib

运行ldconfig命令刷新系统共享资源库缓存

[root@vm-devld.so.conf.d]#su–c/sbin/ldconfig

第39页,共45页,2023年,2月20日,星期五9.3.3MiniGUI配置和交叉编译Step5.在pc机上安装MiniGUI的资源[root@vm-dev/]#tarjxvfminigui-res-1.6.tar.gz[root@vm-dev/]#cdminigui-res-1.6[root@vm-devminigui-res-1.6]#su–cmakeinstall第40页,共45页,2023年,2月20日,星期五9.3.3MiniGUI配置和交叉编译Step6.在pc机上编译应用程序的例子[root@vm-dev/]#tarjxvfmg-samples-1.6.x.tar.gz[root@vm-dev/]#cdmg-samples-1.6.x[root@vm-devmg-samples-1.6.x]#./configure[root@vm-devmg-sa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论