使用蓝点共享回老家导航,上千里地导航正常,但是回程中出现一个小问题,报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均出现了问题。
找到原因,处理起来就很容易了。