Changeset 1564 in ntrip


Ignore:
Timestamp:
Feb 3, 2009, 11:29:32 AM (15 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/latencychecker.cpp

    r1563 r1564  
    3939 * -----------------------------------------------------------------------*/
    4040
     41#include <iostream>
     42
    4143#include "latencychecker.h"
    4244#include "bncapp.h"
    4345#include "bncutils.h"
    4446#include "bncsettings.h"
     47
     48using namespace std;
    4549
    4650// Constructor
     
    342346  if ( _checkMountPoint == _staID || _checkMountPoint == "ALL" ) {
    343347    if (_perfIntr > 0) {
    344       if (0 < epochList->size()) {
    345         for (int ii = 0; ii < epochList->size(); ii++) {
    346           int week;
    347           double sec;
    348           _newSecGPS = epochList->at(ii);
    349           currentGPSWeeks(week, sec);
    350           double dt = fabs(sec - _newSecGPS);
    351           const double secPerWeek = 7.0 * 24.0 * 3600.0;
    352           if (dt > 0.5 * secPerWeek) {
    353             if (sec > _newSecGPS) {
    354               sec  -= secPerWeek;
    355             } else {
    356               sec  += secPerWeek;
    357             }
    358           }
    359           if (_newSecGPS != _oldSecGPS) {
    360             if (int(_newSecGPS) % _perfIntr < int(_oldSecGPS) % _perfIntr) {
    361               if (_numLat>0) {
    362                 QString late;
    363                 if (_meanDiff>0.) {
    364                   late = QString(": Mean latency %1 sec, min %2, max %3, rms %4, %5 epochs, %6 gaps")
    365                   .arg(int(_sumLat/_numLat*100)/100.)
    366                   .arg(int(_minLat*100)/100.)
    367                   .arg(int(_maxLat*100)/100.)
    368                   .arg(int((sqrt((_sumLatQ - _sumLat * _sumLat / _numLat)/_numLat))*100)/100.)
    369                   .arg(_numLat)
    370                   .arg(_numGaps);
    371                   emit(newMessage(QString(_staID + late ).toAscii(), true) );
    372                 }
    373                 else {
    374                   late = QString(": Mean latency %1 sec, min %2, max %3, rms %4, %5 epochs")
    375                   .arg(int(_sumLat/_numLat*100)/100.)
    376                   .arg(int(_minLat*100)/100.)
    377                   .arg(int(_maxLat*100)/100.)
    378                   .arg(int((sqrt((_sumLatQ - _sumLat * _sumLat / _numLat)/_numLat))*100)/100.)
    379                   .arg(_numLat);
    380                   emit(newMessage(QString(_staID + late ).toAscii(), true) );
    381                 }
    382               }
    383               _meanDiff = int(_diffSecGPS)/_numLat;
    384               _diffSecGPS = 0;
    385               _numGaps    = 0;
    386               _sumLat     = 0.0;
    387               _sumLatQ    = 0.0;
    388               _numLat     = 0;
    389               _minLat     = 1000.;
    390               _maxLat     = -1000.;
    391             }
    392             if (_followSec) {
    393               _diffSecGPS += _newSecGPS - _oldSecGPS;
     348
     349      QListIterator<int> it(*epochList);
     350      while (it.hasNext()) {
     351        _newSecGPS = it.next();
     352
     353        int week;
     354        double sec;
     355        currentGPSWeeks(week, sec);
     356        double dt = fabs(sec - _newSecGPS);
     357        const double secPerWeek = 7.0 * 24.0 * 3600.0;
     358        if (dt > 0.5 * secPerWeek) {
     359          if (sec > _newSecGPS) {
     360            sec  -= secPerWeek;
     361          } else {
     362            sec  += secPerWeek;
     363          }
     364        }
     365        if (_newSecGPS != _oldSecGPS) {
     366          if (int(_newSecGPS) % _perfIntr < int(_oldSecGPS) % _perfIntr) {
     367            if (_numLat>0) {
     368              QString late;
    394369              if (_meanDiff>0.) {
    395                 if (_newSecGPS - _oldSecGPS > 1.5 * _meanDiff) {
    396                   _numGaps += 1;
    397                 }
     370                late = QString(": Mean latency %1 sec, min %2, max %3, rms %4, %5 epochs, %6 gaps")
     371                .arg(int(_sumLat/_numLat*100)/100.)
     372                .arg(int(_minLat*100)/100.)
     373                .arg(int(_maxLat*100)/100.)
     374                .arg(int((sqrt((_sumLatQ - _sumLat * _sumLat / _numLat)/_numLat))*100)/100.)
     375                .arg(_numLat)
     376                .arg(_numGaps);
     377                emit(newMessage(QString(_staID + late ).toAscii(), true) );
     378              }
     379              else {
     380                late = QString(": Mean latency %1 sec, min %2, max %3, rms %4, %5 epochs")
     381                .arg(int(_sumLat/_numLat*100)/100.)
     382                .arg(int(_minLat*100)/100.)
     383                .arg(int(_maxLat*100)/100.)
     384                .arg(int((sqrt((_sumLatQ - _sumLat * _sumLat / _numLat)/_numLat))*100)/100.)
     385                .arg(_numLat);
     386                emit(newMessage(QString(_staID + late ).toAscii(), true) );
    398387              }
    399388            }
    400             _curLat   = sec - _newSecGPS;
    401             _sumLat  += _curLat;
    402             _sumLatQ += _curLat * _curLat;
    403             if (_curLat < _minLat) {
    404               _minLat = _curLat;
     389            _meanDiff = int(_diffSecGPS)/_numLat;
     390            _diffSecGPS = 0;
     391            _numGaps    = 0;
     392            _sumLat     = 0.0;
     393            _sumLatQ    = 0.0;
     394            _numLat     = 0;
     395            _minLat     = 1000.;
     396            _maxLat     = -1000.;
     397          }
     398          if (_followSec) {
     399            _diffSecGPS += _newSecGPS - _oldSecGPS;
     400            if (_meanDiff>0.) {
     401              if (_newSecGPS - _oldSecGPS > 1.5 * _meanDiff) {
     402                _numGaps += 1;
     403              }
    405404            }
    406             if (_curLat >= _maxLat) {
    407               _maxLat = _curLat;
    408             }
    409             _numLat += 1;
    410             _oldSecGPS = _newSecGPS;
    411             _followSec = true;
    412           }
     405          }
     406          _curLat   = sec - _newSecGPS;
     407          _sumLat  += _curLat;
     408          _sumLatQ += _curLat * _curLat;
     409          if (_curLat < _minLat) {
     410            _minLat = _curLat;
     411          }
     412          if (_curLat >= _maxLat) {
     413            _maxLat = _curLat;
     414          }
     415          _numLat += 1;
     416          _oldSecGPS = _newSecGPS;
     417          _followSec = true;
    413418        }
    414419      }
Note: See TracChangeset for help on using the changeset viewer.