- Timestamp:
- Mar 5, 2021, 10:55:32 AM (4 years ago)
- Location:
- branches/BNC_2.12/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/BNC_2.12/src/bncephuser.cpp
r9333 r9363 224 224 double dt = currentTime - toc; 225 225 226 // update interval: 2h, data sets are valid for 4 hours 227 if (eph->type() == t_eph::GPS && (dt > 4*3600.0 || dt < -2*3600.0)) {228 eph->setCheckState(t_eph::outdated); 229 return; 230 } 231 // update interval: 3h, data sets are valid for 4 hours 232 else if (eph->type() == t_eph::Galileo && (dt > 4*3600.0 || dt <233 eph->setCheckState(t_eph::outdated); 234 return; 235 } 236 // updated every 30 minutes 237 else if (eph->type() == t_eph::GLONASS && (dt > 1*3600.0 || dt <-1800.0)) {238 eph->setCheckState(t_eph::outdated); 239 return; 240 } 241 // orbit parameters are valid for 7200 seconds (minimum) 242 else if (eph->type() == t_eph::QZSS && (dt > 2*3600.0 || dt <-1*3600.0)) {243 eph->setCheckState(t_eph::outdated); 244 return; 245 } 246 // maximum update interval: 300 sec 247 else if (eph->type() == t_eph::SBAS && (dt > 600 || dt <-300.0)) {248 eph->setCheckState(t_eph::outdated); 249 return; 250 } 251 // updates 1h (GEO) up to 6 hours non-GEO252 else if (eph->type() == t_eph::BDS && (dt > 6*3600|| dt <253 eph->setCheckState(t_eph::outdated); 254 return; 255 } 256 // update interval: up to 24 hours 257 else if (eph->type() == t_eph::IRNSS && fabs(dt > 24*3600.0)) {226 // update interval: 2h, data sets are valid for 4 hours + 5 min 227 if (eph->type() == t_eph::GPS && (dt > 14700.0 || dt < -7500.0)) { 228 eph->setCheckState(t_eph::outdated); 229 return; 230 } 231 // update interval: 3h, data sets are valid for 4 hours + 5 min 232 else if (eph->type() == t_eph::Galileo && (dt > 14700.0 || dt < 0.0)) { 233 eph->setCheckState(t_eph::outdated); 234 return; 235 } 236 // updated every 30 minutes + 5 min 237 else if (eph->type() == t_eph::GLONASS && (dt > 3900.0 || dt < -2100.0)) { 238 eph->setCheckState(t_eph::outdated); 239 return; 240 } 241 // orbit parameters are valid for 7200 seconds (minimum) + 5 min 242 else if (eph->type() == t_eph::QZSS && (dt > 7500.0 || dt < 3900.0)) { 243 eph->setCheckState(t_eph::outdated); 244 return; 245 } 246 // maximum update interval: 300 sec + 5 min 247 else if (eph->type() == t_eph::SBAS && (dt > 600.0 || dt < -600.0)) { 248 eph->setCheckState(t_eph::outdated); 249 return; 250 } 251 // updates 1h + 5 min 252 else if (eph->type() == t_eph::BDS && (dt > 3900.0 || dt < 0.0)) { 253 eph->setCheckState(t_eph::outdated); 254 return; 255 } 256 // update interval: up to 24 hours + 5 min 257 else if (eph->type() == t_eph::IRNSS && fabs(dt > 86700.0)) { 258 258 eph->setCheckState(t_eph::outdated); 259 259 return; … … 263 263 // Check consistency with older ephemeris 264 264 // -------------------------------------- 265 const double MAXDIFF = 10.0; 266 const double MINDIFF = 0.005; 267 QString prn = QString(eph->prn().toInternalString().c_str()); 268 t_eph* ephL = ephLast(prn); 269 265 const double MAXDIFF_INIT = 10.0; 266 const double MINDIFF = 0.005; 267 QString prn = QString(eph->prn().toInternalString().c_str()); 268 t_eph* ephL = ephLast(prn); 269 270 // maxdiff adapted to individual systems 271 char sys = eph->prn().system(); 272 double MAXDIFF = MAXDIFF_INIT; 273 if (sys == 'C' || 274 sys == 'S' ) { 275 MAXDIFF *= 10.0; 276 } 277 270 278 if (ephL) { 271 279 ColumnVector xcL(6); … … 293 301 } 294 302 295 double dt = eph->TOC() - ephL->TOC();296 303 // some lines to allow update of ephemeris data sets after an outage 297 304 // ----------------------------------------------------------------- 298 // update interval: 2h,299 // sometimes corrected BRDC sets are sent with TOC values 16 seconds 300 // before the nominal TOC (integer time)301 if (eph->type() == t_eph::GPS && dt > (2*3600.0 + 60.0)) {302 ephL->setCheckState(t_eph::outdated); 303 return; 304 } 305 // update interval: 3h, 306 else if (eph->type() == t_eph::Galileo && dt > (3*3600.0 + 60.0)) {305 double dt = eph->TOC() - ephL->TOC(); 306 307 // update interval: 2h, + 5 min 308 if (eph->type() == t_eph::GPS && dt > 3900.0) { 309 ephL->setCheckState(t_eph::outdated); 310 return; 311 } 312 // update interval: 3h, + 5 min 313 else if (eph->type() == t_eph::Galileo && dt > 11100.0) { 307 314 ephL->setCheckState(t_eph::outdated); 308 315 return; 309 316 } 310 317 // updated every 30 minutes 311 else if (eph->type() == t_eph::GLONASS && dt > ( 1800.0 + 60.0)) {318 else if (eph->type() == t_eph::GLONASS && dt > 2100.0) { 312 319 ephL->setCheckState(t_eph::outdated); 313 320 return; 314 321 } 315 322 // updated every ? 316 else if (eph->type() == t_eph::QZSS && dt > (2*3600.0 + 60.0)) {317 ephL->setCheckState(t_eph::outdated); 318 return; 319 } 320 // maximum update interval: 300 sec 321 else if (eph->type() == t_eph::SBAS && dt > ( 300.0)) {322 ephL->setCheckState(t_eph::outdated); 323 return; 324 } 325 // updates 1h (GEO) up to 6 hours non-GEO326 else if (eph->type() == t_eph::BDS && dt > 6*3600.0) {327 ephL->setCheckState(t_eph::outdated); 328 return; 329 } 330 // update interval: up to 24 hours 331 else if (eph->type() == t_eph::IRNSS && dt > 24*3600.0) {332 ephL->setCheckState(t_eph::outdated); 333 return; 334 } 335 } 336 } 323 else if (eph->type() == t_eph::QZSS && dt > 3900.0) { 324 ephL->setCheckState(t_eph::outdated); 325 return; 326 } 327 // maximum update interval: 300 sec + 5 min 328 else if (eph->type() == t_eph::SBAS && dt > 600.0) { 329 ephL->setCheckState(t_eph::outdated); 330 return; 331 } 332 // updates 1h + 5 min 333 else if (eph->type() == t_eph::BDS && dt > 3900.0) { 334 ephL->setCheckState(t_eph::outdated); 335 return; 336 } 337 // update interval: up to 24 hours + 5 min 338 else if (eph->type() == t_eph::IRNSS && dt > 86700.0) { 339 ephL->setCheckState(t_eph::outdated); 340 return; 341 } 342 } 343 } -
branches/BNC_2.12/src/bncutils.cpp
r9357 r9363 271 271 double dt = currentTime - toc; 272 272 273 // update interval: 2h, data sets are valid for 4 hours 274 if (eph->type() == t_eph::GPS && dt > 4*3600.0) {273 // update interval: 2h, data sets are valid for 4 hours + 5 min 274 if (eph->type() == t_eph::GPS && dt > 14700.0) { 275 275 return true; 276 276 } 277 // update interval: 3h, data sets are valid for 4 hours 278 else if (eph->type() == t_eph::Galileo && dt > 4*3600.0) {277 // update interval: 3h, data sets are valid for 4 hours + 5 min 278 else if (eph->type() == t_eph::Galileo && dt > 14700.0) { 279 279 return true; 280 280 } 281 / *updated every 30 minutes282 else if (eph->type() == t_eph::GLONASS && dt > 1*3600.0) {281 // updated every 30 minutes + 5 min 282 else if (eph->type() == t_eph::GLONASS && dt > 3900.0) { 283 283 return true; 284 } */285 // orbit parameters are valid for 7200 seconds (minimum) 286 else if (eph->type() == t_eph::QZSS && dt > 2*3600.0) {284 } 285 // orbit parameters are valid for 7200 seconds (minimum) + 5 min 286 else if (eph->type() == t_eph::QZSS && dt > 7500.0) { 287 287 return true; 288 288 } 289 // maximum update interval: 300 sec 290 else if (eph->type() == t_eph::SBAS && dt > 289 // maximum update interval: 300 sec + 5 min 290 else if (eph->type() == t_eph::SBAS && dt > 600.0) { 291 291 return true; 292 292 } 293 // updates 1h (GEO) up to 6 hours non-GEO294 else if (eph->type() == t_eph::BDS && dt > 6*3600.0) {293 // updates 1h + 5 min 294 else if (eph->type() == t_eph::BDS && dt > 3900.0) { 295 295 return true; 296 296 } 297 // update interval: up to 24 hours 298 else if (eph->type() == t_eph::IRNSS && dt > 24*3600.0) {297 // update interval: up to 24 hours + 5 min 298 else if (eph->type() == t_eph::IRNSS && dt > 86700.0) { 299 299 return true; 300 300 }
Note:
See TracChangeset
for help on using the changeset viewer.