Changeset 10948 in ntrip


Ignore:
Timestamp:
Jun 25, 2026, 3:40:10 PM (4 weeks ago)
Author:
stuerze
Message:

minor changes to investigate a special GLO behavior

Location:
trunk/BNC/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncantex.cpp

    r10947 r10948  
    409409  if (psiRate > MAX_YAW_RATE) {
    410410    if (!st.valid || (Mjd - st.lastMjd) > MAX_FREEZE_AGE) {
     411      if (st.valid) { // i.e. it was the staleness bound, not cold-start
     412        _glonassYawLog += QString().asprintf(
     413          "%s glonassYaw STALE-RESET  Mjd=%.6f beta=%6.3f mu=%7.2f rate=%6.3f"
     414          " old=%7.2f new=%7.2f age=%.1fmin\n",
     415          prn.toLatin1().data(), Mjd, beta*180.0/M_PI, mu*180.0/M_PI,
     416          psiRate*180.0/M_PI, st.yaw*180.0/M_PI, psiNom*180.0/M_PI,
     417          (Mjd-st.lastMjd)*1440.0);
     418      }
    411419      st.yaw     = psiNom; // no prior history, or it is too old to trust
    412420      st.lastMjd = Mjd;
    413421      st.valid   = true;
    414422    }
     423    if (!st.fixed) {
     424      _glonassYawLog += QString().asprintf(
     425        "%s glonassYaw FIXED-ENTER  Mjd=%.6f beta=%6.3f mu=%7.2f rate=%6.3f yaw=%7.2f\n",
     426        prn.toLatin1().data(), Mjd, beta*180.0/M_PI, mu*180.0/M_PI,
     427        psiRate*180.0/M_PI, st.yaw*180.0/M_PI);
     428      st.fixed = true;
     429    }
    415430    psiEff = st.yaw;    // hold the frozen yaw angle
    416431  }
    417432  else {
     433    if (st.fixed) {
     434      _glonassYawLog += QString().asprintf(
     435        "%s glonassYaw FIXED-EXIT   Mjd=%.6f beta=%6.3f mu=%7.2f rate=%6.3f"
     436        " frozen=%7.2f nominal=%7.2f\n",
     437        prn.toLatin1().data(), Mjd, beta*180.0/M_PI, mu*180.0/M_PI,
     438        psiRate*180.0/M_PI, st.yaw*180.0/M_PI, psiNom*180.0/M_PI);
     439      st.fixed = false;
     440    }
    418441    st.yaw     = psiNom;
    419442    st.lastMjd = Mjd;
  • trunk/BNC/src/bncantex.h

    r10947 r10948  
    5050                           ColumnVector& dx);
    5151
     52  // Drains and returns the diagnostic log accumulated by the GLONASS
     53  // yaw-fixed model (mode transitions, with beta/mu/rate at the time).
     54  // Empty most of the time; only non-empty right after a transition.
     55  QString takeGlonassYawLog() {
     56    QString s = _glonassYawLog;
     57    _glonassYawLog.clear();
     58    return s;
     59  }
     60
    5261 private:
    5362  // Per-satellite GLONASS yaw state, used to freeze the yaw angle while
     
    6069      lastMjd = 0.0;
    6170      valid   = false;
     71      fixed   = false;
    6272    }
    6373    double yaw;
    6474    double lastMjd; // Mjd of the last epoch the nominal law was trusted
    6575    bool   valid;
     76    bool   fixed;   // true while the yaw-fixed override is currently active
    6677  };
     78
     79  QString _glonassYawLog;
    6780
    6881  double glonassYawAngle(const QString& prn, double Mjd, const ColumnVector& xSat,
  • trunk/BNC/src/combination/bnccomb.cpp

    r10946 r10948  
    12091209        _log += "antenna not found " + corr->_prn.mid(0,3).toLatin1() + '\n';
    12101210      }
     1211      _log += _antex->takeGlonassYawLog().toLatin1();
    12111212    }
    12121213    if (masterIsAPC) {
Note: See TracChangeset for help on using the changeset viewer.