summaryrefslogtreecommitdiff
path: root/monitor_ubx.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-01-20 04:55:53 -0500
committerEric S. Raymond <esr@thyrsus.com>2011-01-20 04:55:53 -0500
commit59d86432820625fff9a65d386fd21e8b4028fce9 (patch)
tree86e61d5e1b2a1ae602635fb487c936abc55c1692 /monitor_ubx.c
parent5d9db7b1685fcb837806b725b83b5dc0d0b3fe75 (diff)
downloadgpsd-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.c20
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) {