1、 $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF> Global Positioning System Fix Data(GGA)GPS定位信息
$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*7
<1>UTC时间,hhmmss(时分秒)格式
<2>纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3>纬度半球N(北半球)或S(南半球)
<4>经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5>经度半球E(东经)或W(西经)
<6>GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7>正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
<8>HDOP水平精度因子(0.5~99.9)
<9>海拔高度(-9999.9~99999.9)
<10>地球椭球面相对大地水准面的高度
<11>差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12>差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)
2、 $GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7> GPS DOP and Active Satellites(GSA)当前卫星信息
$GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D
<1>模式 :M = 手动, A = 自动。
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
<4>PDOP位置精度因子(0.5~99.9)
<5>HDOP水平精度因子(0.5~99.9)
<6>VDOP垂直精度因子(0.5~99.9)
<7>Checksum.(检查位).
3、 $GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF> GPS Satellites in View(GSV)可见卫星信息
$GPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,30*70
<1>GSV语句的总数
<2>本句GSV的编号
<3>可见卫星的总数,00 至 12。
<4>卫星编号, 01 至 32。
<5>卫星仰角, 00 至 90 度。
<6>卫星方位角, 000 至 359 度。实际值。
<7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。
<8>Checksum.(检查位).
第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。
4、 $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF> Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息
$GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54
<1>UTC时间,hhmmss(时分秒)格式
<2>定位状态,A=有效定位,V=无效定位
<3>纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<4>纬度半球N(北半球)或S(南半球)
<5>经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<6>经度半球E(东经)或W(西经)
<7>地面速率(000.0~999.9节,前面的0也将被传输)
<8>地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
<9>UTC日期,ddmmyy(日月年)格式
<10>磁偏角(000.0~180.0度,前面的0也将被传输)
<11>磁偏角方向,E(东)或W(西)
<12>模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
5、 $GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF> Track Made Good and Ground Speed(VTG)地面速度信息
$GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04
<1>以真北为参考基准的地面航向(000~359度,前面的0也将被传输) <2>以磁北为参考基准的地面航向(000~359度,前面的0也将被传输) <3>地面速率(000.0~999.9节,前面的0也将被传输) <4>地面速率(0000.0~1851.8公里/小时,前面的0也将被传输) <5>模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效) 一般我们采用 RMC 定位信息
GPS接收到的数据格式及含义 如果此时GPS和卫星的通讯正常的话,可以接收到的数据格式样如下:
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
数据说明如下:
$GPRMC 代表GPS推荐的最短数据
204700 UTC_TIME 24小时制的标准时间,按照小时/分钟/秒的格式
A A 或者 V A表示数据"OK",V表示一个警告
3403.868 LAT 纬度值,精确到小数点前4位,后3位
N LAT_DIR N表示北纬,S表示南纬
11709.432 LON 经度值,精确到小数点前5位,后3位
W LON_DIR W表示西经,E表示东经
若当前没有和卫星取得联系,那么字符串的格式为: $GPRMC,UTC_TIME,V,...
扩展资料
没有解析出正确的字段,我们很容易定位是sscanf那条语句出了问题,由于我之前没用过这个函数,为此我上网查了好久这个函数的用法,后来把思路转向对比作者的GPRMC语句和我收到的GNRMC语句,除了开头不同,其他地方的差异,
$GPRMC,131913.000,A,3029.64972,N,11423.62352,E,0.00,0.00,200617,,,A*67
$GNRMC,085959.00,A,4000.73433,N,11628.03429,E,0.461,,280220,6.91,W,D*29
发现有以下几处的不同,
1) 字段1:UTC时间这里,他的小数点后面是3个0,但我的是2个0
2) 字段8:方位角这里,他的值是0.00,我的是空白
3) 字段11和12,磁偏角及磁偏角方向,他的是空白,我的有值
正是这3处不同,导致的上述解析不正确。原作者完全是按照他的GPS数据格式来写的代码,只要有任何一处不同,就会出现解析错误。
GPS测量数据采用的DAT文件格式实质上就是“文本格式”,用“记事本”就可以打开(如果文件不是特大的话)。每个数据是这样构成的:标号,x,y,z(回车符)
EXECL可以直接读入这种格式的文件的。将dat文件后缀改为TXT文件,用execl直接读文本文件即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)