Changeset 11042 in ntrip for trunk/BNC/src/PPP/pppSatObs.cpp


Ignore:
Timestamp:
Sep 22, 2026, 5:19:12 PM (28 hours ago)
Author:
stuerze
Message:

updates regarding RTCM-SSR

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP/pppSatObs.cpp

    r11041 r11042  
    409409// provider is relied on to keep DF+010 synchronized with DF+069 across all
    410410// 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////////////////////////////////////////////////////////////////////////////
     421static bool ssrSatAntennaTrusted(const t_satAntenna* satAntenna, const bncTime& epoTime) {
     422  const double MAX_AGE_SEC = 64.0 * 86400.0;
    413423  if (!satAntenna || satAntenna->_satelliteAntennaIOD == 0) {
     424    return false;
     425  }
     426  if (epoTime.valid() && satAntenna->_time.valid() &&
     427      epoTime - satAntenna->_time >= MAX_AGE_SEC) {
    414428    return false;
    415429  }
     
    543557  if (PPP_CLIENT->antex()) {
    544558    const t_satAntenna* satAntenna = PPP_CLIENT->obsPool()->satAntenna(_prn);
    545     if (!ssrSatAntennaTrusted(satAntenna)) {
     559    if (!ssrSatAntennaTrusted(satAntenna, _time)) {
    546560      satAntenna = 0; // untrusted (IOD zero, or not confirmed via Metadata) - fall back to ANTEX
    547561    }
Note: See TracChangeset for help on using the changeset viewer.