Changeset 10373 in ntrip for trunk/BNC/src/PPP/pppParlist.cpp


Ignore:
Timestamp:
Mar 1, 2024, 4:12:31 PM (8 months ago)
Author:
stuerze
Message:

changes regarding PPP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/PPP/pppParlist.cpp

    r10356 r10373  
    7474         const t_pppSatObs* obs = obsVector->at(ii);
    7575         if (obs->prn() == _prn) {
     76           double offGps = 0.0;
     77           if (_prn.system() == 'G' && tLC != t_lc::MW) {
     78             offGps = PPP_CLIENT->offGps();
     79           }
    7680           double offGlo = 0.0;
    7781           if (_prn.system() == 'R' && tLC != t_lc::MW) {
     
    8690             offBds = PPP_CLIENT->offBds();
    8791           }
    88            _x0 = floor((obs->obsValue(tLC) - offGlo - offGal - offBds - obs->cmpValue(tLC)) / obs->lambda(tLC) + 0.5);
     92           _x0 = floor((obs->obsValue(tLC) - offGps - offGlo - offGal - offBds - obs->cmpValue(tLC)) / obs->lambda(tLC) + 0.5);
    8993           break;
    9094         }
    9195       }
    9296     }
     97     break;
     98   case offGps:
     99     _epoSpec = true;
     100     _sigma0  = OPT->_aprSigClkOff;
     101     _x0      = PPP_CLIENT->offGps();
    93102     break;
    94103   case offGlo:
     
    171180    if (tLC == t_lc::GIM) {return 0.0;}
    172181    return 1.0;
     182  case offGps:
     183    if (tLC == t_lc::GIM) {return 0.0;}
     184    return (obs->prn().system() == 'G') ? 1.0 : 0.0;
    173185  case offGlo:
    174186    if (tLC == t_lc::GIM) {return 0.0;}
     
    299311    ss << "REC_CLK     ";
    300312    break;
     313  case offGps:
     314    ss << "OFF_GPS     ";
     315    break;
    301316  case offGlo:
    302317    ss << "OFF_GLO     ";
     
    345360////////////////////////////////////////////////////////////////////////////
    346361t_pppParlist::~t_pppParlist() {
    347   _usedSystems.clear();
    348362
    349363  for (unsigned ii = 0; ii < _params.size(); ii++) {
     
    396410  // check which systems have observations
    397411  // -------------------------------------
    398   _usedSystems.clear();
     412  _usedSystems['G'] = _usedSystems['R'] = _usedSystems['E'] = _usedSystems['C'] = 0;
    399413  for (unsigned jj = 0; jj < obsVector.size(); jj++) {
    400414    const t_pppSatObs* satObs = obsVector[jj];
    401415    char sys = satObs->prn().system();
    402     if (!_usedSystems.contains(sys)) {
    403       _usedSystems.append(sys);
    404     }
     416    _usedSystems[sys]++;
    405417  }
    406418
     
    438450                par->type() == t_pppParam::cBiasG2 ||
    439451                par->type() == t_pppParam::pBiasG1 ||
    440                 par->type() == t_pppParam::pBiasG2) && !usedSystems().contains('G')) {
     452                par->type() == t_pppParam::pBiasG2) && !_usedSystems.value('G')) {
    441453#ifdef BNC_DEBUG_PPP
    442454       //LOG << "remove1 " << par->toString() << std::endl;
     
    448460                par->type() == t_pppParam::cBiasR2 ||
    449461                par->type() == t_pppParam::pBiasR1 ||
    450                 par->type() == t_pppParam::pBiasR2) && !usedSystems().contains('R')) {
     462                par->type() == t_pppParam::pBiasR2) && !_usedSystems.value('R')){
    451463#ifdef BNC_DEBUG_PPP
    452464        //LOG << "remove1 " << par->toString() << std::endl;
     
    458470                par->type() == t_pppParam::cBiasE2 ||
    459471                par->type() == t_pppParam::pBiasE1 ||
    460                 par->type() == t_pppParam::pBiasE2) && !usedSystems().contains('E')) {
     472                par->type() == t_pppParam::pBiasE2) && !_usedSystems.value('E')) {
    461473#ifdef BNC_DEBUG_PPP
    462474        //LOG << "remove1 " << par->toString() << std::endl;
     
    468480                par->type() == t_pppParam::cBiasC2 ||
    469481                par->type() == t_pppParam::pBiasC1 ||
    470                 par->type() == t_pppParam::pBiasC2) && !usedSystems().contains('C')) {
     482                par->type() == t_pppParam::pBiasC2) && !_usedSystems.value('C')) {
    471483#ifdef BNC_DEBUG_PPP
    472484        //LOG << "remove1 " << par->toString() << std::endl;
     
    497509  // GLONASS Clock Offset
    498510  // --------------------
    499   if (OPT->useSystem('R')) {
     511  if ( _usedSystems.value('R')  &&
     512      (_usedSystems.value('G') || _usedSystems.value('E') || _usedSystems.value('C'))) {
    500513    required.push_back(new t_pppParam(t_pppParam::offGlo, t_prn(), t_lc::dummy));
     514  }
     515  else {
     516    PPP_CLIENT->resetOffGlo();
    501517  }
    502518
    503519  // Galileo Clock Offset
    504520  // --------------------
    505   if (OPT->useSystem('E')) {
     521  if (_usedSystems.value('E') && _usedSystems.value('G') && _usedSystems.value('G') >= OPT->_minObs) {
    506522    required.push_back(new t_pppParam(t_pppParam::offGal, t_prn(), t_lc::dummy));
     523  }
     524  else {
     525    PPP_CLIENT->resetOffGal();
     526  }
     527
     528  // GPS Clock Offset
     529  // --------------------
     530  if (_usedSystems.value('E') && _usedSystems.value('G') && _usedSystems.value('G') < OPT->_minObs) {
     531    required.push_back(new t_pppParam(t_pppParam::offGps, t_prn(), t_lc::dummy));
     532  }
     533  else {
     534    PPP_CLIENT->resetOffGps();
    507535  }
    508536
    509537  // BDS Clock Offset
    510538  // ----------------
    511   if (OPT->useSystem('C')) {
     539  if (_usedSystems.contains('C')  &&
     540      (_usedSystems.contains('G') || _usedSystems.contains('E'))) {
    512541    required.push_back(new t_pppParam(t_pppParam::offBds, t_prn(), t_lc::dummy));
     542  }
     543  else {
     544    PPP_CLIENT->resetOffBds();
    513545  }
    514546
Note: See TracChangeset for help on using the changeset viewer.