Open linkaiqin opened 8 years ago
There are several bugs in ublox.c and rtcm3.c
/* adjust week handover */
t=time2gpst(raw->time,&week);
if (tr<t-302400.0) week--;
else if (tr>t+302400.0) week++;
time=gpst2time(week,tr);
--->
/* adjust week handover */
t=time2gpst(raw->time,&week);
if (tr<t-302400.0) week++;
else if (tr>t+302400.0) week--;
time=gpst2time(week,tr);
if (prn>=5) { /* IGSO/MEO */
.....
}
--->
if (prn>5) { /* IGSO/MEO */
.....
}
if (!strstr(rtcm->opt,"-EPHALL")) {
if (eph.iode==rtcm->nav.eph[sat-1].iode) return 0; /* unchanged */
}
--->
if (!strstr(rtcm->opt,"-EPHALL")) {
if(timediff(eph.toe,rtcm->nav.eph[sat-1].toe)==0.0) return 0; /* unchanged */
}
Thanks. They are fixed in 2.4.3 b27. (except for No.2 in the first comment)
There may be some bugs in 2.4.3
In relpos()-->satposs(obs,n), parameter n is the number of rover and base observation. The parameter n can reach to 2 MAXOBS. But in satposs(obs,n) function, the max value of n is limit to MAXOBS. Modify MAXOBS to 2 MAXOBS in satposs() may fix the issue.
for (i=0;i<n&&i<MAXOBS;i++)
--->for (i=0;i<n&&i<2*MAXOBS;i++)
The value of
rtk->ssat[i].lock
should be initialized to-opt->minlock
in rtkinit() function.outnmea_gsv() may output zero SNR of a satellite which is not the common satellite between rover and base in kinematic mode. To fix the issue, don't clear
rtk->ssat[i].snr[0]
in relpos()rtksvrfree()
should callrtkfree()
to free the memory ofrtk->x
andrtk->P
In streamsvr.c nexsat()
for (p=p0>p2?p1:p0+1;p!=p0;p=p>=p2?p1:p+1)
should be changed tofor (p=p0>=p2?p1:p0+1;p!=p0;p=p>=p2?p1:p+1)