Dragonboard 410c开发板应用:使用Python脚本解析GPS报文位置信息_第1页
Dragonboard 410c开发板应用:使用Python脚本解析GPS报文位置信息_第2页
Dragonboard 410c开发板应用:使用Python脚本解析GPS报文位置信息_第3页
全文预览已结束

下载本文档

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

文档简介

Dragonboard410c开发板应用:使用Python脚本解析GPS报文位置信息dragonboard410c是一款非常强大的开发板,其自带了GPS,wifi和高性能的图形处理单元,可以方便的实现物联网中的各项功能需求,GPS作为物联网设备中常用的功能,可以方便的实现对设备的定位,是许多物联网应用的基础,这篇blog将向大家简单的介绍如何使用Python脚本在dragonboard410c上解析GPS报文数据。首先我们需要了解GPS报文格式,这里我们介绍和使用的是目前行业推荐的常用的GPS报文格式,如下:d.推荐定位信息(RMC)$GPRMC,,,,,,,,,,,,*hhUTC时间,hhmmss(时分秒)格式定位状态,A=有效定位,V=无效定位纬度ddmm.mmmm(度分)格式(前面的0也将被传输)纬度半球N(北半球)或S(南半球)经度dddmm.mmmm(度分)格式(前面的0也将被传输)经度半球E(东经)或W(西经)地面速率(000.0~999.9节,前面的0也将被传输)地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)UTC日期,ddmmyy(日月年)格式磁偏角(000.0~180.0度,前面的0也将被传输)磁偏角方向,E(东)或W(西)模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)e.地面速度信息(VTG)$GPVTG,,T,,M,,N,,K,*hh以真北为参考基准的地面航向(000~359度,前面的0也将被传输)以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)地面速率(000.0~999.9节,前面的0也将被传输)地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)看到上面的格式后,结合前面几篇blog中有关的XML文件的解析和python脚本消息的操作,这就非常简单了,我们如果需要读取GPS报文中的位置信息和时间信息,就可以设计下面的函数来完成:

classgpsDataProcessing:

def__init__(self,gpsFrame):

self.gpsData=gpsFrame

#getlatitudeandlongitudedatefromgpsFrame

#EastLongitudeandNorthlatitudeisabspositivenumber+

#Westlongtudeandsouthlatitudeisnegative-

#return(longitudeandlatitude)

defgetPosition(self):

#whengpsFrameisGPRMC

longitude=0.0

latitude=0.0

dataList=self.gpsData.split(',')

utcTime=dataList[1]

ifdataList[0]=='$GPRMC'ordataList[0]=='$gprmc':

ifdataList[6]=='E'ordataList[6]=='e':

longitude=float(dataList[5])

elifdataList[6]=='W'ordataList[6]=='w':

longitude=0-float(dataList[5])

else:

return-1

ifdataList[4]=='N'ordataList[4]=='n':

latitude=float(dataList[3])

elifdataList[4]=='S'ordataList[4]=='s':

latitude=0-float(dataList[3])

else:

return-1

elifdataList[0]=='$GPGGA'ordataList[0]=='$gpgga':

ifdataList[5]=='E'ordataList[5]=='e':

longitude=float(dataList[4])

elifdataList[5]=='W'ordataList[5]=='w':

longitude=0-float(dataList[4])

else:

return-1

ifdataList[3]=='N'ordataList[3]=='n':

latitude=float(dataList[2])

elifdataList[3]=='S'ordataList[3]=='s':

latitude=0-float(dataList[2])

else:

return-1

return(utcTime,longitude,latitude)在上面的python代码里面,我们构

温馨提示

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

评论

0/150

提交评论