|
楼主|
发表于 2019-4-16 11:25:05
谢谢萧齐老师的回复,我查看了UBX PVT和TIMEUTC中都似乎存在这部分数据包
- time_t epoch = mktime(&timeinfo);
- if (epoch > GPS_EPOCH_SECS) {
- // FMUv2+ boards have a hardware RTC, but GPS helps us to configure it
- // and control its drift. Since we rely on the HRT for our monotonic
- // clock, updating it from time to time is safe.
- timespec ts;
- memset(&ts, 0, sizeof(ts));
- ts.tv_sec = epoch;
- ts.tv_nsec = _buf.payload_rx_nav_pvt.nano;
- setClock(ts);
- _gps_position->time_utc_usec = static_cast<uint64_t>(epoch) * 1000000ULL;
- _gps_position->time_utc_usec += _buf.payload_rx_nav_pvt.nano / 1000;
- } else {
- _gps_position->time_utc_usec = 0;
- }
复制代码
其中这个setclock是否是用nano(utc)数据来矫正gps时间,这个nano数据刚好是板卡里没有输出的,我去尝试下 |
|