Changeset 1142 in ntrip
- Timestamp:
- Oct 2, 2008, 4:13:24 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/BNC/bncgetthread.cpp ΒΆ
r1141 r1142 629 629 // Check observation epoch 630 630 // ----------------------- 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; 663 696 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 } 682 700 } 683 701 } 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; 692 710 } 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;709 711 } 710 712 }
Note:
See TracChangeset
for help on using the changeset viewer.