diff --git a/app/consapp/rtkrcv/rtkrcv.c b/app/consapp/rtkrcv/rtkrcv.c index 4b32456fd..ce9a4d3f5 100644 --- a/app/consapp/rtkrcv/rtkrcv.c +++ b/app/consapp/rtkrcv/rtkrcv.c @@ -150,7 +150,7 @@ static const char *helptxt[]={ "status [cycle] : show rtk status", "satellite [-n] [cycle]: show satellite status", "observ [-n] [cycle] : show observation data", - "navidata [cycle] : show navigation data", + "navidata [-p] [-n] [cycle] : show navigation data", "stream [cycle] : show stream status", "ssr [-c] [-p] [cycle] : show ssr corrections", "error : show error/warning messages", @@ -934,34 +934,39 @@ static void probserv(vt_t *vt, int nf) free(obs); } /* print navigation data -----------------------------------------------------*/ -static void prnavidata(vt_t *vt) +static void prnavidata(vt_t *vt, int prev, int set) { eph_t eph[MAXSAT]; geph_t geph[MAXPRNGLO]; double ion[8],utc[8]; gtime_t time; char id[8],s1[64],s2[64],s3[64]; - int i,valid; trace(4,"prnavidata:\n"); - + rtksvrlock(&svr); time=svr.rtk.sol.time; - for (i=0;i= 0 && set <= 1 && prev >= 0 && prev <= 1) + for (int i = 0; i < MAXSAT; i++) eph[i] = svr.nav.eph[i + (prev * 2 + set) * MAXSAT]; + else + memset(&eph, 0, sizeof(eph)); + if (set >= 0 && set <= 0 && prev >= 0 && prev <= 1) + for (int i = 0; i < MAXPRNGLO; i++) geph[i] = svr.nav.geph[i + (prev * 1 + set) * MAXPRNGLO]; + else + memset(&geph, 0, sizeof(geph)); + for (int i=0;i<8;i++) ion[i]=svr.nav.ion_gps[i]; + for (int i=0;i<8;i++) utc[i]=svr.nav.utc_gps[i]; rtksvrunlock(&svr); vt_printf(vt,"\n%s%3s %3s %3s %3s %3s %3s %3s %19s %19s %19s %3s %3s%s\n", ESC_BOLD,"SAT","S","IOD","IOC","FRQ","A/A","SVH","Toe","Toc", "Ttr/Tof","L2C","L2P",ESC_RESET); - for (i=0;i1) cycle=(int)(atof(args[1])*1000.0); + for (int i = 1; i < narg; i++) { + if (strcmp(args[i], "-p") == 0) { + prev = 1; + continue; + } + if (sscanf(args[i], "-%d", &set) == 1) continue; + cycle = (int)(atof(args[i]) * 1000.0); + } while (!vt_chkbrk(vt)) { if (cycle>0) vt_printf(vt,ESC_CLEAR); - prnavidata(vt); + prnavidata(vt, prev, set); if (cycle>0) sleepms(cycle); else return; } vt_printf(vt,"\n"); @@ -1787,8 +1799,9 @@ static void deamonise(void) * Show observation data. Use option cycle for cyclic display. Option -n * specify number of frequencies. * -* navidata [cycle] -* Show navigation data. Use option cycle for cyclic display. +* navidata [-p] [-n] [cycle] +* Show navigation data. Option -p shows the previous set. Option -n +* specifies the set, 0 to 1. Use option cycle for cyclic display. * * stream [cycle] * Show stream status. Use option cycle for cyclic display.