Changeset 621 in ntrip for trunk/BNC/bncgetthread.cpp


Ignore:
Timestamp:
Dec 16, 2007, 3:44:57 PM (16 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncgetthread.cpp

    r620 r621  
    377377  // ------------------
    378378  while (true) {
     379
     380    if (_decoder) {
     381      QListIterator<p_obs> it(_decoder->_obsList);
     382      while (it.hasNext()) {
     383        delete it.next();
     384      }
     385      _decoder->_obsList.clear();
     386    }
     387
    379388    try {
    380389      if (_socket->state() != QAbstractSocket::ConnectedState) {
     
    394403        delete [] data;
    395404       
    396         for (list<Observation*>::iterator it = _decoder->_obsList.begin();
    397              it != _decoder->_obsList.end(); it++) {
     405
     406        QListIterator<p_obs> it(_decoder->_obsList);
     407        while (it.hasNext()) {
     408          p_obs obs = it.next();
    398409
    399410          // Check observation epoch
     
    406417          const double maxDt      = 600.0;           
    407418
    408           if (week < (*it)->GPSWeek) {
     419          if (week < obs->GPSWeek) {
    409420            week += 1;
    410421            sec  -= secPerWeek;
    411422          }
    412           if (week > (*it)->GPSWeek) {
     423          if (week > obs->GPSWeek) {
    413424            week -= 1;
    414425            sec  += secPerWeek;
    415426          }
    416           double dt = fabs(sec - (*it)->GPSWeeks);
    417           if (week != (*it)->GPSWeek || dt > maxDt) {
     427          double dt = fabs(sec - obs->GPSWeeks);
     428          if (week != obs->GPSWeek || dt > maxDt) {
    418429            emit( newMessage("Wrong observation epoch") );
    419             delete (*it);
     430            delete obs;
    420431            continue;
    421432          }
     
    424435          // ------------
    425436          if (_rnx) {
    426              long iSec    = long(floor((*it)->GPSWeeks+0.5));
    427              long newTime = (*it)->GPSWeek * 7*24*3600 + iSec;
     437             long iSec    = long(floor(obs->GPSWeeks+0.5));
     438             long newTime = obs->GPSWeek * 7*24*3600 + iSec;
    428439            if (_samplingRate == 0 || iSec % _samplingRate == 0) {
    429               _rnx->deepCopy(*it);
     440              _rnx->deepCopy(obs);
    430441            }
    431442            _rnx->dumpEpoch(newTime);
    432443          }
    433444
    434           bool firstObs = (it == _decoder->_obsList.begin());
    435           emit newObs(_staID, firstObs, *it);
     445          bool firstObs = (obs == _decoder->_obsList.first());
     446          emit newObs(_staID, firstObs, obs);
    436447        }
    437448        _decoder->_obsList.clear();
Note: See TracChangeset for help on using the changeset viewer.