基于MiniGUI的嵌入式GUI开发_第1页
基于MiniGUI的嵌入式GUI开发_第2页
基于MiniGUI的嵌入式GUI开发_第3页
基于MiniGUI的嵌入式GUI开发_第4页
基于MiniGUI的嵌入式GUI开发_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、西北大学学士学位论文 基于minigui的嵌入式界面开发 应用物理专业 罗文刚 20031100117 指导老师 高平安 摘要 minigui是由北京飞漫软件技术有限公司主持的自由软件,遵循gpl条款发布。它是一种面向实时嵌入式系统的轻量级图形用户界面支持系统。本文基于嵌入式图形中间件minigui在linux操作系统平台上开发出了一种用于激光医疗设备的图形化界面lmagui(lazer medical apparatus gui)。该界面包括了进入系统到中间过程的操作到最后推出界面的一般操作流程。lmagui旨在为该医疗设备提供一种简洁,操作方便,稳定性好的界面。然后给出了相应比较重要的源代

2、码。在结论中给出了嵌入式gui的一些开发的基本原则以及在开发过程中的一些不足之处。abstract minigui is the free software from beijing freeman software technology ltd and published following the provisions of the gpl terms .it is a real-time embedded system for lightweight graphical user interface support systems.based on the embedded graphi

3、cs middleware minigui and the linux operating system platform developes a graphical interface -lmagui (lazer medical apparatus gui) for a laser medical equipment . the interface includes access to the intermediate process of the operation of the interface to the final launch of the general operating

4、 procedures. lmagui for medical equipment designed to provide a simple, easy operation and good stability interface. then given the fairly important the source code. in its conclusions, given the basic principles in the embedded gui development and some deficiencies in this process.关键词:minigui,gui,l

5、inux,嵌入式系统 目录1引言22嵌入式gui概述42.1嵌入式gui的发展42.2嵌入式gui的技术特点43开发工具minigui概述53.1minigui的介绍53.2minigui的主要特点53.3minigui的体系结构64linux操作系统概述74.1linux的背景介绍74.2linux的发展状况84.3linux的技术优势84.3linux的不利因素94.4嵌入式linux上的gui系统发展概况95嵌入式界面开发框架105.1linux和minigui版本描述105.2lmagui在pc机上的开发116lmagui描述137结论178参考文献179致谢181引言近年来,随着软硬

6、件资源的成熟与完善,嵌入式微处理器的数据处理能力从4位,8位,16位发展到现在广泛应用的32位,甚至64位;嵌入式系统软件的发展也经历功能单一的专用监控系统,具有一定开放性的专用系统内核,到现在真正意义上的操作系统;嵌入式软件开发也从汇编语言,高级语言,到现在在硬件抽象层基础上,面向开发人员无差别的开发环境。嵌入式系统已经广泛渗透到人们的工作、生活中,从家用电器、手持通讯设备、信息终端、医疗设备、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制等。随着嵌入式系统的广泛应用和发展,促使嵌入式系统对良好gui系统的需求越来越迫切。嵌入式gui作为一种比较特殊的gui,在设计过程中也遵循设计一

7、般gui遵循的设计准则。如美国军方标准(1999)提出的如下人机工程学设计准则也非常适合用于嵌入式gui的设计:1. 满足操作、控制和维护人员对性能的要求2. 将对操作人员的技能要求、知识要求和训练时间要求降到最低3. 达到人与设备、软件组合的可靠性4. 在系统中和系统时间逐步建立一种设计标准显然在性能要求和可靠性方面,嵌入式gui的要求更加强烈。而运用界面设计的8条黄金规则中的以下几条对嵌入式gui的开发过程也是很有帮助的,尤其是当嵌入式gui越来越庞大,越来越复杂的时候,这些规则显然必不可少。1. 尽可能保证一致。类似的操作环境应提供一致的操作系列;相同的术语应该用在提示、菜单和帮助里;颜

8、色、布局、大小写、字体等应当自始至终保持一致。2提供信息丰富的反馈。对每个用户操作都应有对应的系统反馈信息。对于常用的或较次要的操作,反馈信息可以很简短;而对于不常用的但重要的操作,反馈信息就应丰富一些。3预防错误。应当尽可能地设计不让用户犯严重错误的系统。错误的操作应该让系统状态保持不变,或者界面应当提供关于恢复状态的说明。嵌入式系统gui的基本要求包括:轻型、占用资源少、高性能、高可靠性、可配置等特点。因有好多相关论文阐述这些内容,在此不再详述。近年来,由于linux的广泛发展和其本身的源码开放,高效率以及出色的网络等优点,使得linux成为了开发嵌入式系统的首选平台。在本程序开发中也用l

