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


Ignore:
Timestamp:
Oct 2, 2008, 4:13:24 PM (16 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncgetthread.cpp

    r1141 r1142  
    629629          // Check observation epoch
    630630          // -----------------------
    631           int week;
    632           double sec;
    633           leapsecGPSWeeks(week, sec);
    634           const double secPerWeek = 7.0 * 24.0 * 3600.0;
    635 
    636           if (week < obs->_o.GPSWeek) {
    637             week += 1;
    638             sec  -= secPerWeek;
    639           }
    640           if (week > obs->_o.GPSWeek) {
    641             week -= 1;
    642             sec  += secPerWeek;
    643           }
    644           double dt = fabs(sec - obs->_o.GPSWeeks);
    645           if (week != obs->_o.GPSWeek || dt > maxDt) {
    646             if  (!wrongEpoch) {
    647               emit( newMessage(_staID + ": Wrong observation epoch(s)") );
    648               wrongEpoch = true;
    649             }
    650             delete obs;
    651             continue;
    652           }
    653           else {
    654             wrongEpoch = false;
    655 
    656             // Latency and completeness
    657             // ------------------------
    658             if (_perfIntr>0) {
    659               newSecGPS = static_cast<int>(obs->_o.GPSWeeks);
    660               if (newSecGPS != oldSecGPS) {
    661                 if (newSecGPS % _perfIntr < oldSecGPS % _perfIntr) {
    662                   if (numLat>0) {
     631          if (!_rawInpFile) {
     632            int week;
     633            double sec;
     634            leapsecGPSWeeks(week, sec);
     635            const double secPerWeek = 7.0 * 24.0 * 3600.0;
     636           
     637            if (week < obs->_o.GPSWeek) {
     638              week += 1;
     639              sec  -= secPerWeek;
     640            }
     641            if (week > obs->_o.GPSWeek) {
     642              week -= 1;
     643              sec  += secPerWeek;
     644            }
     645            double dt = fabs(sec - obs->_o.GPSWeeks);
     646            if (week != obs->_o.GPSWeek || dt > maxDt) {
     647              if  (!wrongEpoch) {
     648                emit( newMessage(_staID + ": Wrong observation epoch(s)") );
     649                wrongEpoch = true;
     650              }
     651              delete obs;
     652              continue;
     653            }
     654            else {
     655              wrongEpoch = false;
     656           
     657              // Latency and completeness
     658              // ------------------------
     659              if (_perfIntr>0) {
     660                newSecGPS = static_cast<int>(obs->_o.GPSWeeks);
     661                if (newSecGPS != oldSecGPS) {
     662                  if (newSecGPS % _perfIntr < oldSecGPS % _perfIntr) {
     663                    if (numLat>0) {
     664                      if (meanDiff>0.) {
     665                        emit( newMessage(QString("%1: Mean latency %2 sec, min %3, max %4, rms %5, %6 epochs, %7 gaps")
     666                          .arg(_staID.data())
     667                          .arg(int(sumLat/numLat*100)/100.)
     668                          .arg(int(minLat*100)/100.)
     669                          .arg(int(maxLat*100)/100.)
     670                          .arg(int((sqrt((sumLatQ - sumLat * sumLat / numLat)/numLat))*100)/100.)
     671                          .arg(numLat)
     672                          .arg(numGaps)
     673                          .toAscii()) );
     674                      } else {
     675                        emit( newMessage(QString("%1: Mean latency %2 sec, min %3, max %4, rms %5, %6 epochs")
     676                          .arg(_staID.data())
     677                          .arg(int(sumLat/numLat*100)/100.)
     678                          .arg(int(minLat*100)/100.)
     679                          .arg(int(maxLat*100)/100.)
     680                          .arg(int((sqrt((sumLatQ - sumLat * sumLat / numLat)/numLat))*100)/100.)
     681                          .arg(numLat)
     682                          .toAscii()) );
     683                      }
     684                    }
     685                    meanDiff = diffSecGPS/numLat;
     686                    diffSecGPS = 0;
     687                    numGaps = 0;
     688                    sumLat = 0.;
     689                    sumLatQ = 0.;
     690                    numLat = 0;
     691                    minLat = maxDt;
     692                    maxLat = -maxDt;
     693                  }
     694                  if (followSec) {
     695                    diffSecGPS += newSecGPS - oldSecGPS;
    663696                    if (meanDiff>0.) {
    664                       emit( newMessage(QString("%1: Mean latency %2 sec, min %3, max %4, rms %5, %6 epochs, %7 gaps")
    665                         .arg(_staID.data())
    666                         .arg(int(sumLat/numLat*100)/100.)
    667                         .arg(int(minLat*100)/100.)
    668                         .arg(int(maxLat*100)/100.)
    669                         .arg(int((sqrt((sumLatQ - sumLat * sumLat / numLat)/numLat))*100)/100.)
    670                         .arg(numLat)
    671                         .arg(numGaps)
    672                         .toAscii()) );
    673                     } else {
    674                       emit( newMessage(QString("%1: Mean latency %2 sec, min %3, max %4, rms %5, %6 epochs")
    675                         .arg(_staID.data())
    676                         .arg(int(sumLat/numLat*100)/100.)
    677                         .arg(int(minLat*100)/100.)
    678                         .arg(int(maxLat*100)/100.)
    679                         .arg(int((sqrt((sumLatQ - sumLat * sumLat / numLat)/numLat))*100)/100.)
    680                         .arg(numLat)
    681                         .toAscii()) );
     697                      if (newSecGPS - oldSecGPS > 1.5 * meanDiff) {
     698                        numGaps += 1;
     699                      }
    682700                    }
    683701                  }
    684                   meanDiff = diffSecGPS/numLat;
    685                   diffSecGPS = 0;
    686                   numGaps = 0;
    687                   sumLat = 0.;
    688                   sumLatQ = 0.;
    689                   numLat = 0;
    690                   minLat = maxDt;
    691                   maxLat = -maxDt;
     702                  curLat = sec - obs->_o.GPSWeeks;
     703                  sumLat += curLat;
     704                  sumLatQ += curLat * curLat;
     705                  if (curLat < minLat) minLat = curLat;
     706                  if (curLat >= maxLat) maxLat = curLat;
     707                  numLat += 1;
     708                  oldSecGPS = newSecGPS;
     709                  followSec = true;
    692710                }
    693                 if (followSec) {
    694                   diffSecGPS += newSecGPS - oldSecGPS;
    695                   if (meanDiff>0.) {
    696                     if (newSecGPS - oldSecGPS > 1.5 * meanDiff) {
    697                       numGaps += 1;
    698                     }
    699                   }
    700                 }
    701                 curLat = sec - obs->_o.GPSWeeks;
    702                 sumLat += curLat;
    703                 sumLatQ += curLat * curLat;
    704                 if (curLat < minLat) minLat = curLat;
    705                 if (curLat >= maxLat) maxLat = curLat;
    706                 numLat += 1;
    707                 oldSecGPS = newSecGPS;
    708                 followSec = true;
    709711              }
    710712            }
Note: See TracChangeset for help on using the changeset viewer.