Changeset 9245 in ntrip for trunk/BNC/src


Ignore:
Timestamp:
Nov 12, 2020, 10:09:03 AM (4 years ago)
Author:
stuerze
Message:

another check is added, to prevent the usage of not updated nav data sets during ssr upload

Location:
trunk/BNC/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncephuser.cpp

    r9244 r9245  
    243243    }
    244244    // maximum update interval: 300 sec
    245     else if (eph->type() == t_eph::SBAS    && (dt >     600 || dt <       -300)) {
     245    else if (eph->type() == t_eph::SBAS    && (dt >     600 || dt <     -300.0)) {
    246246      eph->setCheckState(t_eph::outdated);
    247247      return;
     
    253253    }
    254254    // update interval: up to 24 hours
    255     else if (eph->type() == t_eph::IRNSS   && fabs(dt > 24*3600)) {
     255    else if (eph->type() == t_eph::IRNSS   && fabs(dt > 24*3600.0)) {
    256256      eph->setCheckState(t_eph::outdated);
    257257      return;
     
    279279    // some lines to allow update of ephemeris data sets after an outage
    280280    // update interval: 2h,
    281     if      (eph->type() == t_eph::GPS     && dt >  2*3600) {
     281    if      (eph->type() == t_eph::GPS     && dt >  2*3600.0) {
    282282      ephL->setCheckState(t_eph::outdated);
    283283      return;
    284284    }
    285285    // update interval: 3h,
    286     else if (eph->type() == t_eph::Galileo && dt >  3*3600) {
     286    else if (eph->type() == t_eph::Galileo && dt >  3*3600.0) {
    287287      ephL->setCheckState(t_eph::outdated);
    288288      return;
    289289    }
    290290    // updated every 30 minutes
    291     else if (eph->type() == t_eph::GLONASS && dt >    1800) {
     291    else if (eph->type() == t_eph::GLONASS && dt >    1800.0) {
    292292      ephL->setCheckState(t_eph::outdated);
    293293      return;
    294294    }
    295295    // updated every ?
    296     else if (eph->type() == t_eph::QZSS    && dt >  2*3600) {
     296    else if (eph->type() == t_eph::QZSS    && dt >  2*3600.0) {
    297297      ephL->setCheckState(t_eph::outdated);
    298298      return;
    299299    }
    300300    // maximum update interval: 300 sec
    301     else if  (eph->type() == t_eph::SBAS   && dt >     300) {
     301    else if  (eph->type() == t_eph::SBAS   && dt >     300.0) {
    302302      ephL->setCheckState(t_eph::outdated);
    303303      return;
    304304    }
    305305    // updates 1h (GEO) up to 6 hours non-GEO
    306     else if  (eph->type() == t_eph::BDS    && dt >  6*3600) {
     306    else if  (eph->type() == t_eph::BDS    && dt >  6*3600.0) {
    307307      ephL->setCheckState(t_eph::outdated);
    308308      return;
    309309    }
    310310    // update interval: up to 24 hours
    311     else if  (eph->type() == t_eph::IRNSS  && dt > 24*3600) {
     311    else if  (eph->type() == t_eph::IRNSS  && dt > 24*3600.0) {
    312312      ephL->setCheckState(t_eph::outdated);
    313313      return;
  • trunk/BNC/src/bncutils.cpp

    r9088 r9245  
    262262  return false;
    263263}
     264
     265//
     266////////////////////////////////////////////////////////////////////////////
     267bool outDatedBcep(const t_eph *eph) {
     268  bncTime   toc = eph->TOC();
     269  QDateTime now = currentDateAndTimeGPS();
     270  bncTime currentTime(now.toString(Qt::ISODate).toStdString());
     271  double dt = currentTime - toc;
     272
     273  // update interval: 2h, data sets are valid for 4 hours
     274  if      (eph->type() == t_eph::GPS     && dt > 4*3600.0) {
     275    return true;
     276  }
     277  // update interval: 3h, data sets are valid for 4 hours
     278  else if (eph->type() == t_eph::Galileo && dt > 4*3600.0) {
     279    return true;
     280  }
     281  // updated every 30 minutes
     282  else if (eph->type() == t_eph::GLONASS && dt > 1*3600.0) {
     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) {
     287    return true;
     288  }
     289  // maximum update interval: 300 sec
     290  else if (eph->type() == t_eph::SBAS    && dt >    600.0) {
     291    return true;
     292  }
     293  // updates 1h (GEO) up to 6 hours non-GEO
     294  else if (eph->type() == t_eph::BDS     && dt > 6*3600.0) {
     295    return true;
     296  }
     297  // update interval: up to 24 hours
     298  else if (eph->type() == t_eph::IRNSS   && dt > 24*3600.0) {
     299    return true;
     300  }
     301  return false;
     302}
     303
    264304//
    265305////////////////////////////////////////////////////////////////////////////
  • trunk/BNC/src/bncutils.h

    r8903 r9245  
    7575
    7676bool         checkForWrongObsEpoch(bncTime obsEpoch);
     77
     78bool         outDatedBcep(const t_eph *eph);
    7779
    7880QByteArray   ggaString(const QByteArray& latitude, const QByteArray& longitude,
  • trunk/BNC/src/upload/bncrtnetuploadcaster.cpp

    r9203 r9245  
    2222#include "bncsp3.h"
    2323#include "gnss.h"
     24#include "bncutils.h"
     25
    2426
    2527using namespace std;
     
    469471    }
    470472
    471     if (eph  &&
    472         eph->checkState() != t_eph::bad &&
     473    if (eph  &&  !outDatedBcep(eph)           &&  // detected from storage because of no update
     474        eph->checkState() != t_eph::bad       &&
    473475        eph->checkState() != t_eph::unhealthy &&
    474         eph->checkState() != t_eph::outdated) {
     476        eph->checkState() != t_eph::outdated) {  // detected during reception (bncephuser)
    475477      QMap<QString, double> codeBiases;
    476478      QList<phaseBiasSignal> phaseBiasList;
Note: See TracChangeset for help on using the changeset viewer.