summaryrefslogtreecommitdiff
path: root/cgps.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-02-06 18:46:49 -0800
committerGary E. Miller <gem@rellim.com>2019-02-06 18:46:49 -0800
commitb262e0e68816c92f6fe464a1eaf54365acd40241 (patch)
tree9dbf17af25be28ca89cb964dd991c94c62260e1d /cgps.c
parent52faae9bdd64897f064525fe0d9abe54abcab360 (diff)
downloadgpsd-b262e0e68816c92f6fe464a1eaf54365acd40241.tar.gz
cgps: Refactor how fix mode is displayed.
Diffstat (limited to 'cgps.c')
-rw-r--r--cgps.c42
1 files changed, 30 insertions, 12 deletions
diff --git a/cgps.c b/cgps.c
index 8eeb7a61..5837428c 100644
--- a/cgps.c
+++ b/cgps.c
@@ -729,30 +729,48 @@ static void update_gps_panel(struct gps_data_t *gpsdata, char *message)
newstate = 0;
(void)snprintf(scr, sizeof(scr), "OFFLINE");
} else {
+ const char *fmt;
+ const char *mod = "";
+
newstate = gpsdata->fix.mode;
+ switch (gpsdata->status) {
+ case STATUS_DGPS_FIX:
+ mod = "DIFF ";
+ break;
+ case STATUS_RTK_FIX:
+ mod = "RTK ";
+ break;
+ case STATUS_RTK_FLT:
+ mod = "RTK ";
+ break;
+ case STATUS_DR:
+ mod = "DR ";
+ break;
+ case STATUS_GNSSDR:
+ mod = "+DR ";
+ break;
+ default:
+ /* ignore: */
+ mod = "";
+ break;
+ }
switch (gpsdata->fix.mode) {
case MODE_2D:
- (void)snprintf(scr, sizeof(scr), "2D %sFIX (%d secs)",
- (gpsdata->status ==
- STATUS_DGPS_FIX) ? "DIFF " : "",
- (int)(time(NULL) - status_timer));
+ fmt = "2D %sFIX (%d secs)";
break;
case MODE_3D:
if (STATUS_TIME == gpsdata->status) {
- (void)snprintf(scr, sizeof(scr), "SURVEYED (%d secs)",
- (int)(time(NULL) - status_timer));
+ fmt = "%sSURVEYED (%d secs)";
} else {
- (void)snprintf(scr, sizeof(scr), "3D %sFIX (%d secs)",
- (gpsdata->status ==
- STATUS_DGPS_FIX) ? "DIFF " : "",
- (int)(time(NULL) - status_timer));
+ fmt = "3D %sFIX (%d secs)";
}
break;
default:
- (void)snprintf(scr, sizeof(scr), "NO FIX (%d secs)",
- (int)(time(NULL) - status_timer));
+ fmt = "NO %sFIX (%d secs)";
break;
}
+ (void)snprintf(scr, sizeof(scr), fmt, mod,
+ (int)(time(NULL) - status_timer));
}
(void)mvwprintw(datawin, 8, DATAWIN_VALUE_OFFSET + 1, "%-*s", 26, scr);