ImageVerifierCode 换一换
格式:DOC , 页数:53 ,大小:1.50MB ,
资源ID:3004840      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3004840.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于-qt-的多媒体车载导航系统gps-学位论文.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于-qt-的多媒体车载导航系统gps-学位论文.doc

1、南华大学电气工程学院毕业论文 毕业设计(论文) 题 目 基于QT的多媒体车载导航系统 学院名称 电气工程学院 指导教师 洪镇南 职 称 教授 班 级 自动化082 学 号 20084460236 学生姓名 马步云 2012年5月30日 南 华 大 学 毕业设计(论文)任务书 学院:

2、 电 气 工 程 学 院 题目: 基于QT的多媒体车载导航系统 起止时间:2011年 12月 15 日至2011年 5 月 30 日 学生姓名: 马 步 云 专业班级: 自动化082 指导老师: 洪 镇 南 教研室主

3、任: 李 兰 君 院 长: 赵 立 宏 2011 年 12 月15日 设计(论文)内容及要求: 一. 设计(论文)内容: 设计一个多媒体车载导航系统,用于汽车定位,智能导航,多媒体娱乐,以达到优化行车路径,随时查看所在地域,及时搜索餐饮、住宿、学校、医院等方位,方便旅行的目的。 设计内容 1、多媒体车载导航系统的硬件系统设计:包括ARM 9 (S3C2410)模块、256M Nand Flash模块、2M Nor Flash模块、T

4、ouch LCD模块、GPS数据采集模块。 2、多媒体车载导航系统的软件系统:包括GPS数据采集模块、车辆定位模块、最短路径的算法模块、线路导航模块、车载多媒体播放终端模块、QT的系统搭建与移植模块、基于Qt的百度地图系统集成模块、GPS设备驱动与嵌入式串口通信模块。 3、多媒体车载导航系统的性能要求 (1)、定位功能:根据GPS采集到的经纬度数据在地图上定位显示出当前位置。 (2)、地图导航功能:以当前地点作为起点,并且在地图上制定的地方双击设置目的地,经过最短路径算法,求出并显示起到到终点的导航路径。 (3)、语音导航功能:模拟车辆运行,路径移动,在相应的重要地点处,播报语音提示

5、 (4)、娱乐功能:车载多媒体功能部分,可进行电影、音乐的选择播放。 (5)、导航地图更新功能:利用在线百度地图(API)进行地点的定位和路径的选择。 二.设计(论文)要求: 1. 独立完成15000字以上的毕业论文一篇, 论文撰写格式符合要求,数据准确,文字精炼。应包括目录、中英文摘要、中英文关键词、正文、参考文献等。 2.原理图、原理框图和程序流程图符合有关标准。参考文献应有20篇以上,且外文文献有5篇以上。 3.翻译相关英文论文一篇,翻译工作量不少于3000中文字,并附原文;撰写格式:按原文格式排版。 4.毕业论文用A4纸打印、按要求装订成册。 三. 设计(论文)进度:

6、 1.查阅国内外相关文献资料,完成选题报告 (1-6周) 2.总体方案设计 (7周) 3.控制电路设计 (8-11周) 4.元器件选择 (12周) 5.软件设计 (12-14周) 6.撰写毕业论文

7、14-15周) 7.初稿预审、正稿打印 (16周) 8.递交毕业论文、毕业答辩 (17周) 指导教师: . 2011年12月22日 南华大学本科生毕业设计(论文)开题报告 设计(论文)题目 基于QT的车载导航多媒体系统 设计(论文)题目来源 自主命题 设计(论文) 题目类型 软件设计 起止时间 2012-2-13~2012-5-10 一、 设计(论文)依据及研究意义 随着我们生活水平的不断提高,汽车数量急剧增加引起交通状况恶

