- Timestamp:
- Mar 4, 2025, 4:57:05 PM (2 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
r10599 r10617 240 240 ii++) { 241 241 if (corrIsOutOfRange(_clkOrb.Sat[ii])) { 242 emit newMessage("RTCM3coDecoder: Correction out of range " + _staID.toLatin1(), true);243 242 continue; 244 243 } … … 630 629 bool RTCM3coDecoder::corrIsOutOfRange(const SsrCorr::ClockOrbit::SatData& coSat) { 631 630 632 if (fabs(coSat.Clock.DeltaA0) > 209.7151) {return true;} 633 if (fabs(coSat.Clock.DeltaA1) > 1.048575) {return true;} 634 if (fabs(coSat.Clock.DeltaA2) > 1.34217726) {return true;} 635 636 if (fabs(coSat.Orbit.DeltaRadial) > 209.7151) {return true;} 637 if (fabs(coSat.Orbit.DeltaAlongTrack) > 209.7148) {return true;} 638 if (fabs(coSat.Orbit.DeltaCrossTrack) > 209.7148) {return true;} 639 640 if (fabs(coSat.Orbit.DotDeltaRadial) > 1.048575) {return true;} 641 if (fabs(coSat.Orbit.DotDeltaAlongTrack) > 1.048572) {return true;} 642 if (fabs(coSat.Orbit.DotDeltaCrossTrack) > 1.048572) {return true;} 643 return false; 631 QString ssrParStr; 632 QString ssrParValue; 633 bool corrIsOutOfRange = false; 634 635 switch (_type) { 636 // ======== // 637 // IGS SSR // 638 // ======== // 639 case IGSssr: 640 if (coSat.Clock.DeltaA0 < -209.7151 || 641 coSat.Clock.DeltaA0 > +209.7151) { 642 ssrParStr = "Clock::DeltaA0"; 643 ssrParValue = QString::number(coSat.Clock.DeltaA0, 'f', 4); 644 corrIsOutOfRange = true; 645 } 646 if (coSat.Clock.DeltaA1 < -1.048575 || 647 coSat.Clock.DeltaA1 > +1.048575) { 648 ssrParStr = "Clock::DeltaA1"; 649 ssrParValue = QString::number(coSat.Clock.DeltaA1, 'f', 6); 650 corrIsOutOfRange = true; 651 } 652 if (coSat.Clock.DeltaA2 < -1.3421772 || 653 coSat.Clock.DeltaA2 > +1.3421772) { 654 ssrParStr = "Clock::DeltaA2"; 655 ssrParValue = QString::number(coSat.Clock.DeltaA2, 'f', 7); 656 corrIsOutOfRange = true; 657 } 658 659 if (coSat.Orbit.DeltaRadial < -209.7151 || 660 coSat.Orbit.DeltaRadial > +209.7151) { 661 ssrParStr = "Orbit::DeltaRadial"; 662 ssrParValue = QString::number(coSat.Orbit.DeltaRadial, 'f', 4); 663 corrIsOutOfRange = true; 664 } 665 666 if (coSat.Orbit.DeltaAlongTrack < -209.7148 || 667 coSat.Orbit.DeltaAlongTrack > +209.7148) { 668 ssrParStr = "Orbit::DeltaAlongTrack"; 669 ssrParValue = QString::number(coSat.Orbit.DeltaAlongTrack, 'f', 4); 670 corrIsOutOfRange = true; 671 } 672 if (coSat.Orbit.DeltaCrossTrack < -209.7148 || 673 coSat.Orbit.DeltaCrossTrack > +209.7148) { 674 ssrParStr = "Orbit::DeltaCrossTrack"; 675 ssrParValue = QString::number(coSat.Orbit.DeltaCrossTrack, 'f', 4); 676 corrIsOutOfRange = true; 677 } 678 679 if (coSat.Orbit.DotDeltaRadial < -1.048575 || 680 coSat.Orbit.DotDeltaRadial > +1.048575) { 681 ssrParStr = "Orbit::DotDeltaRadial"; 682 ssrParValue = QString::number(coSat.Orbit.DotDeltaRadial, 'f', 6); 683 corrIsOutOfRange = true; 684 } 685 if (coSat.Orbit.DotDeltaAlongTrack < -1.048572 || 686 coSat.Orbit.DotDeltaAlongTrack > +1.048572) { 687 ssrParStr = "Orbit::DotDeltaAlongTrack"; 688 ssrParValue = QString::number(coSat.Orbit.DotDeltaAlongTrack, 'f', 6); 689 corrIsOutOfRange = true; 690 } 691 if (coSat.Orbit.DotDeltaCrossTrack < -1.048572 || 692 coSat.Orbit.DotDeltaCrossTrack > +1.048572) { 693 ssrParStr = "Orbit::DotDeltaCrossTrack"; 694 ssrParValue = QString::number(coSat.Orbit.DotDeltaCrossTrack, 'f', 6); 695 corrIsOutOfRange = true; 696 } 697 break; 698 //==========// 699 // RTCM SSR // 700 // =========// 701 case RTCMssr: 702 if (coSat.Clock.DeltaA0 < -209.7151 || 703 coSat.Clock.DeltaA0 > +209.7151) { 704 ssrParStr = "Clock::DeltaA0"; 705 ssrParValue = QString::number(coSat.Clock.DeltaA0, 'f', 4); 706 corrIsOutOfRange = true; 707 } 708 if (coSat.Clock.DeltaA1 < -1.048575 || 709 coSat.Clock.DeltaA1 > +1.048575) { 710 ssrParStr = "Clock::DeltaA1"; 711 ssrParValue = QString::number(coSat.Clock.DeltaA1, 'f', 6); 712 corrIsOutOfRange = true; 713 } 714 if (coSat.Clock.DeltaA2 < -1.34217726 || 715 coSat.Clock.DeltaA2 > +1.34217726) { 716 ssrParStr = "Clock::DeltaA2"; 717 ssrParValue = QString::number(coSat.Clock.DeltaA2, 'f', 8); 718 corrIsOutOfRange = true; 719 } 720 721 if (coSat.Orbit.DeltaRadial < -209.7151 || 722 coSat.Orbit.DeltaRadial > +209.7151) { 723 ssrParStr = "Orbit::DeltaRadial"; 724 ssrParValue = QString::number(coSat.Orbit.DeltaRadial, 'f', 4); 725 corrIsOutOfRange = true; 726 } 727 728 if (coSat.Orbit.DeltaAlongTrack < -209.7148 || 729 coSat.Orbit.DeltaAlongTrack > +209.7148) { 730 ssrParStr = "Orbit::DeltaAlongTrack"; 731 ssrParValue = QString::number(coSat.Orbit.DeltaAlongTrack, 'f', 4); 732 corrIsOutOfRange = true; 733 } 734 if (coSat.Orbit.DeltaCrossTrack < -209.7148 || 735 coSat.Orbit.DeltaCrossTrack > +209.7148) { 736 ssrParStr = "Orbit::DeltaCrossTrack"; 737 ssrParValue = QString::number(coSat.Orbit.DeltaCrossTrack, 'f', 4); 738 corrIsOutOfRange = true; 739 } 740 741 if (coSat.Orbit.DotDeltaRadial < -1.048575 || 742 coSat.Orbit.DotDeltaRadial > +1.048575) { 743 ssrParStr = "Orbit::DotDeltaRadial"; 744 ssrParValue = QString::number(coSat.Orbit.DotDeltaRadial, 'f', 6); 745 corrIsOutOfRange = true; 746 } 747 if (coSat.Orbit.DotDeltaAlongTrack < -1.048572 || 748 coSat.Orbit.DotDeltaAlongTrack > +1.048572) { 749 ssrParStr = "Orbit::DotDeltaAlongTrack"; 750 ssrParValue = QString::number(coSat.Orbit.DotDeltaAlongTrack, 'f', 6); 751 corrIsOutOfRange = true; 752 } 753 if (coSat.Orbit.DotDeltaCrossTrack < -1.048572 || 754 coSat.Orbit.DotDeltaCrossTrack > +1.048572) { 755 ssrParStr = "Orbit::DotDeltaCrossTrack"; 756 ssrParValue = QString::number(coSat.Orbit.DotDeltaCrossTrack, 'f', 6); 757 corrIsOutOfRange = true; 758 } 759 break; 760 } 761 762 if (corrIsOutOfRange) { 763 emit newMessage("RTCM3coDecoder: Correction " + ssrParStr.toLatin1() 764 + " (" + ssrParValue.toLatin1() + ") " 765 + "is out of range " + _staID.toLatin1(), true); 766 } 767 768 return corrIsOutOfRange; 644 769 } 645 770
Note:
See TracChangeset
for help on using the changeset viewer.