Changeset 1564 in ntrip
- Timestamp:
- Feb 3, 2009, 11:29:32 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/latencychecker.cpp
r1563 r1564 39 39 * -----------------------------------------------------------------------*/ 40 40 41 #include <iostream> 42 41 43 #include "latencychecker.h" 42 44 #include "bncapp.h" 43 45 #include "bncutils.h" 44 46 #include "bncsettings.h" 47 48 using namespace std; 45 49 46 50 // Constructor … … 342 346 if ( _checkMountPoint == _staID || _checkMountPoint == "ALL" ) { 343 347 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; 394 369 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) ); 398 387 } 399 388 } 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 } 405 404 } 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; 413 418 } 414 419 }
Note:
See TracChangeset
for help on using the changeset viewer.