基于QT的多媒体车载导航系统GPS毕业论文

上传人:无*** 文档编号:90914148 上传时间:2022-05-16 格式:DOC 页数:54 大小:1.37MB
收藏 版权申诉 举报 下载
基于QT的多媒体车载导航系统GPS毕业论文_第1页
第1页 / 共54页
基于QT的多媒体车载导航系统GPS毕业论文_第2页
第2页 / 共54页
基于QT的多媒体车载导航系统GPS毕业论文_第3页
第3页 / 共54页
资源描述:

《基于QT的多媒体车载导航系统GPS毕业论文》由会员分享,可在线阅读,更多相关《基于QT的多媒体车载导航系统GPS毕业论文(54页珍藏版)》请在装配图网上搜索。

1、 毕业设计(论文)题 目基于QT的多媒体车载导航系统6 / 54南 华 大 学毕业设计(论文)任务书学院:电 气 工 程 学 院 题目: 基于QT的多媒体车载导航系统 起止时间:2011年 12月 15 日至2011年 5 月 30 日学生: 马 步 云 专业班级: 自动化082 指导老师: 洪 镇 南 教研室主任: 兰 君 院 长: 立 宏 2011 年 12 月15日设计(论文)容与要求:一. 设计(论文)容:设计一个多媒体车载导航系统,用于汽车定位,智能导航,多媒体娱乐,以达到优化行车路径,随时查看所在地域,与时搜索餐饮、住宿、学校、医院等方位,方便旅行的目的。设计容1、多媒体车载导航系

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

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

4、版。4毕业论文用A4纸打印、按要求装订成册。三. 设计(论文)进度:1查阅国外相关文献资料,完成选题报告 (16周)2总体方案设计 (7周)3控制电路设计(8-11周)4元器件选择 (12周)5软件设计(12-14周)6撰写毕业论文 (1415周)7初稿预审、正稿打印 (16周)8递交毕业论文、毕业答辩 (17周)指导教师: .2011年12月22日南华大学本科生毕业设计(论文)开题报告设计(论文)题目基于QT的车载导航多媒体系统设计(论文)题目来源自主命题设计(论文)题目类型软件设计起止时间2012-2-132012-5-10一、 设计(论文)依据与研究意义随着我们生活水平的不断提高,汽车数

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

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

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

8、 Love6、UNIX 网络编程W.Richard Stevens7、UNIX环境高级编程Dennis M.Ritchie8、Unix 编程艺术Enic S.Raymond9、Linux设备驱动 EditionJonathan Corbet,,Alessandro Rubini,Greg Kroah-Hartman1. 设计(论文)研究方法与步骤进度安排如下:1、 查找文献资料,了解车载导航研究现状,研究成果,发展趋势与存在问题;2、 为系统制定初步的设计方案;3、 学习关于GPS、GPRS方面的知识;4、 更熟练的掌握并应用C+、QT的应用,学习QT编程;5、 熟悉为系统开发所适用的开发板,

9、包括其相关的接口,引导,核等信息;6、 学习嵌入式系统构建,制作交叉编译器,编写Bootloader、移植Linux核;7、 对基本的Linux驱动程序开发进行学习,包括串口、I/O、A/D转换等;8、 进行GPS车载导航程序的移植;9、 对整个系统进行整合并联调,解决其中出现的问题。五、进行设计(论文)所需条件1、查找相关最短路径算法的文案、理解不同的最短路径算法的主要思想2、学习关于GPS方面的知识3、学习基本的C+知识4、学习Qt编程5、编写自己的最短路径算法和GPS导航程序六、指导老师意见: 签名:年 月 日摘要:随着当前嵌入式技术和汽车产业的迅猛发展,车载导航系统成为当今汽车产业界的

10、一大热点之一。在欧美等发达国家,车载导航仪产品已经走向成熟,形成了规模化的市场需求。但中国的车载自主导航产品市场刚刚启动,许多产品尚处于实验室研发阶段。中国地域辽阔、人口众多并发展迅速,必将成为巨大的汽车消费市场,因此随着未来经济的发展,中国的车载导航产品将具有广阔的市场空间。研究车载导航系统在提高行车安全性、减轻驾驶者员负担等方面具有很大作用,对解决城市交通问题具有重要意义。本论文首先讨论了车载导航系统的原理和硬件结构,然后分析设计了软件系统的工作流程与实现方案;重点介绍了在ARM处理器和Linux操作系统实现车载导航终端各功能模块的详细过程。系统由GPS数据采集并显示、地图显示两大部分组成

