diff --git a/src/ephemeris.c b/src/ephemeris.c index 9b1fa034ed57ed78ace7d4d39dd3aad7c43a8aff..6a25ae9038e5e0846d2774857b4a83bac5fab1a6 100644 --- a/src/ephemeris.c +++ b/src/ephemeris.c @@ -813,6 +813,9 @@ extern void satposs(gtime_t teph, const obsd_t *obs, int n, const nav_t *nav, trace(4,"%s sat=%2d rs=%13.3f %13.3f %13.3f dts=%12.3f var=%7.3f svh=%02X\n", time_str(time[i],6),obs[i].sat,rs[i*6],rs[1+i*6],rs[2+i*6], dts[i*2]*1E9,var[i],svh[i]); + //printf("%s sat=%2d rs=%13.3f %13.3f %13.3f dts=%12.3f var=%7.3f svh=%02X\n", + // time_str(time[i],6),obs[i].sat,rs[i*6],rs[1+i*6],rs[2+i*6], + // dts[i*2]*1E9,var[i],svh[i]); } } /* select satellite ephemeris -------------------------------------------------- diff --git a/src/pntpos.c b/src/pntpos.c index 5db921749dca3accf3e440385873190e72afe0b4..ddaf284c4d16c1812e28a87c2af21299c23760ad 100644 --- a/src/pntpos.c +++ b/src/pntpos.c @@ -245,9 +245,13 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs, ecef2pos(rr,pos); + //printf("////////// rescode iter=%i\n",iter); + for (i=*ns=0;i<n&&i<MAXOBS;i++) { vsat[i]=0; azel[i*2]=azel[1+i*2]=resp[i]=0.0; + //printf("\tsat %3d - ", obs[i].sat); + if (!(sys=satsys(obs[i].sat,NULL))) continue; @@ -261,20 +265,31 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs, /* geometric distance/azimuth/elevation angle */ if ((r=geodist(rs+i*6,rr,e))<=0.0|| satazel(pos,e,azel+i*2)<opt->elmin) + { + //printf("discarding because of distance r = %f / elevation = %f\n", r, satazel(pos,e,azel+i*2)*R2D); continue; - + } /* psudorange with code bias correction */ if ((P=prange(obs+i,nav,azel+i*2,iter,opt,&vmeas))==0.0) + { + //printf("discarding because of null prange\n"); continue; + } /* excluded satellite? */ if (satexclude(obs[i].sat,vare[i],svh[i],opt)) + { + //printf("excluded\n"); continue; + } /* ionospheric corrections */ if (!ionocorr(obs[i].time,nav,obs[i].sat,pos,azel+i*2, iter>0?opt->ionoopt:IONOOPT_BRDC,&dion,&vion)) + { + //printf("discarding because error in iono corr\n"); continue; + } /* GPS-L1 -> L1/B1 */ if ((lam_L1=nav->lam[obs[i].sat-1][0])>0.0) { @@ -283,8 +298,12 @@ static int rescode(int iter, const obsd_t *obs, int n, const double *rs, /* tropospheric corrections */ if (!tropcorr(obs[i].time,nav,pos,azel+i*2, iter>0?opt->tropopt:TROPOPT_SAAS,&dtrp,&vtrp)) + { + //printf("discarding because error in tropo corr\n"); continue; + } + //printf(" OK!\n"); /* pseudorange residual */ v[nv]=P-(r+dtr-CLIGHT*dts[i*2]+dion+dtrp); diff --git a/src/rtkcmn.c b/src/rtkcmn.c index e47627ffd7d4d9c0e9f7d21efbced097b7b31d5b..4e2f7ba7ade0b8355e13d68a725501cefd84820f 100644 --- a/src/rtkcmn.c +++ b/src/rtkcmn.c @@ -537,31 +537,31 @@ extern int satexclude(int sat, double var, int svh, const prcopt_t *opt) if (svh<0) { - //printf("excluding sat: svh < 0 (eph unavailable)\n"); + //printf("svh < 0 (eph unavailable) "); return 1; /* ephemeris unavailable */ } if (opt) { if (opt->exsats[sat-1]==1) { - //printf("excluding sat: in exsats\n"); + //printf("in exsats list! "); return 1; /* excluded satellite */ } if (opt->exsats[sat-1]==2) return 0; /* included satellite */ if (!(sys&opt->navsys)) { - //printf("excluding sat: constellation not used\n"); + //printf("constellation not used! "); return 1; /* unselected sat sys */ } } if (sys==SYS_QZS) svh&=0xFE; /* mask QZSS LEX health */ if (svh) { - //printf("excluding sat: unhealthy satellite\n"); + //printf("unhealthy satellite! "); trace(3,"unhealthy satellite: sat=%3d svh=%02X\n",sat,svh); return 1; } if (var>MAX_VAR_EPH) { - //printf("excluding sat: invalid ura satellite\n"); + //printf("invalid ura satellite! "); trace(3,"invalid ura satellite: sat=%3d ura=%.2f\n",sat,sqrt(var)); return 1; } diff --git a/src/sbas.c b/src/sbas.c index 765432acbac174cc8a485edca8d6dd2d008fe6cd..fbc7cc42fbc0fe18fab064188bddc66e1cfbab08 100644 --- a/src/sbas.c +++ b/src/sbas.c @@ -126,9 +126,9 @@ static double degfcorr(int ai) /* print sbsfcorr_t (JV) -------------------------------------------------------*/ static void print_sbsfcorr(const sbsfcorr_t *sbsfcorr) { - printf("iodf: %d, udre: %d, [%f, %f, %f, %d]\n", + printf("iodf: %3d, udre: %2d, [%f, %f, %f, %d]\n", sbsfcorr->iodf, - sbsfcorr->udre, + sbsfcorr->udre-1,//udre = UDRE+1 sbsfcorr->prc, sbsfcorr->rrc, sbsfcorr->dt, @@ -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("iode: %d, dpos=[%f, %f, %f], dvel=[%f, %f, %f], daf=[%f, %f]\n", + printf("iode: %3d, [%f, %f, %f | %f, %f, %f | %f, %f]\n", sbslcorr->iode, sbslcorr->dpos[0],sbslcorr->dpos[1],sbslcorr->dpos[2], sbslcorr->dvel[0],sbslcorr->dvel[1],sbslcorr->dvel[2], @@ -146,12 +146,12 @@ static void print_sbslcorr(const sbslcorr_t *sbslcorr) /* print sbssatp_t (JV) -------------------------------------------------------*/ static void print_sbssatp(const sbssatp_t *sbssatp) { - printf("\tsat: %d\n", sbssatp->sat); /* satellite number */ - printf("\t\tfcorr:\t"); + printf(" sat %3d:", sbssatp->sat); /* satellite number */ + printf(" fcorr: "); print_sbsfcorr(&sbssatp->fcorr);/* fast correction */ if (sbssatp->lcorr.iode > 0) { - printf("\t\tlcorr:\t"); + printf(" lcorr: "); print_sbslcorr(&sbssatp->lcorr);/* long term correction */ } } @@ -171,10 +171,10 @@ static int decode_sbstype1(const sbsmsg_t *msg, sbssat_t *sbssat) int i,i_new,i_old,new_n,n,sat; sbssatp_t sbssat_zero = { 0 }; sbssat_zero.lcorr.iode = -1; - sbssat_zero.fcorr.udre = 15; + sbssat_zero.fcorr.udre = 15; // udre=UDRE+1: udre=15->UDRE=14 (not monitored) trace(4,"decode_sbstype1:\n"); - //printf("\tdecode_sbstype1: \n"); + //printf(" decode_sbstype1: \n"); // old_sat to store old data (to be used if changing IODP, prn mask) sbssatp_t old_sat[MAXSAT]; @@ -185,12 +185,12 @@ static int decode_sbstype1(const sbsmsg_t *msg, sbssat_t *sbssat) { for (i=0; i<MAXSAT;i++) { - // store + // store old old_sat[i] = sbssat->sat[i]; - //printf("old_sat[%d].sat = %d\n", i, old_sat[i].sat); - // remove + printf("old_sat[%d].sat = %d\n", i, old_sat[i].sat); + // remove current sbssat->sat[i] = sbssat_zero; - // initialize + // initialize new new_sat[i] = sbssat_zero; } } @@ -207,8 +207,8 @@ static int decode_sbstype1(const sbsmsg_t *msg, sbssat_t *sbssat) else sat=0; /* 203- : reserved */ new_sat[new_n++].sat=sat; //sbssat->sat[n++].sat=sat; - //printf("\t\tsat: %d\n",sat); - //printf("new_sat[%d].sat = %d\n", new_n-1, new_sat[new_n-1].sat); + //printf(" sat: %d\n",sat); + printf("new_sat[%d].sat = %d\n", new_n-1, new_sat[new_n-1].sat); } } @@ -264,14 +264,14 @@ static int decode_sbstype1(const sbsmsg_t *msg, sbssat_t *sbssat) i_old++; } } - //printf("sat[%d].sat = %d\n", n-1, sbssat->sat[n-1].sat); + printf("sat[%d].sat = %d\n", n-1, sbssat->sat[n-1].sat); } //} sbssat->iodp=getbitu(msg->msg,224,2); sbssat->nsat=n; trace(5,"decode_sbstype1: nprn=%d iodp=%d\n",n,sbssat->iodp); - //printf("\tdecode_sbstype1: %d sats, iodp=%d\n",n,sbssat->iodp); + //printf(" decode_sbstype1: %d sats, iodp=%d\n",n,sbssat->iodp); return 1; } /* decode type 2-5,0: fast corrections ---------------------------------------*/ @@ -290,7 +290,7 @@ static int decode_sbstype2(const sbsmsg_t *msg, sbssat_t *sbssat) type=getbitu(msg->msg, 8,6); iodf=getbitu(msg->msg,14,2); - //printf("\tdecode_sbstype2: type=%d iodf=%d\n",type,iodf); + //printf(" decode_sbstype2: type=%d iodf=%d\n",type,iodf); for (i=0;i<13;i++) { if ((j=13*((type==0?2:type)-2)+i)>=sbssat->nsat) break; @@ -310,7 +310,7 @@ static int decode_sbstype2(const sbsmsg_t *msg, sbssat_t *sbssat) sbssat->sat[j].fcorr.dt=dt; } sbssat->sat[j].fcorr.iodf=iodf; - //printf("\t\tsat %d\n",sbssat->sat[j].sat); + //printf(" sat %d\n",sbssat->sat[j].sat); } trace(5,"decode_sbstype2: type=%d iodf=%d\n",type,iodf); return 1; @@ -331,7 +331,7 @@ static int decode_sbstype6(const sbsmsg_t *msg, sbssat_t *sbssat) sbssat->sat[i].fcorr.udre=udre+1; } trace(5,"decode_sbstype6: iodf=%d %d %d %d\n",iodf[0],iodf[1],iodf[2],iodf[3]); - //printf("\tdecode_sbstype6: iodf=%d %d %d %d\n",iodf[0],iodf[1],iodf[2],iodf[3]); + //printf(" decode_sbstype6: iodf=%d %d %d %d\n",iodf[0],iodf[1],iodf[2],iodf[3]); return 1; } /* decode type 7: fast correction degradation factor -------------------------*/ @@ -434,7 +434,7 @@ static int decode_longcorr0(const sbsmsg_t *msg, int p, sbssat_t *sbssat) if (n==0||n>MAXSAT) return 0; sbssat->sat[n-1].lcorr.iode=getbitu(msg->msg,p+6,8); - printf("\tdecode_longcorr0: sat=%d n=%d iode=%d\n",sbssat->sat[n-1].sat,n,sbssat->sat[n-1].lcorr.iode); + printf(" decode_longcorr0: sat=%d n=%d iode=%d\n",sbssat->sat[n-1].sat,n,sbssat->sat[n-1].lcorr.iode); for (i=0;i<3;i++) { sbssat->sat[n-1].lcorr.dpos[i]=getbits(msg->msg,p+14+9*i,9)*0.125; @@ -457,7 +457,7 @@ static int decode_longcorr1(const sbsmsg_t *msg, int p, sbssat_t *sbssat) if (n==0||n>MAXSAT) return 0; sbssat->sat[n-1].lcorr.iode=getbitu(msg->msg,p+6,8); - printf("\tdecode_longcorr1: sat=%d n=%d iode=%d\n",sbssat->sat[n-1].sat,n,sbssat->sat[n-1].lcorr.iode); + printf(" decode_longcorr1: sat=%d n=%d iode=%d\n",sbssat->sat[n-1].sat,n,sbssat->sat[n-1].lcorr.iode); for (i=0;i<3;i++) { sbssat->sat[n-1].lcorr.dpos[i]=getbits(msg->msg,p+14+i*11,11)*0.125; @@ -512,7 +512,7 @@ static int decode_sbstype24(const sbsmsg_t *msg, sbssat_t *sbssat) sbssat->sat[j].fcorr.prc =getbits(msg->msg,14+i*12,12)*0.125f; sbssat->sat[j].fcorr.udre=udre+1; sbssat->sat[j].fcorr.iodf=iodf; - //printf("\tdecode_sbstype24: sat=%2d fcorr.iodf=%2d\n",sbssat->sat[j].sat,iodf); + //printf(" decode_sbstype24: sat=%2d fcorr.iodf=%2d\n",sbssat->sat[j].sat,iodf); } return decode_longcorrh(msg,120,sbssat); } @@ -567,7 +567,7 @@ extern int sbsupdatecorr(const sbsmsg_t *msg, nav_t *nav) if (msg->week==0) return -1; - printf("============== sbsupdatecorr: PROCESSING type=%d...\n",type); + printf("============== sbsupdatecorr: PROCESSING PRN %3d type=%d...\n",msg->prn, type); print_sbassat(&nav->sbssat); switch (type) { @@ -964,8 +964,8 @@ static int sbsfastcorr(gtime_t time, int sat, const sbssat_t *sbssat, if (p->fcorr.t0.time==0) break; t=timediff(time,p->fcorr.t0)+sbssat->tlat; - /* expire age of correction or UDRE==14 (not monitored) */ - if (fabs(t)>MAXSBSAGEF||p->fcorr.udre>=14/*JV 15*/) continue; + /* expire age of correction or UDRE==14 (not monitored) (udre=UDRE+1) */ + if (fabs(t)>MAXSBSAGEF||p->fcorr.udre>=15) continue; *prc=p->fcorr.prc; #ifdef RRCENA if (p->fcorr.ai>0&&fabs(t)<=8.0*p->fcorr.dt) {