9、inux作为系统开发平台。嵌入式系统往往是一种定制设备,它们对gui的需求也各不相同。有的系统只要求一些图形功能,而有些系统要求完备的gu1支持。因此很多嵌入式系统需要自己特定的嵌入式gui。而现在开发嵌入式gui的方法主要有下列三种:(1)某些大型厂商有能力自己开发满足自身需要的gui系统。(2)某些厂商没有将gui作为一个软件层从应用程序中剥离,gui的支持逻辑由应用程序自己负责。(3)采用某些比较成熟的gui系统,比如minigui,microwindows或者其他gui系统。在本程序的开发中采用第三中方法来开发,使用日益成熟成熟的minigui系统作为开发软件,因为它遵循gpl条款,稳

10、定性好,可靠性强,它本身就是为中小型界面而量身定做的,相当小巧,并且有现存的的开放源码的嵌入式gui利用,可以让开发者集中精力开发自己的应用程序。2嵌入式gui概述 2.1嵌入式gui的发展随着嵌入式产品的发展,往往要求嵌入式操作系统有网络和图形的功能。利用源代码开放的linux搭建嵌入式操作系统,由于强大的网络功能和低成本,近来得到了越来越多的应用。其能够提供全功能的桌面计算(desktopcomputing),定制非常方便,支持大多数嵌入式系统上使用的芯片,包括strong arm,mips和power pc。但比windows ce,嵌入式linux的图形操作功能相对较弱。而随着手持式设

11、备的硬件条件的提高,最近出现的palm等手持式电脑或者在windows ce等面向嵌入式系统的操作系统上,已经看到了完整的图形用户界面支持。因此在嵌入式linux操作系统上使用一个功能完备的轻量级、高性能、高可靠、可配置的gui系统成为可行的解决方案。由于嵌入式硬件性能的不断提升,使得在嵌入式设备上运行精美的图形用户界面成为可能,同时智能手持设备、智能仪表的迅猛发展也对gui产生了极大的市场需求。目前基于linux的嵌入式gui产品并不是很多,而且由于各种嵌入式平台巨大的差异性,在嵌入式gui领域也不大可能产生像在pc机领域windows一支独秀的局面,因此对于gui的开发具有十分广阔的市场前

12、景,将会大大促进嵌入式gui的发展。2.2嵌入式gui的技术特点图形用户界面是指计算机与其使用者之间的对话接口,是计算机系统的重要组成部分,他基于操作系统之上,为用户提供丰富的图形编程接口,使其能够方便快速地编制界面友好的应用程序。对嵌入式gui的基本要求有:图形算法简洁、快速,占用资源少;功能强;可靠性高;模块结构,便于移植和定制嵌入式gui系统的实现模式有单进程模式或多线程模式、多线程微客户服务器模式、多进程客户服务器模式。而且gui与一般程序的结构不同,它采用消息事件驱动机制来管理这些进程与线程间的通信,创建消息队列,实现消息处理函数的调用与分派。嵌入式gui构成通常由3个基本层次组成:

13、显示模型、窗口模型和用户模型。如图2-1所示。桌面管理系统用户模型窗口模型显示模型操作系统硬件平台 图2-1 gui的层次结构3开发工具minigui概述3.1minigui的介绍北京飞漫软件技术有限公司开发的minigui(), 是国内为数不多的几大国际知名自由软件之一。minigui是面向实时嵌入式系统的轻量级图形用户界面支持系统,其创始人魏勇明先生将mjnigui定义为:“minigui是linux控制台上运行的、基于svgalib和linuxthread库的多窗口图形用户界面支持系统。minigui采用了类windows32的api接口,实现了

14、简化的类windows 98风格的图形用户界面。minigui的目标是保持现有小巧的特点”。 minigui是一个完全遵循gpl条款的纯自由软件3.2minigui的主要特点minigul提供了完备的多窗口机制,实现了类win32的消息传递机制;能够支持多字符集和多字体,以及全拼、五笔等汉字输入法:可以支持常见的图像文件,如bmp、gif、jpeg、pcx等;还支持windows的资源文件,如位图、图标、光标等。此外,minigui还具有小巧、可配置、移植性好等优点。(1)提供了完备的多窗口机制和消息传递机制;(2)对话框和消息框支持;(3)提供常用的控件类,包括文本框、按钮、编辑框、列表框等

