- Timestamp:
- Jan 31, 2025, 10:30:08 AM (10 days ago)
- Location:
- trunk/BNC/src
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppClient.h
r10583 r10599 70 70 bncAntex* _antex; 71 71 t_pppFilter* _filter; 72 double _offGps;73 double _offGlo;74 double _offGal;75 double _offBds;76 72 std::vector<t_pppSatObs*> _obsRover; 77 73 std::ostringstream* _log; -
trunk/BNC/src/PPP/pppSatObs.cpp
r10582 r10599 141 141 _channel = 0; 142 142 } 143 if (_prn.system() == 'E') {144 // force I/NAV usage145 _prn.setFlags(1);146 }147 148 149 143 150 144 // Compute Satellite Coordinates at Time of Transmission -
trunk/BNC/src/PPP_SSR_I/pppClient.cpp
r9481 r10599 86 86 const t_satObs* obs = satObs[ii]; 87 87 t_prn prn = obs->_prn; 88 if (prn.system() == 'E') {prn.setFlags(1);} // force I/NAV usage89 88 t_satData* satData = new t_satData(); 90 89 -
trunk/BNC/src/RTCM/RTCM2Decoder.cpp
r9088 r10599 134 134 for (int iSat = 0; iSat < _ObsBlock.nSat; iSat++) { 135 135 t_satObs obs; 136 char sys; 137 int num, flag; 136 138 if (_ObsBlock.PRN[iSat] > 100) { 137 obs._prn.set('R', _ObsBlock.PRN[iSat] % 100); 138 } else { 139 obs._prn.set('G', _ObsBlock.PRN[iSat]); 139 sys = 'R'; 140 num = _ObsBlock.PRN[iSat] % 100; 140 141 } 141 char sys = obs._prn.system(); 142 else { 143 sys = 'G'; 144 num = _ObsBlock.PRN[iSat]; 145 } 146 flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 147 obs._prn.set(sys, num, flag); 142 148 obs._time.set(epochWeek, epochSecs); 143 149 … … 283 289 // end test 284 290 285 QStringprn;291 t_prn prn; 286 292 char sys; 293 int num, flag; 287 294 if (corr->PRN < 200) { 288 295 sys = 'G'; 289 prn = sys + QString("%1_0").arg(corr->PRN, 2, 10, QChar('0')); 290 } else { 296 num = corr->PRN; 297 } 298 else { 291 299 sys = 'R'; 292 prn = sys + QString("%1_0").arg(corr->PRN - 200, 2, 10, QChar('0')); 293 } 300 num = corr->PRN - 200; 301 } 302 flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 303 prn.set(sys, num, flag); 294 304 295 305 double L1 = 0; … … 353 363 354 364 // Select corresponding ephemerides 355 const t_eph* ephLast = _ephUser.ephLast(prn); 356 const t_eph* ephPrev = _ephUser.ephPrev(prn); 365 QString prnInternalStr(prn.toInternalString().c_str()); 366 const t_eph* ephLast = _ephUser.ephLast(prnInternalStr); 367 const t_eph* ephPrev = _ephUser.ephPrev(prnInternalStr); 357 368 if (ephLast && ephLast->IOD() == IODcorr) { 358 369 eph = ephLast; … … 376 387 if (*obsVal == 0) 377 388 *obsVal = ZEROVALUE; 378 389 char sys; 390 int num, flag; 379 391 if (corr->PRN < 200) { 380 new_obs._prn.set('G', corr->PRN); 381 } else { 382 new_obs._prn.set('R', corr->PRN - 200); 392 sys = 'G'; 393 num = corr->PRN; 383 394 } 395 else { 396 sys = 'R'; 397 num = corr->PRN - 200; 398 } 399 flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 400 new_obs._prn.set(sys, num, flag); 384 401 new_obs._time.set(GPSWeek_rcv, GPSWeeks_rcv); 385 402 … … 432 449 433 450 errmsg.push_back( 434 "missing eph for " + string(prn.toLatin1().data()) + " , IODs "451 "missing eph for " + prn.toString() + " , IODs " 435 452 + missingIODstr.str()); 436 453 } -
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r10587 r10599 71 71 _rawFile = rawFile; 72 72 73 connect(this, SIGNAL(newGPSEph(t_ephGPS)), BNC_CORE, 74 SLOT(slotNewGPSEph(t_ephGPS))); 75 connect(this, SIGNAL(newGlonassEph(t_ephGlo)), BNC_CORE, 76 SLOT(slotNewGlonassEph(t_ephGlo))); 77 connect(this, SIGNAL(newGalileoEph(t_ephGal)), BNC_CORE, 78 SLOT(slotNewGalileoEph(t_ephGal))); 79 connect(this, SIGNAL(newSBASEph(t_ephSBAS)), BNC_CORE, 80 SLOT(slotNewSBASEph(t_ephSBAS))); 81 connect(this, SIGNAL(newBDSEph(t_ephBDS)), BNC_CORE, 82 SLOT(slotNewBDSEph(t_ephBDS))); 73 connect(this, SIGNAL(newGPSEph(t_ephGPS)), BNC_CORE, SLOT(slotNewGPSEph(t_ephGPS))); 74 connect(this, SIGNAL(newGlonassEph(t_ephGlo)), BNC_CORE, SLOT(slotNewGlonassEph(t_ephGlo))); 75 connect(this, SIGNAL(newGalileoEph(t_ephGal)), BNC_CORE, SLOT(slotNewGalileoEph(t_ephGal))); 76 connect(this, SIGNAL(newSBASEph(t_ephSBAS)), BNC_CORE, SLOT(slotNewSBASEph(t_ephSBAS))); 77 connect(this, SIGNAL(newBDSEph(t_ephBDS)), BNC_CORE, SLOT(slotNewBDSEph(t_ephBDS))); 83 78 84 79 _MessageSize = _SkipBytes = _BlockSize = _NeedBytes = 0; … … 134 129 135 130 GETBITS(sv, 6) 136 if (sv < 40) 137 CurrentObs._prn.set('G', sv); 138 else 139 CurrentObs._prn.set('S', sv - 20); 131 char sys; 132 int num, flag; 133 if (sv < 40) { 134 sys = 'G'; 135 num = sv; 136 } 137 else { 138 sys = 'S'; 139 num = sv - 20; 140 } 141 flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 142 CurrentObs._prn.set(sys, num, flag); 140 143 141 144 t_frqObs *frqObs = new t_frqObs; … … 706 709 /* next satellite */ 707 710 ; 708 if (CurrentObs._obs.size() > 0) 711 if (CurrentObs._obs.size() > 0) { 712 char sys = CurrentObs._prn.system(); 713 int num = CurrentObs._prn.number(); 714 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 715 CurrentObs._prn.setFlag(flag); 709 716 _CurrentObsList.push_back(CurrentObs); 717 } 710 718 CurrentObs.clear(); 711 719 CurrentObs._time = CurrentObsTime; … … 882 890 } 883 891 if (CurrentObs._obs.size() > 0) { 892 char sys = CurrentObs._prn.system(); 893 int num = CurrentObs._prn.number(); 894 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 895 CurrentObs._prn.setFlag(flag); 884 896 _CurrentObsList.push_back(CurrentObs); 885 897 } … … 939 951 940 952 GETBITS(sv, 6) 941 CurrentObs._prn.set('R', sv); 953 char sys = 'R'; 954 int flag = t_corrSSR::getSsrNavTypeFlag(sys, sv); 955 CurrentObs._prn.set(sys, sv, flag); 942 956 GETBITS(code, 1) 943 957 GETBITS(freq, 5) … … 1135 1149 eph._TOT = 0.9999e9; 1136 1150 eph._type = t_eph::LNAV; 1151 eph._prn.setFlag(eph._type); 1137 1152 1138 1153 emit newGPSEph(eph); … … 1313 1328 _gloFrq = QString("%1 %2").arg(eph._prn.toString().c_str()).arg(eph._frq_num, 2, 'f', 0); 1314 1329 1315 eph._type = t_eph::FDMA; 1330 if (eph.validMdata()) { 1331 eph._type = t_eph::FDMA_M; 1332 } 1333 else { 1334 eph._type = t_eph::FDMA; 1335 } 1336 eph._prn.setFlag(eph._type); 1316 1337 eph._healthflags_unknown = false; 1317 1338 eph._statusflags_unknown = false; … … 1568 1589 eph._TOT = 0.9999e9; 1569 1590 eph._type = t_eph::LNAV; 1591 eph._prn.setFlag(eph._type); 1570 1592 1571 1593 emit newGPSEph(eph); … … 1643 1665 eph._health = 0; 1644 1666 eph._type = t_eph::SBASL1; 1667 eph._prn.setFlag(eph._type); 1645 1668 1646 1669 emit newSBASEph(eph); … … 1661 1684 GETBITS(i, 12) 1662 1685 1663 if ((i == 1046 && size == 61) || (i == 1045 && size == 60)) { 1686 if ((i == 1046 && size == 61) || 1687 (i == 1045 && size == 60)) { 1664 1688 t_ephGal eph; 1665 1689 eph._receptDateTime = currentDateAndTimeGPS(); … … 1679 1703 return false; 1680 1704 } 1681 eph._prn.set('E', i, eph._inav ? 1 : 0);1705 eph._prn.set('E', i, eph._inav ? t_eph::INAV : t_eph::FNAV); 1682 1706 1683 1707 GETBITS(week, 12) //FIXME: roll-over after week 4095!! … … 1741 1765 GETFLOATSIGN(eph._BGD_1_5A, 10, 1.0 / (double )(1 << 30) / (double )(1 << 2)) 1742 1766 if (eph._inav) { 1767 eph._type = t_eph::INAV; 1743 1768 /* set unused F/NAV values */ 1744 1769 eph._E5a_HS = 0.0; … … 1767 1792 return false; 1768 1793 } 1769 eph._type = t_eph::INAV;1770 1794 } 1771 1795 else { 1796 eph._type = t_eph::FNAV; 1772 1797 /* set unused I/NAV values */ 1773 1798 eph._BGD_1_5B = 0.0; … … 1779 1804 GETBITS(eph._E5a_HS, 2) 1780 1805 GETBITS(eph._E5a_DataInvalid, 1) 1781 eph._type = t_eph::FNAV;1782 1806 } 1783 1807 eph._TOT = 0.9999e9; … … 1908 1932 eph._type = t_eph::D2; 1909 1933 } 1934 eph._prn.setFlag(eph._type); 1910 1935 1911 1936 emit newBDSEph(eph); -
trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
r10572 r10599 243 243 continue; 244 244 } 245 char sysCh = ' '; 246 int flag = 0; 245 char sys = ' '; 246 int num = _clkOrb.Sat[ii].ID; 247 int flag = 0; // to force NAV type usage according SSR standard 247 248 if (ii < _clkOrb.NumberOfSat[CLOCKORBIT_SATGPS]) { 248 sysCh = 'G'; 249 sys = 'G'; 250 flag = t_eph::LNAV; 249 251 } 250 252 else if (ii >= CLOCKORBIT_OFFSETGLONASS && 251 253 ii < CLOCKORBIT_OFFSETGLONASS + _clkOrb.NumberOfSat[CLOCKORBIT_SATGLONASS]) { 252 sysCh = 'R'; 254 sys = 'R'; 255 flag = t_eph::FDMA_M; 253 256 } 254 257 else if (ii >= CLOCKORBIT_OFFSETGALILEO && 255 258 ii < CLOCKORBIT_OFFSETGALILEO + _clkOrb.NumberOfSat[CLOCKORBIT_SATGALILEO]) { 256 sys Ch= 'E';257 flag = 1; // I/NAV clock has been chosen as reference clock for Galileo SSR corrections259 sys = 'E'; 260 flag = t_eph::INAV; 258 261 } 259 262 else if (ii >= CLOCKORBIT_OFFSETQZSS && 260 263 ii < CLOCKORBIT_OFFSETQZSS + _clkOrb.NumberOfSat[CLOCKORBIT_SATQZSS]) { 261 sysCh = 'J'; 264 sys = 'J'; 265 flag = t_eph::LNAV; 262 266 } 263 267 else if (ii >= CLOCKORBIT_OFFSETSBAS && 264 268 ii < CLOCKORBIT_OFFSETSBAS + _clkOrb.NumberOfSat[CLOCKORBIT_SATSBAS]) { 265 sysCh = 'S'; 269 sys = 'S'; 270 flag = t_eph::SBASL1; 266 271 } 267 272 else if (ii >= CLOCKORBIT_OFFSETBDS && 268 273 ii < CLOCKORBIT_OFFSETBDS + _clkOrb.NumberOfSat[CLOCKORBIT_SATBDS]) { 269 sysCh = 'C'; 274 sys = 'C'; 275 if (num < 6) {// GEO 276 flag = t_eph::D2; 277 } 278 else if (num > 58 && num < 63) { // GEO 279 flag = t_eph::D2; 280 } 281 else { 282 flag = t_eph::D1; 283 } 270 284 } 271 285 else { … … 289 303 290 304 t_orbCorr orbCorr; 291 orbCorr._prn.set(sys Ch, _clkOrb.Sat[ii].ID, flag);305 orbCorr._prn.set(sys, num, flag); 292 306 orbCorr._staID = _staID.toStdString(); 293 307 orbCorr._iod = _clkOrb.Sat[ii].IOD; 294 308 orbCorr._time = _lastTime; 295 309 orbCorr._updateInt = _clkOrb.UpdateInterval; 296 orbCorr._system = sys Ch;310 orbCorr._system = sys; 297 311 orbCorr._xr[0] = _clkOrb.Sat[ii].Orbit.DeltaRadial; 298 312 orbCorr._xr[1] = _clkOrb.Sat[ii].Orbit.DeltaAlongTrack; … … 323 337 324 338 t_clkCorr clkCorr; 325 clkCorr._prn.set(sys Ch, _clkOrb.Sat[ii].ID, flag);339 clkCorr._prn.set(sys, _clkOrb.Sat[ii].ID, flag); 326 340 clkCorr._staID = _staID.toStdString(); 327 341 clkCorr._time = _lastTime; … … 347 361 _clkOrb.messageType == _ssrCorr->COTYPE_SBASHR || 348 362 _clkOrb.messageType == _ssrCorr->COTYPE_BDSHR) { 349 t_prn prn(sys Ch, _clkOrb.Sat[ii].ID, flag);363 t_prn prn(sys, _clkOrb.Sat[ii].ID, flag); 350 364 if (_lastClkCorrections.contains(prn)) { 351 365 t_clkCorr clkCorr; … … 371 385 + _codeBias.NumberOfSat[CLOCKORBIT_SATBDS]; 372 386 ii++) { 373 char sysCh = ' '; 387 char sys = ' '; 388 int num = _codeBias.Sat[ii].ID; 389 int flag = 0; 374 390 if (ii < _codeBias.NumberOfSat[CLOCKORBIT_SATGPS]) { 375 sysCh = 'G'; 391 sys = 'G'; 392 flag = t_eph::LNAV; 376 393 } 377 394 else if (ii >= CLOCKORBIT_OFFSETGLONASS && 378 395 ii < CLOCKORBIT_OFFSETGLONASS + _codeBias.NumberOfSat[CLOCKORBIT_SATGLONASS]) { 379 sysCh = 'R'; 396 sys = 'R'; 397 flag = t_eph::FDMA_M; 380 398 } 381 399 else if (ii >= CLOCKORBIT_OFFSETGALILEO && 382 400 ii < CLOCKORBIT_OFFSETGALILEO + _codeBias.NumberOfSat[CLOCKORBIT_SATGALILEO]) { 383 sysCh = 'E'; 401 sys = 'E'; 402 flag = t_eph::INAV; 384 403 } 385 404 else if (ii >= CLOCKORBIT_OFFSETQZSS && 386 405 ii < CLOCKORBIT_OFFSETQZSS + _codeBias.NumberOfSat[CLOCKORBIT_SATQZSS]) { 387 sysCh = 'J'; 406 sys = 'J'; 407 flag = t_eph::LNAV; 388 408 } 389 409 else if (ii >= CLOCKORBIT_OFFSETSBAS && 390 410 ii < CLOCKORBIT_OFFSETSBAS + _codeBias.NumberOfSat[CLOCKORBIT_SATSBAS]) { 391 sysCh = 'S'; 411 sys = 'S'; 412 flag = t_eph::SBASL1; 392 413 } 393 414 else if (ii >= CLOCKORBIT_OFFSETBDS && 394 415 ii < CLOCKORBIT_OFFSETBDS + _codeBias.NumberOfSat[CLOCKORBIT_SATBDS]) { 395 sysCh = 'C'; 416 sys = 'C'; 417 if (num < 6) {// GEO 418 flag = t_eph::D2; 419 } 420 else if (num > 58 && num < 63) { // GEO 421 flag = t_eph::D2; 422 } 423 else { 424 flag = t_eph::D1; 425 } 396 426 } 397 427 else { … … 399 429 } 400 430 t_satCodeBias satCodeBias; 401 satCodeBias._prn.set(sys Ch, _codeBias.Sat[ii].ID);431 satCodeBias._prn.set(sys, num, flag); 402 432 satCodeBias._staID = _staID.toStdString(); 403 433 satCodeBias._time = _lastTime; … … 406 436 const SsrCorr::CodeBias::BiasSat::CodeBiasEntry& biasEntry = _codeBias.Sat[ii].Biases[jj]; 407 437 t_frqCodeBias frqCodeBias; 408 frqCodeBias._rnxType2ch.assign(_ssrCorr->codeTypeToRnxType(sys Ch, biasEntry.Type));438 frqCodeBias._rnxType2ch.assign(_ssrCorr->codeTypeToRnxType(sys, biasEntry.Type)); 409 439 frqCodeBias._value = biasEntry.Bias; 410 440 if (!frqCodeBias._rnxType2ch.empty()) { … … 424 454 + _phaseBias.NumberOfSat[CLOCKORBIT_SATBDS]; 425 455 ii++) { 426 char sysCh = ' '; 456 char sys = ' '; 457 int num = _phaseBias.Sat[ii].ID; 458 int flag = 0; 427 459 if (ii < _phaseBias.NumberOfSat[CLOCKORBIT_SATGPS]) { 428 sysCh = 'G'; 460 sys = 'G'; 461 flag = t_eph::LNAV; 429 462 } 430 463 else if (ii >= CLOCKORBIT_OFFSETGLONASS && 431 464 ii < CLOCKORBIT_OFFSETGLONASS + _phaseBias.NumberOfSat[CLOCKORBIT_SATGLONASS]) { 432 sysCh = 'R'; 465 sys = 'R'; 466 flag = t_eph::FDMA_M; 433 467 } 434 468 else if (ii >= CLOCKORBIT_OFFSETGALILEO && 435 469 ii < CLOCKORBIT_OFFSETGALILEO + _phaseBias.NumberOfSat[CLOCKORBIT_SATGALILEO]) { 436 sysCh = 'E'; 470 sys = 'E'; 471 flag = t_eph::INAV; 437 472 } 438 473 else if (ii >= CLOCKORBIT_OFFSETQZSS && 439 474 ii < CLOCKORBIT_OFFSETQZSS + _phaseBias.NumberOfSat[CLOCKORBIT_SATQZSS]) { 440 sysCh = 'J'; 475 sys = 'J'; 476 flag = t_eph::LNAV; 441 477 } 442 478 else if (ii >= CLOCKORBIT_OFFSETSBAS && 443 479 ii < CLOCKORBIT_OFFSETSBAS + _phaseBias.NumberOfSat[CLOCKORBIT_SATSBAS]) { 444 sysCh = 'S'; 480 sys = 'S'; 481 flag = t_eph::SBASL1; 445 482 } 446 483 else if (ii >= CLOCKORBIT_OFFSETBDS && 447 484 ii < CLOCKORBIT_OFFSETBDS + _phaseBias.NumberOfSat[CLOCKORBIT_SATBDS]) { 448 sysCh = 'C'; 485 sys = 'C'; 486 if (num < 6) {// GEO 487 flag = t_eph::D2; 488 } 489 else if (num > 58 && num < 63) { // GEO 490 flag = t_eph::D2; 491 } 492 else { 493 flag = t_eph::D1; 494 } 449 495 } 450 496 else { … … 452 498 } 453 499 t_satPhaseBias satPhaseBias; 454 satPhaseBias._prn.set(sys Ch, _phaseBias.Sat[ii].ID);500 satPhaseBias._prn.set(sys, num, flag); 455 501 satPhaseBias._staID = _staID.toStdString(); 456 502 satPhaseBias._time = _lastTime; … … 463 509 const SsrCorr::PhaseBias::PhaseBiasSat::PhaseBiasEntry& biasEntry = _phaseBias.Sat[ii].Biases[jj]; 464 510 t_frqPhaseBias frqPhaseBias; 465 frqPhaseBias._rnxType2ch.assign(_ssrCorr->codeTypeToRnxType(sys Ch, biasEntry.Type));511 frqPhaseBias._rnxType2ch.assign(_ssrCorr->codeTypeToRnxType(sys, biasEntry.Type)); 466 512 frqPhaseBias._value = biasEntry.Bias; 467 513 frqPhaseBias._fixIndicator = biasEntry.SignalIntegerIndicator; -
trunk/BNC/src/RTCM3/RTCM3coDecoder.h
r10572 r10599 33 33 #include "../RTCM3/clock_and_orbit/clock_orbit_igs.h" 34 34 #include "../RTCM3/clock_and_orbit/clock_orbit_rtcm.h" 35 #include "ephemeris.h" 35 36 36 37 class RTCM3coDecoder : public QObject, public GPSDecoder { -
trunk/BNC/src/bncutils.cpp
r10587 r10599 1023 1023 } 1024 1024 1025 // Extracts k bits from position p and returns the extracted value as integer 1026 //////////////////////////////////////////////////////////////////////////// 1027 int bitExtracted(int number, int k, int p) { 1028 return (((1 << k) - 1) & (number >> (p - 1))); 1025 // Extracts k bits from position pos and returns the extracted value as unsigned int 1026 //////////////////////////////////////////////////////////////////////////// 1027 unsigned bitExtracted(unsigned number, unsigned k, unsigned pos) { 1028 // Right shift 'num' by 'pos' bits 1029 unsigned shifted = number >> pos; 1030 1031 // Create a mask with 'k' bits set to 1 1032 unsigned mask = (1 << k) - 1; 1033 1034 // Apply the mask to the shifted number 1035 return shifted & mask; 1029 1036 } 1030 1037 -
trunk/BNC/src/bncutils.h
r10587 r10599 169 169 // Extracts k bits from position p and returns the extracted value as integer 170 170 /////////////////////////////////////////////////////////////////// 171 int bitExtracted(int number, int k, intp);171 unsigned bitExtracted(unsigned number, unsigned k, unsigned p); 172 172 173 173 -
trunk/BNC/src/combination/bnccomb.cpp
r10548 r10599 238 238 int nextPar = 0; 239 239 char sys = itSys.key(); 240 unsigned maxPrn = itSys.value(); 241 unsigned flag = 0; 242 if (sys == 'E') { 243 flag = 1; 244 } 240 int maxPrn = itSys.value(); 245 241 // AC 246 242 QListIterator<cmbAC*> itAc(_ACs); … … 248 244 cmbAC* AC = itAc.next(); 249 245 _params[sys].push_back(new cmbParam(cmbParam::offACgnss, ++nextPar, AC->name, "")); 250 for (unsigned iGnss = 1; iGnss <= maxPrn; iGnss++) { 246 for (int iGnss = 1; iGnss <= maxPrn; iGnss++) { 247 int flag = t_corrSSR::getSsrNavTypeFlag(sys, iGnss); 251 248 QString prn = QString("%1%2_%3").arg(sys).arg(iGnss, 2, 10, QChar('0')).arg(flag); 252 249 _params[sys].push_back(new cmbParam(cmbParam::offACSat, ++nextPar, AC->name, prn)); 253 250 } 254 251 } 255 for (unsigned iGnss = 1; iGnss <= maxPrn; iGnss++) { 252 for (int iGnss = 1; iGnss <= maxPrn; iGnss++) { 253 int flag = t_corrSSR::getSsrNavTypeFlag(sys, iGnss); 256 254 QString prn = QString("%1%2_%3").arg(sys).arg(iGnss, 2, 10, QChar('0')).arg(flag); 257 255 _params[sys].push_back(new cmbParam(cmbParam::clkSat, ++nextPar, "", prn)); … … 680 678 const t_clkCorr& clkCorr = clkCorrVec[ii]; 681 679 QString staID(clkCorr._staID.c_str()); 682 QString prn (clkCorr._prn.toInternalString().c_str());680 QString prnStr(clkCorr._prn.toInternalString().c_str()); 683 681 char sys = clkCorr._prn.system(); 684 682 … … 700 698 // --------------------- 701 699 _newCorr = new cmbCorr(); 702 _newCorr->_prn = prn ;700 _newCorr->_prn = prnStr; 703 701 _newCorr->_time = clkCorr._time; 704 702 _newCorr->_iod = clkCorr._iod; … … 727 725 // Check the Ephemeris 728 726 //-------------------- 729 t_eph* ephLast = _ephUser.ephLast(prn );730 t_eph* ephPrev = _ephUser.ephPrev(prn );727 t_eph* ephLast = _ephUser.ephLast(prnStr); 728 t_eph* ephPrev = _ephUser.ephPrev(prnStr); 731 729 if (ephLast == 0) { 732 730 #ifdef BNC_DEBUG_CMB 733 emit newMessage("bncComb: eph not found for " + prn .mid(0,3).toLatin1(), true);731 emit newMessage("bncComb: eph not found for " + prnStr.mid(0,3).toLatin1(), true); 734 732 #endif 735 733 delete _newCorr; _newCorr = 0; … … 741 739 ephLast->checkState() == t_eph::unhealthy) { 742 740 #ifdef BNC_DEBUG_CMB 743 emit newMessage("bncComb: ephLast not ok (checkState: " + ephLast->checkStateToString().toLatin1() + ") for " + prn .mid(0,3).toLatin1(), true);741 emit newMessage("bncComb: ephLast not ok (checkState: " + ephLast->checkStateToString().toLatin1() + ") for " + prnStr.mid(0,3).toLatin1(), true); 744 742 #endif 745 743 delete _newCorr; _newCorr = 0; … … 759 757 else { 760 758 #ifdef BNC_DEBUG_CMB 761 emit newMessage("bncComb: eph not found for " + prn .mid(0,3).toLatin1() +759 emit newMessage("bncComb: eph not found for " + prnStr.mid(0,3).toLatin1() + 762 760 QString(" with IOD %1").arg(_newCorr->_iod).toLatin1(), true); 763 761 #endif … … 806 804 bool available = false; 807 805 while (itCorr.hasNext()) { 808 cmbCorr* corr = itCorr.next();809 QString prn 806 cmbCorr* corr = itCorr.next(); 807 QString prnStr = corr->_prn; 810 808 QString acName = corr->_acName; 811 809 if (_newCorr->_acName == acName && 812 _newCorr->_prn == prn ) {810 _newCorr->_prn == prnStr) { 813 811 available = true; 814 812 } … … 1263 1261 } 1264 1262 } 1265 unsigned flag = 0;1266 if (sys == 'E') {1267 flag = 1;1268 }1269 1263 // if (sys == 'R') { 1270 1264 // return success; … … 1273 1267 // GNSS 1274 1268 for (unsigned iGnss = 1; iGnss <= _cmbSysPrn[sys]; iGnss++) { 1269 int flag = t_corrSSR::getSsrNavTypeFlag(sys, iGnss); 1275 1270 QString prn = QString("%1%2_%3").arg(sys).arg(iGnss, 2, 10, QChar('0')).arg(flag); 1276 1271 ++iCond; … … 1311 1306 QMutableVectorIterator<cmbCorr*> it(corrs(sys)); 1312 1307 while (it.hasNext()) { 1313 cmbCorr* corr = it.next();1314 QString prn = corr->_prn;1308 cmbCorr* corr = it.next(); 1309 QString prnStr = corr->_prn; 1315 1310 bool foundMaster = false; 1316 1311 QVectorIterator<cmbCorr*> itHlp(corrs(sys)); … … 1319 1314 QString prnHlp = corrHlp->_prn; 1320 1315 QString ACHlp = corrHlp->_acName; 1321 if (ACHlp == _masterOrbitAC[sys] && prn == prnHlp) {1316 if (ACHlp == _masterOrbitAC[sys] && prnStr == prnHlp) { 1322 1317 foundMaster = true; 1323 1318 break; … … 1638 1633 while (it.hasNext()) { 1639 1634 string prnStr = it.next().toLatin1().data(); 1640 if (prnStr == prn.toString() || prnStr == prn.toString().substr(0,1)) { 1635 if (prnStr == prn.toString() || // prn 1636 prnStr == prn.toString().substr(0,1)) { // sys 1641 1637 return true; 1642 1638 } -
trunk/BNC/src/ephemeris.cpp
r10587 r10599 109 109 // 110 110 ////////////////////////////////////////////////////////////////////////////// 111 void t_eph::setType(QString typeStr) {112 113 if (typeStr == "LNAV") {114 _type = t_eph::LNAV;115 } else if (typeStr == "FDMA") {116 _type = t_eph::FDMA;117 } else if (typeStr == "FNAV") {118 _type = t_eph::FNAV;119 } else if (typeStr == "INAV") {120 _type = t_eph::INAV;121 } else if (typeStr == "D1") {122 _type = t_eph::D1;123 } else if (typeStr == "D2") {124 _type = t_eph::D2;125 } else if (typeStr == "SBAS") {126 _type = t_eph::SBASL1;127 } else if (typeStr == "CNAV") {128 _type = t_eph::CNAV;129 } else if (typeStr == "CNV1") {130 _type = t_eph::CNV1;131 } else if (typeStr == "CNV2") {132 _type = t_eph::CNV2;133 } else if (typeStr == "CNV3") {134 _type = t_eph::CNV3;135 } else if (typeStr == "L1NV") {136 _type = t_eph::L1NV;137 } else if (typeStr == "L1OC") {138 _type = t_eph::L1OC;139 } else if (typeStr == "L3OC") {140 _type = t_eph::L3OC;141 } else {142 _type = t_eph::undefined;143 }144 145 }146 147 //148 //////////////////////////////////////////////////////////////////////////////149 111 QString t_eph::typeStr(e_type type, const t_prn &prn, double version) { 150 112 QString typeStr = ""; … … 173 135 break; 174 136 case FDMA: 137 case FDMA_M: 175 138 typeStr = epochStart + ephStr + "FDMA" + eolStr; 176 139 break; … … 317 280 } 318 281 319 in >> year >> month >> day >> hour >> min >> sec;320 282 if ( prnStr.at(0) == 'G') { 321 283 _prn.set('G', prnStr.mid(1).toInt()); … … 327 289 _prn.set('G', prnStr.toInt()); 328 290 } 291 _prn.setFlag(type()); 292 293 in >> year >> month >> day >> hour >> min >> sec; 329 294 330 295 if (year < 80) { … … 577 542 _flags_unknown = false; 578 543 // Bit 0: 579 _intSF = double(bitExtracted( int(statusflags), 1, 0));544 _intSF = double(bitExtracted(unsigned(statusflags), 1, 0)); 580 545 // Bit 1: 581 _L2Cphasing = double(bitExtracted( int(statusflags), 1, 1));546 _L2Cphasing = double(bitExtracted(unsigned(statusflags), 1, 1)); 582 547 // Bit 2: 583 _alert = double(bitExtracted( int(statusflags), 1, 2));548 _alert = double(bitExtracted(unsigned(statusflags), 1, 2)); 584 549 } 585 550 } … … 1099 1064 prnStr.append(n); 1100 1065 } 1101 in >> year >> month >> day >> hour >> min >> sec; 1066 1102 1067 if (prnStr.at(0) == 'R') { 1103 1068 _prn.set('R', prnStr.mid(1).toInt()); … … 1106 1071 } 1107 1072 1073 in >> year >> month >> day >> hour >> min >> sec; 1108 1074 if (year < 80) { 1109 1075 year += 2000; … … 1142 1108 // ===================== 1143 1109 else if (iLine == 2) { 1144 if (type() == t_eph::FDMA || 1145 type() == t_eph::undefined) { 1110 if (type() == t_eph::FDMA) { 1146 1111 if ( readDbl(line, pos[0], fieldLen, _y_pos) 1147 1112 || readDbl(line, pos[1], fieldLen, _y_vel) … … 1167 1132 // ===================== 1168 1133 else if (iLine == 3) { 1169 if (type() == t_eph::FDMA || 1170 type() == t_eph::undefined) { 1134 if (type() == t_eph::FDMA) { 1171 1135 if ( readDbl(line, pos[0], fieldLen, _z_pos) 1172 1136 || readDbl(line, pos[1], fieldLen, _z_vel) … … 1200 1164 // ===================== 1201 1165 else if (iLine == 4) { 1202 if (type() == t_eph::FDMA || 1203 type() == t_eph::undefined){ 1166 if (type() == t_eph::FDMA) { 1204 1167 if (readDbl(line, pos[0], fieldLen, statusflags)) { 1205 1168 //status flags BLK, do nothing … … 1235 1198 _M_delta_tau = 0.0; 1236 1199 } 1200 else { 1201 _type = t_eph::FDMA_M; 1202 } 1237 1203 } 1238 1204 if ( readDbl(line, pos[1], fieldLen, _M_delta_tau) … … 1335 1301 } 1336 1302 1303 _prn.setFlag(type()); 1304 1337 1305 // Initialize status vector 1338 1306 // ------------------------ … … 1433 1401 // BROADCAST ORBIT - 2 1434 1402 // ===================== 1435 if (type() == t_eph::FDMA) { 1403 if (type() == t_eph::FDMA || 1404 type() == t_eph::FDMA_M) { 1436 1405 out 1437 1406 << QString(fmt) … … 1452 1421 // BROADCAST ORBIT - 3 1453 1422 // ===================== 1454 if (type() == t_eph::FDMA) { 1423 if (type() == t_eph::FDMA || 1424 type() == t_eph::FDMA_M) { 1455 1425 out 1456 1426 << QString(fmt) … … 1480 1450 // BROADCAST ORBIT - 4 1481 1451 // ===================== 1482 if (type() == t_eph::FDMA){ 1452 if (type() == t_eph::FDMA || 1453 type() == t_eph::FDMA_M){ 1483 1454 int statusflags = 0; 1484 1455 int healthflags = 0; … … 1681 1652 ////////////////////////////////////////////////////////////////////////////// 1682 1653 t_ephGal::t_ephGal(double rnxVersion, const QStringList &lines) { 1683 int year, month, day, hour, min; 1684 double sec; 1685 QString prnStr; 1654 1686 1655 const int nLines = 8; 1656 1687 1657 if (lines.size() != nLines) { 1688 1658 _checkState = bad; … … 1709 1679 if (iLine == 0) { 1710 1680 QTextStream in(line.left(pos[1]).toLatin1()); 1711 QString n; 1681 1682 int year, month, day, hour, min; 1683 double sec; 1684 1685 QString prnStr, n; 1712 1686 in >> prnStr; 1713 1687 if (prnStr.size() == 1 && prnStr[0] == 'E') { … … 1715 1689 prnStr.append(n); 1716 1690 } 1691 if (prnStr.at(0) == 'E') { 1692 _prn.set('E', prnStr.mid(1).toInt()); 1693 } else { 1694 _prn.set('E', prnStr.toInt()); 1695 } 1696 1717 1697 in >> year >> month >> day >> hour >> min >> sec; 1718 1698 if (year < 80) { … … 1790 1770 } 1791 1771 else { 1792 if (bitExtracted( int(datasource), 1, 8)) {1772 if (bitExtracted(unsigned(datasource), 1, 8)) { 1793 1773 _fnav = true; 1774 _type = t_eph::FNAV; 1794 1775 _inav = false; 1795 1776 /* set unused I/NAV values */ … … 1798 1779 _E1B_DataInvalid = false; 1799 1780 _E5b_DataInvalid = false; 1800 // Source RINEX version < 4 1801 if (type() == t_eph::undefined) { 1802 _type = t_eph::FNAV; 1803 } 1804 } 1805 if (bitExtracted(int(datasource), 1, 9)) { 1781 } 1782 if (bitExtracted(unsigned(datasource), 1, 9)) { 1806 1783 _fnav = false; 1807 1784 _inav = true; 1785 _type = t_eph::INAV; 1808 1786 /* set unused F/NAV values */ 1809 1787 _E5a_HS = 0.0; 1810 1788 _E5a_DataInvalid = false; 1811 // Source RINEX version < 41812 if (type() == t_eph::undefined) {1813 _type = t_eph::INAV;1814 }1815 1789 } 1816 1790 // GAL week # in RINEX is aligned/identical to continuous GPS week # used in RINEX … … 1845 1819 _BGD_1_5B = 0.0; 1846 1820 } 1847 if (prnStr.at(0) == 'E') {1848 _prn.set('E', prnStr.mid(1).toInt(), _inav ? 1 : 0);1849 }1850 1821 } 1851 1822 } … … 1860 1831 } 1861 1832 } 1833 _prn.setFlag(type()); 1862 1834 } 1863 1835 … … 2174 2146 prnStr.append(n); 2175 2147 } 2176 in >> year >> month >> day >> hour >> min >> sec;2177 2148 if (prnStr.at(0) == 'S') { 2178 2149 _prn.set('S', prnStr.mid(1).toInt()); … … 2180 2151 _prn.set('S', prnStr.toInt()); 2181 2152 } 2153 _prn.setFlag(type()); 2154 2155 in >> year >> month >> day >> hour >> min >> sec; 2182 2156 2183 2157 if (year < 80) { … … 2417 2391 prnStr.append(n); 2418 2392 } 2419 in >> year >> month >> day >> hour >> min >> sec;2420 2393 if (prnStr.at(0) == 'C') { 2421 2394 _prn.set('C', prnStr.mid(1).toInt()); … … 2424 2397 } 2425 2398 2399 in >> year >> month >> day >> hour >> min >> sec; 2426 2400 if (year < 80) { 2427 2401 year += 2000; … … 2654 2628 } 2655 2629 } 2630 _prn.setFlag(type()); 2656 2631 2657 2632 _TOE.setBDS(int(_BDTweek), _TOEsec); -
trunk/BNC/src/ephemeris.h
r10587 r10599 18 18 enum e_system {unknown, GPS, QZSS, GLONASS, Galileo, SBAS, BDS, IRNSS}; 19 19 enum e_checkState {unchecked, ok, bad, outdated, unhealthy}; 20 enum e_type {undefined, LNAV, FDMA, F NAV, INAV, D1, D2, SBASL1, CNAV, CNV1, CNV2, CNV3, L1NV, L1OC, L3OC};20 enum e_type {undefined, LNAV, FDMA, FDMA_M, FNAV, INAV, D1, D2, SBASL1, CNAV, CNV1, CNV2, CNV3, L1NV, L1OC, L3OC}; 21 21 22 22 t_eph(); … … 43 43 } 44 44 e_type type() const {return _type;} 45 void setType(QString typeStr); 46 47 t_prn prn() const {return _prn;} 45 t_prn prn() const {return _prn;} 48 46 t_irc getCrd(const bncTime& tt, ColumnVector& xc, ColumnVector& vv, bool useCorr) const; 49 47 void setOrbCorr(const t_orbCorr* orbCorr); … … 292 290 virtual unsigned int isUnhealthy() const; 293 291 virtual int slotNum() const {return int(_frq_num);} 294 292 virtual bool validMdata() const {return (_M_M ? true : false);} 295 293 private: 296 294 virtual t_irc position(int GPSweek, double GPSweeks, double* xc, double* vv) const; 297 295 static ColumnVector glo_deriv(double /* tt */, const ColumnVector& xv, double* acc); 298 296 299 mutable bncTime _tt; // time300 mutable ColumnVector _xv; // status vector (position, velocity) at time _tt297 mutable bncTime _tt; // time 298 mutable ColumnVector _xv; // status vector (position, velocity) at time _tt 301 299 302 300 double _gps_utc; // [s] -
trunk/BNC/src/rinex/corrfile.cpp
r8204 r10599 35 35 * Created: 12-Feb-2012 36 36 * 37 * Changes: 37 * Changes: 38 38 * 39 39 * -----------------------------------------------------------------------*/ … … 98 98 while (it.hasNext()) { 99 99 const t_orbCorr& corr = it.next(); 100 _corrIODs[QString(corr._prn.toInternalString().c_str())] = corr._iod; 100 QString corrPrn = QString(corr._prn.toInternalString().c_str()); 101 _corrIODs[corrPrn] = corr._iod; 101 102 } 102 103 emit newOrbCorrections(orbCorrList); -
trunk/BNC/src/rinex/rnxnavfile.cpp
r10587 r10599 303 303 304 304 if (eph) { 305 eph->setType(navType);306 305 _ephs.push_back(eph); 307 306 } … … 321 320 while (itIOD.hasNext()) { 322 321 itIOD.next(); 323 QString prn = itIOD.key();324 unsigned int iod = itIOD.value();322 QString corrPrn = itIOD.key(); 323 unsigned int corrIod = itIOD.value(); 325 324 vector<t_eph*>::iterator it = _ephs.begin(); 326 325 while (it != _ephs.end()) { 327 326 t_eph* eph = *it; 328 327 double dt = eph->TOC() - tt; 329 if (dt < 8*3600.0 && QString(eph->prn().toInternalString().c_str()) == prn && eph->IOD() == iod) { 328 QString ephPrn = QString(eph->prn().toInternalString().c_str()); 329 unsigned int ephIod = eph->IOD(); 330 if (dt < 8*3600.0 && 331 ephPrn == corrPrn && 332 ephIod == corrIod) { 330 333 it = _ephs.erase(it); 331 334 return eph; … … 343 346 t_eph* eph = *it; 344 347 double dt = eph->TOC() - tt; 345 if (dt < 2*3600.0) { 348 char sys = eph->prn().system(); 349 int num = eph->prn().number(); 350 int ssrNavType = t_corrSSR::getSsrNavTypeFlag(sys, num); 351 if (dt < 2*3600.0 && eph->type() == ssrNavType) { 346 352 it = _ephs.erase(it); 347 353 return eph; -
trunk/BNC/src/rinex/rnxobsfile.cpp
r10561 r10599 1224 1224 line = _stream->readLine(); 1225 1225 t_prn prn; prn.set(line.left(3).toLatin1().data()); 1226 char sys = prn.system(); 1227 int num = prn.number(); 1228 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 1229 prn.setFlag(flag); 1226 1230 _currEpo.rnxSat[iSat].prn = prn; 1227 char sys = prn.system();1228 1231 for (int iType = 0; iType < _header.nTypes(sys); iType++) { 1229 1232 int pos = 3 + 16*iType; … … 1309 1312 sys = 'G'; 1310 1313 } 1311 int satNum; readInt(line, pos + 1, 2, satNum); 1312 _currEpo.rnxSat[iSat].prn.set(sys, satNum); 1314 int num; readInt(line, pos + 1, 2, num); 1315 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 1316 t_prn prn; 1317 prn.set(sys, num, flag); 1318 _currEpo.rnxSat[iSat].prn = prn; 1313 1319 1314 1320 pos += 3; … … 1593 1599 const t_rnxObsFile::t_rnxSat& rnxSat, t_satObs& obs) { 1594 1600 obs._staID = rnxObsFile->markerName().toLatin1().constData(); 1601 obs._time = epo->tt; 1595 1602 obs._prn = rnxSat.prn; 1596 obs._time = epo->tt; 1597 1598 char sys = rnxSat.prn.system(); 1603 1604 char sys = obs._prn.system(); 1605 int num = obs._prn.number(); 1606 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 1607 obs._prn.setFlag(flag); 1599 1608 1600 1609 QChar addToL2; -
trunk/BNC/src/satObs.cpp
r10565 r10599 64 64 65 65 in >> corr._prn >> corr._iod >> corr._dClk >> corr._dotDClk >> corr._dotDotDClk; 66 if (corr._prn.system() == 'E') { 67 corr._prn.setFlags(1);// I/NAV 68 } 66 67 char sys = corr._prn.system(); 68 int num = corr._prn.number(); 69 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 70 corr._prn.setFlag(flag); 71 69 72 corr._dClk /= (t_CST::c); 70 73 corr._dotDClk /= (t_CST::c * 1.e3); … … 137 140 >> corr._dotXr[0] >> corr._dotXr[1] >> corr._dotXr[2]; 138 141 142 char sys = corr._prn.system(); 143 int num = corr._prn.number(); 144 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 145 corr._prn.setFlag(flag); 146 139 147 corr._dotXr[0] /= 1.e3; // mm/s => m/s 140 148 corr._dotXr[1] /= 1.e3; // mm/s => m/s 141 149 corr._dotXr[2] /= 1.e3; // mm/s => m/s 142 150 143 if (corr._prn.system() == 'E') {144 corr._prn.setFlags(1);// I/NAV145 }146 151 corrList.push_back(corr); 147 152 } … … 201 206 in >> corr._prn >> corr._iod >> corr._ura; 202 207 208 char sys = corr._prn.system(); 209 int num = corr._prn.number(); 210 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 211 corr._prn.setFlag(flag); 212 203 213 corrList.push_back(corr); 204 214 } … … 255 265 int numBias; 256 266 in >> satCodeBias._prn >> numBias; 267 268 char sys = satCodeBias._prn.system(); 269 int num = satCodeBias._prn.number(); 270 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 271 satCodeBias._prn.setFlag(flag); 257 272 258 273 while (in.good()) { … … 338 353 satPhaseBias._yaw = yawDeg * M_PI / 180.0; 339 354 satPhaseBias._yawRate = yawDegRate * M_PI / 180.0; 355 356 char sys = satPhaseBias._prn.system(); 357 int num = satPhaseBias._prn.number(); 358 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 359 satPhaseBias._prn.setFlag(flag); 340 360 341 361 while (in.good()) { … … 460 480 return unknown; 461 481 } 482 483 // Set NAV type to force NAVtype usage according SSR standard 484 ///////////////////////////////////////////////////////////// 485 t_eph::e_type t_corrSSR::getSsrNavTypeFlag(char sys, int num) { 486 487 t_eph::e_type flag = t_eph::undefined; 488 489 switch (sys) { 490 case 'G': 491 case 'J': 492 flag = t_eph::LNAV; 493 break; 494 case 'R': 495 flag = t_eph::FDMA_M; 496 break; 497 case 'E': 498 flag = t_eph::INAV; 499 break; 500 case 'C': 501 if (num < 6) {// GEO 502 flag = t_eph::D2; 503 } 504 else if (num > 58 && num < 63) { // GEO 505 flag = t_eph::D2; 506 } 507 else { 508 flag = t_eph::D1; 509 } 510 break; 511 case 'S': 512 flag = t_eph::SBASL1; 513 break; 514 } 515 516 return flag; 517 } -
trunk/BNC/src/satObs.h
r10228 r10599 11 11 #include "bnctime.h" 12 12 #include "t_prn.h" 13 #include "ephemeris.h" 13 14 14 15 class t_frqObs { … … 85 86 t_prn _prn; 86 87 bncTime _time; 87 int _type; 88 int _type; // MT 88 89 std::vector<t_frqObs*> _obs; 89 90 }; … … 220 221 static e_type readEpoLine(const std::string& line, bncTime& epoTime, 221 222 unsigned int& updateInt, int& numEntries, std::string& staID); 222 };223 223 static t_eph::e_type getSsrNavTypeFlag(char sys, int num); 224 }; 224 225 #endif -
trunk/BNC/src/t_prn.cpp
r8168 r10599 46 46 string t_prn::toInternalString() const { 47 47 stringstream ss; 48 ss << _system << setfill('0') << setw(2) << _number << '_' << _flag s;48 ss << _system << setfill('0') << setw(2) << _number << '_' << _flag; 49 49 return ss.str(); 50 50 } -
trunk/BNC/src/t_prn.h
r10518 r10599 17 17 18 18 t_prn() : 19 _system('G'), _number(0), _flag s(0) {19 _system('G'), _number(0), _flag(0) { 20 20 } 21 21 t_prn(char system, int number) : 22 _system(system), _number(number), _flag s(0) {22 _system(system), _number(number), _flag(0) { 23 23 } 24 24 25 t_prn(char system, int number, int flag s) :26 _system(system), _number(number), _flag s(flags) {25 t_prn(char system, int number, int flag) : 26 _system(system), _number(number), _flag(flag) { 27 27 } 28 28 … … 33 33 _system = system; 34 34 _number = number; 35 _flag s= 0;35 _flag = 0; 36 36 } 37 37 38 void set(char system, int number, int flag s) {38 void set(char system, int number, int flag) { 39 39 _system = system; 40 40 _number = number; 41 _flag s = flags;41 _flag = flag; 42 42 } 43 43 44 void setFlag s(int flags) {45 _flag s = flags;44 void setFlag(int flag) { 45 _flag = flag; 46 46 } 47 47 … … 54 54 return _number; 55 55 } 56 int flag s() const {57 return _flag s;56 int flag() const { 57 return _flag; 58 58 } 59 59 int toInt() const; … … 64 64 if (_system == prn2._system && 65 65 _number == prn2._number && 66 _flag s == prn2._flags) {66 _flag == prn2._flag) { 67 67 return true; 68 68 } … … 78 78 _system = 'G'; 79 79 _number = 0; 80 _flag s= 0;80 _flag = 0; 81 81 } 82 82 … … 87 87 private: 88 88 char _system; 89 int _number;90 int _flags;89 int _number; 90 int _flag; 91 91 }; 92 92 -
trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
r10548 r10599 461 461 } 462 462 463 464 463 struct SsrCorr::CodeBias bias; 465 464 memset(&bias, 0, sizeof(bias)); … … 526 525 ColumnVector rtnClk; rtnClk.ReSize(3); rtnClk = 0.0; // [m, m/s, m/s²] 527 526 ColumnVector rtnClkSig; rtnClkSig.ReSize(3); rtnClkSig = 0.0; // [m, m/s, m/s²] 528 t_prn prn;529 527 530 528 QTextStream in(epochLines[ii].toLatin1()); … … 560 558 } 561 559 // satellite specific parameters 560 t_prn prn; 562 561 char sys = key.mid(0, 1).at(0).toLatin1(); 563 int number = key.mid(1, 2).toInt(); 564 int flags = 0; 565 if (sys == 'E') { // I/NAV 566 flags = 1; 567 } 568 if (number == 0) { 562 int num = key.mid(1, 2).toInt(); 563 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 564 if (!num) { 569 565 continue; 570 566 } 571 prn.set(sys, num ber, flags);567 prn.set(sys, num, flag); 572 568 QString prnInternalStr = QString::fromStdString(prn.toInternalString()); 573 QString prnStr = QString::fromStdString(prn.toString());569 QString prnStr = QString::fromStdString(prn.toString()); 574 570 575 571 const t_eph* ephLast = _ephUser->ephLast(prnInternalStr);
Note:
See TracChangeset
for help on using the changeset viewer.