Changeset 11113 in ntrip
- Timestamp:
- Oct 22, 2026, 4:00:17 PM (13 hours ago)
- Location:
- trunk/BNC/src
- Files:
-
- 3 edited
-
bnchelp.html (modified) (1 diff)
-
combination/bnccomb.cpp (modified) (2 diffs)
-
combination/bnccomb.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bnchelp.html
r11110 r11113 8524 8524 <p> 8525 8525 As the incoming corrections of the individual providers arrive with different latencies, BNC combines an epoch as 8526 soon as each provider has delivered corrections for a later epoch, i.e. has completed the epoch. The combined 8527 product is thus only delayed by the latency of the slowest provider. If a provider is late or missing, the epoch is 8526 soon as each provider has delivered it. The corrections of a provider's epoch are passed on as soon as all its 8527 messages have arrived (Multiple Message Indicator), with the clock corrections after the orbit corrections and 8528 biases. The combined product is thus only delayed by the latency of the slowest provider. If a provider is late or missing, the epoch is 8528 8529 combined without it at the latest when the newest incoming corrections are 10 seconds (or the sampling interval, 8529 8530 if larger) younger than the epoch. Corrections arriving after an epoch was combined are ignored.</p> -
trunk/BNC/src/combination/bnccomb.cpp
r11112 r11113 555 555 556 556 557 // True if every AC has delivered clock corrections for an epoch after epoTime 558 //////////////////////////////////////////////////////////////////////////// 559 bool bncComb::allACsBeyond(const bncTime& epoTime) const { 557 // True if every AC has delivered clock corrections for epoTime or a later 558 // epoch: the decoder passes an epoch on when it is complete (Multiple 559 // Message Indicator) and emits its clocks after its orbits and biases 560 //////////////////////////////////////////////////////////////////////////// 561 bool bncComb::allACsDelivered(const bncTime& epoTime) const { 560 562 QListIterator<cmbAC*> itAC(_ACs); 561 563 while (itAC.hasNext()) { 562 564 const cmbAC* AC = itAC.next(); 563 565 bncTime acLast = _acLastClkTime.value(AC->name); 564 if (!acLast.valid() || !(acLast >epoTime)) {566 if (!acLast.valid() || acLast < epoTime) { 565 567 return false; 566 568 } … … 723 725 } 724 726 } 725 // Process the front epoch as soon as all ACs have delivered corrections726 // for a later epoch (i.e. have finished this one), at the latest when727 // the newest correction is maxWait newer(an AC may be late or missing).727 // Process the front epoch as soon as all ACs have delivered it (complete 728 // epochs), at the latest when the newest correction is maxWait newer 729 // (an AC may be late or missing). 728 730 // Waiting only outWait after the newest correction lost the corrections 729 731 // of ACs with a few seconds more latency ("old correction"). 730 732 // ----------------------------------------------------------------------- 731 733 const double maxWait = max(10.0, outWait); 732 if (allACs Beyond(epoTime) || epoTime < (_lastClkCorrTime - maxWait)) {734 if (allACsDelivered(epoTime) || epoTime < (_lastClkCorrTime - maxWait)) { 733 735 _resTime = epoTime; 734 736 processEpoch(_resTime, clkCorrVec); -
trunk/BNC/src/combination/bnccomb.h
r11110 r11113 277 277 QMap<char, bncTime> _outlierStatStart; // start of the statistics interval 278 278 void resetSatOffsets(char sys); 279 bool allACs Beyond(const bncTime& epoTime) const;279 bool allACsDelivered(const bncTime& epoTime) const; 280 280 bncTime _resTime; 281 281 cmbCorr* _newCorr;
Note:
See TracChangeset
for help on using the changeset viewer.