8、化。目前,我国的机动车保有量正以15%的高速率增长,而我国城市道路的增长率仅为3%,交通拥挤状况相当严重。因此,发展智能交通系统的意义非常重大。 GPS是20世纪80年代才开始应用于汽车交通领域的。但它的应用对减少交通阻塞、提高汽车运行效率、节约资源、提高安全性以及加强对车辆的集中管理和调度都有着非常重要的意义。我们想结合所学到的多媒体功能应用技术、嵌入式操作系统应用开发技术以及QT平台技术以及未学到GPS应用技术、GPRS应用技术及GUI开发技术设计开发一套基于QT的车载导航系统,包含定位功能、地图导航功能、语音导航功能、娱乐功能等。这套系统可以为驾驶员充分的提供交通、安全、娱乐等

9、信息,实现人、车、路的结合统一。这将极大的提高交通运输效率,保证交通安全,增强行车的舒适性。 二、 设计(论文)主要研究的内容、预期目标 本课题是要设计一个车辆远程监控系统能将串口采集到的现场数据通过GPRS网络传输到监控中心,也可以接受远程端发送的数据,再根据数据的内容相应的完成各种命令。驾驶员可以根据命令提示选择线路,也可以在停车的时候进行娱乐休闲。 该系统主要分以下部分来实现: 1、GPS数据采集与车辆定位 2、最短路径的算法与线路导航 3、嵌入式QT的系统搭建与移植 4、基于QT的百度系统集成 5、基于ARM9的GPS设备驱动与串口通信 三、设计(论文)

10、的研究重点及难点 主要重点是以当前地点作为起点,并且在地图上制定的地方双击设置目的地,经过最短路径算法,求出并显示起到到终点的导航路径,此为导航仪的核心功能。整个设计会应用到GPS应用技术、GUI开发技术、多媒体功能应用技术、嵌入式操作系统应用开发技术、系统构建技术、驱动编写技术、数据库技术等。需要自己查找文献资料,并进行相关方面的学习。 具体参考资料如下: 1、《C程序设计语言》Brian W.Kerhighan & Dennis M.Ritchie 2、《C\C++编程指南》林锐 3、《More Effective C++》Scott Meyers 4、《Linux 系统

11、移植》刘勇 孙贺 聂强 5、《Linux System Programming》 Robert Love 6、《UNIX 网络编程》W.Richard Stevens 7、《UNIX环境高级编程》Dennis M.Ritchie 8、《Unix 编程艺术》Enic S.Raymond 9、《Linux设备驱动 Edition》Jonathan Corbet,,Alessandro Rubini,Greg Kroah-Hartman 1. 设计(论文)研究方法及步骤 进度安排如下: 1、 查找文献资料,了解车载导航研究现状,研究成果,发展趋势及存在问题; 2、 为系统制定初步的

12、设计方案; 3、 学习关于GPS、GPRS方面的知识; 4、 更熟练的掌握并应用C++、QT的应用,学习QT编程; 5、 熟悉为系统开发所适用的开发板,包括其相关的接口,引导,内核等信息; 6、 学习嵌入式系统构建,制作交叉编译器,编写Bootloader、移植Linux内核; 7、 对基本的Linux驱动程序开发进行学习,包括串口、I/O、A/D转换等; 8、 进行GPS车载导航程序的移植; 9、 对整个系统进行整合并联调,解决其中出现的问题。 五、进行设计(论文)所需条件 1、查找相关最短路径算法的文案、理解不同的最短路径算法的主要思想 2、学习关于GPS方面的知识

13、 3、学习基本的C++知识 4、学习Qt编程 5、编写自己的最短路径算法和GPS导航程序 六、指导老师意见: 签名: 年 月 日 南华大学电气工程学院毕业论文 摘要:随着当前嵌入式技术和汽车产业的迅猛发展,车载导航系统成为当今汽车产业界的一大热点之一。在欧美等发达国家,车载导航仪产品已经走向成熟,形成了规模化的市场需求。但中国的车载自主导航产品市场刚刚启动,许多产品尚处于实验室研发阶段。 中国地域辽阔、人口众多并发展迅速

