使用蓝点共享回老家导航,上千里地导航正常,但是回程中出现一个小问题,报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语句最多保存四个卫星的信息,因此超过

sentence (系列)


它的格式如下


标准格式: $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF) 

  (1)一次搜星需要GPGSV语句总数;2;

  (3)当前可视的定位卫星总数。

接下来每4个一组,每组表示一个卫星的相关信息


PRN码(伪随机噪声码),整数用来充当卫星编号,取值范围是01 -32; 

  (6)水平方位角(000~359度): 
  这用来表示卫星信号强度,信号越强定位效果越好,一般50db就是非常强的信号了。


每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即: 
  (4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。

      最后*后面是校验值


 

按上述分述出错数据


 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均出现了问题。

找到原因,处理起来就很容易了。