11、,模拟GPS导航的过程。通过GPS模块、arm9硬件环境、嵌入式LINUX操作系统、TFT触摸屏等模块来完成整个体系的运作,使其实时采集GPS数据,然后将GPS数据对应的地图显示出来。本设计的特点在于界面友好、用户易操作、功耗低、便于户外导航。关键词:ARM;LINUX;GPS;C+语言;嵌入式操作系统Abstract:With the rapid development of embedded technology and automobile industry,vehicle navigation system has been well-known in automobile indus

12、try. In developed countries like Europe 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 cons

13、umption of cars in China. Therefore, 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 tr

14、ansportation problems.This Paper first discusses the principle of the vehicle navigation system and the principle of hardware structure,then the analysis has designed sottwaresystemS work flow and realizes the plan,focused on the ARM processor and theLinux operating system to achieve vehicle navigat

15、ion terminal and its functionalmodules 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 oth

16、er modules to complete the operation 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 sys

17、tem1、系统方案选择和论证11.1引言11.2 方案说明11.2.1、总体设计方案11.2.2、系统功能说明21.3、部分模块设计方案21.3.1、控制模块设计方案21.3.2、操作系统选择方案31.3.3、 GPS模块选择方案31.3.4、显示模块设计方案41.3.5、地图文件存放方案41.4、总体方案确定41.4.1、系统硬件方案41.4.2、软件需求52、系统的硬件设计与实现52.1、主控芯片电路62.2、 flash芯片电路72.2.1、Nand flash芯片电路82.2.2、 nor flash芯片电路82.3、串口电路92.4、 usb端口电路102.5、系统总线与lcd接口电

18、路102.6、电源电路113、系统的软件设计113.1、系统概述113.2、软件详细设计113.2.1、主函数113.2.2、画布133.2.3、位图元素133.2.4、GPS类143.2.5、主界面203.2.6、地图窗口223.2.7、多媒体播放窗口233.2.8、游戏窗口243.2.9、日历窗口243.2.10、电子书窗口253.2.11、声卡驱动移植263.2.12、触摸屏驱动移植263.2.13、RTC驱动274、移植与测试284.1、检查编译环境的搭建294.2、图形界面的搭建304.3、测试325、总结361、 系统方案选择和论证1.1、引言GPS 是英文Global Posit

19、ioning System(全球定位系统)的简称,而其中文简称为“球位系”。GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统 。其主要目的是为陆、海、空三大领域提供实时、 全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的。随着人民生活水平的发展,GPS技术被越来越多的应用在个人PDA、个人车载终端、手机等设备上。人们通过GPS,能准确知道自己所在的位置,从实现到导航、确定旅游路线、获取地理信息等功能。本文介绍的GPS导航系统,以ARM作为主控芯片,配以GPS、TFT触摸屏、嵌入式LINUX操作系统,构建了一个集GPS信息显示、地图显示为一体

20、的完整系统。本系统在一定程度上推动了GPS导航设备研究的发展。1.2 方案说明1.2.1、 总体设计方案个人手持设备要求界面美观、功耗低、易于操作。系统应有彩色触摸屏;低功耗、高速度的处理芯片;带有嵌入式操作系统;GPS信息接收模块;sd卡用以存放地图。模块框图分别如图1所示:影音音频数据交互用户交互影音视频定位导航信息娱乐模块扬声器ARM9平台嵌入式Linux+Qt/ESD卡、USB存储多媒体模块GPS模块液晶、触摸屏模块图1.1 系统结构框图1.2.2、 系统功能说明(1).定位功能GPS通过接收卫星信号,可以准确地定出其所在的位置,位置误差小于10米。利用GPS,在地图上实时显示车辆当前

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

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

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

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

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

26、更新升级也很方便。故采用。1.4、总体方案确定1.4.1、系统硬件方案表1.1系统硬件方案名称说明CPUS3C2410, MPLL=200MFLASH2M norflash + 64M Nand FlashSDRAM64MUSB1个USB Host接口, 1.1标准网口10M串口2个3线串口SD卡接口sd卡容量1GI/O8路I/OLCD3.5寸240*320 TFT屏触摸屏4线电阻式触摸屏GPS模块3线串口接线U盘容量14G1.4.2、软件需求表1.2 软件需求名称说明操作系统Linux-2.6.26开发工具GNU工具启动代码u-boot 1.3.4驱动程序所有硬件驱动文件系统根文件系统采用c

27、ramfs,用户文件系统采用yaffs2GUIQT地图百度地图2、 系统的硬件设计与实现系统硬件采用友善之臂的mini2440开发板。Mini2440体积小,便于携带;接口丰富,易于扩展;功耗低,便于长时间户外导航。Mini2440硬件特性如下图:图1.2 主控芯片电路2.1、 主控芯片电路主控芯片为s3c2440的6层核心板,该核心板性能稳定、工艺精良。图2.1 主控芯片电路2.2、 flash芯片电路flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器

