本文写给同样对接过车载 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
文章的更新编辑依此链接为准。欢迎关注源站原创文章!