数字城市查询系统——嵌入式linux下的gui编程毕业论文(编辑修改稿)内容摘要:

步而发 展起来的 Linux OS 已成为 Microsoft 公司的 DOS 和 Windows 95/98 的强劲对手。 Linux 系统不仅能够运行于 PC 平台,还在嵌入式系统方面大放光芒,在各种嵌入式 Linux OS 迅速发展的状况下, Linux OS 逐渐形成了可与 Windows CE 等 EOS 进行抗衡的局面。 目前正在开发的嵌入式系统中, 49%的项目选择 Linux 作为嵌入式操作系统。 Linux 现已成为嵌入式操作的理想选择。 嵌入式 Linux 操作系统与 Windows CE 相比的优点:第一, Linux 是开放源代码的,不在存黑箱技术,遍 布全球的众多 Linux 爱好者都是 Linux 开发者的强大技术支持者;而Windows CE 是非开放性 OS,使第三方很难实现产品定制。 第二, Linux 的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。 第三, Linux 的内核小、效率高;而 Windows CE在这方面是笨拙的,占用过多的 RAM,应用程序庞大。 第四, Linux 是开放源代码的 OS,在价格上极具竞争力,适合中国国情。 Windows CE 的版权费用是厂家不得不考虑的因素。 第五, Linux 不仅支持 x86 芯片,还是一个跨平台的系统,移植容易实现。 第六, Linux 内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、 Token ring(令牌环)和光纤甚至卫星的支持。 第七, Linux 的内核结构是高度可裁减的, Windows CE 在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。 Palm OS、 Windows CE、 Linux 这三种嵌入式操作系统各有不同的特点,不同的用途;但 Linux 比 Palm OS 和 Windows CE 更小、更稳定,而且 Linux 是开放的 OS,在价格上极具竞争力。 当然嵌入式 linux 操作系 统也有其明显不足的地方:第一,是开发难度较高,需要很高的技术实力;第二,是核心调试工具不全,调试不太方便,尚没有很好的用户图形界面。 Qt 开发语言 Qt 是一个多平台的 C++图形用户界面应用程序框架。 它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。 Qt 是完全面向对象的很容易扩展,并且允许真正地组件编程。 自从 1996 年早些时候, Qt 进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。 Qt 也是流行的 Linux 桌面环境 KDE 的基础, KDE 是所有主要的 Linux发行版的一个标准组件。 Qt 支持所有 Unix 系统,当然也包括 Linux,还支持 Windows 平台。 支持下述平台:  MS/Windows 9 9 NT 、 ME、和 2020  Unix/X11 Linux、 Sun Solaris、 HPUX、 Compaq Tru64 UNIX、 IBM AIX、 SGI IRIX和其它很多 X11 平台  Macintosh Mac OS X  Embedded 有帧缓冲 (framebuffer)支持的 Linux 平台。 Qt 具有下列优点 : 1. 优良的跨平台特性 : Qt 支持 下列操作系统 : Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HPUX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390, QNX 等等。 2. 面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说数字城市查询系统 —— 嵌入式 linux 下的 GUI 编程 7 是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。 3. 丰富的 API Qt 包括多达 250 个以上的 C++ 类,还替供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。 甚至还包括正则表达式的处理 功能。 4. 支持 2D/3D 图形渲染,支持 OpenGL 5. 大量的开发文档 6. XML 支持 Qt 把下面这些特性添加到了 C++当中:  一种关于无缝对象通讯被称为信号和槽的非常强大的 机制,  可查询和可设计的属性,  强大的事件和事件过滤器,  根据上下文进行国际化的字符串翻译,  完善的时间间隔驱动的计时器使得在一个事件驱动的图形界面程序中很好地集成许多任务成为可能。  以一种自然的方式组织对象所有权的分层次和可查询的对象树。  被守护的指针, QGuardedPtr,当参考对象被破坏时,可以自动地设置为无效,不像正常的 C++指针在它们的对象被破坏的时候变成了“摇摆指针”。 Qt 的授权是分为两条线,商业版和开源版。 如果使用商业版的 Qt,那么开发出的程序可以是私有的和商业的;如果使用的 是开源版的 Qt,由于其使用的是 GPL 协议(不是 LGPL),那么可发出的程序也必须是 GPL 的。 Qt 自由版是 Qt 仅仅为了开发自由和开放源码软件 提供的 Unix/X11 版本。 在 Q 公共许可证和 GNU 通用公共许可证 下,它是免费的。 Qt/嵌入式自由版是 Qt 为了开发自由软件提供的嵌入式版本。 在 GNU 通用公共许可证下,它是免费的。 Qtembedded 和 Qtopia: Qt 在刚出现的时候,对于 Linux 和 Unix 系统,只有构建于 Xlib 之上的 X11 版。 但随着 Linux 操作系统在嵌入式领域的应用日渐广泛, Qt 推 出了嵌 入式的版本 Qtembedded( Qte)。 由于嵌入式受限的硬件环境往往难以运行庞大的 X 服务器, Qt 的嵌入式版跳过了Xlib 和 XServer 直接 操作帧缓冲,可以在速度和体积上有很大的提高。 Qtopia 最初是 上的一个开源项目,全称是 Qt Palmtop Environment,是构建于 Qte 之上一个类似桌面系统的应用环境,包括了 PDA 和手机等掌上系统常见的功能如电话簿、日程表等。 现在 Qtopia 已经成为了 Trolltech 的又一个主打产品,为基于 Linux 操作系统的 PDA 和手机提供了一个完整的图形环境。 值得特别注意的是 Qte 和 Qtopia 之间的关系。 在版本 4 之前, Qte 和 Qtopia 是不同的两套程序, Qte 是基础类库, Qtopia 是构建于 Qte 之上的一系列应用 程序。 但从版本 4 开始, Trolltech 将 Qte 并入了 Qtopia,并推出了新的 Qtopia4。 在该版中,原来的 Qte 被称为Qtopia Core,作为嵌入式版本的核心,既可以与 Qtopia 配合,也可以独立使用。 原来的 Qtopia则被分成几层,核心的应用框架和插件系统被称为 Qtopia Platform, 上层的应用程序则按照不同的目标用户分为不同的包,如 Qtopai PDA, Qtopia Phone。 8 定义 界面 :直接和用户交互的软件结构。 内核 :完成核心功能的,与界面无关的软件结构。 硬件 :嵌入式系统中各种设备的总称。 嵌入式系统 : 根据 IEEE(国际电机工程师协会)的定义,嵌入式系统是 “控制、监视或者辅助装置、机器和设备运行的装置 ”(原文为 devices used to control, monitor, or assist the operation of equipment, machinery or plants)。 国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 Qt: Qt 是一个多平台的 C++图形用户界面应用程序框架。 SQLite : SQLite 是 D. Richard Hipp 用 C 语言编写的开源嵌入式数据库。 2 系统需求分析 功能需求 1. 建筑定位:  地图上标示广州主要建筑的位置,实现主要建筑搜索功能,显示与建筑相关信息(简介、历史、用途;所在区、街道、公交地铁情况),显示附近主要建筑情况(包括 附近银行、停车场)。 2. 交通定位(公交;客运站;码头;地铁;火车站):  公交:查询各路车的行车路线,同时显示行车路线的站点。 点击站点,能在地图上标出该站点的位置,并显示该站点的附近建筑情况;地铁:地铁经过的各路线,地铁各出口,附近建筑。 客运站:显示该客运到省内外的线路;码头:显示航班信息;火车站:显示该火车站到省内外的线路。 3. 道路定位:  在地图上标示出该道路。 4. 酒店餐饮定位:  地图上标示酒店店餐的位置,显示附近主要建筑情况,提供该目标的联系方式、服务性质等信息。 5. 二级地图的显示:  校园、公园等都有相关建筑分布 地图,系统能显示其相关建筑分布地图,即二级地图。 6. 地图的缩放:  放大和缩小地图。 7. 声音提示功能:  能报读出查询的主要建筑的名称。 8. 计算查询所需时间:  显示一次查询所用的时间。 数字城市查询系统 —— 嵌入式 linux 下的 GUI 编程 9 开发环境 硬件平台 pc 机 CPU inter P3 赛扬 1G 内存 128+64M pc 机 CPU Athlon3000+ 内存 1G 嵌入式开发板 EmbestS3CEB2410(arm9)开发板 +仿真器 软件开发平台 操作系 : Linux Fedora Core 6 , Linux WindowsXP ,Windows2020 工 具 : EmbestIDE Cygwin 开发语言 C C++ Qt/Embedded 运行环境 嵌入式机器 +Linux 操作系统(包含手机、 MP4 等) PC 机 +Linux 操作系统 性能需求 时间特性要求 系统稳定,算法效率高,对用户的操作实时响应。 3 总体设计 基本设计概念和处理流 程 系统数据流图: 10 用 户查 询 系 统查 找 请 求显 示 查 找 结 果顶 层 数 据 流 图 1 、 请 求 响 应 2 、 画 图 显 示3 、 相 关 信 息显 示查 找 请 求 坐 标 , 文 字 信 息 、 标 志 位坐 标 文 件地 图 显 示i d 、 坐 标 、 范 围相 关 信 息 显 示5 、 查 询 结 果显 示显 示 查 找 结 果资 料 文 件无 效 关 键 字4 、 播 放 声 音I d 0 层数据流图 数字城市查询系统 —— 嵌入式 linux 下的 GUI 编程 11 1 . 1 获 得 请 求 数据1 . 3 坐 标 查 找查 找 请 求查 找 关 键 字坐 标 、 文 字 信 息 、 标 志 位坐 标 文 件1 . 2 字 段 匹 配 检测有 效 关 键 字无 效 关 键 字坐 标 文 件2 . 1 标 志 位 检测2 . 2 地 图 划 线2 . 4 文 字 标 注2 . 5 地 图 变 化显 示坐 标 组坐 标 、 文 字 信 息坐 标标 示 地 图2 . 6 地 图 组 合文 字 地 图变 化 地 图地 图 显 示坐 标 、 文 字 信 息 、标 志 位3 . 1 标 志 位 检测3 . 2 目 标 资 料查 询3 . 5 关 键 字 数 据查 询I d 、 坐 标 、 范 围坐 标 文 件3 . 3 范 围 查 询I d坐 标 、 范 围资 料 文 件3 . 4 信 息 组 合显 示资 料 数 据显 示 地 理 情 况相 关 信 息 显 示无 效 关 键 字查 询 显 示2 . 3 箭 头 标 识坐 标箭 头 地 图i d 、 坐 标 、 范 围I d1 层数据流图 4 系统 GUI 编程设计 地图移动 开始状态 开始的时候,地图转载图片的状态。 12 在(图一)中,图片处理模块用于处理图片的显示、移动、隐藏。 紫色区域为 5 5 个图片处理模块,每个图片处理模块存放有地图图片。 而这 5 5 个图片处理模块用一个数组存放着,这数组用图(二)表示。 浅蓝色区域为地图 显示区,显示地图给用户。 在图(二)中,这表示一个 5 5 的数组,用于存放图片处理模块。 白色部分存放着中。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。