28、件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块所有的位都写为0。由于擦除NOR器件时是以64128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以832KB的块进行的,执行一样的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 NAND的4ms擦除速度远比NOR的5s快。 大

29、多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少。2.2.1、Nand flash芯片电路Nand flash是操作系统的程序存储区,该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量128M。适合存放高密度数据结构图2.2 nand flash芯片电路2.2.2、 nor flash芯片电路Norflash是系统BIOS存储区。该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量8M。适合高速度、低数据密度的数据结构。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其部的每一个字节。图2.3 nor flash芯片电路2.3、 串口电路采

30、用max3232电平转换芯片与计算机通信。图2.4 串口电路2.4、 usb端口电路采用usb2.0协议,usb接口是用来连接gps模块。图2.5 usb端口电路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。应用软件开发的模块化思想来开发这个项目

31、,程序定义了许多类来分别管理各个模块,通过对各个类的操作,来构建整个程序框架。各个类对象即可单独提取出作为独立的一个有机代码,大大增加了项目的健壮性与可移植性。在将要进行的以下的代码介绍中一般只给出了定义,某些类的具体实现未给出。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#inclu

32、de ui_mainwindow.h/*namespace Ui class MainWindow;*/class MainWindow : public QMainWindow,public Ui:MainWindow Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); MainWindow();public slots: void ShowMplayer(); void ShowGps(); void ShowMine(); void ShowCalendar(); void ShowEbook();private: /Ui:

33、MainWindow *ui;#endif / MAINWINDOW_H#include #include mainwindow.hint main(int argc, char *argv) QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();3.2.2、画布定义画布,在此画布上进行图形界面的生成,绘制,画布也就相当于一个窗口界面。我们所要展示的容都通过画布产生界面,容在该界面生成,并且予以显示。#ifndef MYCAVANS_H#define MYCAVANS_H#include #include myp

34、ixitem.hclass MyCavans:public QGraphicsScene Q_OBJECTpublic: explicit MyCavans(QObject *parent = 0); MyCavans(); int pd(int x,int y) if(x9|y9) return 0; return 1; void changeblock(int x,int y) pItemxy.changeMe();protected: MyPixItem pItem1010; bool mineFlag100; int mNum;#endif / MYCAVANS_H3.2.3、位图元素

35、定义位图元素,具体绘画对象,以与在画布上对绘画对象的鼠标事件的回应。#ifndef MYPIXITEM_H#define MYPIXITEM_H#include #include class MyPixItem:public QGraphicsPixmapItempublic: MyPixItem(); bool getMflag() return mineflag; void changeMflag(bool m) mineflag = m; void addM() isMine+; void makex(int a) x = a; void makey(int a) y = a; stat

36、ic void addok() okNum+; static int getok() return okNum; void changeMe(); int pd(int x,int y) if(x9|y9) 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;

37、 static int okNum;#endif / MYPIXITEM_H3.2.4、GPS类定义类GPS,用来读取GPS接收器传来的数据,并进行分析处理,用于汽车定位等。#ifndef GPS_H#define GPS_H#include /#include ui_gps.hnamespace Ui class gps;class gps : public QDialog Q_OBJECTpublic: explicit gps(QWidget *parent = 0); gps(); int gpsState; void locate(float lng, float lat);prot

38、ected: 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 gps.h#include#include#include ui_gps.h#include#include#include#include#include/

39、#include#include#include #include #include using namespace std;gps:gps(QWidget *parent) : QDialog(parent), ui(new Ui:gps) ui-setupUi(this); gpsState = initGPS(); if (gpsState != 0) cerrGPS device can not be opend gpsStateendl;gps:gps() closeGPS(); delete ui;void gps:locate(float lng, float lat) QStr

40、ing call = locateLngLat(; QString num; num.setNum(lng); call += num; call += , ; num.setNum(lat); call += num; call += ); cout lng: lng t lat: lat webView-page()-mainFrame()-evaluateJavaScript(call);void gps:timerEvent ( QTimerEvent * event ) static float lng = 121.49704f; static float lat = 31.2764

41、78f; lng += 0.00005f; lat += 0.00005f; int result = 0; if (result = getLngLat(&lng, &lat) = 0) coutlng lngtlatendl; locate(lng/100.0f, lat/100.0f); else cerrgetLngLat error resultendl;void gps:on_pushButton_clicked() static int timer = 0; if (timer = 0) if (gpsState != 0) QMessageBox:information( th

42、is, GPS, gps device can not be opened!, QMessageBox:Ok); return; timer = startTimer(5000); couttimer timerstartedendl; else killTimer(timer); couttimer timerstoppedendl; timer = 0; int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop) struct termios newtio,oldtio; if ( tcgetattr( fd,&old

43、tio) != 0) perror(SetupSerial 1); return -1; bzero( &newtio, sizeof( newtio ) ); newtio.c_cflag |= CLOCAL | CREAD; newtio.c_cflag &= CSIZE; switch( nBits ) case 7: newtio.c_cflag |= CS7; break; case 8: newtio.c_cflag |= CS8; break; switch( nEvent ) case O: newtio.c_cflag |= PARENB; newtio.c_cflag |=

