- Timestamp:
- Oct 31, 2020, 10:12:56 PM (4 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r9124 r9192 1046 1046 GETFLOATSIGN(eph._Cus, 16, 1.0 / (double )(1 << 29)) 1047 1047 GETFLOAT(eph._sqrt_A, 32, 1.0 / (double )(1 << 19)) 1048 if (eph._sqrt_A < 1000.0) {return false;} 1048 1049 GETBITS(i, 16) 1049 1050 i <<= 4; … … 1100 1101 GETBITS(eph._almanac_health, 1) /* almanac healthy */ 1101 1102 GETBITS(eph._almanac_health_availablility_indicator, 1) /* almanac health ok */ 1103 if (eph._almanac_health_availablility_indicator == 0.0) {return false;} 1102 1104 GETBITS(eph._P1, 2) /* P1 */ 1103 1105 GETBITS(i, 5) … … 1135 1137 GETBITS(eph._M_FT, 4) /* GLONASS-M Ft */ 1136 1138 GETBITS(eph._M_NT, 11) /* GLONASS-M Nt */ 1139 if (eph._M_NT == 0.0) {return false;} 1137 1140 GETBITS(eph._M_M, 2) /* GLONASS-M M */ 1138 1141 GETBITS(eph._additional_data_availability, 1) /* GLONASS-M The Availability of Additional Data */ 1142 if (eph._additional_data_availability == 0.0) {return false;} 1139 1143 GETBITS(eph._NA, 11) /* GLONASS-M Na */ 1140 1144 GETFLOATSIGNM(eph._tauC, 32, 1.0/(double)(1<<30)/(double)(1<<1)) /* GLONASS tau c */ … … 1199 1203 GETFLOATSIGN(eph._Cus, 16, 1.0 / (double )(1 << 29)) 1200 1204 GETFLOAT(eph._sqrt_A, 32, 1.0 / (double )(1 << 19)) 1205 if (eph._sqrt_A < 1000.0) {return false;} 1201 1206 GETBITS(i, 16) 1202 1207 i <<= 4; … … 1307 1312 GETFLOAT(eph._e, 32, 1.0 / (double )(1 << 30) / (double )(1 << 3)) 1308 1313 GETFLOAT(eph._sqrt_A, 32, 1.0 / (double )(1 << 19)) 1314 if (eph._sqrt_A < 1000.0) {return false;} 1309 1315 GETFLOATSIGN(eph._OMEGA0, 32, R2R_PI/(double)(1<<30)/(double)(1<< 1)) 1310 1316 GETFLOATSIGN(eph._omega, 32, R2R_PI/(double)(1<<30)/(double)(1<< 1)) … … 1404 1410 GETFLOATSIGN(eph._Cus, 16, 1.0 / (double )(1 << 29)) 1405 1411 GETFLOAT(eph._sqrt_A, 32, 1.0 / (double )(1 << 19)) 1412 if (eph._sqrt_A < 1000.0) {return false;} 1406 1413 GETBITSFACTOR(eph._TOEsec, 14, 60) 1407 1414 /* FIXME: overwrite value, copied from old code */ … … 1425 1432 GETBITS(eph._E1_bHS, 2) 1426 1433 GETBITS(eph._e1DataInValid, 1) 1434 if (eph._E5bHS != eph._E1_bHS) { 1435 return false; 1436 } 1437 if ((eph._BGD_1_5A == 0.0 && fabs(eph._BGD_1_5B) > 1e-9) || 1438 (eph._BGD_1_5B == 0.0 && fabs(eph._BGD_1_5A) > 1e-9)) { 1439 return false; 1440 } 1427 1441 } 1428 1442 else { … … 1484 1498 GETFLOATSIGN(eph._Cus, 18, 1.0 / (double )(1 << 30) / (double )(1 << 1)) 1485 1499 GETFLOAT(eph._sqrt_A, 32, 1.0 / (double )(1 << 19)) 1500 if (eph._sqrt_A < 1000.0) {return false;} 1486 1501 GETBITS(i, 17) 1487 1502 i <<= 3; … … 1693 1708 case 1045: 1694 1709 case 1046: 1710 // reject 1045/1046 from JAXA RTKLIB encoded stations 1711 if (_staID.contains("AIRA") || _staID.contains("STK2") || 1712 _staID.contains("CCJ2") || _staID.contains("SYOG")) { 1713 break; 1714 } 1695 1715 if (DecodeGalileoEphemeris(_Message, _BlockSize)) 1696 1716 decoded = true; -
trunk/BNC/src/bncephuser.cpp
r9059 r9192 205 205 return; 206 206 } 207 208 207 double rr = xc.Rows(1,3).NormFrobenius(); 209 208 double rv = vv.NormFrobenius(); 210 209 const double MINDIST = 2.e7; 211 210 const double MAXDIST = 6.e7; 212 211 if (rr < MINDIST || rr > MAXDIST || std::isnan(rr)) { 212 eph->setCheckState(t_eph::bad); 213 return; 214 } 215 if (eph->type() == t_eph::GLONASS && rv < 1.0) { 213 216 eph->setCheckState(t_eph::bad); 214 217 return;
Note:
See TracChangeset
for help on using the changeset viewer.