Changeset 11073 in ntrip for trunk/BNC/src/ssrQc.cpp


Ignore:
Timestamp:
Oct 5, 2026, 1:53:32 PM (26 hours ago)
Author:
stuerze
Message:

minor changes

File:
1 edited

Legend:

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

    r11070 r11073  
    5050namespace {
    5151  const double MAX_CLK_JUMP   = 0.5;  // [m] clock change beyond its rate between consecutive epochs
     52  const double EPH_WARMUP     = 120.0; // [s] no ephemeris checks at the start
    5253  const char*  TYPE_NAME[]    = {"ORBIT", "CLOCK", "CODE_BIAS", "PHASE_BIAS"};
    5354
    … …  
    143144////////////////////////////////////////////////////////////////////////////
    144145void t_ssrQc::checkInterval(const bncTime& time) {
     146  if (!_startTime.valid()) {
     147    _startTime = time;
     148  }
    145149  if (!_intervalStart.valid()) {
    146150    double sec = floor(time.gpssec() / _interval) * _interval;
    … …  
    181185// Broadcast ephemeris the correction refers to
    182186////////////////////////////////////////////////////////////////////////////
    183 void t_ssrQc::checkEph(t_satStat& stat, const QString& prnInt, unsigned iod) {
     187void t_ssrQc::checkEph(t_satStat& stat, const QString& prnInt, unsigned iod, const bncTime& time) {
     188  // not before all broadcast ephemerides may have been received
     189  if (time - _startTime < EPH_WARMUP) {
     190    return;
     191  }
    184192  t_eph* ephLast = _ephUser.ephLast(prnInt);
    185193  t_eph* ephPrev = _ephUser.ephPrev(prnInt);
    … …  
    208216    t_satStat& stat = _satStat[QString::fromStdString(corr._staID) + ' ' + prn];
    209217    stat.numOrb += 1;
    210     checkEph(stat, QString::fromStdString(corr._prn.toInternalString()), corr._iod);
     218    checkEph(stat, QString::fromStdString(corr._prn.toInternalString()), corr._iod, corr._time);
    211219    double radial = fabs(corr._xr[0]);
    212220    double alongCross = max(fabs(corr._xr[1]), fabs(corr._xr[2]));
    … …  
    226234    t_satStat& stat = _satStat[QString::fromStdString(corr._staID) + ' ' + prn];
    227235    stat.numClk += 1;
    228     checkEph(stat, QString::fromStdString(corr._prn.toInternalString()), corr._iod);
     236    checkEph(stat, QString::fromStdString(corr._prn.toInternalString()), corr._iod, corr._time);
    229237
    230238    // jump: change between consecutive epochs (same IOD) beyond the clock rate
    … …  
    297305    newEpoch(bias._staID, bias._prn.system(), PBIAS, bias._time, bias._updateInt,
    298306             QString::fromStdString(bias._prn.toString()));
     307    QString staSys = QString("%1 %2").arg(bias._staID.c_str()).arg(bias._prn.system());
     308    for (const t_frqPhaseBias& frqBias : bias._bias) {
     309      _phaseSignals[staSys].insert(QString::fromStdString(frqBias._rnxType2ch));
     310    }
    299311  }
    300312}
    … …  
    462474        }
    463475      }
     476      if (_phaseSignals.contains(staSys)) {
     477        QStringList sigs = _phaseSignals[staSys].values();
     478        sigs.sort();
     479        lines << "phase bias signals: " + sigs.join(" ");
     480      }
    464481      addSats(QString("clock jumps > %1 m").arg(MAX_CLK_JUMP), jumps);
    465482      if (!maxRadialPrn.isEmpty()) {
Note: See TracChangeset for help on using the changeset viewer.