Changeset 11009 in ntrip
- Timestamp:
- Sep 9, 2026, 12:08:46 PM (5 hours ago)
- Location:
- trunk/BNC/src
- Files:
-
- 6 edited
-
PPP/pppClient.cpp (modified) (2 diffs)
-
PPP/pppClient.h (modified) (1 diff)
-
PPP/pppObsPool.cpp (modified) (3 diffs)
-
PPP/pppObsPool.h (modified) (3 diffs)
-
pppRun.cpp (modified) (3 diffs)
-
pppRun.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppClient.cpp
r10952 r11009 112 112 void t_pppClient::putTec(const t_vTec* vTec) { 113 113 _obsPool->putTec(new t_vTec(*vTec)); 114 } 115 116 // 117 ////////////////////////////////////////////////////////////////////////////// 118 void t_pppClient::putMetaData(const t_metaData* metaData) { 119 _obsPool->putMetaData(new t_metaData(*metaData)); 114 120 } 115 121 … … 457 463 // Tides 458 464 // ----- 459 station->setTideDsplEarth(_tides->earth(time, station->xyzApr())); 465 // SSR Metadata (model correction type 3 = solid earth tides) tells us 466 // whether - and with which model - the correction stream's generation 467 // system already accounted for solid earth tides. To stay consistent with 468 // the orbit/clock corrections, mirror that choice here: skip our own 469 // correction if the provider applied none, apply our default model if the 470 // provider used its own default, and fall back to our default (with a 471 // warning) if the provider used some other, unsupported model - we have no 472 // way to reproduce an unknown model exactly. Absent any Metadata message 473 // (e.g. RTNET or older streams), keep today's unconditional behavior. 474 bool applyEarthTide = true; 475 const t_metaData* metaData = _obsPool->metaData(); 476 if (metaData) { 477 for (unsigned ii = 0; ii < metaData->_entries.size(); ii++) { 478 const t_metaDataEntry& entry = metaData->_entries[ii]; 479 if (entry._typeIndicator == 3) { // solid earth tides 480 if (!entry._applicationIndicator) { 481 applyEarthTide = false; 482 } 483 else if (entry._nonDefaultIndicator) { 484 LOG << "WARNING: SSR Metadata signals a non-default solid earth " 485 << "tide model (identifier " << entry._nonDefaultIdentifier 486 << "); applying BNC's default model anyway, results may be " 487 << "inconsistent" << endl; 488 } 489 break; 490 } 491 } 492 } 493 if (applyEarthTide) { 494 station->setTideDsplEarth(_tides->earth(time, station->xyzApr())); 495 } 496 else { 497 ColumnVector tideDsplEarth(3); tideDsplEarth = 0.0; 498 station->setTideDsplEarth(tideDsplEarth); 499 } 460 500 station->setTideDsplOcean(_tides->ocean(time, station->xyzApr(), station->name())); 461 501 -
trunk/BNC/src/PPP/pppClient.h
r10938 r11009 28 28 void putEphemeris(const t_eph* eph); 29 29 void putTec(const t_vTec* vTec); 30 void putMetaData(const t_metaData* metaData); 30 31 void putOrbCorrections(const std::vector<t_orbCorr*>& corr); 31 32 void putClkCorrections(const std::vector<t_clkCorr*>& corr); -
trunk/BNC/src/PPP/pppObsPool.cpp
r10791 r11009 52 52 } 53 53 _vTec = 0; 54 _metaData = 0; 54 55 } 55 56 … … 64 65 } 65 66 delete _vTec; 67 delete _metaData; 66 68 while (_epochs.size() > 0) { 67 69 delete _epochs.front(); … … 144 146 // 145 147 ///////////////////////////////////////////////////////////////////////////// 148 void t_pppObsPool::putMetaData(t_metaData* metaData) { 149 delete _metaData; 150 _metaData = new t_metaData(*metaData); 151 delete metaData; 152 } 153 154 // 155 ///////////////////////////////////////////////////////////////////////////// 146 156 void t_pppObsPool::putEpoch(const bncTime& epoTime, vector<t_pppSatObs*>& obsVector, 147 157 bool pseudoObsIono) { -
trunk/BNC/src/PPP/pppObsPool.h
r10791 r11009 33 33 void putPhaseBias(t_satPhaseBias* satPhaseBias); 34 34 void putTec(t_vTec* _vTec); 35 void putMetaData(t_metaData* metaData); 35 36 void clearCodeBiases(char sys); 36 37 void clearPhaseBiases(char sys); … … 46 47 } 47 48 const t_vTec* vTec() const {return _vTec;} 49 const t_metaData* metaData() const {return _metaData;} 48 50 49 51 t_epoch* lastEpoch() { … … 60 62 t_satPhaseBias* _satPhaseBiases[t_prn::MAXPRN+1]; 61 63 t_vTec* _vTec; 64 t_metaData* _metaData; 62 65 std::deque<t_epoch*> _epochs; 63 66 }; -
trunk/BNC/src/pppRun.cpp
r10805 r11009 104 104 connect(BNC_CORE, SIGNAL(newTec(t_vTec)), 105 105 this, SLOT(slotNewTec(t_vTec)),conType); 106 107 connect(BNC_CORE, SIGNAL(newMetaData(t_metaData)), 108 this, SLOT(slotNewMetaData(t_metaData)),conType); 106 109 107 110 connect(BNC_CORE, SIGNAL(newOrbCorrections(QList<t_orbCorr>)), … … 467 470 // 468 471 //////////////////////////////////////////////////////////////////////////// 472 void t_pppRun::slotNewMetaData(t_metaData metaData) { 473 if (metaData._entries.size() == 0) { 474 return; 475 } 476 477 if (_opt->_realTime) { 478 if (_opt->_corrMount.empty() || _opt->_corrMount != metaData._staID) { 479 return; 480 } 481 } 482 _pppClient->putMetaData(&metaData); 483 } 484 485 // 486 //////////////////////////////////////////////////////////////////////////// 469 487 void t_pppRun::slotNewOrbCorrections(QList<t_orbCorr> orbCorr) { 470 488 if (orbCorr.size() == 0) { … … 607 625 connect(_corrFile, SIGNAL(newOrbCorrections(QList<t_orbCorr>)), this, SLOT(slotNewOrbCorrections(QList<t_orbCorr>))); 608 626 connect(_corrFile, SIGNAL(newClkCorrections(QList<t_clkCorr>)), this, SLOT(slotNewClkCorrections(QList<t_clkCorr>))); 627 connect(_corrFile, SIGNAL(newMetaData(t_metaData)), this, SLOT(slotNewMetaData(t_metaData))); 609 628 if (_opt->_biasFile.empty()) { 610 629 connect(_corrFile, SIGNAL(newCodeBiases(QList<t_satCodeBias>)), this, SLOT(slotNewCodeBiases(QList<t_satCodeBias>))); -
trunk/BNC/src/pppRun.h
r10791 r11009 41 41 void slotNewBDSEph(t_ephBDS); 42 42 void slotNewTec(t_vTec); 43 void slotNewMetaData(t_metaData); 43 44 void slotNewOrbCorrections(QList<t_orbCorr> orbCorr); 44 45 void slotNewClkCorrections(QList<t_clkCorr> clkCorr);
Note:
See TracChangeset
for help on using the changeset viewer.
