Changeset 10599 in ntrip for trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
- Timestamp:
- Jan 31, 2025, 10:30:08 AM (11 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r10587 r10599 71 71 _rawFile = rawFile; 72 72 73 connect(this, SIGNAL(newGPSEph(t_ephGPS)), BNC_CORE, 74 SLOT(slotNewGPSEph(t_ephGPS))); 75 connect(this, SIGNAL(newGlonassEph(t_ephGlo)), BNC_CORE, 76 SLOT(slotNewGlonassEph(t_ephGlo))); 77 connect(this, SIGNAL(newGalileoEph(t_ephGal)), BNC_CORE, 78 SLOT(slotNewGalileoEph(t_ephGal))); 79 connect(this, SIGNAL(newSBASEph(t_ephSBAS)), BNC_CORE, 80 SLOT(slotNewSBASEph(t_ephSBAS))); 81 connect(this, SIGNAL(newBDSEph(t_ephBDS)), BNC_CORE, 82 SLOT(slotNewBDSEph(t_ephBDS))); 73 connect(this, SIGNAL(newGPSEph(t_ephGPS)), BNC_CORE, SLOT(slotNewGPSEph(t_ephGPS))); 74 connect(this, SIGNAL(newGlonassEph(t_ephGlo)), BNC_CORE, SLOT(slotNewGlonassEph(t_ephGlo))); 75 connect(this, SIGNAL(newGalileoEph(t_ephGal)), BNC_CORE, SLOT(slotNewGalileoEph(t_ephGal))); 76 connect(this, SIGNAL(newSBASEph(t_ephSBAS)), BNC_CORE, SLOT(slotNewSBASEph(t_ephSBAS))); 77 connect(this, SIGNAL(newBDSEph(t_ephBDS)), BNC_CORE, SLOT(slotNewBDSEph(t_ephBDS))); 83 78 84 79 _MessageSize = _SkipBytes = _BlockSize = _NeedBytes = 0; … … 134 129 135 130 GETBITS(sv, 6) 136 if (sv < 40) 137 CurrentObs._prn.set('G', sv); 138 else 139 CurrentObs._prn.set('S', sv - 20); 131 char sys; 132 int num, flag; 133 if (sv < 40) { 134 sys = 'G'; 135 num = sv; 136 } 137 else { 138 sys = 'S'; 139 num = sv - 20; 140 } 141 flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 142 CurrentObs._prn.set(sys, num, flag); 140 143 141 144 t_frqObs *frqObs = new t_frqObs; … … 706 709 /* next satellite */ 707 710 ; 708 if (CurrentObs._obs.size() > 0) 711 if (CurrentObs._obs.size() > 0) { 712 char sys = CurrentObs._prn.system(); 713 int num = CurrentObs._prn.number(); 714 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 715 CurrentObs._prn.setFlag(flag); 709 716 _CurrentObsList.push_back(CurrentObs); 717 } 710 718 CurrentObs.clear(); 711 719 CurrentObs._time = CurrentObsTime; … … 882 890 } 883 891 if (CurrentObs._obs.size() > 0) { 892 char sys = CurrentObs._prn.system(); 893 int num = CurrentObs._prn.number(); 894 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 895 CurrentObs._prn.setFlag(flag); 884 896 _CurrentObsList.push_back(CurrentObs); 885 897 } … … 939 951 940 952 GETBITS(sv, 6) 941 CurrentObs._prn.set('R', sv); 953 char sys = 'R'; 954 int flag = t_corrSSR::getSsrNavTypeFlag(sys, sv); 955 CurrentObs._prn.set(sys, sv, flag); 942 956 GETBITS(code, 1) 943 957 GETBITS(freq, 5) … … 1135 1149 eph._TOT = 0.9999e9; 1136 1150 eph._type = t_eph::LNAV; 1151 eph._prn.setFlag(eph._type); 1137 1152 1138 1153 emit newGPSEph(eph); … … 1313 1328 _gloFrq = QString("%1 %2").arg(eph._prn.toString().c_str()).arg(eph._frq_num, 2, 'f', 0); 1314 1329 1315 eph._type = t_eph::FDMA; 1330 if (eph.validMdata()) { 1331 eph._type = t_eph::FDMA_M; 1332 } 1333 else { 1334 eph._type = t_eph::FDMA; 1335 } 1336 eph._prn.setFlag(eph._type); 1316 1337 eph._healthflags_unknown = false; 1317 1338 eph._statusflags_unknown = false; … … 1568 1589 eph._TOT = 0.9999e9; 1569 1590 eph._type = t_eph::LNAV; 1591 eph._prn.setFlag(eph._type); 1570 1592 1571 1593 emit newGPSEph(eph); … … 1643 1665 eph._health = 0; 1644 1666 eph._type = t_eph::SBASL1; 1667 eph._prn.setFlag(eph._type); 1645 1668 1646 1669 emit newSBASEph(eph); … … 1661 1684 GETBITS(i, 12) 1662 1685 1663 if ((i == 1046 && size == 61) || (i == 1045 && size == 60)) { 1686 if ((i == 1046 && size == 61) || 1687 (i == 1045 && size == 60)) { 1664 1688 t_ephGal eph; 1665 1689 eph._receptDateTime = currentDateAndTimeGPS(); … … 1679 1703 return false; 1680 1704 } 1681 eph._prn.set('E', i, eph._inav ? 1 : 0);1705 eph._prn.set('E', i, eph._inav ? t_eph::INAV : t_eph::FNAV); 1682 1706 1683 1707 GETBITS(week, 12) //FIXME: roll-over after week 4095!! … … 1741 1765 GETFLOATSIGN(eph._BGD_1_5A, 10, 1.0 / (double )(1 << 30) / (double )(1 << 2)) 1742 1766 if (eph._inav) { 1767 eph._type = t_eph::INAV; 1743 1768 /* set unused F/NAV values */ 1744 1769 eph._E5a_HS = 0.0; … … 1767 1792 return false; 1768 1793 } 1769 eph._type = t_eph::INAV;1770 1794 } 1771 1795 else { 1796 eph._type = t_eph::FNAV; 1772 1797 /* set unused I/NAV values */ 1773 1798 eph._BGD_1_5B = 0.0; … … 1779 1804 GETBITS(eph._E5a_HS, 2) 1780 1805 GETBITS(eph._E5a_DataInvalid, 1) 1781 eph._type = t_eph::FNAV;1782 1806 } 1783 1807 eph._TOT = 0.9999e9; … … 1908 1932 eph._type = t_eph::D2; 1909 1933 } 1934 eph._prn.setFlag(eph._type); 1910 1935 1911 1936 emit newBDSEph(eph);
Note:
See TracChangeset
for help on using the changeset viewer.