Changeset 11137 in ntrip for trunk/BNC/src/bncephuser.cpp


Ignore:
Timestamp:
Oct 28, 2026, 9:48:01 PM (10 hours ago)
Author:
stuerze
Message:

eph handling improved

File:
1 edited

Legend:

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

    r11057 r11137  
    4848// Constructor
    4949////////////////////////////////////////////////////////////////////////////
    50 bncEphUser::bncEphUser(bool connectSlots) {
     50bncEphUser::bncEphUser(bool connectSlots, unsigned maxQueueSize) : _maxQueueSize(maxQueueSize) {
    5151  if (connectSlots) {
    5252    connect(BNC_CORE, SIGNAL(newGPSEph(t_ephGPS)),
    … …  
    148148
    149149  QString prn(newEph->prn().toInternalString().c_str());
     150
     151  // data set received before, e.g. from a slower stream after a newer one
     152  if (_eph.contains(prn)) {
     153    const deque<t_eph*>& qq = _eph[prn];
     154    for (unsigned ii = 0; ii < qq.size(); ii++) {
     155      if (qq[ii]->sameDataSet(eph)) {
     156        delete newEph;
     157        return failure;
     158      }
     159    }
     160  }
    150161
    151162  const t_eph* ephOld = ephLast(prn);
    … …  
    224235  if (eph->isUnhealthy()) {
    225236    eph->setCheckState(t_eph::unhealthy);
     237    return;
     238  }
     239
     240  // GPS/QZSS: IODE and IODC of the same upload
     241  // -------------------------------------------
     242  const t_ephGPS* ephGPS = dynamic_cast<const t_ephGPS*>(eph);
     243  if (ephGPS && !ephGPS->iodeIodcConsistent()) {
     244    eph->setCheckState(t_eph::bad);
    226245    return;
    227246  }
Note: See TracChangeset for help on using the changeset viewer.