Changeset 11042 in ntrip for trunk/BNC/src/PPP/pppSatObs.cpp
- Timestamp:
- Sep 22, 2026, 5:19:12 PM (28 hours ago)
- File:
-
- 1 edited
-
trunk/BNC/src/PPP/pppSatObs.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/PPP/pppSatObs.cpp
r11041 r11042 409 409 // provider is relied on to keep DF+010 synchronized with DF+069 across all 410 410 // systems for this to work. 411 //////////////////////////////////////////////////////////////////////////// 412 static bool ssrSatAntennaTrusted(const t_satAntenna* satAntenna) { 411 // 412 // Separately, providers only guarantee SatelliteAntennaIOD uniqueness within 413 // a rolling 64-day window (it wraps/repeats after that), so a client that 414 // has been without a fresh Antenna message for that system for 64 days or 415 // more must treat any cached data as unverifiable and stop using it, even 416 // if the IOD/Metadata check above would otherwise pass - the same IOD value 417 // could by then legitimately mean something else. epoTime is the current 418 // processing epoch, compared against t_satAntenna::_time (when this data 419 // was actually decoded, not a wire epoch - the message carries none). 420 //////////////////////////////////////////////////////////////////////////// 421 static bool ssrSatAntennaTrusted(const t_satAntenna* satAntenna, const bncTime& epoTime) { 422 const double MAX_AGE_SEC = 64.0 * 86400.0; 413 423 if (!satAntenna || satAntenna->_satelliteAntennaIOD == 0) { 424 return false; 425 } 426 if (epoTime.valid() && satAntenna->_time.valid() && 427 epoTime - satAntenna->_time >= MAX_AGE_SEC) { 414 428 return false; 415 429 } … … 543 557 if (PPP_CLIENT->antex()) { 544 558 const t_satAntenna* satAntenna = PPP_CLIENT->obsPool()->satAntenna(_prn); 545 if (!ssrSatAntennaTrusted(satAntenna)) { 559 if (!ssrSatAntennaTrusted(satAntenna, _time)) { 546 560 satAntenna = 0; // untrusted (IOD zero, or not confirmed via Metadata) - fall back to ANTEX 547 561 }
Note:
See TracChangeset
for help on using the changeset viewer.