14、必将成为巨大的汽车消费市场,因此随着未来经济的发展,中国的车载导航产品将具有广阔的市场空间。研究车载导航系统在提高行车安全性、减轻驾驶者员负担等方面具有很大作用,对解决城市交通问题具有重要意义。 本论文首先讨论了车载导航系统的原理和硬件结构,然后分析设计了软件系统的工作流程及实现方案;重点介绍了在ARM处理器和Linux操作系统实现车载导航终端各功能模块的详细过程。系统由GPS数据采集并显示、地图显示两大部分组成,模拟GPS导航的过程。通过GPS模块、arm9硬件环境、嵌入式LINUX操作系统、TFT触摸屏等模块来完成整个体系的运作,使其实时采集GPS数据,然后将GPS数据对应的地图显示出

15、来。本设计的特点在于界面友好、用户易操作、功耗低、便于户外导航。 关键词:ARM;LINUX;GPS;C++语言;嵌入式操作系统 Abstract:With the rapid development of embedded technology and automobile industry,vehicle navigation system has been well-known in automobile industry. In developed countries like E

16、urope and US, car-borne navigator has matured and has a big market. However, this product appeared in China only a short time ago, so most of its types are still on trial. Due to its vast land, large population and rapid-developing economy, there will be a high consumption of cars in China. Therefor

17、e, car-borne navigator will be in great demand in China with the development of economy in the future. To study vehicle navigation system has an important effect on improving security of vehicle, reducing pressure of drivers, so plays an important role in solving transportation problems. This Paper

18、 first discusses the principle of the vehicle navigation system and the principle of hardware structure,then the analysis has designed sottwaresystem’S work flow and realizes the plan,focused on the ARM processor and theLinux operating system to achieve vehicle navigation terminal and its functional

19、modules of the detailed realization process.so this system consists of GPS data collection, map display composed of two parts, simulated GPS navigation process. Through the GPS module, arm9 hardware environment, embedded LINUX operating system, TFT touch screen and other modules to complete the oper

20、ation of the entire system to collect real-time GPS data, GPS data and then display the corresponding map. This design feature is user-friendly, user easy to operate, low power consumption, easy to a trip. Keywords: ARM; LINUX; GPS; C + + language; embedded operating system 1、 系统方案

21、选择和论证 1 1.1引言 1 1.2 方案说明 1 1.2.1、 总体设计方案 1 1.2.2、 系统功能说明 2 1.3、 部分模块设计方案 2 1.3.1、 控制模块设计方案 2 1.3.2、 操作系统选择方案 3 1.3.3、 GPS模块选择方案 3 1.3.4、显示模块设计方案 4 1.3.5、地图文件存放方案 4 1.4、总体方案确定 4 1.4.1、系统硬件方案 4 1.4.2、软件需求 5 2、 系统的硬件设计与实现 5 2.1、 主控芯片电路 6 2.2、 flash芯片电路 7 2.2.1、Nand flash芯片电路 8 2.2.2、

22、nor flash芯片电路 8 2.3、 串口电路 9 2.4、 usb端口电路 10 2.5、 系统总线及lcd接口电路 10 2.6、 电源电路 11 3、 系统的软件设计 11 3.1、系统概述 11 3.2、软件详细设计 11 3.2.1、主函数 11 3.2.2、画布 13 3.2.3、位图元素 13 3.2.4、GPS类 14 3.2.5、主界面 20 3.2.6、地图窗口 22 3.2.7、多媒体播放窗口 23 3.2.8、游戏窗口 24 3.2.9、日历窗口 24 3.2.10、电子书窗口 25 3.2.11、声卡驱动移植 26 3.2.1

23、2、触摸屏驱动移植 26 3.2.13、RTC驱动 27 4、 移植与测试 28 4.1、检查编译环境的搭建 29 4.2、图形界面的搭建 30 4.3、测试 32 5、 总结 36 III 1、 系统方案选择和论证 1.1、引言 GPS 是英文Global Positioning System(全球定位系统)的简称,而其中文简称为“球位系”。GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统 。其主要目的是为陆、海、空三大领域提供实时、 全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的。随着人民生活水平的