15、;(4)界面皮肤支持用户可以通过皮肤支持获得外观非常华丽的图形界面;(5)bmp,gif,jpeg等常见图像文件的支持;(6)小巧,包含全部功能的库文件为300 kb左右;(7)可配置,可根据项目需求进行定制配置和编译;(8)可移植性好。minigui突出的特点是小巧、可配置。minigui本身所占空间非常小,具体如下: linux内核:300k 500k(由系统决定) minigu1支持库:300k 400k(由编译选项确定) minigui字体、位图等资源:800k 汉字输入法:400k 应用程序:1m2m(由系统决定)总计在2m 到4m 左右。如果不需要某些特征系统容量还可以更少。min

16、igui的目标是保持小的特点,并积极向模块化方向发展,为各种嵌入式系统或实时系统提供一个小型的窗口支持系统。“小”是minigui的特色,也是它的优势3.3minigui的体系结构从整体结构上看,minigui是分层设计的,在最底层,gal(图形抽象层)和ial(输入抽象层)提供底层图形接口以及鼠标和键盘的驱动,而pfilread(posix thread)是用于提供内核级线程支持的c函数库。中间层是minigui的核心层,其中包括了窗口系统必不可少的各个模块,如图3-1所示:最顶层的api是提供给用户的编程接口。apiminigui核心gal ial pthread输入法 虚拟控制台控件类管

17、理 控件 对话框光标timer菜单caret窗口 事件 消息 gdi 资源内存管理 区域管理杂项 图3-1 minigui的体系结构4linux操作系统概述4.1linux的背景介绍linux操作系统于1991年由赫尔辛基大学的linus torvalds设计。从这开始linux迅速成为用户增长较快的操作系统平台之一如今世界上有成千上万的linux开发人员。linux取得巨大成功的主要原因在于它采用了开放源码的开发方式并遵从gpl许可协议。这一许可协议允许任何开发人员使用linux源码作为个人式商业用途。但不允许在不提供修改了源码的情况下发布软件。因此这一提供源码的特点。使linux及时响应计

18、算机技术的需求,并吸收了来自于世界各地程序员的最新计算机技术。通过让人们研究这些不断被修正的源码开放源码的开发方式为linux操作系统带来了高性能和高可靠性。现在最新的一个开发趋势就是裁减linux内核以适应嵌入式系统的需求。它使得linux内核及其编译器支持几乎所有流行的用于嵌入式系统的32位微处理器。这些微处理器包括intel x86、arm、motorolaibm powerpc、nec mips和hitachish等。许多嵌入式linux发行版本不断涌现都可以稳定的支持嵌入式应用。由于linux的源码公开性以及支持现代处理器的特定结构使它又开辟了一条通向实时操作系统的光明大道。linu

19、x发行版本的内核支持几乎所有现代32位处理器所需要实现的功能和所有在嵌入式系统中的应用。这包括支持内存管理、进程、线程创建、进程间通讯机制、中断处理、基于rom 的文件系统、和基于ram 的文件系统、闪存管理以及tcpip网络。在gpl许可协议下各种内核修改都可以得到反映,不同开发组和公司集中于自己特定的方向进行改进。支持特定处理器结构的内核编译器以及用户摸式的应用库也不断被包含在新的发行版本内。而且gun c编译项目保持每种处理器的编译器及时更新。嵌入式linux发行版本提供基于主机的支持目标平台的交叉开发。因为gcc编译器可以运行于各种平台,所以运行于linux和windows的主机开发平

20、台都可以得到复杂开发工具,mmake程序维护工具允许在单一命令下实现交叉编译和连接。在开发基于linux的应用程序时使用基于linux的主机开发平台的优点在于,一般情况下,对于应用程序的主要部分必须在建立目标硬件设备时建立和测试。而使用图形窗口环境如x windows和microwindows则允许完全图形模拟目标图形硬件,而不必交叉开发或下载任何程序更新。这些开发方法对于linux是独一无二的,而且不断被用于主流嵌入式系统设计,同时又进一步推动了嵌入式系统设计。4.2linux的发展状况linux正在走进越来越多人的视线,也已经让无数的人为之深深吸引,除了众多的软件开发商外,也包括许多软、硬

21、件厂商,以及分布在不同国家、不同行业的企业及个人用户。全球很多国家(如新加坡、德国)已表明有计划将服务器体系结构由windows转向linux架构。值得注意的是,中国和印度正在积极培养国内的linux专业人才,以便在未来的市场竞争中占据优势,从中也可以预见这些国家对linux软件技术的需求在逐步增加。intel、ibm、hp、oracle、sybase、bea、ca等国际知名软硬件厂商纷纷支持linux后linux具备了架构企业级应用的基础条件。而刺激企业采用linux架构的另一个重要原因是,在全球经济不景气的大环境下节约成本成为很多企业考虑的重要因素,于是纷纷从小范围采用linttx架构开始