44、 PARODD; newtio.c_iflag |= (INPCK | ISTRIP); break; case E: newtio.c_iflag |= (INPCK | ISTRIP); newtio.c_cflag |= PARENB; newtio.c_cflag &= PARODD; break; case N: newtio.c_cflag &= PARENB; break; switch( nSpeed ) case 2400: cfsetispeed(&newtio, B2400); break; case 4800: cfsetispeed(&newtio, B4800);

45、cfsetospeed(&newtio, B4800); break; case 9600: cfsetispeed(&newtio, B9600); cfsetospeed(&newtio, B9600); break; case 115200: cfsetispeed(&newtio, B115200); cfsetospeed(&newtio, B115200); break; case 460800: cfsetispeed(&newtio, B460800); cfsetospeed(&newtio, B460800); break; default: cfsetispeed(&ne

46、wtio, B9600); cfsetospeed(&newtio, B9600); break; if( nStop = 1 ) newtio.c_cflag &= CSTOPB; else if ( nStop = 2 ) newtio.c_cflag |= CSTOPB; newtio.c_ccVTIME = 0; newtio.c_ccVMIN = 100; tcflush(fd,TCIFLUSH); if(tcsetattr(fd,TCSANOW,&newtio)!=0) perror( set error); return -1; return 0;static FILE *fp

47、= NULL;int initGPS() int nset1; fp = fopen(/dev/ttyUSB0, r); if(NULL = fp) return 1; nset1 = set_opt(fileno(fp),4800, 8, N, 1); if (nset1 = -1) fclose(fp); return 2; return 0;void closeGPS() if (fp) fclose(fp); fp = NULL; int getLngLat(float *longitude, float *latitude) char buf128; char begin20; ch

48、ar SN2 = 0; char WE2 = 0; char *flager = ,; while (1) memset(buf,0,128); if(NULL = fgets(buf, sizeof(buf), fp) return 3; memset(begin, 0, sizeof(begin); strcpy(begin, strtok(buf, flager); if(0 = strcmp(begin, $GPRMC) strtok(NULL, flager); strtok(NULL, flager); *latitude = atof(strtok(NULL, flager);

49、strcpy(SN, strtok(NULL, flager); *longitude = atof(strtok(NULL, flager); strcpy(WE, strtok(NULL, flager); return 0; 3.2.5、主界面主窗体通过五个pushButton发送信号,弹出导航、多媒体、游戏、日历和电子书五个窗体。点击对应选项,将分别出现对应的界面。#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include gps.h#include mplayer.h#include ebook.h#inclu

50、de minesweeping.h#include ui_mainwindow.h/*namespace Ui class MainWindow;*/class MainWindow : public QMainWindow,public Ui:MainWindow Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); MainWindow();public slots: void ShowMplayer(); void ShowGps(); void ShowMine(); void ShowCalendar(); void Sh

51、owEbook();private: /Ui:MainWindow *ui;#endif / MAINWINDOW_H#include mainwindow.hMainWindow:MainWindow(QWidget *parent) : QMainWindow(parent) setupUi(this); connect(pushButton_2,SIGNAL(clicked(),this,SLOT(ShowMplayer(); connect(pushButton,SIGNAL(clicked(),this,SLOT(ShowGps(); connect(pushButton_3,SIG

52、NAL(clicked(),this,SLOT(ShowMine(); connect(pushButton_4,SIGNAL(clicked(),this,SLOT(ShowCalendar(); connect(pushButton_5,SIGNAL(clicked(),this,SLOT(ShowEbook();MainWindow:MainWindow() /delete ui;void MainWindow:ShowMplayer() mplayer player; player.exec();void MainWindow:ShowGps() gps gps; gps.exec()

53、;void MainWindow:ShowMine() minesweeping minesweep; minesweep.exec();void MainWindow:ShowCalendar() QWidget *widget = new QWidget(); widget-setGeometry(0,0,320,240); widget-setWindowFlags(Qt:FramelessWindowHint); QCalendarWidget* calendar = new QCalendarWidget(widget); calendar-setGeometry(0,0,320,200); QPushButton* quitButton = new QPushButton(back,widget); quitButton-setGeometry(240,210,60,30); QObject:connect(quitButton,SIGNAL(clicked(),widget,SLOT(close(); widget-sho

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!