From b262e0e68816c92f6fe464a1eaf54365acd40241 Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Wed, 6 Feb 2019 18:46:49 -0800 Subject: cgps: Refactor how fix mode is displayed. --- cgps.c | 42 ++++++++++++++++++++++++++++++------------ 1 file 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); -- cgit v1.2.1