22、。根据调查显示,采用了linux的企业有超过90愿意继续使用linux或者加大linux方面的投资。随着越来越多的企业采用linux,linux在企业级应用市场打下一片江山指日可待。据市场研究公司idc发表的最新统计数据显示,用户积极购买价格更昂贵和功能更强大的linux服务器。当linux刚刚在中国出现时,人们常常议论的一个话题就是“制约中国linux发展的重要原因就是支持linux的软、硬件产品缺乏,特别是应用软件的缺乏”。目前,除了ibm宣布全线产品支持linux之外,还有hp、sun等公司也都把发展linux作为公司的重要战略之一。而且linux平台上现在已经有了相当多的应用软件。19

23、99年中国才有第一家linux公司现在国内成规模的ianux厂商已有二十多家。linux进人中国的这几年,技术发展十分迅速,成功案例也不断增加。就企业级应用而言从第一个企业级应用黑龙江邮政的电子化支局建设开始,linux在企业级的应用方面开始占领一些非关键行业及非核心业务领域。电子邮件、与internet相关的各种应用、防火墙、dns、多媒体等领域是中国linux在企业级应用最多的领域。2002年,linux开始介入银行、电信等重点it行业的核 12,业务领域,如网上银行、计费系统等说明用户对linux在企业级的应用开始逐步认可。逐渐成熟的技术实力和日益被认可的成功案例正成为促进中国linux

24、迅速发展的根本原因。4.3linux的技术优势与windows相比linux在稳定性、可靠性方面的优势使其在近几年得到了迅速的发展,从当初的兴趣小组、社区的形势发展的今天的企业推进。linux最大的优势是其开放性。由于开放了源代码使大家对系统的工作机制可以透彻进行的了解发现其中错误,并迅速纠正错误。这样linux本身更加健壮、病毒和漏洞更少更易于修复,修复得更彻底。用户不必在发现漏洞之后仍要等待软件厂商修改自己封闭的代码后再发布补丁,而将服务器暴露在危险之中。目前主流的桌面系统仍然是windows,使用linux作服务器使得网络格局变为交错式网络,这也是许多专家非常推崇的一种结构。一旦有病毒或

25、其它不利因素在网络上漫延可以有效的制止,不会迅速传播(需要再修改)。与unix系统相比,linux的主要优势表现在:开放源码,应用丰富。选择linux系统还有一个很重要的的原因还在于成本。(当然,该系统的性能也非常出色,否则价格再低也毫无意义。)4.3linux的不利因素近年来,linux凭借其开放源码的特性在操作系统领域中迅速崛起,但它面临的问题仍很突出:首先要解决的是安全问题。linux是开放源码软件,但这个开放源码好比一把双刃剑,它的内核可以由厂商和爱好者等集思广益共同开发,同时也为黑客留下了可趁之机。现在,linux厂商针对系统漏洞发布补丁的反应速度还稍嫌不够。其次是兼容性问题。lin

26、ux厂商数量近200,linux的各种版本无法统计,兼容性问题因此凸现。各家硬件厂商开发相应产品的linux驱动程序也主要针对 red hat等几个主要linux厂商硬件兼容性问题不容忽视接下来是应用支持问题。由于linux发行的套件很多各个产品的细节有所不同,所以,经常可能会碰到在linux操作系统之间应用软件无法正常工作的问题。如果得不到软件开发商的支持再好的操作系统也没用,windows的快速发展就是一个正面例子国内原先开发的多套操作系统无疾而终是反面例子。最后还有商业模式的问题。linux发展这么迅速与众多软硬件厂商积极推动有很大关系,但是这些软硬件支持厂商和linux厂商各有不同的发

27、展目标。linux的发展受硬件影响很大,linux厂商未来到底是依附于硬件厂商还是独立出来、让其他的软硬件来支持这个平台?选择一个合理的商业模式成为现在linux厂商面临的问题。4.4嵌入式linux上的gui系统发展概况近年来,嵌人式系统取得了迅猛的发展,在消费类电子产品和工业控制智能仪表等领域得到了广泛的应用,而linux凭借其开放源代码、几乎支持所有的主流硬件平台、支持大量的周边硬件设备、可定制等优点,成为构建嵌入式系统的强有力武器,不少公司都推出了基于linux的嵌入式产品。由于嵌入式硬件性能的不断提升,使得在嵌入式设备上运行精美的图形用户界面成为可能,同时智能手持设备、智能仪表的迅猛