24、发展,GPS技术被越来越多的应用在个人PDA、个人车载终端、手机等设备上。人们通过GPS,能准确知道自己所在的位置,从实现到导航、确定旅游路线、获取地理信息等功能。本文介绍的GPS导航系统,以ARM作为主控芯片,配以GPS、TFT触摸屏、嵌入式LINUX操作系统,构建了一个集GPS信息显示、地图显示为一体的完整系统。本系统在一定程度上推动了GPS导航设备研究的发展。 1.2 方案说明 1.2.1、 总体设计方案 个人手持设备要求界面美观、功耗低、易于操作。系统应有彩色触摸屏;低功耗、高速度的处理芯片;带有嵌入式操作系统;GPS信息接收模块;sd卡用以存放地图。 模块框图分别如图1所示:

25、 影音音频 数据交互 用户交互 影音视频 定位导航信息 娱乐模块 扬声器 ARM9平台 嵌入式Linux+Qt/E SD卡、USB存储 多媒体模块 GPS模块 液晶、触摸屏模块 图1.1 系统结构框图 1.2.2、 系统功能说明 (1).定位功能 GPS通过接收卫星信号,可以准确地定出其所在的位置,位置误差小于10米。利用GPS,在地图上实时显示车辆当前位置。 (2).地图导航功能 输入目标地点后,自动在地图上显示出行车路线;假如用户因为不小心错过路口,没有走

26、车载GPS导航系统推荐的最佳线路,新为用户设计一条回到主航线路线,或是为用户设计一条从新位置到终点的最佳线路。 (3).娱乐功能 播放U盘、SD卡中的MP3、MP4文件,也可查看电子书。 (4).数据存储功能 将地图文件,影音文件,电子书等数据存储在SD卡中。 1.3、 部分模块设计方案 1.3.1、 控制模块设计方案 ARM是一种处理器的IP核。英国ARM公司开发出处理器结构后向其他芯片厂商授权制造,芯片厂商可以根据自己的需要进行结构与功能的调整,因此实际中使用的ARM处理器有很多种类,主要有三星、飞利浦、ATMEL、INTEL制造的几大类,功能与使用上均不相同。ARM处理器核

