http://blog.sina.com.cn/s/blog_9e2e5d14010170ih.html
使用蓝点共享回老家导航,上千里地导航正常,但是回程中出现一个小问题,报GPGSV语句解析异常,其中只提示一次,因此没有重视,但是有用户反应他的也出了同样问题了。并发来截图
因此我开始重视这个问题,并着手解决这个问题,出错的语句内容如下
GPGSV,3,3,14,30,24.0,70.0,15.3,31,5.0,125.0,19.6,80,47.0,336.0,20.7,81,52.0,43.0,21.8*4c
GPGSV是反应接收机搜索到定位卫星的相关信息,一次搜星如果搜3-4卫星即可定位,在环境好的情况下可搜到12个卫星,每一个GPGSV语句最多保存四个卫星的信息,因此超过
4颗星,就需要多条GPGSV语句来描述了。一次搜星所有GPGSV称为一个sentence (系列)
它的格式如下
标准格式: $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)
各部分含义为:
(1)一次搜星需要GPGSV语句总数;2;
(2)当前GSV在整个序列里的编号,第一条编号为1,最后一条等于(1);
(3)当前可视的定位卫星总数。
接下来每4个一组,每组表示一个卫星的相关信息
(4)PRN码(伪随机噪声码),整数用来充当卫星编号,取值范围是01 -32;
(5)卫星仰角(00~90度):;
(6)水平方位角(000~359度):
(7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息); 这用来表示卫星信号强度,信号越强定位效果越好,一般50db就是非常强的信号了。
然后按上述格式,描述下一个卫星情况。每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:
(4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。
最后*后面是校验值
(CR)(LF)回车,换行。
按上述分述出错数据
GPGSV, 3,3,14, 30,24.0,70.0,15.3, 31,5.0,125.0,19.6, 80,47.0,336.0,20.7, 81,52.0,43.0,21.8 *4c
总系列3个,这句是第3个 ,卫星总数是14!,(这里出错数据错误,3句最多表示12卫星,但是卫星搜到总数到14颗,按这个值处理数据就越界了)
而且这里编号出现80,81,难到美国又多发射了卫星?这样结合下可以知道,是在情况好情况下,能搜到14颗星,无论是构造还是解析GPGSV均出现了问题。
找到原因,处理起来就很容易了。