28、发展也对gui产生了极大的市场需求。目前基于linux的嵌入式gui产品并不是很多,而且由于各种嵌入式平台巨大的差异性,在嵌入式gui领域也不大可能产生像在pc机领域windows一支独秀的局面,因此对于gui的开发具有十分广阔的市场前景。linux拥有很多的优良特性非常适合于嵌入式开发:开放源码,拥有丰富的软件资源;健壮、强大的内核;支持多种体系结构,包括x86、ai1m、mips等几乎所有主流的cpu;完善的网络通信、图形和文件管理机制;支持大量的周边硬件设备,驱动丰富;大小功能均可定制,充分满足嵌入式设备可定制的要求。正是由于“linux具有这么多优点,使得它在嵌入式领域取得了长足的发展

29、,因而开发基于linux的gui系统就显得尤为必要 在桌面版的linux系统中普遍采用的gui是xwindows系统,但显然它相对于嵌入式系统来说是过于庞大了,嵌入式系统要求的是一个轻量级的性能可靠和可裁减的gui,因此需要重新开发适合嵌人式系统的gui。目前国内外已经推出了很多基于linux的gui产品,现在比较流行的一些gui产品包括minigui、micmwindov,opengui、qtembedded等,其中qtembedded属于商业化的产品,其他属于开源软件。5嵌入式界面开发框架 5.1linux和minigui版本描述本嵌入式界面的开发选择开放源码的linux 操作系统作为平台

30、,采用minigui作为图形用户界面支持系统。其相应的版本号如下:linux操作系统的版本为redhat linux2.4.20 。gnu c编译器版本为3.2.2。图形用户界面支持系统minigui的函数库源代码libminigui版本为1.3.3。minigui所使用的资源文件minigui-res版本为1.3.3.minigui的上述文件代码可在网站上下载到。由于本次工作只做lmtgui的部分开发,即不涉及lmtgui在相应硬件平台上的移植和测试,所以在此不介绍开发相应系统的硬件平台。5.2lmagui在pc机上的开发由于在嵌入式系统环境下调试m

31、inigui程序比较复杂,为了缩短开发周期,可以先将程序在pc机上调试,成功后加载进嵌入式linux的文件系统即可。由于不涉及lmtgui的移植,在此将不会介绍移植过程。第一:设置minigui运行环境。为了运行minigui,需要激活系统的framebuffer设备驱动程序。由于安装的linux系统是redhat linux2.4.20,且在安装red hat 时使用了grub作为引导装载器,其激活framebuffer过程如下:首先需要修改/boot/grub/menu.lst文件,在第一个出现red hat linux(2.4.20)的地方,把它修改为red hat linux(2.4.

32、20,framebuffer) 。并在kernel打头的一行添加vga=0x0317.然后重新开机即可。第二:建立minigui运行环境。要开发minigui程序,首先要建立其开发环境。minigui图形系统由函数库、资源及演示程序组成。minigui的函数库部分由libminigui,libmgext以及libvcongui三个函数库组成。minigui的资源部分包括运行minigui应用程序需要的基本字体、图标、位图以及鼠标光标等。安装上述源文件的过程如下所述。首先安装minigui的资源文件。第一步,使用tar命令解开minigui-res-1.3.3.tar.gz,使用如下命令:$ta

33、r zxf minigui-res-1.3.3.tar.gz。该命令将建立minigui-res-1.3.3/目录。第二步,用cd命令改变到新建的目录中,然后以超级用户的身份运行make install命令:#make install。其次配置和编译minigui.第一步,使用tar解开libminigui-1.3.3.tar.gz到新的目录。该命令将建立libminigui-1.3.3/目录。第二步,改变到这一新目录,然后运行./configure:,命令如下$./configure.第三步,运行下面命令编译并安装minigui:$make。第四步,修改/etc/ld.so.conf文件,将

34、/usr/local/lib目录添加到该文件的最后一行。第五步,安装minigui之后,运行下面的命令更新共享函数库系统的缓存:#ldconfig。第三:图形用户界面的开发。图形用户界面的开发流程图如图5-1所示。(1)头文件程序实现时,开始是包含的头文件。在本次开发的程序中包含的minigui图形包的头文件有:common.h包括minigui常用的宏及数据类型的定义;minigui.h包括全局的和通用的接口函数及杂项函数的定义;window.h包含了和窗口有关的宏、数据类型、数据结构以及函数接口声明;gdi.h包含了minigui绘图函数的接121定义;contro1.h包含了libmin

