Chinaunix首页 | 论坛 | 博客
  • 博客访问: 880781
  • 博文数量: 284
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1960
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-04 16:41
文章分类

全部博文(284)

文章存档

2018年(5)

2017年(95)

2016年(69)

2015年(15)

2014年(100)

我的朋友

分类: 嵌入式

2014-08-21 16:29:04

GPRMC 格式

$GPRMC

格式为:
$GPRMC,010101.130, A, 3606.6834, N, 12021.7778, E, 0.0, 238.3, 010807,,,A*6C
$GPRMC, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>,

$ pos=0

<1> 当前位置的格林尼治时间,即世界时间,与北京时间差8个小时,格式为hhmmss.ms [pos+6]

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

注意几点:
1、当GPS数据有效时第17位(一般情况下,程序里最好是找第二个逗号在取下一位判断)为“A”,无效时为“V”;
2、GPS有效时,当速度为0时显示0.0(两位数),当速度不为0时小数点前面数据根据情况变化,最大为三位,此处速度单位为节(海里),需要做处理才能得到我们习惯的单位(公里/小时);
3、GPS无效时,除了第17位显示V以外,不输入速度,角度数据;
4、当给GPS复位时第17位为V,不输出速度,角度,时间数据。

d.推荐定位信息(RMC)//项目需要


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

$GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0.0,261009,,*38

<1> UTC时间,hhmmss(时分秒)格式    08 时20 分06 秒
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)  北纬38 度52.9276 分
<4> 纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)  东经115 度27.4283 分
<6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节,前面的0也将被传输)
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
<9> UTC日期,ddmmyy(日月年)格式    26日10月09年
<10> 磁偏角(000.0~180.0度,前面的0也将被传输)
<11> 磁偏角方向,E(东)或W(西)
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

经纬度格式分为三种:度、度-分、度-份-秒 
1.) ddd.ddddd 【度 . 度 格式】的十进制小数部分(5位)
2.) ddd°mm.mmm’ 【度 . 分 . 分 格式】的十进制小数部分(3位)
3.)   ddd°mm’ss’’ 【度 . 分 . 秒 格式】 Google 使用的是第三种格式  度 分’秒’’

在进行GPS测试时,可以先造一个GPRMC假数据测试 char *buf="$GPRMC,030025.000,A,3130.318461,N,12020.273168,E,0.000,40.8,020914,,,A*58";
如果每次等待有效数据来后在进入处理,调试时间过长,不方便。
阅读(17056) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~