gps时间转到utc时间通用形式ASCII码显示问题

2015-07-30 19:07 阅读 650 次 评论 0 条

由于gps时通过儒略日转换到utc的方法,儒略日便于输出GGA中的时间信息,所以在项目中选择使用此方法。

下图的函数是通过儒略日的天内秒转换为gga的时间信息,转换后的结果是gga的时间形式,假设返回的变量为ggat。

clip_image002

然后通过sprintf函数就可以直接转换为ASCII码,sprintf(pBuf, "%s,%09.2lf,", "$GPGGA", ggat);

输出的形式如下下图所示

clip_image004

按照上面的输出方式输出,经过长时间实际应用测试,会出现如上图中第2行的问题,显示时间为011904.100,实际时间应该为011905.00。

直接转到utc时间的common_time形式,如下图中的结构体数据,也会出现上面的问题。

clip_image006

此问题的出现不是时间转换的问题,而是sprintf转换的时有效位的问题,也就是显示时4舍5入的问题。

针对gps时间转换为utc时间(二)中函数,需要根据最终输出的有效位进行4舍5入。例如保留两位有效数字,就是+0.005f。

image

PS:gps2utc的源码已经将4舍5入加入其中了。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:gps时间转到utc时间通用形式ASCII码显示问题 | 起点博客
分类:应用笔记 标签:, ,

发表评论


表情