35、igui中所有内建控件的接口定义;(2)程序入口点minigui的程序人口点是miniguimain函数,系统初始化后就会自动找到该函数。再通过调用initdialogbox (hwnd_desktop)函数初始化对话框。本程序使用对话框模板来创建对话框和对话框中的控件。在minigui中,对话框是一类特殊的主窗口,这种主窗口只关注与用户的交互向用户提供输出信息,但更多的是用于用户输入。对话框可以理解为子类化后的主窗口类。在minigui中,用两个结构ctrldata和dlgtemplate来表示对话框模板(minigui/window.h)【1】. ctrldata用来定义控件,dlgtem

36、plate用来定义对话框本身。程序入口点miniguimain调用initdialogbox (hwnd_desktop)函数定义对话框各控件建立对话框及控件定义对话框定义对话框回调函数对话框与控件,控件与控件间消息传递程序退出 图5-1 图形用户界面开发流程图 (3)对话框回调函数在定义完对话框模板数据之后,需要定义对话框的回调函数,并调用dialogboxindirecparam函数建立对话框。在程序中根据需要一共建立了14个控件。包括6个静态框,5个按钮,1个进度条,1个旋钮数字框和1个定时器。对话框回调函数是一类特殊的主窗口回调函数。在程序中它需要处理如下消息:msg_initdial

37、og消息:该消息是在minigui根据对话框模板建立对话框以及控件之后,发送到对话框回调函数的。该消息的lparam参数包含了由dialogboxindirectparam函数的第四个参数传递到对话框回调函数的值。msg_timer消息:创建定时器时指定的窗口会收到msg_timer消息,并传递到期的定时器标号。定时器消息是优先级最低的消息类型,只有消息队列中不存在其他类型的消息时,系统才会去检查是否有定时器的到期。在程序中用定时器来确定加热的时间长短,并在进度条中显示出来。msg_command消息:当命令按钮被击中后,从该按钮发送一个消息到窗口或其对话框。其中按钮标识符id= loword

38、(wparam),通知消息的代码为:code = hiword(wparam)。在程序中因为有多个按钮控件,所以要多次用到该消息。(4)程序的退出在程序中,当单击exit按钮时,会按顺序调用函数destroyallcontrols (hdlg)和函数enddialog (hdlg, wparam)来结束程序。destroyallcontrols销毁对话框中的所有子控件,enddialog用来销毁对话框本身。 6lmagui描述 lmtgui作为一种激光医疗设备上的嵌入式界面,非常小,性能好,效率比较高,占用的资源少。它一共分为6个子界面,如图6-1所示。在进入系统界面的正中间有一行提示语言:“

39、welcome to system!”在其左下方有“next”按钮,通过单击此按钮可进入预热时间设置界面。“next”按钮通过隐藏进入系统界面中的子控件,显示下一界面的子控件来完成程序赋予它的功能。其相应的源代码如下所示。case idc_com1: /*show idc_static2,idc_data,idc_static3; hide idc_static1,idc_com1.*/senddlgitemmessage(hdlg, idc_data, cb_setspinrange, 1, 20); /*set the range 1-20 of idc_data*/ senddlgite

40、mmessage(hdlg, idc_data, cb_setspinvalue, 5, 0); hwnd1=getdlgitem (hdlg, idc_static1);hwnd2=getdlgitem (hdlg, idc_com1);hwnd3=getdlgitem (hdlg, idc_static2); hwnd4=getdlgitem (hdlg, idc_com2);hwnd5=getdlgitem (hdlg, idc_data);hwnd6=getdlgitem (hdlg, idc_static3); if (hwnd1&hwnd2&hwnd3&hwnd4&hwnd5&hw

41、nd6)destroywindow (hwnd1); /*showwindow(hwnd1,sw_hide);*/ destroywindow (hwnd2); /*hwnd guiapi getdlgitem (hwnd hdlg, int niddlgitem)*/ showwindow(hwnd3,sw_show); showwindow(hwnd4,sw_show); showwindow(hwnd5,sw_show); showwindow(hwnd6,sw_show); elsereturn 0; break;预热时间设置界面预热过程等待界面退出系统界面进入系统界面正常工作界面工作

42、暂停界面 图6-1 lmagui系统界面进入系统的界面图如图6-2所示: 图6-3 预热时间设置界面 图6-2 系统进入界面 在第二个预热时间设置界面(如图6-3)中一共有4个控件,它们分别是预热时间设置提示语言,预热时间设置框,确定按钮以及退出按钮。提示语言代码和按钮的代码基本与前面的相同,下面着重列出预热时间设置框接受用户输入的时间的代码:(在用户单击确定按钮时,处理预热时间设置框接受到的数据,并设置好定时器)min = senddlgitemmessage(hdlg, idc_data, cb_getspinvalue, 0, 0);/*获得用户所设置的预热时间,单位为分钟*/setti

