 Timestamp:
 Mar 5, 2021, 10:48:34 AM (15 months ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/BNC/src/bncephuser.cpp
r9332 r9361 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 <0.0)) {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 nonGEO252 else if (eph>type() == t_eph::BDS && (dt > 6*3600  dt <0.0)) {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); 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 } 269 277 270 278 if (ephL) { … … 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 nonGEO326 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) {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) { 332 339 ephL>setCheckState(t_eph::outdated); 333 340 return;
Note:
See TracChangeset
for help on using the changeset viewer.