Skip to content

Commit 02c0521

Browse files
committed
rtkplot/rtkplot_qt: calculate multipath even if either L1 or L2 is not
available
1 parent 5dd09b2 commit 02c0521

2 files changed

Lines changed: 27 additions & 9 deletions

File tree

app/qtapp/rtkplot_qt/plotdata.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,10 +1284,19 @@ void Plot::updateMp()
12841284

12851285
for (i = 0; i < observation.n; i++) {
12861286
data = observation.data + i;
1287-
freq1 = sat2freq(data->sat, data->code[0], &navigation);
1288-
freq2 = sat2freq(data->sat, data->code[1], &navigation);
1289-
if (data->L[0] == 0.0 || data->L[1] == 0.0 || freq1 == 0.0 || freq2 == 0.0) continue;
1290-
I = -CLIGHT * (data->L[0] / freq1-data->L[1] / freq2) / (1.0 - SQR(freq1 / freq2));
1287+
/* choose two frequencies to calculate reference I */
1288+
for (j = 0; j < NFREQ + NEXOBS; j++) {
1289+
freq1 = sat2freq(data->sat, data->code[j], &navigation);
1290+
if (data->L[j] == 0.0 || freq1 == 0.0 ) continue;
1291+
for (k = j + 1; k < NFREQ + NEXOBS; k++) {
1292+
freq2 = sat2freq(data->sat, data->code[k], &navigation);
1293+
if (data->L[k] == 0.0 || freq2 == 0.0 || freq1 == freq2) continue;
1294+
I = -CLIGHT * (data->L[j] / freq1-data->L[k] / freq2) / (1.0 - SQR(freq1 / freq2));
1295+
break;
1296+
}
1297+
break;
1298+
}
1299+
if (freq1 == 0.0 || freq2 == 0.0) continue;
12911300

12921301
for (j = 0; j < NFREQ + NEXOBS; j++) {
12931302
freq = sat2freq(data->sat, data->code[j], &navigation);

app/winapp/rtkplot/plotdata.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,11 +1297,20 @@ void __fastcall TPlot::UpdateMp(void)
12971297

12981298
for (i=0;i<Obs.n;i++) {
12991299
data=Obs.data+i;
1300-
freq1=sat2freq(data->sat,data->code[0],&Nav);
1301-
freq2=sat2freq(data->sat,data->code[1],&Nav);
1302-
if (data->L[0]==0.0||data->L[1]==0.0||freq1==0.0||freq2==0.0) continue;
1303-
I=-CLIGHT*(data->L[0]/freq1-data->L[1]/freq2)/(1.0-SQR(freq1/freq2));
1304-
1300+
/* choose two frequencies to calculate reference I */
1301+
for (j = 0; j < NFREQ + NEXOBS; j++) {
1302+
freq1 = sat2freq(data->sat, data->code[j], &Nav);
1303+
if (data->L[j] == 0.0 || freq1 == 0.0 ) continue;
1304+
for (k = j + 1; k < NFREQ + NEXOBS; k++) {
1305+
freq2 = sat2freq(data->sat, data->code[k], &Nav);
1306+
if (data->L[k] == 0.0 || freq2 == 0.0 || freq1 == freq2) continue;
1307+
I = -CLIGHT * (data->L[j] / freq1-data->L[k] / freq2) / (1.0 - SQR(freq1 / freq2));
1308+
break;
1309+
}
1310+
break;
1311+
}
1312+
if (freq1 == 0.0 || freq2 == 0.0) continue;
1313+
13051314
for (j=0;j<NFREQ+NEXOBS;j++) {
13061315
freq=sat2freq(data->sat,data->code[j],&Nav);
13071316
if (data->P[j]==0.0||data->L[j]==0.0||freq==0.0) continue;

0 commit comments

Comments
 (0)