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)
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;
}
......
......@@ -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];
......
......@@ -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) -------------------------------------------------------*/
......
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