GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其他通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本文所使用的GARMIN GPS天线板,其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到,该帧的结构及各字段释义如下:

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh

<1> 当前位置的格林尼治时间,格式为hhmmss

<2> 状态, A 为有效位置, V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。

<3> 纬度, 格式为ddmm.mmmm

<4> 标明南北半球, N 为北半球、S为南半球

<5> 径度,格式为dddmm.mmmm

<6> 标明东西半球,E为东半球、W为西半球

<7> 地面上的速度,范围为0.0到999.9

<8> 方位角,范围为000.0到 359.9 度

<9> 日期, 格式为ddmmyy

<10> 地磁变化,从000.0到 180.0 度

<11> 地磁变化方向,为E 或 W

至于其他几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对"$GPRMC"帧进行数据的提取处理。如果情况特殊,需要从其他帧获取数据,处理方法与之也是完全类似的。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码"$"来判断是否是帧头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。下面就是对缓存Data中的数据进行解帧处理的主要代码,本文在此只关心时间(日期和时间)和地理坐标(经、纬度):

for(int i=0;i  if(Data=='$') file://帧头,SectionID为逗号计数器

SectionID=0;

if(Data==10){ file://帧尾

}

if(Data==',') file://逗号计数

SectionID++;

else {

switch(SectionID){

case 1: file://提取出时间

m_sTime+=Data;

break;

case 2: file://判断数据是否可信(当GPS天线能接收到有3颗GPS卫星时为A,可信)

if(Data=='A')

GPSParam[m_nNumber].m_bValid=true;

break;

case 3: file://提取出纬度

m_sPositionY+=Data;

break;

case 5: file://提取出经度

m_sPositionX+=Data;

break;

case 9: file://提取出日期

m_sDate+=Data;

break;

default:

break;

}

}

}

现在已将所需信息提取到内存,即时间、日期以及经纬度分别保存在CString型变量 m_sTime、m_Data、m_sPositionY和m_sPositionX中。在实际应用中往往要根据需要对其做进一步的运算处理,比如从GPS接收机中获得的时间信息为格林尼治时间,因此需要在获取时间上加8小时才为我国标准时间。而且GPS使用的WGS-84坐标系也与我国采用的坐标系不同,有时也要对此加以变换。而这些变换运算必须通过数值运算完成,因此需要将前面获取的字符型变量转化为数值型变量,这部分工作可放在检测到帧尾完成:

::strcpy(buf,m_sTime);

str.Format("%c%c",buf[0],buf[1]);

GPSPar

gpgga格式读取MATLAB,GPS编码格式及读取.doc相关推荐

  1. python读取ini文件编码格式_Python读取txt(.ini)文件BOM问题

    2018-06-13   11:20:40 在windows上使用open打开utf-8编码的txt文件时开头会有一个多余的字符,它叫BOM,是用来声明编码等信息的,但python会把它当作文本解析 ...

  2. matlab的各种数据读取(txt,dat,mat等格式)

    MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据:将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据.至于选择哪种机制,则根据下面两个因素决定: ● 用 ...

  3. MATLAB编程:简易读取分割存储 tif 格式图片

    MATLAB编程:简易读取分割存储 tif 格式图片 前言 一.介绍 二.MATLAB实现 三.总结 前言   本博主使用的MATLAB版本是2020b,这个版本可以使用许多有趣的扩展APP,本节将会 ...

  4. 在Python中读取MATLAB的数据文件

    简 介: 本文测试了几种通过python直接读取MATLAB的**.MAT格式的数据文件,有些方法经过测试发现无法完成.而通过mat4py可以比较方便的读取MATLAB中的数据文件.利用手边已有的用于 ...

  5. python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...

    原标题:某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置! 1. python读取图片exif属性中的GPS信息 智能手机或平板如果在拍照时开启定位服务,照片中就会记录拍照位置信息和 ...

  6. Matlab的各种数据读取、文件读写等操作汇总

    Matlab的各种数据读取.文件读写等操作汇总 MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据:将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据.至 ...

  7. MATLAB实现图像的读取、写入、显示

    MATLAB实现图像的读取.写入.显示 数字图像表示 1.相关名词解析 强度(灰度):将一幅图像定义为一个二维函数f(x,y),任何一对空间坐标(x,y)处的幅值f称为图像在该点处的强度或灰度. 数字 ...

  8. PHP安卓获取gpgga,科学网—GPS编码格式及C语言解码 - 王红旗的博文

    有关磁偏角和地图定位的问题: 地图的方向:上北.下南.左西.右东是大多数地图的方向,但这可不是通用原则,如果地图上有方向标,可以通过方向标了解到这些. 地磁极是接近南极和北极的,但并不和南极.北极重合 ...

  9. 一文教你如何用Python读取图片GPS定位

    起因 早上起来,看到有人问Python获取一张JPG格式图片拍摄的时候的GPS定位的代码.GPS应该说是个敏感的信息,既然有人想读取我们的信息,那么我们至少应该直到我们的敏感信息被保存在了哪里. 研究 ...

最新文章

  1. SharePoint 2010 自定义日志
  2. Back Propagation Nerual Networks
  3. 由树先序遍历和中序遍历输出其后续遍历
  4. 【DP】【递归】分离与合体
  5. 身体曲线如何反映出健康
  6. Android udp json+数组 ---gt;bytes发送数据
  7. 自然语言处理之TF-IDF
  8. php调用python导出excel_如何使用Django导出Excel代码问题
  9. C语言:使用冒泡算法将数组中的数据从大到小进行排序
  10. 54.Linux/Unix 系统编程手册(下) -- POSIX 共享内存
  11. Python 3.5安装JPype
  12. asp.net 写入excel时,不能更新。数据库或对象为只读。
  13. STM3库文件 hal_uart.c的使用
  14. 紧密中心度(Closeness Centrality)
  15. 【操作系统 · 磁盘】磁盘调度
  16. Spring学习记录01
  17. linux v4l2色调,V4L2下摄像头的详细参数调整
  18. 醉林疯的OJ 1063: 最大公约与最小公倍
  19. HDUOJ 2955 Robberies
  20. TCP 与UDP的区别

热门文章

  1. Java命令:jstat — 查看JVM的GC信息
  2. Android Button字母自动全部大写的问题
  3. Java提高篇 —— Java三大特性之封装
  4. 创业必经之路——Paul Graham创业曲线
  5. 移动互联网开始降温:“人才热”退烧
  6. 解决: bash: unzip: command not found、linux 安装 zip 命令
  7. Column count doesn't match value count at row 1 原因
  8. 网页“console”输出图文信息
  9. WatiN-Html元素的操作
  10. ASP.NET MVC3源码下载