Changeset 6521 in ntrip for trunk/BNC


Ignore:
Timestamp:
Dec 30, 2014, 3:59:11 PM (9 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC/src
Files:
2 edited

Legend:

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

    r6520 r6521  
    173173  ColumnVector xc(4);
    174174  ColumnVector vv(3);
    175 
    176175  if (eph->getCrd(eph->TOC(), xc, vv, false) != success) {
    177176    eph->setCheckState(t_eph::bad);
     
    181180  double rr = xc.Rows(1,3).norm_Frobenius();
    182181
    183   if (rr < 2.e7 || rr > 4.e7) {
     182  const double MINDIST = 2.e7;
     183  const double MAXDIST = 4.e7;
     184  if (rr < MINDIST || rr > MAXDIST) {
    184185    eph->setCheckState(t_eph::bad);
    185186    return;
    186187  }
    187188
    188 }
     189  // Check consistency with older ephemerides
     190  // ----------------------------------------
     191  const double MAXDIFF = 100.0;
     192  QString      prn     = QString(eph->prn().toString().c_str());
     193  t_eph*       ephL    = ephLast(prn);
     194  if (ephL) {
     195    ColumnVector xcL(4);
     196    ColumnVector vvL(3);
     197    ephL->getCrd(eph->TOC(), xcL, vvL, false);
     198
     199    double dt   = eph->TOC() - ephL->TOC();
     200    double diff = (xc.Rows(1,3) - xcL.Rows(1,3)).norm_Frobenius();
     201
     202    if (diff < MAXDIFF) {
     203      if (dt != 0.0) {
     204        eph->setCheckState(t_eph::ok);
     205        ephL->setCheckState(t_eph::ok);
     206      }
     207    }
     208    else {
     209      if (ephL->checkState() == t_eph::ok) {
     210        eph->setCheckState(t_eph::bad);
     211      }
     212    }
     213  }
     214}
  • trunk/BNC/src/ephemeris.h

    r6519 r6521  
    2020 public:
    2121  enum e_type {unknown, GPS, QZSS, GLONASS, Galileo, SBAS, Compass};
    22   enum e_checkState {unchecked, ok, suspicious, bad};
     22  enum e_checkState {unchecked, ok, bad};
    2323
    2424  t_eph();
Note: See TracChangeset for help on using the changeset viewer.