从32位整数中获取GPS时间

C++ Get GPS Time from 32-bit Integer

本文关键字:GPS 时间 获取 32位 整数      更新时间:2023-10-16

对不起,如果这听起来令人困惑,但我有一个程序,我正在写,需要检索GPS时间(纪元时间)分钟从导航单位。导航单元发送一个72字节的UDP报文。根据Nav手册,第63、64、65和66字节包含32位GPS时间。我试着找回正确的时间,但时间似乎出了。我得到的值大约是18754849,我很确定当前的GPS时间应该在24020957左右。

我用来检索时间的代码如下所示。这是一个以前在这个项目工作的人说的,我的数学不是很好,所以我不确定这是对的还是错的。有人能看出这里有什么明显的错误吗?这也是buf值出现的地方。

iResult = recvfrom(sock, buf, sizeof (buf), 0, 0, 0);

感谢
minutes = (unsigned char)buf[66]*0x1000000 + (unsigned char)buf[65]*0x10000 + (unsigned char)buf[64]*0x100 + (unsigned char)buf[63];

解决了我自己的问题。GPS时间是从1980年1月6日开始的,而EPOCH时间是从1970年1月1日开始的。我以为它们是一样的,我现在觉得自己很蠢。谢谢