27、还可以嵌入其他专用芯片中作为中央处理单元使用,例如飞利浦的MP3解码芯片就是采用ARM7核心的。ARM系列处理器很少集成片上硬件资源,更接近今天的处理器范畴,基本不被认为是单片机。 AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比运行效率高很多、芯片内部的Flsah、EEPROM、SRAM容量较大、全部支持在线编程烧写(ISP、每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强、内部资源丰富,一般都集成AD、DA模数转换器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。主要现在使用的型号是ATMEGA8/16。因此有以下两种

28、选择方案。 方案一:采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。用于语音处理和识别等领域。满足系统GPS模块和语音导航功能的需要。但由于本系统需要彩色人机交互界面,对处理速度要求较高,故不采用。 方案二:采用三星公司的s3c2440。s3c2440采用ARM920t内核,实现了MMU、ARBA、BUS和Harvard的高速缓冲体系结构。它是一块高性能、低功耗的嵌入式芯片,并且可植入操作系统。在个人PDA领域应用较广。植入操作系统后,用户在GUI编程方面具有很大优势。它内置AD/DA,便于扩展语音模

29、块。故选用此芯片为主控芯片。 1.3.2、 操作系统选择方案 本项目选用Linux操作系统,Linux操作系统广泛应用在嵌入式设备中,因其源代码开放、免费;内核性能高效、多任务、可制定;完善的图形管理、文件管理机制;良好的开发环境、强大的工具集 。而且可移植QT开发环境,可实现跨平台的编译,代码重用率高。最重要的是开放的源码使开发成本降低。 1.3.3、 GPS模块选择方案 方案一:采用串口接口GPS模块。优点:便于驱动,价格便宜。缺点:嵌入式linux的调试需要用到串口,若GPS模块占用了串口会造成调试不便。故不采用 方案二:采用usb接口GPS模块。优点:便于携带、连接开发板。

30、缺点:驱动相对较难、价格相对较贵。为了便于调试和携带,采用usb接口GPS模块。 1.3.4、显示模块设计方案 方案一:采用LCD显示。液晶显示屏(LCD)具有轻薄短小,低耗电量。但不能实现触摸功能,故不采用。 方案二:采用TFT显示。TFT屏幕带有四线式电阻触摸膜,能实现触摸功能、便于用户操作,故采用。 1.3.5、地图文件存放方案 方案一:采用s3c2440核心板内置nand flash 存放。Nand flash 读取速度快。但容量较小,只有128M,不适合存放大量地图数据,故不采用。 方案二:采用外置sd卡。Sd卡读取速度相对较慢,且会增加成本。但能存放大量数据(1G~

31、8G),地图更新升级也很方便。故采用。 1.4、总体方案确定 1.4.1、系统硬件方案 表1.1系统硬件方案 名称 说明 CPU S3C2410, MPLL=200M FLASH 2M norflash + 64M Nand Flash SDRAM 64M USB 1个USB Host接口, 1.1标准 网口 10M 串口 2个3线串口 SD卡接口 sd卡容量1G I/O 8路I/O LCD 3.5寸240*320 TFT屏 触摸屏 4线电阻式触摸屏 GPS模块 3线串口接线 U盘 容量1~4G 1.4.2、软件需求 表1.

32、2 软件需求 名称 说明 操作系统 Linux-2.6.26 开发工具 GNU工具 启动代码 u-boot 1.3.4 驱动程序 所有硬件驱动 文件系统 根文件系统采用cramfs,用户文件系统采用yaffs2 GUI QT 地图 百度地图 2、 系统的硬件设计与实现 系统硬件采用友善之臂的mini2440开发板。Mini2440体积小,便于携带;接口丰富,易于扩展;功耗低,便于长时间户外导航。 Mini2440硬件特性如下图: 图1.2 主控芯片电路 2.1、 主控芯片电路 主控芯片为s3c2440的6层核心板,该核心板性能稳定、工艺精良

33、 图2.1 主控芯片电路 2.2、 flash芯片电路 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。 由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。 执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计

34、表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。  ● NOR的读速度比NAND稍快一些。  ● NAND的写入速度比NOR快很多。  ● NAND的4ms擦除速度远比NOR的5s快。  ● 大多数写入操作需要先进行擦除操作。  ● NAND的擦除单元更小,相应的擦除电路更少。  2.2.1、Nand flash芯片电路 Nand flash是操作系统的程序存储区,该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量128M。适合存放高密度数据结构 图2.2 nand f

35、lash芯片电路 2.2.2、 nor flash芯片电路 Norflash是系统BIOS存储区。该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量8M。适合高速度、低数据密度的数据结构。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。  图2.3 nor flash芯片电路 2.3、 串口电路 采用max3232电平转换芯片与计算机通信。 图2.4 串口电路 2.4、 usb端口电路 采用usb2.0协议,usb接口是用来连接gps模块。 图2.5 usb端口电路

36、 2.5、 系统总线及lcd接口电路 图2.6系统总线及lcd接口电路 2.6、 电源电路 系统的输入电压为DC5VC,因此可以通过LM1117-1.8、LM1117-33、MAX8869EU18芯片来转换成系统需要的三种电压分别为:1.8V、3.3V、1.25V。 图2.6 电源电路 3、 系统的软件设计 3.1、系统概述 本系统的所有程序均采用C++语言编写,开发工具为Qt,开发环境为ubuntu 11.10。应用软件开发的模块化思想来开发这个项目,程序定义了许多类来分别管理各个模块,通过对各个类的操作,来构建整个程序框架。各个类对象即可单独提取出作为独立的一个有机

37、代码,大大增加了项目的健壮性及可移植性。在将要进行的以下的代码介绍中一般只给出了定义,某些类的具体实现未给出。 3.2、软件详细设计 3.2.1、主函数 主函数,项目入口,用于启动其他模块,并在屏幕上显示主界面窗口。 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include "gps.h" #include "mplayer.h" #include "ebook.h" #include "minesweeping.h" #inc

38、lude "ui_mainwindow.h" /*namespace Ui { class MainWindow; }*/ class MainWindow : public QMainWindow,public Ui::MainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void ShowMplayer(); void ShowGps(); void ShowMi

39、ne(); void ShowCalendar(); void ShowEbook(); private: //Ui::MainWindow *ui; }; #endif // MAINWINDOW_H #include #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec

40、); } 3.2.2、画布 定义画布,在此画布上进行图形界面的生成,绘制,画布也就相当于一个窗口界面。我们所要展示的内容都通过画布产生界面,内容在该界面生成,并且予以显示。 #ifndef MYCAVANS_H #define MYCAVANS_H #include #include "mypixitem.h" class MyCavans:public QGraphicsScene { Q_OBJECT public: explicit MyCavans(QObject *parent = 0); ~MyC

