Changeset 9508 in ntrip for trunk/BNC/src/PPP/pppClient.cpp


Ignore:
Timestamp:
Oct 6, 2021, 10:50:34 PM (3 years ago)
Author:
stuerze
Message:

some changes regarding PPP

File:
1 edited

Legend:

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

    r9490 r9508  
    6969  if (_opt->_refSatRequired) {
    7070    for (unsigned iSys = 0; iSys < _opt->systems().size(); iSys++) {
    71       char system = _opt->systems()[iSys];
    72       _obsPool->initRefSatMapElement(system);
     71      char sys = _opt->systems()[iSys];
     72      _refSatMap[sys] = new t_pppRefSat();
    7373    }
    7474  }
     
    9494  delete _tides;
    9595  clearObs();
     96  QMapIterator<char, t_pppRefSat*> it(_refSatMap);
     97  while (it.hasNext()) {
     98    it.next();
     99    delete it.value();
     100  }
     101  _refSatMap.clear();
    96102}
    97103
     
    216222    while (it != obsVector.end()) {
    217223      t_pppSatObs* satObs = *it;
    218       char system = satObs->prn().system();
    219       t_pppRefSat* refSat = _obsPool->getRefSatMapElement(system);
     224      char sys = satObs->prn().system();
     225      t_pppRefSat* refSat = _refSatMap[sys];
    220226      double stecRef = refSat->stecValue();
    221227      if (stecRef && !satObs->isReference()) {
     
    605611#endif
    606612      if (_obsPool->refSatChanged()) {
    607         if(_filter->datumTransformation() != success) {
    608           LOG << "pppFilter::datumTransformation() != success" << endl;
     613        if(_filter->datumTransformation(_refSatMap) != success) {
     614          LOG << "t_pppFilter::datumTransformation() != success" << endl;
    609615          return finish(failure);
    610616        }
    611617        else {
    612           LOG << "pppFilter::datumTransformation() == success" << endl;
    613           if (!_obsPool->refSatChangeRequired()) {
    614             _obsPool->saveLastEpoRefSats();
    615           }
     618          LOG << "t_pppFilter::datumTransformation() == success" << endl;
    616619        }
    617620      }
     
    643646          return finish(failure);
    644647        }
    645         if (_obsPool->refSatChanged() &&
    646             (_opt->_obsModelType == OPT->DCMcodeBias ||
    647              _opt->_obsModelType == OPT->DCMphaseBias ||
    648              _opt->_pseudoObsIono)
    649            ) {
    650           LOG << "refSatChanged()" << endl;
     648        if (_obsPool->refSatChanged()) {
     649          LOG << "t_pppFilter: refSatChanged()" << endl;
    651650            epochReProcessing = true;
    652651            continue;
     
    669668      // Store last epoch of data
    670669      // ------------------------
    671       _obsPool->putEpoch(_epoTimeRover, _obsRover, _pseudoObsIono);
     670      _obsPool->putEpoch(_epoTimeRover, _obsRover, _pseudoObsIono, _refSatMap);
    672671
    673672      // Process Epoch in Filter
     
    798797    char sys = _opt->systems()[iSys];
    799798    bool refSatDefined = false;
    800     t_pppRefSat* refSat = _obsPool->getRefSatMapElement(sys);
     799    t_pppRefSat* refSat = _refSatMap[sys];
    801800    for (unsigned ii = 0; ii < obsVector.size(); ii++) {
    802801      t_pppSatObs* satObs = obsVector.at(ii);
     
    806805      // reference satellite is unchanged
    807806      // ================================
    808       if      (!_obsPool->refSatChangeRequired(sys) && refSat->prn() == satObs->prn()) {
     807      if (     !_obsPool->refSatChangeRequired(sys) && refSat->prn() == satObs->prn()) {
    809808        refSatDefined = true;
    810809        obsVector[ii]->setAsReference();
     
    878877  setRefSatellites(obsVector); // current epoch
    879878  LOG.setf(ios::fixed);
    880   QMapIterator<char, t_pppRefSat*> it(_obsPool->getRefSatMap());
     879  t_pppObsPool::t_epoch* epoch = _obsPool->lastEpoch();
     880  const QMap<char, t_pppRefSat*>& refSatMapLastEpoch = epoch->refSatMap();
     881 
     882  QMapIterator<char, t_pppRefSat*> it(_refSatMap);
    881883  while (it.hasNext()) {
    882884    it.next();
    883885    char  sys = it.key();
    884886    t_prn prn = it.value()->prn();
     887    t_prn refSatLastEpochPrn = t_prn();
     888    if (epoch) {
     889      refSatLastEpochPrn =  refSatMapLastEpoch[sys]->prn();
     890    }
    885891    if      (prn.number() ==  0) { // no obs for that system available
    886892      continue;
     
    891897    }
    892898    QString str;
    893     if (prn == _obsPool->getRefSatMapElementLastEpoch(sys) ||
    894                _obsPool->getRefSatMapElementLastEpoch(sys) == t_prn() )  {
     899    if (prn == refSatLastEpochPrn || refSatLastEpochPrn == t_prn() )  {
    895900      _obsPool->setRefSatChanged(sys, false);
    896901      str = " SET   ";
     
    906911
    907912void t_pppClient::setHistoricalRefSats() {
    908   QMapIterator<char, t_pppRefSat*> it(_obsPool->getRefSatMap());
     913  QMapIterator<char, t_pppRefSat*> it(_refSatMap);
    909914  while (it.hasNext()) {
    910915    it.next();
     
    914919      _historicalRefSats[sys].append(prn);
    915920    }
    916   }}
     921  }
     922}
    917923
    918924//
Note: See TracChangeset for help on using the changeset viewer.