




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 2 2 3 31.2.2操作系统及选择方案 3 3 1.2.5地图文件存放方案 错 4 5 7 9 9 10 10 11 113.3Mainwidget类 12 12 133.6gps_diver类 14 15 163.9Makefile文件 16 164.1操作系统烧写测试 16 184.3地图显示测试 20 错 234.6其他测试 234.7测试结果分析 23 23参考文献: 23 24 24基于ARM-LINUX的GPS导航系统摘要:本系统由GPS数据采集并显示、地图显示两大部分组成,模拟GPS导航的过程。TheARM-LINUX-basedGPSnavigationsyZhuHengTFT触摸屏TFT触摸屏Fig.1SystemStructureDiagram(调试及下载)Linux操作系统广泛应用在嵌入式设备中,其源代码开放、免费;内核性能高效、多任务、可制定;完善的图形管理、文件管理机制;良好的开发环境、强大的工具集。采用外置sd卡。Sd卡读取速度相对较慢,且会增加成本。但能存放大量数据(1G~8G),地图更新升级也很方便。UDA1341TS;费类电子、工业控制、车载导航、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用,其小巧、紧凑、一体式的人性化外观设计也是高校、培训机构、嵌入式爱好者学习研究的最佳工具。Fig.2Master-chipcircuitryFig.2.1CircuitofultrasonictransmittingandrNandflash是操作系统的程序存储区,该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量128M。适合存放高密度数据结构Fig.2.2.1CircuitofultrasonictransmittingandreceivingNorflash是系统BIOS存储区。该芯片掉电不丢失数据、寿命长,可反复擦写。芯片MainTAB-StaSNR*pStaSNR-GPSInfo*pGPSInfo+SetPosition(&GPS_DATAGPSData)Config-SetMap(const&MAP_PARAMMapPara-setCOM(const&COM_PARAMCOMPar-GetObject(GPS)-GetObject(Map)获取定位点的背景地图GPSDriver-intCOMfd;+setCOM(COM_PARAM&COMParam)GPSInfoMAPStaSNR+SetData(constGPS_STASNR&GPSStaSNR)+SetMap(const&MAP_PARAMMapParam)GPSParser+GetData(&GPS_DATAGPSData)+GetData(&GPS_STASNRGPSStaSNR)Maintab类负责程序外框基本定义及程序初始化设置好卫星信号强度数据设置窗口大小、颜色Mainwidgt类负责对各个按钮部件、页面部件的初始化绘制主框绘制上下左右四个按键绘制三个页面标签连接点击按钮事件与处理按键程序地图显示算法:首先把地图分割成n*n小块。然后系统通过得知整X地图四角的坐标,计算出地图每个像素点所对应的坐标。最后根据读取的gps信息,找到对应的地图,并NY修改显示的地图),设置串口属性,访问gps模块计算经纬度坐标值Fig.3.6gps_driverclassFlowchartNYFig.3.7strSNRclassFlowchart#definePDF(level,f由于使用qt开发环境,程序可以在x86平台上与arm平台上分别运行。只需要修改Makefile文件息。分别代表整个地图的左上角经纬度、右下角经纬度、地图像素的长度、地图像素地图软件获取方法:采用专业地图下载软件UMD(universalmapsdownload用户只需在此软件里输入想要地图的四角经纬度坐标。即可得到所需地图。保证mapinfo.txtL里的地图坐标与实际坐标一致。4.1操作系统烧写测试安装操作系统测试的目的是搭建系统的软件环境,便于后续工作Fig.4.1.1Flowchartofprogramofcoolingautomatically0.013%0.012%[9]ThomasL.Floyd.ElectronicDevices[M].Prentice-HallInc,New至此,我的毕业设计已经基本完成。回想过去的点点滴滴,如果没有学校、学院、老师、同学的关心和帮助,我也无法按期完成这令我满意的作品。112UT33D数字万用表13141526精密电流、电压表2#include<qapplication.h>#include<qcanvas.h>#include<qfont.h>#include<qimage.h>#include<qpainter.h>#include<qrect.h>MainTab::MainTab(QWidget*parent,constchar*name):QTabWidget(parent,na{GpConfig->GetObject(GpMaaddTab(GpMainLayout,addTab(GpGPS,QString("GaddTab(GpConfig,QSt}voidMainTab::timerEvent(QTimerEventPDF(3,"TABMastertimeralarGpGPS->mpSatSNR->SetData(GpMainLayout->pzhDrawRect->pGpsdriver->m;GpMainLayout->pzhDrawRect->pGpsdriver->GetData(GpGPS->mpGPSinfo->SetData(PDF(3,"TABMastertimeren}{}{}{{{}priv->buffer[priv->}{{}}}{}{{{pcmd_buf->buf[pcmd_buf->pos]=(char)(idatpcmd_buf->pos++;pcmd_}}while(j++<BUFSIZE);PDF(2,"pos=%d\n",pcmd_bpcmd_buf->buf[pcmd_buf->//PDF(4,"pos=%dibufpos=%damsg=%s\n",pos,}{}{}intzh_gpsDriver::G{1:memcpy(&(mGPSStaSNR.Sta[0memcpy(&(mGPSStaSNR.Sta[1]),&(pGPS_GPGSV->Sta2),sizeof(STA_INFmemcpy(&(mGPSStaSNR.Sta[2]),&(pGPS_GPGSV->Sta3),sizeof(STA_INFmemcpy(&(mGPSStaSNR.Sta[3]),&(pGPS_GPGSV->Sta4),sizeof(STA_INF2:memcpy(&(mGPSStaSNR.Sta[4]),&(pGPS_GPGSV->Sta1),memcpy(&(mGPSStaSNR.Sta[5]),&(pGPS_GPGSV->Sta2),sizeof(STA_INFmemcpy(&(mGPSStaSNR.Sta[6]),&(pGPS_GPGSV->Sta3),sizeof(STA_INFmemcpy(&(mGPSStaSNR.Sta[7]),&(pGPS_GPGSV->Sta4),sizeof(STA_INF3:memcpy(&(mGPSStaSNR.Sta[8]),&(pGPS_GPGSV->Stamemcpy(&(mGPSStaSNR.Sta[9]),&(pGPS_GPGSV->Sta2),sizeof(STA_INFmemcpy(&(mGPSStaSNR.Sta[10]),&(pGPS_GPGSV->Sta3),sizeof(STA_INFmemcpy(&(mGPSStaSNR.Sta[11]),&(pGPS_GPGSV->Sta4),sizeof(STA_INF}}intzh_gpsDriver::CMD_Ana{PDF(3,"sentence:%s\nend\n",pcmd_bpcmd=strstr(&pcmd_buf->buf[0],"$GPRMC");/{{}PDF(3,"gpsSwFiled=%c\n",mpGPS_GPRMC-//Gpsid,utc_time,gps_sw,latitude,lati_ns,longitude,longi_ew,spd);sscanf(pcmd,"%[^,],%[^,],%c,%lf,%c,%lf,%c,%lf,%lf,%[^,],%lf,mpGPS_GPRMC->Gpsid,mpGPS_GPRMC->utc_time,&mpGPS_GPRMC->gps_sw,&mpGPS_GPRMC->latitude,&mpGPS_GPRMC->lati_ns,&mpGPS_GPRMC->longitude,&mpGPS_GPRMC->longi_ew,/*7*/&mpGPS_GPRMC->speed,&mpGPS_GPRMC->angle,mpGPS_GPRMC->utc_date,&mpGPS_GPRMC->magneDeclinat,&mpGPS_GPRMC->magneDeclinatAngle,mpGPS_GPRMC->sumCheck);CMDBUF_Init(&buf);return3;}mpGPS_GPRMC->latitude=ddmm2dddd((mpGPS_GPRMC->latitude/100));mpGPS_GPRMC->longitude=ddmm2dddd((mpGPS_GPRMC->longitude/100));mpGPS_GPRMC->gps_sw,mpGPS_GPRMC->latitude,mpGPSmpGPS_GPRMC->longitude,mpGPS_GPRM}pcmd=strstr(&pcmd_buf->buf[0],"$GPGSV"){{}sscanf(pcmd,"%[^,],%d,%d,%d,%d,mpGPS_GPGSV->GPGSV,&mpGPS_GPGSV->GSV_NOB,&m&mpGPS_GPGSV->Sta1.StaID,&mpGPS_GPGSV->Sta1.StaA,&mpGPS_GPGSV->Sta1.&mpGPS_GPGSV->Sta2.StaID,&mpGPS_GPGSV->Sta2.StaA,&mpGPS_GPGSV->Sta2.&mpGPS_GPGSV->Sta3.StaID,&mpGPS_GPGSV->Sta3.StaA,&mpGPS_GPGSV->Sta3.&mpGPS_GPGSV->Sta4.StaID,&mpGPS_GPGSV->Sta4.StaA,&mpGPS_GPGSV->Sta4.mpGPS_GPGSV->sumChe}}}voidzh_gpsDriver::CMDBUF_Init(CMD_BUF*pcmd_buf){}{GPSData.lati=mpGPS_GPRMC-GPSData.lont=mpGPS_GPRMC->GPSData.sw=mpGPS_GPRM}{}{{}{}{}}{}}voidzh_gpsDriver::timerEvent(QTimerEvent{{{{PDF(2,"ttyreadbytes1=%d\n",re//================while(GPRS_GetTextLineFromFIFO(&buf))}}PDF(3,"zh_gpsDrivertimerout!\n");//=========================}elsePDF(3,"notthis}intzhMap::CMD_Analysis(char*pcmd_buf){pcmd=strstr(&pcmd_buf[0],"mapinfo:");/{msgid,&A_lont,&A_lati,&B_lont,&B_lati,&Width,&Height,/PDF(2,"A_lont=%lf,A_lati=%lf,B_lont=%lf,B_lati=%lf\n",APDF(2,"Width=%d,Height=%d,subWidth=%d\n",Width,Height,s}pcmd=strstr(&pcmd_buf[0],"xxx");}{OfilePtr=Mapstr.latin1();//Mapstr.toStdString();//".PDF(2,"OfilePtr=%s\n",OPDF(1,"can'topenmap.cfgfiwhile(fgets(msg,sizeof(msg),infile)!=NUL{}}{/*A_lont=114.350683;//左上点经A_lati=30.5360;//左上点B_lati=30.521867;//mapPath=QStrmappath.latinWidthNumber=Width/subWidth+1;//图像水平分割的HeightNumber=Height/subWidth+1;///图像垂直pixPerLont=((double)Width)/(B_lonpixPerLati=((double)Height)/(A_latPDF(2,"WidthNumber=%dHeightNumber=%dpixPerLont=%lfpixPerLati=%lf\n",WidthNumber,HeightNumber,pixPerLont,pi}{mapPath=QStrmappath.latinWidthNumber=Width/subWidth+1;//图像水平分割的HeightNumber=Height/subWidth+1;///图像垂直pixPerLont=((double)Width)/(B_lonpixPerLati=((double)Height)/(A_latPDF(2,"WidthNumber=%dHeightNumber=%dpixPerLont=%lfpixPerLati=%lf\n",WidthNumber,HeightNumber,pixPerLont,pi}intzhMap::getMapABinfo(GPS_{A_gpsdata.lati=A_laA_gpsdata.lont=A_lo}intzhMap::getCurrMap(cons{{{xcenter=(int)((gpsdata.lont-A_lont)ycenter=(int)((A_lati-gpsdata.laAx=xcenter-(zhGpsWidth)Ay=ycenter-(zhGpsHeight)fileStr.sprintf("%s/_%02picloadFlag=pixmapA.loadfileStr.sprintf("%s/_%02picloadFlag=pixmapB.loadfileStr.sprintf("%s/_%02picloadFlag=pixmapC.loadfileStr.sprintf("%s/_%02picloadFlag=pixmapD.loadpaintmap.begin(&pixAxW=subWidth-Ax%subWidAyH=subWidth-Ay%subWid{paintmap.drawPixmap(0,0,pixmapA,(Ax%subWidth),(Ay%subWidth),(z}elseif(AxW>zhGpsWid{paintmap.drawPixmap(0,0,pixmapA,(Ax%subWidth),(Ay%subWidth),(zpaintmap.drawPixmap(0,AyH,pixmapC,(Ax%subWidth),0,(zhGpsWidth)}elseif(AxW<=zhGpsWid{pixmapA,(Ax%subWidth),(Ay%AxW,(zhGpsHeight-AyH));//orgxypicppaintmap.drawPixmap(AxW,AyH,pi}elseif(AxW<=zhGpsWi{paintmap.drawPixmap(0,0,pixmapA,(Ax%subWidth),(Ay%subWidth),AxW,zhGpsHeight);//orgpaintmap.drawPixmap(AxW,0,pixmapB,0,(By%subWidth),}}QCanvasView(&canvas,parent,name){//====paintabpicpcanvas=&canvas;zhmap.resize(QSize(zhGpsWidth,zhGpsHeight));mainmap.getMapABinfo(MapInfoApositon,MapInfoBpositon);maingps.lati=MapInfoBpositon.lati+(MapInfoApositon.lati-MapInfoBpositon.latmaingps.lont=MapInfoApositon.lont+(MapInfoBpositon.lont-MapInfoApositon.lonmainmap.getCurrMap(maingps,zhmap);canvas.setBackgroundPixmap(zhmap);canvas.resize(zhGpsWidth,zhGpsHeight);//setFixedSize(zhGpsHeight,zhGpsHeight);r=newQCanvasRectangle(zhGpsWidth/2,zhGpsHeight/2,zhP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承包三证齐全出租车合同
- 润滑油购销合同
- 工伤死亡一次性赔偿协议书范本
- 买卖车辆协议书本范本
- 2025年辅导教师劳动合同
- 合伙开发石场协议书
- 2025年03月国家药品监督管理局医疗器械技术审评中心合同制人员公开招聘2人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 高级系统架构设计师-2021年下半年《系统架构设计师》真题
- 广东以色列理工学院《基础和声(二)》2023-2024学年第二学期期末试卷
- 山东英才学院《书法》2023-2024学年第一学期期末试卷
- 高低压配电安全知识讲座
- 《有机磷农药中毒》课件
- 大地保险公司管理制度
- 幼儿园公开课:大班语言《相反国》课件(优化版)
- 2022版煤矿安全规程解读
- 中国变应性鼻炎诊断和治疗指南(2022版)解读
- 组合电器(gis)设备解体大修作业指导书
- 复变函数与积分变换-西北工业大学中国大学mooc课后章节答案期末考试题库2023年
- SAP各模块常用表清单
- 天然气管道置换记录表
- 护士单人心肺复苏技术操作考核评分标准
评论
0/150
提交评论