41、avans(); int pd(int x,int y) { if(x<0||x>9||y<0||y>9) return 0; return 1; } void changeblock(int x,int y) {pItem[x][y].changeMe();} protected: MyPixItem pItem[10][10]; bool mineFlag[100]; int mNum; }; #endif // MYCAVANS_H 3.2

42、3、位图元素 定义位图元素,具体绘画对象,以及在画布上对绘画对象的鼠标事件的回应。 #ifndef MYPIXITEM_H #define MYPIXITEM_H #include #include class MyPixItem:public QGraphicsPixmapItem { public: MyPixItem(); bool getMflag() {return mineflag;} void changeMflag(bool m) {minefla

43、g = m;} void addM() {isMine++;} void makex(int a) {x = a;} void makey(int a) {y = a;} static void addok() {okNum++;} static int getok() {return okNum;} void changeMe(); int pd(int x,int y) { if(x<0||x>9||y<0||y>9)

44、 return 0; return 1; } signals: //void Pcheck(MyPixItem* p); protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); bool okflag; bool mineflag; bool markflag; int isMine; int x; int y; static int okNum; }; #endif // MY

45、PIXITEM_H 3.2.4、GPS类 定义类GPS,用来读取GPS接收器传来的数据,并进行分析处理,用于汽车定位等。 #ifndef GPS_H #define GPS_H #include //#include "ui_gps.h" namespace Ui { class gps; } class gps : public QDialog { Q_OBJECT public: explicit gps(QWidget *parent = 0); ~gps(); int gpsState;

46、 void locate(float lng, float lat); protected: virtual void timerEvent ( QTimerEvent * event ); private slots: void on_pushButton_clicked(); private: Ui::gps *ui; }; int initGPS(); void closeGPS(); int getLngLat(float *longitude, float *latitude); #endif // GPS_H #include "g

47、ps.h" #include #include #include "ui_gps.h" #include #include #include #include #include //#include #include #include #include #include using name

48、space std; gps::gps(QWidget *parent) : QDialog(parent), ui(new Ui::gps) { ui->setupUi(this); gpsState = initGPS(); if (gpsState != 0) cerr<<"GPS device can not be opend "<

49、ng, float lat) { QString call = "locateLngLat("; QString num; num.setNum(lng); call += num; call += ", "; num.setNum(lat); call += num; call += ")"; cout << "lng: " << lng << "\t" << "lat: " << lat << endl; ui->webView->page()->mainFram

50、e()->evaluateJavaScript(call); } void gps::timerEvent ( QTimerEvent * event ) { static float lng = 121.49704f; static float lat = 31.276478f; lng += 0.00005f; lat += 0.00005f; int result = 0; if ((result = getLngLat(&lng, &lat)) == 0) { cout<<"lng "<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服