Changeset 11073 in ntrip


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

minor changes

Location:
trunk/BNC/src
Files:
2 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()) {
  • trunk/BNC/src/ssrQc.h

    r11070 r11073  
    6969  void   newEpoch(const std::string& staID, char sys, e_type type, const bncTime& time,
    7070                  unsigned updateInt, const QString& prn);
    71   void   checkEph(t_satStat& stat, const QString& prnInt, unsigned iod);
     71  void   checkEph(t_satStat& stat, const QString& prnInt, unsigned iod, const bncTime& time);
    7272  void   checkInterval(const bncTime& time);
    7373  void   writeReport(bool final);
    … …  
    8282  bncTime                   _intervalStart;
    8383  bncTime                   _lastTime;
     84  bncTime                   _startTime;  // first correction epoch
    8485  bncEphUser                _ephUser;
    8586  QMap<QString, t_epoStat>  _epoStat;    // key "STA SYS TYPE"
    8687  QMap<QString, t_satStat>  _satStat;    // key "STA PRN"
    87   QMap<QString, QSet<QString> > _codeSignals; // key "STA SYS": signals with code biases
     88  QMap<QString, QSet<QString> > _codeSignals;  // key "STA SYS": signals with code biases
     89  QMap<QString, QSet<QString> > _phaseSignals; // key "STA SYS": signals with phase biases
    8890};
    8991
Note: See TracChangeset for help on using the changeset viewer.