43、mer(hdlg,idc_timer,500); /*给对话框发一次定时消息*/holdcursor = setdefaultcursor (getsystemcursor (idc_wait);/*设置鼠标状态为忙*/第三个界面为预热过程等待界面,在等待过程中,选用进度条作为直观的已等待时间显示,让用户的等待不至于没有期望,减少用户对系统的焦虑。进度条控件的显示参数设置如下: progressbar, ws_child|pbs_notify, 10, 40, 380, 20, idc_progress, null, 0, 其相应的操作行为代码如下:sendmessage(hwnd1,pbm_

44、setpos,0, 0);/*hwnd1为进度条的操作句柄,该函数设置进度条的起始位置为0,进度方向为前进方向 */senddlgitemmessage(hdlg, idc_progress, pbm_deltapos, 5, 0);/*设置进度条的进行过程进度,定时器每发送一次定时消息,进度加5*/ senddlgitemmessage(hdlg, idc_progress, pbm_setrange,1, min*60);/*,设置进度条的进度范围,从1到min*60,min为用户设置的时间*/当用户设置的时间到达时,即进度条到达最大值时,系统会自动进入正常工作状态界面。正常工作界面主要是

45、为了表明系统正在进行工作,并且工作正常。若想停止系统工作,可单击此界面下的“stop”按钮,则系统会进入工作暂停界面。通过单击“exit”按钮,可进入最后一个界面,即退出系统界面,在该界面有“thanks using the system!”作为系统退出界面的提示语言。在退出界面时会做一些善后工作,先处理一些系统的信号,并销毁所有子控件和对话框,让系统稳定退出。7结论在开发应用于激光医疗设备的嵌入式系统界面lmagui中,首先熟悉了linux操作系统,它是一种可配置的,稳定性好,源码开放的系统,非常适合于嵌入式系统的开发。用c语言写成的minigui采取的是事件加消息的驱动机制,非常接近于面向

46、对象的编程语言。由于它本身小巧的特点,常用于中小型系统的嵌入式界面开发。在开发过程中不但熟悉了这些软件,还掌握了开发嵌入式界面的基本流程。激光医疗设备的操作比较简单,这使得lmagui的界面也相对简洁。在开发过程中,主要用模板对话框来建立系统界面的,通过控件之间以及控件与对话框之间的消息发送接收来更新界面,驱动硬件。minigui的网站上提供了许多非常好的例子,在设计软件,编写代码过程中借鉴了其中不少的经验。总的说来,lmagui基本符合用户的愿望,达到了操作需求。当然,在开发的lmagui中有好多地方还值得去改进,其界面虽然比较简洁,但是有时显的过于单调,如果改进,可以采用皮肤界面来编写,那

47、样界面表现会更丰富一些。由于时间较短,界面在中文支持上遇到了困难,若进一步开发,为了使系统应用更加广泛,最好让其支持中文字符。8参考文献【1】 minigui编程指南(v1.3.x) 北京飞漫软件技术有限公司 2003【2】 minigui用户手册(v1.3.x) 北京飞漫软件技术有限公司 2003【3】美 ben shneiderman catherine plasiant 著 张国印 李健利 等译 李健利 审校 用户界面设计有效的人机交互策略(第四版) 北京:电子工业出版社 2003【4】郑燕军 linux介绍及其在企业网络中的应用 网络通讯与安全 2006【5】夏琳,张光显,张丽娟 基于

48、linux操作系统的嵌人式gui及其设计改进 现代电子技术应用第21期 2004 【6】魏勇明 我与minigui的不了情 开放系统世界 2004【7】解超 李善平 基于linux的嵌入式gui 计算机工程与应用 no.135 2003 【8】安成锦,孙茂阳,李坡 基于嵌入式linux系统的minigui图形界面开发 现代电子技术第20期 20059致谢这篇论文是在高平安高老师的指导下完成的。在论文完成之际,首先向高老师表示深深地感谢。在作毕业论文期间,高老师在电脑的提供、课题的拟定、问题的解决、论文的修改等方面都给予我不讳地教导与帮助,不仅为我提供了宽松的学习环境,更培养了我独立从事科研的能

49、力。此外还要感谢跟我同做一个课题方向的何君同学,他给我提供了很多帮助和有益的建议。还要感谢物理系的所有老师们,感谢您们这四年来对我的培养和关心照顾。你们的谆谆教诲将深深地影响我的一生。感谢物理系2003级的所有同学们,在这四年里,在生活和学习上都给了我很大的帮助。特别要感谢我们应用物理学专业的全体同学们。最后,感谢我的舍友,以及曾经关心帮助过我的所有人。 10附录程序源代码附录一:程序源代码 基于minigui的嵌入式界面开发 应用物理专业 罗文刚 20031100117 指导老师 高平安 摘要 minigui是由北京飞漫软件技术有限公司主持的自由软件,遵循gpl条款发布。它是一种面向实时嵌入

50、式系统的轻量级图形用户界面支持系统。本文基于嵌入式图形中间件minigui在linux操作系统平台上开发出了一种用于激光医疗设备的图形化界面lmagui(lazer medical apparatus gui)。该界面包括了进入系统到中间过程的操作到最后推出界面的一般操作流程。lmagui旨在为该医疗设备提供一种简洁,操作方便,稳定性好的界面。然后给出了相应比较重要的源代码。在结论中给出了嵌入式gui的一些开发的基本原则以及在开发过程中的一些不足之处。abstract minigui is the free software from beijing freeman software tech

51、nology ltd and published following the provisions of the gpl terms .it is a real-time embedded system for lightweight graphical user interface support systems.based on the embedded graphics middleware minigui and the linux operating system platform developes a graphical interface -lmagui (lazer medi

52、cal apparatus gui) for a laser medical equipment . the interface includes access to the intermediate process of the operation of the interface to the final launch of the general operating procedures. lmagui for medical equipment designed to provide a simple, easy operation and good stability interfa

53、ce. then given the fairly important the source code. in its conclusions, given the basic principles in the embedded gui development and some deficiencies in this process.关键词:minigui,gui,linux,嵌入式系统 目录1引言22嵌入式gui概述42.1嵌入式gui的发展42.2嵌入式gui的技术特点43开发工具minigui概述53.1minigui的介绍53.2minigui的主要特点53.3minigui的体系

54、结构64linux操作系统概述74.1linux的背景介绍74.2linux的发展状况84.3linux的技术优势84.3linux的不利因素94.4嵌入式linux上的gui系统发展概况95嵌入式界面开发框架105.1linux和minigui版本描述105.2lmagui在pc机上的开发116lmagui描述137结论178参考文献179致谢181引言近年来,随着软硬件资源的成熟与完善,嵌入式微处理器的数据处理能力从4位,8位,16位发展到现在广泛应用的32位,甚至64位;嵌入式系统软件的发展也经历功能单一的专用监控系统,具有一定开放性的专用系统内核,到现在真正意义上的操作系统;嵌入式软件

55、开发也从汇编语言,高级语言,到现在在硬件抽象层基础上,面向开发人员无差别的开发环境。嵌入式系统已经广泛渗透到人们的工作、生活中,从家用电器、手持通讯设备、信息终端、医疗设备、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制等。随着嵌入式系统的广泛应用和发展,促使嵌入式系统对良好gui系统的需求越来越迫切。嵌入式gui作为一种比较特殊的gui,在设计过程中也遵循设计一般gui遵循的设计准则。如美国军方标准(1999)提出的如下人机工程学设计准则也非常适合用于嵌入式gui的设计:满足操作、控制和维护人员对性能的要求将对操作人员的技能要求、知识要求和训练时间要求降到最低达到人与设备、软件组合的

56、可靠性在系统中和系统时间逐步建立一种设计标准显然在性能要求和可靠性方面,嵌入式gui的要求更加强烈。而运用界面设计的8条黄金规则中的以下几条对嵌入式gui的开发过程也是很有帮助的,尤其是当嵌入式gui越来越庞大,越来越复杂的时候,这些规则显然必不可少。尽可能保证一致。类似的操作环境应提供一致的操作系列;相同的术语应该用在提示、菜单和帮助里;颜色、布局、大小写、字体等应当自始至终保持一致。2提供信息丰富的反馈。对每个用户操作都应有对应的系统反馈信息。对于常用的或较次要的操作,反馈信息可以很简短;而对于不常用的但重要的操作,反馈信息就应丰富一些。3预防错误。应当尽可能地设计不让用户犯严重错误的系统。错误的操作应该让系统状态保持不变,或者界面应当提供关于恢复状态的说明。嵌入式系统gui的基本要求包括:轻型、占用资源少、高性能、高可靠性、可配置等特点。因有好多相关论文阐述这些内容,在此不再详述。近年来,由于li

温馨提示

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

评论

0/150

提交评论