Changeset 10587 in ntrip for trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
- Timestamp:
- Dec 10, 2024, 3:57:21 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r10579 r10587 1064 1064 } 1065 1065 GETBITS(i, 4) 1066 eph._ura = accuracyFromIndex(i, eph. type());1066 eph._ura = accuracyFromIndex(i, eph.system()); 1067 1067 GETBITS(eph._L2Codes, 2) 1068 1068 GETFLOATSIGN(eph._IDOT, 14, R2R_PI/(double)(1<<30)/(double)(1<<13)) … … 1132 1132 GETBITS(eph._L2PFlag, 1) 1133 1133 GETBITS(fitIntervalFalg, 1) 1134 eph._fitInterval = fitIntervalFromFlag(fitIntervalFalg, eph._IODC, eph. type());1134 eph._fitInterval = fitIntervalFromFlag(fitIntervalFalg, eph._IODC, eph.system()); 1135 1135 eph._TOT = 0.9999e9; 1136 eph._ ephType = t_eph::LNAV;1136 eph._type = t_eph::LNAV; 1137 1137 1138 1138 emit newGPSEph(eph); … … 1159 1159 eph._receptStaID = _staID; 1160 1160 1161 eph._flags_unknown = true;1162 1163 1161 GETBITS(sv, 6) 1164 1162 if (sv < 1 || sv > 63) { … … 1184 1182 return false; 1185 1183 } 1186 eph._fr equency_number= i - 7;1184 eph._frq_num = i - 7; 1187 1185 GETBITS(eph._almanac_health, 1) /* almanac healthy */ 1188 1186 GETBITS(eph._almanac_health_availablility_indicator, 1) /* almanac health ok */ … … 1245 1243 eph._TOC.setTk(i * 60 * 1000); /* tb */ 1246 1244 1247 GETFLOATSIGNM(eph._x_vel ocity,24, 1.0 / (double )(1 << 20))1248 GETFLOATSIGNM(eph._x_pos, 1249 GETFLOATSIGNM(eph._x_acc eleration,5, 1.0 / (double )(1 << 30))1250 GETFLOATSIGNM(eph._y_vel ocity,24, 1.0 / (double )(1 << 20))1251 GETFLOATSIGNM(eph._y_pos, 1252 GETFLOATSIGNM(eph._y_acc eleration,5, 1.0 / (double )(1 << 30))1253 GETFLOATSIGNM(eph._z_vel ocity,24, 1.0 / (double )(1 << 20))1254 GETFLOATSIGNM(eph._z_pos, 1255 GETFLOATSIGNM(eph._z_acc eleration,5, 1.0 / (double )(1 << 30))1245 GETFLOATSIGNM(eph._x_vel, 24, 1.0 / (double )(1 << 20)) 1246 GETFLOATSIGNM(eph._x_pos, 27, 1.0 / (double )(1 << 11)) 1247 GETFLOATSIGNM(eph._x_acc, 5, 1.0 / (double )(1 << 30)) 1248 GETFLOATSIGNM(eph._y_vel, 24, 1.0 / (double )(1 << 20)) 1249 GETFLOATSIGNM(eph._y_pos, 27, 1.0 / (double )(1 << 11)) 1250 GETFLOATSIGNM(eph._y_acc, 5, 1.0 / (double )(1 << 30)) 1251 GETFLOATSIGNM(eph._z_vel, 24, 1.0 / (double )(1 << 20)) 1252 GETFLOATSIGNM(eph._z_pos, 27, 1.0 / (double )(1 << 11)) 1253 GETFLOATSIGNM(eph._z_acc, 5, 1.0 / (double )(1 << 30)) 1256 1254 GETBITS(eph._P3, 1) /* P3 */ 1257 1255 GETFLOATSIGNM(eph._gamma, 11, 1.0 / (double )(1 << 30) / (double )(1 << 10)) … … 1281 1279 return false; 1282 1280 } 1283 GETBITS(eph._ NA, 11) /* GLONASS-M Na */1281 GETBITS(eph._M_NA, 11) /* GLONASS-M Na */ 1284 1282 GETFLOATSIGNM(eph._tauC, 32, 1.0/(double)(1<<30)/(double)(1<<1)) /* GLONASS tau c */ 1285 1283 GETBITS(eph._M_N4, 5) /* GLONASS-M N4 */ … … 1302 1300 return false; 1303 1301 } 1304 eph._xv(4) = eph._x_vel ocity* 1.e3;1305 eph._xv(5) = eph._y_vel ocity* 1.e3;1306 eph._xv(6) = eph._z_vel ocity* 1.e3;1302 eph._xv(4) = eph._x_vel * 1.e3; 1303 eph._xv(5) = eph._y_vel * 1.e3; 1304 eph._xv(6) = eph._z_vel * 1.e3; 1307 1305 if (eph._xv.Rows(4,6).NormFrobenius() < 1.0) { 1308 1306 #ifdef BNC_DEBUG_BCE … … 1312 1310 return false; 1313 1311 } 1314 GLOFreq[sv - 1] = 100 + eph._frequency_number ; /* store frequency for other users (MSM) */ 1315 _gloFrq = QString("%1 %2").arg(eph._prn.toString().c_str()).arg(eph._frequency_number, 2, 'f', 0); 1316 1317 eph._ephType = t_eph::FDMA; 1312 GLOFreq[sv - 1] = 100 + eph._frq_num ; /* store frequency for other users (MSM) */ 1313 _gloFrq = QString("%1 %2").arg(eph._prn.toString().c_str()).arg(eph._frq_num, 2, 'f', 0); 1314 1315 eph._type = t_eph::FDMA; 1316 eph._healthflags_unknown = false; 1317 eph._statusflags_unknown = false; 1318 1318 1319 1319 emit newGlonassEph(eph); … … 1429 1429 1430 1430 GETBITS(i, 4) 1431 eph._ura = accuracyFromIndex(i, eph. type());1431 eph._ura = accuracyFromIndex(i, eph.system()); 1432 1432 GETBITS(eph._health, 6) 1433 1433 GETFLOATSIGN(eph._TGD, 8, 1.0 / (double )(1 << 30) / (double )(1 << 1)) 1434 1434 GETBITS(eph._IODC, 10) 1435 1435 GETBITS(fitIntervalFalg, 1) 1436 eph._fitInterval = fitIntervalFromFlag(fitIntervalFalg, eph._IODC, eph. type());1436 eph._fitInterval = fitIntervalFromFlag(fitIntervalFalg, eph._IODC, eph.system()); 1437 1437 eph._TOT = 0.9999e9; 1438 eph._ ephType = t_eph::LNAV;1438 eph._type = t_eph::LNAV; 1439 1439 1440 1440 emit newGPSEph(eph); … … 1487 1487 GETFLOATSIGN(eph._clock_driftrate, 8, 1.0 / (double )(1 << 30) / (double )(1 << 25)) 1488 1488 GETBITS(i, 4) 1489 eph._ura = accuracyFromIndex(i, eph. type());1489 eph._ura = accuracyFromIndex(i, eph.system()); 1490 1490 GETBITS(i, 16) 1491 1491 i <<= 4; … … 1567 1567 SKIPBITS(2) 1568 1568 eph._TOT = 0.9999e9; 1569 eph._ ephType = t_eph::LNAV;1569 eph._type = t_eph::LNAV; 1570 1570 1571 1571 emit newGPSEph(eph); … … 1618 1618 eph._TOC.setTOD(i * 1000); 1619 1619 GETBITS(i, 4) 1620 eph._ura = accuracyFromIndex(i, eph. type());1620 eph._ura = accuracyFromIndex(i, eph.system()); 1621 1621 GETFLOATSIGN(eph._x_pos, 30, 0.08) 1622 1622 GETFLOATSIGN(eph._y_pos, 30, 0.08) … … 1631 1631 return false; 1632 1632 } 1633 GETFLOATSIGN(eph._x_vel ocity, 17, 0.000625)1634 GETFLOATSIGN(eph._y_vel ocity, 17, 0.000625)1635 GETFLOATSIGN(eph._z_vel ocity, 18, 0.004)1636 GETFLOATSIGN(eph._x_acc eleration, 10, 0.0000125)1637 GETFLOATSIGN(eph._y_acc eleration, 10, 0.0000125)1638 GETFLOATSIGN(eph._z_acc eleration, 10, 0.0000625)1633 GETFLOATSIGN(eph._x_vel, 17, 0.000625) 1634 GETFLOATSIGN(eph._y_vel, 17, 0.000625) 1635 GETFLOATSIGN(eph._z_vel, 18, 0.004) 1636 GETFLOATSIGN(eph._x_acc, 10, 0.0000125) 1637 GETFLOATSIGN(eph._y_acc, 10, 0.0000125) 1638 GETFLOATSIGN(eph._z_acc, 10, 0.0000625) 1639 1639 GETFLOATSIGN(eph._agf0, 12, 1.0 / (1 << 30) / (1 << 1)) 1640 1640 GETFLOATSIGN(eph._agf1, 8, 1.0 / (1 << 30) / (1 << 10)) … … 1642 1642 eph._TOT = 0.9999E9; 1643 1643 eph._health = 0; 1644 eph._ ephType = t_eph::SBASL1;1644 eph._type = t_eph::SBASL1; 1645 1645 1646 1646 emit newSBASEph(eph); … … 1695 1695 GETBITS(eph._IODnav, 10) 1696 1696 GETBITS(i, 8) 1697 eph._SISA = accuracyFromIndex(i, eph. type());1697 eph._SISA = accuracyFromIndex(i, eph.system()); 1698 1698 GETFLOATSIGN(eph._IDOT, 14, R2R_PI/(double)(1<<30)/(double)(1<<13)) 1699 1699 GETBITSFACTOR(i, 14, 60) … … 1731 1731 } 1732 1732 /* FIXME: overwrite value, copied from old code */ 1733 eph._TOEsec = eph._TOC.gpssec();1733 //eph._TOEsec = eph._TOC.gpssec(); 1734 1734 GETFLOATSIGN(eph._Cic, 16, 1.0 / (double )(1 << 29)) 1735 1735 GETFLOATSIGN(eph._OMEGA0, 32, R2R_PI/(double)(1<<30)/(double)(1<<1)) … … 1742 1742 if (eph._inav) { 1743 1743 /* set unused F/NAV values */ 1744 eph._E5a HS = 0.0;1745 eph._ e5aDataInvalid = false;1744 eph._E5a_HS = 0.0; 1745 eph._E5a_DataInvalid = false; 1746 1746 1747 1747 GETFLOATSIGN(eph._BGD_1_5B, 10, 1.0 / (double )(1 << 30) / (double )(1 << 2)) 1748 GETBITS(eph._E5b HS, 2)1749 GETBITS(eph._ e5bDataInvalid, 1)1750 GETBITS(eph._E1 _bHS, 2)1751 GETBITS(eph._ e1DataInvalid, 1)1752 if (eph._E5b HS != eph._E1_bHS) {1748 GETBITS(eph._E5b_HS, 2) 1749 GETBITS(eph._E5b_DataInvalid, 1) 1750 GETBITS(eph._E1B_HS, 2) 1751 GETBITS(eph._E1B_DataInvalid, 1) 1752 if (eph._E5b_HS != eph._E1B_HS) { 1753 1753 #ifdef BNC_DEBUG_BCE 1754 1754 emit(newMessage(QString("%1: Block %2 (%3) SHS E5b %4 E1B %5: inconsistent health!") 1755 1755 .arg(_staID).arg(1046,4).arg(eph._prn.toString().c_str()) 1756 .arg(eph._E5b HS).arg(eph._E1_bHS).toLatin1(), true));1756 .arg(eph._E5b_HS).arg(eph._E1B_HS).toLatin1(), true)); 1757 1757 #endif 1758 1758 return false; … … 1761 1761 (eph._BGD_1_5B == 0.0 && fabs(eph._BGD_1_5A) > 1e-9)) { 1762 1762 #ifdef BNC_DEBUG_BCE 1763 emit(newMessage(QString("%1: Block %2 (%3) BGD_1 5a = %4 BGD_15b = %5: inconsistent BGD!")1763 emit(newMessage(QString("%1: Block %2 (%3) BGD_1_5a = %4 BGD_1_5b = %5: inconsistent BGD!") 1764 1764 .arg(_staID).arg(1046,4).arg(eph._prn.toString().c_str()) 1765 1765 .arg(eph._BGD_1_5A,10,'E',3).arg(eph._BGD_1_5B,10,'E',3).toLatin1(), true)); … … 1767 1767 return false; 1768 1768 } 1769 eph._ ephType = t_eph::INAF;1769 eph._type = t_eph::INAV; 1770 1770 } 1771 1771 else { 1772 1772 /* set unused I/NAV values */ 1773 1773 eph._BGD_1_5B = 0.0; 1774 eph._E5b HS = 0.0;1775 eph._E1 _bHS = 0.0;1776 eph._ e1DataInvalid = false;1777 eph._ e5bDataInvalid = false;1778 1779 GETBITS(eph._E5a HS, 2)1780 GETBITS(eph._ e5aDataInvalid, 1)1781 eph._ ephType = t_eph::FNAV;1774 eph._E5b_HS = 0.0; 1775 eph._E1B_HS = 0.0; 1776 eph._E1B_DataInvalid = false; 1777 eph._E5b_DataInvalid = false; 1778 1779 GETBITS(eph._E5a_HS, 2) 1780 GETBITS(eph._E5a_DataInvalid, 1) 1781 eph._type = t_eph::FNAV; 1782 1782 } 1783 1783 eph._TOT = 0.9999e9; … … 1841 1841 eph._BDTweek = week; 1842 1842 GETBITS(i, 4) 1843 eph._ URA = accuracyFromIndex(i, eph.type());1843 eph._ura = accuracyFromIndex(i, eph.system()); 1844 1844 GETFLOATSIGN(eph._IDOT, 14, R2R_PI/(double)(1<<30)/(double)(1<<13)) 1845 1845 GETBITS(eph._AODE, 5) … … 1903 1903 eph._TOT = 0.9999E9; 1904 1904 if (eph._i0 > iMaxGEO) { 1905 eph._ ephType = t_eph::D1;1905 eph._type = t_eph::D1; 1906 1906 } 1907 1907 else { 1908 eph._ ephType = t_eph::D2;1908 eph._type = t_eph::D2; 1909 1909 } 1910 1910
Note:
See TracChangeset
for help on using the changeset viewer.