示例#1
0
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 */
}
示例#2
0
文件: monitor_ubx.c 项目: vyacht/gpsd
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 */
}