Changeset 6968 in ntrip for trunk


Ignore:
Timestamp:
Jun 25, 2015, 11:21:21 AM (9 years ago)
Author:
stuerze
Message:

some additions regarding BDS for future usage

Location:
trunk/BNC/src/PPP_SSR_I
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP_SSR_I/pppFilter.cpp

    r6920 r6968  
    5959const double   MAXRES_PHASE_GLONASS  = 2.98 * 0.03;
    6060const double   GLONASS_WEIGHT_FACTOR = 1.0;
     61const double   BDS_WEIGHT_FACTOR     = 2.0;
    6162
    6263#define LOG (_pppClient->log())
     
    132133  }
    133134
     135  // BDS Offset
     136  // ----------
     137  else if (type == BDS_OFFSET) {
     138    if (satData->prn[0] == 'C') {
     139      return 1.0;
     140    }
     141    else {
     142      return 0.0;
     143    }
     144  }
     145
    134146  // Ambiguities
    135147  // -----------
     
    221233  if (OPT->useSystem('E')) {
    222234    _params.push_back(new t_pppParam(t_pppParam::GALILEO_OFFSET, ++nextPar, ""));
    223   }
     235  }/*
     236  if (OPT->useSystem('C')) {
     237    _params.push_back(new t_pppParam(t_pppParam::BDS_OFFSET, ++nextPar, ""));
     238  }*/
    224239
    225240  _QQ.ReSize(_params.size());
     
    242257    }
    243258    else if (pp->type == t_pppParam::GALILEO_OFFSET) {
     259      _QQ(iPar,iPar) = 1000.0 * 1000.0;
     260    }
     261    else if (pp->type == t_pppParam::BDS_OFFSET) {
    244262      _QQ(iPar,iPar) = 1000.0 * 1000.0;
    245263    }
     
    340358    //frqB = t_frequency::E5; -"-
    341359  }
    342 
     360  else if (satData->prn[0] == 'C') {
     361    offset = Bds_offset();
     362    //frqA = t_frequency::C2; as soon as available
     363    //frqB = t_frequency::C7; -"-
     364  }
    343365  double phaseCenter = 0.0;
    344366  if (_antex) {
     
    505527        _QQ(iPar,iPar) += 0.1 * 0.1;
    506528      }
     529
     530      else if (pp->type == t_pppParam::BDS_OFFSET) {
     531        _QQ(iPar,iPar) += 0.1 * 0.1;//TODO
     532      }
    507533    }
    508534  }
     
    510536  // Add New Ambiguities if necessary
    511537  // --------------------------------
    512   if (OPT->ambLCs('G').size() || OPT->ambLCs('R').size() || OPT->ambLCs('E').size()) {
     538  if (OPT->ambLCs('G').size() || OPT->ambLCs('R').size() ||
     539      OPT->ambLCs('E').size() || OPT->ambLCs('C').size()) {
    513540
    514541    // Make a copy of QQ and xx, set parameter indices
     
    635662          << sqrt(_QQ(par->index,par->index));
    636663    }
     664    else if (par->type == t_pppParam::BDS_OFFSET) {
     665      LOG << "\n    offBds  = " << setw(10) << setprecision(3) << par->xx
     666          << " +- " << setw(6) << setprecision(3)
     667          << sqrt(_QQ(par->index,par->index));
     668    }
    637669  }
    638670
     
    856888    if (satData->system() == 'R') {
    857889      sigL3 *= GLONASS_WEIGHT_FACTOR;
     890    }
     891    if  (satData->system() == 'C') {
     892      sigL3 *= BDS_WEIGHT_FACTOR;
    858893    }
    859894    PP(iObs,iObs) = 1.0 / (sigL3 * sigL3) / (ellWgtCoef * ellWgtCoef);
     
    9661001    // -------------------------------------------------------------     
    9671002    bool usePhase = OPT->ambLCs('G').size() || OPT->ambLCs('R').size() ||
    968                     OPT->ambLCs('E').size();
     1003                    OPT->ambLCs('E').size() || OPT->ambLCs('C').size() ;
    9691004
    9701005    for (int iPhase = 0; iPhase <= (usePhase ? 1 : 0); iPhase++) {
  • trunk/BNC/src/PPP_SSR_I/pppFilter.h

    r6875 r6968  
    131131 public:
    132132  enum parType {CRD_X, CRD_Y, CRD_Z, RECCLK, TROPO, AMB_L3,
    133                 GLONASS_OFFSET, GALILEO_OFFSET};
     133                GLONASS_OFFSET, GALILEO_OFFSET, BDS_OFFSET};
    134134  t_pppParam(parType typeIn, int indexIn, const QString& prn);
    135135  ~t_pppParam();
     
    197197    return 0.0;
    198198  }
    199 
     199  double Bds_offset() const {
     200    for (int ii = 0; ii < _params.size(); ++ii) {
     201      t_pppParam* pp = _params[ii];
     202      if (pp->type == t_pppParam::BDS_OFFSET) {
     203        return pp->xx;
     204      }
     205    }
     206    return 0.0;
     207  }
    200208 private:
    201209  void   reset();
Note: See TracChangeset for help on using the changeset viewer.