Changeset 11047 in ntrip for trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
- Timestamp:
- Sep 28, 2026, 11:17:34 AM (12 hours ago)
- File:
-
- 1 edited
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r11043 r11047 141 141 flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 142 142 CurrentObs._prn.set(sys, num, flag); 143 checkPrnRange(CurrentObs._prn); 143 144 144 145 t_frqObs *frqObs = new t_frqObs; … … 723 724 else 724 725 CurrentObs._prn.set(sys, RTCM3_MSM_NUMSAT - i); 726 checkPrnRange(CurrentObs._prn); 725 727 j = RTCM3_MSM_NUMSIG; 726 728 while (!(sigmask & (1 << --j))) … … 954 956 int flag = t_corrSSR::getSsrNavTypeFlag(sys, sv); 955 957 CurrentObs._prn.set(sys, sv, flag); 958 checkPrnRange(CurrentObs._prn); 956 959 GETBITS(code, 1) 957 960 GETBITS(freq, 5) 958 GLOFreq[sv - 1] = 100 + freq - 7; /* store frequency for other users (MSM) */ 961 if (sv >= 1) { /* 6-bit slot 1..63 fits GLOFreq[64]; 0 is invalid */ 962 GLOFreq[sv - 1] = 100 + freq - 7; /* store frequency for other users (MSM) */ 963 } 959 964 960 965 t_frqObs *frqObs = new t_frqObs; … … 1066 1071 } 1067 1072 eph._prn.set('G', i); 1073 checkPrnRange(eph._prn); 1068 1074 GETBITS(week, 10) 1069 1075 if (week < 0 || week > 1023) { … … 1185 1191 } 1186 1192 eph._prn.set('R', sv); 1193 checkPrnRange(eph._prn); 1187 1194 1188 1195 GETBITS(i, 5) … … 1373 1380 } 1374 1381 eph._prn.set('J', i); 1382 checkPrnRange(eph._prn); 1375 1383 1376 1384 GETBITS(i, 16) … … 1493 1501 } 1494 1502 eph._prn.set('I', i); 1503 checkPrnRange(eph._prn); 1495 1504 GETBITS(week, 10) 1496 1505 if (week < 0 || week > 1023) { … … 1627 1636 } 1628 1637 eph._prn.set('S', 20 + i); 1638 checkPrnRange(eph._prn); 1629 1639 GETBITS(eph._IODN, 8) 1630 1640 GETBITS(i, 13) … … 1716 1726 } 1717 1727 eph._prn.set('E', i, eph._inav ? t_eph::INAV : t_eph::FNAV); 1728 checkPrnRange(eph._prn); 1718 1729 1719 1730 GETBITS(week, 12) //FIXME: roll-over after week 4095!! … … 1863 1874 } 1864 1875 eph._prn.set('C', i); 1876 checkPrnRange(eph._prn); 1865 1877 1866 1878 GETBITS(week, 13) … … 2439 2451 } 2440 2452 2441 2442 2443 2453 // Satellite numbers on the wire can exceed BNC's supported range (e.g. 6-bit 2454 // IDs up to 63, while t_prn supports G01-G32). They are passed on unchanged, 2455 // but t_prn::toInt() maps them to the unused index 0, so they are not usable 2456 // for per-satellite processing - report that once per satellite. 2457 //////////////////////////////////////////////////////////////////////////// 2458 void RTCM3Decoder::checkPrnRange(const t_prn& prn) { 2459 if (prn.toInt() != 0) { 2460 return; 2461 } 2462 QString prnStr = QString::fromStdString(prn.toString()); 2463 if (!_prnOutOfRangeLogged.contains(prnStr)) { 2464 _prnOutOfRangeLogged.insert(prnStr); 2465 emit newMessage(QString("%1: satellite %2 outside the range supported by BNC - not usable for processing") 2466 .arg(_staID).arg(prnStr).toLatin1(), true); 2467 } 2468 }
Note:
See TracChangeset
for help on using the changeset viewer.
