Skip to content

Commit 4ae598d

Browse files
Merge pull request #707 from rtklibexplorer/multipath
rtkplot/rtkplot_qt: calculate multipath even if either L1 or L2 is not
2 parents 778f91a + 02c0521 commit 4ae598d

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
@@ -1291,10 +1291,19 @@ void Plot::updateMp()
12911291

12921292
for (i = 0; i < observation.n; i++) {
12931293
data = observation.data + i;
1294-
freq1 = sat2freq(data->sat, data->code[0], &navigation);
1295-
freq2 = sat2freq(data->sat, data->code[1], &navigation);
1296-
if (data->L[0] == 0.0 || data->L[1] == 0.0 || freq1 == 0.0 || freq2 == 0.0) continue;
1297-
I = -CLIGHT * (data->L[0] / freq1-data->L[1] / freq2) / (1.0 - SQR(freq1 / freq2));
1294+
/* choose two frequencies to calculate reference I */
1295+
for (j = 0; j < NFREQ + NEXOBS; j++) {
1296+
freq1 = sat2freq(data->sat, data->code[j], &navigation);
1297+
if (data->L[j] == 0.0 || freq1 == 0.0 ) continue;
1298+
for (k = j + 1; k < NFREQ + NEXOBS; k++) {
1299+
freq2 = sat2freq(data->sat, data->code[k], &navigation);
1300+
if (data->L[k] == 0.0 || freq2 == 0.0 || freq1 == freq2) continue;
1301+
I = -CLIGHT * (data->L[j] / freq1-data->L[k] / freq2) / (1.0 - SQR(freq1 / freq2));
1302+
break;
1303+
}
1304+
break;
1305+
}
1306+
if (freq1 == 0.0 || freq2 == 0.0) continue;
12981307

12991308
for (j = 0; j < NFREQ + NEXOBS; j++) {
13001309
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
@@ -1304,11 +1304,20 @@ void __fastcall TPlot::UpdateMp(void)
13041304

13051305
for (i=0;i<Obs.n;i++) {
13061306
data=Obs.data+i;
1307-
freq1=sat2freq(data->sat,data->code[0],&Nav);
1308-
freq2=sat2freq(data->sat,data->code[1],&Nav);
1309-
if (data->L[0]==0.0||data->L[1]==0.0||freq1==0.0||freq2==0.0) continue;
1310-
I=-CLIGHT*(data->L[0]/freq1-data->L[1]/freq2)/(1.0-SQR(freq1/freq2));
1311-
1307+
/* choose two frequencies to calculate reference I */
1308+
for (j = 0; j < NFREQ + NEXOBS; j++) {
1309+
freq1 = sat2freq(data->sat, data->code[j], &Nav);
1310+
if (data->L[j] == 0.0 || freq1 == 0.0 ) continue;
1311+
for (k = j + 1; k < NFREQ + NEXOBS; k++) {
1312+
freq2 = sat2freq(data->sat, data->code[k], &Nav);
1313+
if (data->L[k] == 0.0 || freq2 == 0.0 || freq1 == freq2) continue;
1314+
I = -CLIGHT * (data->L[j] / freq1-data->L[k] / freq2) / (1.0 - SQR(freq1 / freq2));
1315+
break;
1316+
}
1317+
break;
1318+
}
1319+
if (freq1 == 0.0 || freq2 == 0.0) continue;
1320+
13121321
for (j=0;j<NFREQ+NEXOBS;j++) {
13131322
freq=sat2freq(data->sat,data->code[j],&Nav);
13141323
if (data->P[j]==0.0||data->L[j]==0.0||freq==0.0) continue;

0 commit comments

Comments
 (0)