diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-01-20 04:55:53 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-01-20 04:55:53 -0500 |
commit | 59d86432820625fff9a65d386fd21e8b4028fce9 (patch) | |
tree | 86e61d5e1b2a1ae602635fb487c936abc55c1692 /monitor_ubx.c | |
parent | 5d9db7b1685fcb837806b725b83b5dc0d0b3fe75 (diff) | |
download | gpsd-59d86432820625fff9a65d386fd21e8b4028fce9.tar.gz |
Further reduce dependencies onm the sytem clock.
All regression tests pass.
Diffstat (limited to 'monitor_ubx.c')
-rw-r--r-- | monitor_ubx.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/monitor_ubx.c b/monitor_ubx.c index 43502449..d7f14172 100644 --- a/monitor_ubx.c +++ b/monitor_ubx.c @@ -48,7 +48,7 @@ static bool ubx_initialize(void) (void)wprintw(navsolwin, "LTP Vel:"); (void)wmove(navsolwin, 7, 1); - (void)wprintw(navsolwin, "Time UTC:"); + (void)wprintw(navsolwin, "Time:"); (void)wmove(navsolwin, 8, 1); (void)wprintw(navsolwin, "Time GPS: Day:"); @@ -110,8 +110,6 @@ static void display_nav_sol(unsigned char *buf, size_t data_len) unsigned int tow = 0, flags; double epx, epy, epz, evx, evy, evz; unsigned char navmode; - double t; - time_t tt; struct gps_data_t g; double separation; @@ -124,8 +122,6 @@ static void display_nav_sol(unsigned char *buf, size_t data_len) if ((flags & (UBX_SOL_VALID_WEEK | UBX_SOL_VALID_TIME)) != 0) { tow = (unsigned int)getleu32(buf, 0); gw = (unsigned short)getles16(buf, 8); - t = gpstime_to_unix((int)gw, tow / 1000.0); - tt = (time_t) trunc(t); } epx = (double)(getles32(buf, 12) / 100.0); @@ -155,9 +151,19 @@ static void display_nav_sol(unsigned char *buf, size_t data_len) g.fix.speed, g.fix.track, g.fix.climb); (void)mvwaddch(navsolwin, 5, 26, ACS_DEGREE); - (void)wmove(navsolwin, 7, 11); + (void)wmove(navsolwin, 7, 7); /*@ -compdef @*/ - (void)wprintw(navsolwin, "%s", ctime(&tt)); + { + int day = tow / 8640000; + int tod = tow % 8640000; + int h = tod / 360000; + int m = tod % 360000; + int s = m % 6000; + + m = (m - s) / 6000; + + (void)wprintw(navsolwin, "%d %02d:%02d:%05.2f", day, h, m, (double)s / 100); + } /*@ +compdef @*/ (void)wmove(navsolwin, 8, 11); if ((flags & (UBX_SOL_VALID_WEEK | UBX_SOL_VALID_TIME)) != 0) { |