GPS周数翻转到1999年,不用替换GPS硬件,从平台端的解决办法

[位置服务LBS] 季雨林 2019/4/13 10:29:29

本文写给同样对接过车载 GPS 的同行使用,通过修改 socket 服务端代码解决4月7日GPS周翻转计数问题


前文说道,GPS信号的10个bit位最大存储1024周,那么很显然,在不修改终端的情况下,平台端也可以解决这个问题:

位置服务平台端:先判断终端时间是否是早于当前等于1024周(严格来说更推荐1023周到1025周之间)

然后强制把终端传来的时间,增加1024周即可!


简单计算一下:

1024周=1024*7(天)=1024*7/365(年) =19.63835616438356年 约等于19.6年 (忽略闰年闰秒情况)

10个bit位,最大表示1024。懂点二进制的同学可以看这句:从0000000000到1111111111总共是1024个二进制数字。

而GPS通讯规则里,计算时间的周(week),只给它准备了这么10个字节的位置。于是就出现了这个情况,跟里程表一样,涨到最大,下一个就是另一个周期里的0。

兼容不到位的GPS终端,收到GPS信号,解析时候就会认为当前时间慢了1024周,所以这次GPS卫星信号时间周翻转升级事件,完全可以不更改硬件,修改平台端程序兼容这个时间差即可一切恢复正常!


之所有某些GPS位置服务平台会出现位置不更新,那是因为他们的平台有这多么一个逻辑:最新点只显示比当前位置时间更加新的坐标,所以才出现很多平台直接显示成离线,或者停止更新位置的效果!


原文地址: https://www.opengps.cn/Blog/View.aspx?id=294 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示