Changeset 11085 in ntrip for trunk/BNC/src/ssrQc.cpp
- Timestamp:
- Oct 14, 2026, 11:47:57 AM (3 days ago)
- File:
-
- 1 edited
-
trunk/BNC/src/ssrQc.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/ssrQc.cpp
r11081 r11085 182 182 << "Checks: epochs and update intervals, gaps (interval > 2 x max(declared, median)), latency," 183 183 << " completeness w.r.t. healthy broadcast ephemerides," << endl 184 << "IOD matching, code and phase bias signals, code biases of the reference signals, clock jumps > " 184 << "IOD matching, code and phase bias signals, yaw angle, code biases of the reference signals, clock jumps > " 185 185 << MAX_CLK_JUMP << " m, largest orbit corrections" << endl; 186 186 } … … 416 416 _phaseSignals[staSys].insert(QString::fromStdString(frqBias._rnxType2ch)); 417 417 } 418 // Yaw angle: new RTCM-SSR has an indicator, old RTCM-SSR and IGS-SSR always 419 // carry the field, providers without attitude information send zeros 420 t_satStat& stat = _satStat[QString::fromStdString(bias._staID) + ' ' + 421 QString::fromStdString(bias._prn.toString())]; 422 stat.numPB++; 423 bool yawProvided = (bias._ssrFormat == ssrRtcmNew) ? (bias._satYawInfoInd != 0) 424 : (bias._yaw != 0.0 || bias._yawRate != 0.0); 425 if (yawProvided) { 426 stat.numYaw++; 427 } 418 428 } 419 429 } … … 707 717 if (final) { 708 718 endTime = _staLast.value(staID, _lastTime); 719 if (endTime < _intervalStart) { // stream without data in the last interval 720 endTime = _lastTime; 721 } 709 722 } 710 723 out << endl << "=== SSR QC " << staID.toStdString() << ' ' … … 746 759 for (char sys : systems) { 747 760 QMap<QString, unsigned> missOrb, missClk, missCB, missPB, iodUnknown, unhealthy, noEph, 748 jumps, missRef; 761 jumps, missRef, noYaw, yawPartly; 762 unsigned numPB = 0, numYaw = 0, yawSats = 0; 749 763 double maxRadial = 0.0, maxAlongCross = 0.0; 750 764 QString maxRadialPrn, maxAlongCrossPrn; … … 792 806 if (stat.refBiasOK) { 793 807 biasIF.push_back(stat.biasIF); 808 } 809 if (stat.numPB) { 810 numPB += stat.numPB; 811 numYaw += stat.numYaw; 812 if (stat.numYaw) { 813 yawSats++; 814 if (stat.numYaw < stat.numPB) { 815 yawPartly[prn] = stat.numPB - stat.numYaw; 816 } 817 } 818 else { 819 noYaw[prn] = 0; 820 } 794 821 } 795 822 } … … 843 870 lines << "phase bias signals: " + sigs.join(" "); 844 871 } 872 if (numPB) { 873 if (numYaw == 0) { 874 lines << "yaw angle: not provided"; 875 } 876 else { 877 lines << QString("yaw angle: provided for %1 of %2 satellites (%3 % of the phase bias records)") 878 .arg(yawSats).arg(yawSats + noYaw.size()).arg(100.0 * numYaw / numPB, 0, 'f', 1); 879 addSats("phase biases without yaw angle", noYaw); 880 addSats("phase biases partly without yaw angle (records)", yawPartly); 881 } 882 } 845 883 addSats(QString("clock jumps > %1 m").arg(MAX_CLK_JUMP), jumps); 846 884 if (!maxRadialPrn.isEmpty()) {
Note:
See TracChangeset
for help on using the changeset viewer.
