Skip to content
Snippets Groups Projects
Commit 8f657fd7 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

debugging

parent 953a8a7c
No related branches found
No related tags found
1 merge request!3Debug sbas
This commit is part of merge request !3. Comments created here will be created in the context of that merge request.
...@@ -412,14 +412,14 @@ static eph_t *seleph(gtime_t time, int sat, int iode, const nav_t *nav) ...@@ -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; default: tmax=MAXDTOE+1.0; break;
} }
tmin=tmax+1.0; tmin=tmax+1.0;
if (iode != -1)
printf("- available iode in eph: ");
for (i=0;i<nav->n;i++) { for (i=0;i<nav->n;i++) {
if (nav->eph[i].sat!=sat) continue; if (nav->eph[i].sat!=sat) continue;
if (iode>=0&&nav->eph[i].iode!=iode){ if (iode != -1)
printf("seleph: existent eph of sat =%2d but different iode=%3d (searching %3d)\n", printf("%3d ",nav->eph[i].iode);
sat,nav->eph[i].iode, iode); if (iode>=0&&nav->eph[i].iode!=iode) continue;
continue;
}
if (sys==SYS_GAL&&sel) { if (sys==SYS_GAL&&sel) {
if (sel==1&&!(nav->eph[i].code&(1<<9))) continue; /* I/NAV */ if (sel==1&&!(nav->eph[i].code&(1<<9))) continue; /* I/NAV */
if (sel==2&&!(nav->eph[i].code&(1<<8))) continue; /* F/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) ...@@ -431,8 +431,6 @@ static eph_t *seleph(gtime_t time, int sat, int iode, const nav_t *nav)
if (iode>=0||j<0) { if (iode>=0||j<0) {
trace(3,"no broadcast ephemeris: %s sat=%2d iode=%3d\n",time_str(time,0), trace(3,"no broadcast ephemeris: %s sat=%2d iode=%3d\n",time_str(time,0),
sat,iode); 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 NULL;
} }
return nav->eph+j; return nav->eph+j;
...@@ -559,17 +557,17 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav, ...@@ -559,17 +557,17 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav,
const sbssatp_t *sbs; const sbssatp_t *sbs;
int i; int i;
trace(4,"satpos_sbas: time=%s sat=%2d\n",time_str(time,3),sat); trace(4,"satpos_sbas: time=%s sat=%3d\n",time_str(time,3),sat);
printf("satpos_sbas: sat=%2d\n",sat); printf("satpos_sbas: sat=%3d ",sat);
/* search sbas satellite correciton */ /* search sbas satellite correciton */
for (i=0;i<nav->sbssat.nsat;i++) { for (i=0;i<nav->sbssat.nsat;i++) {
sbs=nav->sbssat.sat+i; sbs=nav->sbssat.sat+i;
if (sbs->sat==sat) break; if (sbs->sat==sat) break;
} }
if (i>=nav->sbssat.nsat) { if (i>=nav->sbssat.nsat || sbs->lcorr.iode < 0) {
trace(2,"no sbas correction for orbit: %s sat=%2d\n",time_str(time,0),sat); trace(2,"no sbas correction for orbit: %s sat=%3d\n",time_str(time,0),sat);
printf("satpos_sbas: no sbas correction (i>=nav->sbssat.nsat) for sat=%2d\n",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)) if (ephpos(time,teph,sat,nav,-1,rs,dts,var,svh))
*svh=-2;// JV: error code for detecting available ephemeris without sbas correction *svh=-2;// JV: error code for detecting available ephemeris without sbas correction
else else
...@@ -580,14 +578,18 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav, ...@@ -580,14 +578,18 @@ static int satpos_sbas(gtime_t time, gtime_t teph, int sat, const nav_t *nav,
return 0; return 0;
} }
/* satellite postion and clock by broadcast ephemeris */ /* 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)){ 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; return 0;
} }
/* sbas satellite correction (long term and fast) */ /* sbas satellite correction (long term and fast) */
if (sbssatcorr(time,sat,nav,rs,dts,var)) return 1; if (sbssatcorr(time,sat,nav,rs,dts,var)){
printf("satpos_sbas: no sbas correction (!sbssatcorr()) for sat=%2d\n",sat); printf("OK!\n");
return 1;
}
printf("no sbas correction (!sbssatcorr())\n");
*svh=-1; *svh=-1;
return 0; return 0;
} }
......
...@@ -343,6 +343,20 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs, ...@@ -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; for (j=0;j<NX;j++) H[j+nv*NX]=j==i+3?1.0:0.0;
var[nv++]=0.01; 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; return nv;
} }
/* validate solution ---------------------------------------------------------*/ /* validate solution ---------------------------------------------------------*/
...@@ -398,7 +412,8 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts, ...@@ -398,7 +412,8 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts,
&ns); &ns);
if (nv<NX) { 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; break;
} }
/* weight by variance */ /* weight by variance */
...@@ -410,7 +425,6 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts, ...@@ -410,7 +425,6 @@ static int estpos(const obsd_t *obs, int n, const double *rs, const double *dts,
/* least square estimation */ /* least square estimation */
if ((info=lsq(H,v,NX,nv,dx,Q))) { if ((info=lsq(H,v,NX,nv,dx,Q))) {
sprintf(msg,"lsq error info=%d",info); sprintf(msg,"lsq error info=%d",info);
break;
} }
for (j=0;j<NX;j++) x[j]+=dx[j]; for (j=0;j<NX;j++) x[j]+=dx[j];
......
...@@ -126,7 +126,7 @@ static double degfcorr(int ai) ...@@ -126,7 +126,7 @@ static double degfcorr(int ai)
/* print sbsfcorr_t (JV) -------------------------------------------------------*/ /* print sbsfcorr_t (JV) -------------------------------------------------------*/
static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr) 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->iodf,
sbsfcorr->udre, sbsfcorr->udre,
sbsfcorr->prc, sbsfcorr->prc,
...@@ -137,7 +137,7 @@ static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr) ...@@ -137,7 +137,7 @@ static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr)
/* print sbslcorr_t (JV) -------------------------------------------------------*/ /* print sbslcorr_t (JV) -------------------------------------------------------*/
static void print_sbslcorr(const sbslcorr_t *sbslcorr) 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->iode,
sbslcorr->dpos[0],sbslcorr->dpos[1],sbslcorr->dpos[2], sbslcorr->dpos[0],sbslcorr->dpos[1],sbslcorr->dpos[2],
sbslcorr->dvel[0],sbslcorr->dvel[1],sbslcorr->dvel[2], sbslcorr->dvel[0],sbslcorr->dvel[1],sbslcorr->dvel[2],
...@@ -147,9 +147,9 @@ static void print_sbslcorr(const sbslcorr_t *sbslcorr) ...@@ -147,9 +147,9 @@ static void print_sbslcorr(const sbslcorr_t *sbslcorr)
static void print_sbssatp(const sbssatp_t *sbssatp) static void print_sbssatp(const sbssatp_t *sbssatp)
{ {
printf("\tsat: %d\n", sbssatp->sat); /* satellite number */ printf("\tsat: %d\n", sbssatp->sat); /* satellite number */
printf("\tfcorr:\n"); printf("\t\tfcorr:\t");
print_sbsfcorr(&sbssatp->fcorr);/* fast correction */ print_sbsfcorr(&sbssatp->fcorr);/* fast correction */
printf("\tlcorr:\n"); printf("\t\tlcorr:\t");
print_sbslcorr(&sbssatp->lcorr);/* long term correction */ print_sbslcorr(&sbssatp->lcorr);/* long term correction */
} }
/* print sbssat_t (JV) -------------------------------------------------------*/ /* print sbssat_t (JV) -------------------------------------------------------*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment