static void ubx_update(void) { unsigned char *buf; size_t data_len; unsigned short msgid; buf = session.lexer.outbuffer; msgid = (unsigned short)((buf[2] << 8) | buf[3]); data_len = (size_t) getles16(buf, 4); switch (msgid) { case UBX_NAV_SVINFO: display_nav_svinfo(&buf[6], data_len); break; case UBX_NAV_DOP: display_nav_dop(&buf[6], data_len); break; case UBX_NAV_SOL: display_nav_sol(&buf[6], data_len); break; default: break; } #ifdef NTP_ENABLE toff_update(ppswin, TOFF_LINE, TOFF_COLUMN + 6); #endif /* NTP_ENABLE */ #ifdef PPS_ENABLE pps_update(ppswin, PPS_LINE, PPS_COLUMN + 5); #endif /* PPS_ENABLE */ }
static void ubx_update(void) { unsigned char *buf; size_t data_len; unsigned short msgid; #ifdef PPS_ENABLE struct timedrift_t drift; #endif /* PPS_ENABLE */ buf = session.packet.outbuffer; msgid = (unsigned short)((buf[2] << 8) | buf[3]); data_len = (size_t) getles16(buf, 4); switch (msgid) { case UBX_NAV_SVINFO: display_nav_svinfo(&buf[6], data_len); break; case UBX_NAV_DOP: display_nav_dop(&buf[6], data_len); break; case UBX_NAV_SOL: display_nav_sol(&buf[6], data_len); break; default: break; } #ifdef PPS_ENABLE /*@-compdef@*/ /*@-type@*/ /* splint is confused about struct timespec */ if (pps_thread_lastpps(&session, &drift) > 0) { double timedelta = timespec_diff_ns(drift.real, drift.clock) * 1e-9; (void)mvwprintw(ppswin, 1, 13, "%.9f", timedelta); (void)wnoutrefresh(ppswin); } /*@+type@*/ /*@+compdef@*/ #endif /* PPS_ENABLE */ }