From 8f657fd7cee16585ce88dc2868b85f8ffbfce4ec Mon Sep 17 00:00:00 2001 From: joanvallve <jvallve@iri.upc.edu> Date: Sat, 18 Jul 2020 12:58:45 +0200 Subject: [PATCH] debugging --- src/ephemeris.c | 34 ++++++++++++++++++---------------- src/pntpos.c | 18 ++++++++++++++++-- src/sbas.c | 8 ++++---- 3 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/ephemeris.c b/src/ephemeris.c index d7e722a..40fe754 100644 --- a/src/ephemeris.c +++ b/src/ephemeris.c @@ -412,14 +412,14 @@ static eph_t *seleph(gtime_t time, int sat, int iode, const nav_t *nav) default: tmax=MAXDTOE+1.0; break; } tmin=tmax+1.0; - + + if (iode != -1) + printf("- available iode in eph: "); for (i=0;i<nav->n;i++) { if (nav->eph[i].sat!=sat) continue; - if (iode>=0&&nav->eph[i].iode!=iode){ - printf("seleph: existent eph of sat =%2d but different iode=%3d (searching %3d)\n", - sat,nav->eph[i].iode, iode); - continue; - } + if (iode != -1) + printf("%3d ",nav->eph[i].iode); + if (iode>=0&&nav->eph[i].iode!=iode) continue; if (sys==SYS_GAL&&sel) { if (sel==1&&!(nav->eph[i].code&(1<<9))) continue; /* I/NAV */ if (sel==2&&!(nav->eph[i].code&(1<<8))) continue; /* F/NAV */ @@ -431,8 +431,6 @@ static eph_t *seleph(gtime_t time, int sat, int iode, const nav_t *nav) if (iode>=0||j<0) { trace(3,"no broadcast ephemeris: %s sat=%2d iode=%3d\n",time_str(time,0), sat,iode); - if (iode >= 0) - printf("seleph: no broadcast ephemeris: %s sat=%2d iode=%3d\n",time_str(time,0),sat,iode); return NULL; } return nav->eph+j; @@ -559,17 +557,17 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav, const sbssatp_t *sbs; int i; - trace(4,"satpos_sbas: time=%s sat=%2d\n",time_str(time,3),sat); - printf("satpos_sbas: sat=%2d\n",sat); + trace(4,"satpos_sbas: time=%s sat=%3d\n",time_str(time,3),sat); + printf("satpos_sbas: sat=%3d ",sat); /* search sbas satellite correciton */ for (i=0;i<nav->sbssat.nsat;i++) { sbs=nav->sbssat.sat+i; if (sbs->sat==sat) break; } - if (i>=nav->sbssat.nsat) { - trace(2,"no sbas correction for orbit: %s sat=%2d\n",time_str(time,0),sat); - printf("satpos_sbas: no sbas correction (i>=nav->sbssat.nsat) for sat=%2d\n",sat); + if (i>=nav->sbssat.nsat || sbs->lcorr.iode < 0) { + trace(2,"no sbas correction for orbit: %s sat=%3d\n",time_str(time,0),sat); + printf("no sbas correction (i>=nav->sbssat.nsat || sbs->lcorr.iode < 0)\n",sat); if (ephpos(time,teph,sat,nav,-1,rs,dts,var,svh)) *svh=-2;// JV: error code for detecting available ephemeris without sbas correction else @@ -580,14 +578,18 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav, return 0; } /* satellite postion and clock by broadcast ephemeris */ + printf("lcorr.iode=%3d ",sbs->lcorr.iode); if (!ephpos(time,teph,sat,nav,sbs->lcorr.iode,rs,dts,var,svh)){ - printf("satpos_sbas: no broadcast eph for sat %2d at sbs->lcorr.iode %2d\n",sat,sbs->lcorr.iode); + printf("not found\n"); return 0; } /* sbas satellite correction (long term and fast) */ - if (sbssatcorr(time,sat,nav,rs,dts,var)) return 1; - printf("satpos_sbas: no sbas correction (!sbssatcorr()) for sat=%2d\n",sat); + if (sbssatcorr(time,sat,nav,rs,dts,var)){ + printf("OK!\n"); + return 1; + } + printf("no sbas correction (!sbssatcorr())\n"); *svh=-1; return 0; } diff --git a/src/pntpos.c b/src/pntpos.c index db7843f..5db9217 100644 --- a/src/pntpos.c +++ b/src/pntpos.c @@ -343,6 +343,20 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs, for (j=0;j<NX;j++) H[j+nv*NX]=j==i+3?1.0:0.0; var[nv++]=0.01; } + // DEBUGGING ================ + /*{ + printf("H:\n"); + for (int row = 0; row < nv; row++) + printf("\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n", H[row*NX], + H[row*NX+1], + H[row*NX+2], + H[row*NX+3], + H[row*NX+4], + H[row*NX+5], + H[row*NX+6]); + printf("\n"); + + }//*/ return nv; } /* validate solution ---------------------------------------------------------*/ @@ -398,7 +412,8 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts, &ns); if (nv<NX) { - sprintf(msg,"lack of valid sats ns=%d",nv); + //sprintf(msg,"lack of valid sats ns=%d",nv); + sprintf(msg,"lack of valid sats ns=%d, nv=%2d",ns, nv);//JV break; } /* weight by variance */ @@ -410,7 +425,6 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts, /* least square estimation */ if ((info=lsq(H,v,NX,nv,dx,Q))) { sprintf(msg,"lsq error info=%d",info); - break; } for (j=0;j<NX;j++) x[j]+=dx[j]; diff --git a/src/sbas.c b/src/sbas.c index 812d8ec..f0aedae 100644 --- a/src/sbas.c +++ b/src/sbas.c @@ -126,7 +126,7 @@ static double degfcorr(int ai) /* print sbsfcorr_t (JV) -------------------------------------------------------*/ static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr) { - printf("\t\tiodf: %d, udre: %d, [%f, %f, %f, %d]\n", + printf("iodf: %d, udre: %d, [%f, %f, %f, %d]\n", sbsfcorr->iodf, sbsfcorr->udre, sbsfcorr->prc, @@ -137,7 +137,7 @@ static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr) /* print sbslcorr_t (JV) -------------------------------------------------------*/ static void print_sbslcorr(const sbslcorr_t *sbslcorr) { - printf("\t\tiode: %d, [[%f, %f, %f], [%f, %f, %f], %f, %f]\n", + printf("iode: %d, dpos=[%f, %f, %f], dvel=[%f, %f, %f], daf=[%f, %f]\n", sbslcorr->iode, sbslcorr->dpos[0],sbslcorr->dpos[1],sbslcorr->dpos[2], sbslcorr->dvel[0],sbslcorr->dvel[1],sbslcorr->dvel[2], @@ -147,9 +147,9 @@ static void print_sbslcorr(const sbslcorr_t *sbslcorr) static void print_sbssatp(const sbssatp_t *sbssatp) { printf("\tsat: %d\n", sbssatp->sat); /* satellite number */ - printf("\tfcorr:\n"); + printf("\t\tfcorr:\t"); print_sbsfcorr(&sbssatp->fcorr);/* fast correction */ - printf("\tlcorr:\n"); + printf("\t\tlcorr:\t"); print_sbslcorr(&sbssatp->lcorr);/* long term correction */ } /* print sbssat_t (JV) -------------------------------------------------------*/ -- GitLab