Changeset 9494 in ntrip for trunk/BNC


Ignore:
Timestamp:
Aug 12, 2021, 3:58:37 PM (3 years ago)
Author:
stuerze
Message:

minor changes regarding PPP

Location:
trunk/BNC/src
Files:
6 edited

Legend:

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

    r9486 r9494  
    384384
    385385    else if (par->type() == t_pppParam::amb) {
    386       if (OPT->_obsModelType == OPT->DCMcodeBias ||  OPT->_obsModelType == OPT->DCMphaseBias) {
     386      if (OPT->_obsModelType == OPT->DCMcodeBias ||
     387          OPT->_obsModelType == OPT->DCMphaseBias) {
    387388        t_prn refPrn = (refSatMap[par->prn().system()])->prn();
    388389        if (par->lastObsTime().valid() &&
     
    399400
    400401    else if (par->type() == t_pppParam::ion) {
    401       if (OPT->_obsModelType == OPT->DCMcodeBias ||  OPT->_obsModelType == OPT->DCMphaseBias) {
     402      if (OPT->_obsModelType == OPT->DCMcodeBias ||
     403          OPT->_obsModelType == OPT->DCMphaseBias) {
    402404        if (par->lastObsTime().valid() && (epoTime - par->lastObsTime() > 1.0)) {
    403405            remove = true;
     
    493495  // --------------------
    494496  if (OPT->_obsModelType == OPT->DCMcodeBias) {
     497    std::vector<t_lc::type> lc;
    495498    if (_usedSystems.contains('G')) {
    496       required.push_back(new t_pppParam(t_pppParam::cBiasG1, t_prn(), t_lc::c1));
    497       required.push_back(new t_pppParam(t_pppParam::cBiasG2, t_prn(), t_lc::c2));
     499      lc = OPT->LCs('G');
     500      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
     501        required.push_back(new t_pppParam(t_pppParam::cBiasG1, t_prn(), t_lc::c1));
     502      }
     503      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
     504        required.push_back(new t_pppParam(t_pppParam::cBiasG2, t_prn(), t_lc::c2));
     505      }
    498506    }
    499507    if (_usedSystems.contains('R')) {
    500       required.push_back(new t_pppParam(t_pppParam::cBiasR1, t_prn(), t_lc::c1));
    501       required.push_back(new t_pppParam(t_pppParam::cBiasR2, t_prn(), t_lc::c2));
     508      lc = OPT->LCs('R');
     509      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
     510        required.push_back(new t_pppParam(t_pppParam::cBiasR1, t_prn(), t_lc::c1));
     511      }
     512      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
     513        required.push_back(new t_pppParam(t_pppParam::cBiasR2, t_prn(), t_lc::c2));
     514      }
    502515    }
    503516    if (_usedSystems.contains('E')) {
    504       required.push_back(new t_pppParam(t_pppParam::cBiasE1, t_prn(), t_lc::c1));
    505       required.push_back(new t_pppParam(t_pppParam::cBiasE2, t_prn(), t_lc::c2));
     517      lc = OPT->LCs('E');
     518      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
     519        required.push_back(new t_pppParam(t_pppParam::cBiasE1, t_prn(), t_lc::c1));
     520      }
     521      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
     522        required.push_back(new t_pppParam(t_pppParam::cBiasE2, t_prn(), t_lc::c2));
     523      }
    506524    }
    507525    if (_usedSystems.contains('C')) {
    508       required.push_back(new t_pppParam(t_pppParam::cBiasC1, t_prn(), t_lc::c1));
    509       required.push_back(new t_pppParam(t_pppParam::cBiasC2, t_prn(), t_lc::c2));
     526      lc = OPT->LCs('C');
     527      if (std::find(lc.begin(), lc.end(), t_lc::c1) != lc.end()) {
     528        required.push_back(new t_pppParam(t_pppParam::cBiasC1, t_prn(), t_lc::c1));
     529      }
     530      if (std::find(lc.begin(), lc.end(), t_lc::c2) != lc.end()) {
     531        required.push_back(new t_pppParam(t_pppParam::cBiasC2, t_prn(), t_lc::c2));
     532      }
    510533    }
    511534  }
     
    515538  if ((OPT->_obsModelType == OPT->DCMphaseBias) ||
    516539      (OPT->_obsModelType == OPT->PPPRTK)     ) {
     540    std::vector<t_lc::type> lc;
    517541    if (_usedSystems.contains('G')) {
    518       required.push_back(new t_pppParam(t_pppParam::pBiasG1, t_prn(), t_lc::l1));
    519       required.push_back(new t_pppParam(t_pppParam::pBiasG2, t_prn(), t_lc::l2));
     542      lc = OPT->LCs('G');
     543      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
     544        required.push_back(new t_pppParam(t_pppParam::pBiasG1, t_prn(), t_lc::l1));
     545      }
     546      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
     547        required.push_back(new t_pppParam(t_pppParam::pBiasG2, t_prn(), t_lc::l2));
     548      }
    520549    }
    521550    if (_usedSystems.contains('R')) {
    522       required.push_back(new t_pppParam(t_pppParam::pBiasR1, t_prn(), t_lc::l1));
    523       required.push_back(new t_pppParam(t_pppParam::pBiasR2, t_prn(), t_lc::l2));
     551      lc = OPT->LCs('R');
     552      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
     553        required.push_back(new t_pppParam(t_pppParam::pBiasR1, t_prn(), t_lc::l1));
     554      }
     555      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
     556        required.push_back(new t_pppParam(t_pppParam::pBiasR2, t_prn(), t_lc::l2));
     557      }
     558
    524559    }
    525560    if (_usedSystems.contains('E')) {
    526       required.push_back(new t_pppParam(t_pppParam::pBiasE1, t_prn(), t_lc::l1));
    527       required.push_back(new t_pppParam(t_pppParam::pBiasE2, t_prn(), t_lc::l2));
     561      lc = OPT->LCs('E');
     562      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
     563        required.push_back(new t_pppParam(t_pppParam::pBiasE1, t_prn(), t_lc::l1));
     564      }
     565      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
     566        required.push_back(new t_pppParam(t_pppParam::pBiasE2, t_prn(), t_lc::l2));
     567      }
    528568    }
    529569    if (_usedSystems.contains('C')) {
    530       required.push_back(new t_pppParam(t_pppParam::pBiasC1, t_prn(), t_lc::l1));
    531       required.push_back(new t_pppParam(t_pppParam::pBiasC2, t_prn(), t_lc::l2));
     570      lc = OPT->LCs('C');
     571      if (std::find(lc.begin(), lc.end(), t_lc::l1) != lc.end()) {
     572        required.push_back(new t_pppParam(t_pppParam::pBiasC1, t_prn(), t_lc::l1));
     573      }
     574      if (std::find(lc.begin(), lc.end(), t_lc::l2) != lc.end()) {
     575        required.push_back(new t_pppParam(t_pppParam::pBiasC2, t_prn(), t_lc::l2));
     576      }
    532577    }
    533578  }
  • trunk/BNC/src/PPP/pppSatObs.cpp

    r9487 r9494  
    366366
    367367  retVal = sqrt(retVal);
     368
     369  if (_prn.system() == 'R' && (t_lc::includesCode(tLC) ||  t_lc::includesPhase(tLC))) {
     370    retVal *= 2.0;
     371  }
     372
     373  if (_prn.system() == 'C' && (t_lc::includesCode(tLC) ||  t_lc::includesPhase(tLC))) {
     374    retVal *= 2.0;
     375  }
    368376
    369377  return retVal;
  • trunk/BNC/src/bncmain.cpp

    r9445 r9494  
    226226      "\n"
    227227      "PPP Client Panel 3 keys:\n"
    228       "   PPP/lcGPS        {Select observations from GPS code or phase data [character string; no|Pi|Li|Pi&Li]}\n"
    229       "   PPP/lcGLONASS    {Select observations from GLONASS code or phase data [character string: no|Pi|Li|Pi&Li]}\n"
    230       "   PPP/lcGalileo    {Select observations from Galileo code or phase data [character string: no|Pi|Li|Pi&Li]}\n"
    231       "   PPP/lcBDS        {Select observations from BDS code or phase data [character string: no|Pi|Li|Pi&Li]}\n"
    232       "   PPP/modelObs     {select observation model [character string: Ionosphere-free PPP|Undifferenced PPP-RTK|DCM with Code Biases|DCM with Phase Biases]}\n"
     228      "   PPP/lcGPS        {Select observations from GPS code and/or phase data [character string; no|Pi|Li|Pi&Li]}\n"
     229      "   PPP/lcGLONASS    {Select observations from GLONASS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
     230      "   PPP/lcGalileo    {Select observations from Galileo code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
     231      "   PPP/lcBDS        {Select observations from BDS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
     232      "   PPP/modelObs     {select observation model [character string: Ionosphere-free PPP|Uncombined PPP|PPP-RTK|DCM with Code Biases|DCM with Phase Biases]}\n"
     233      "   PPP/pseudoOb     {select pseudo observations [character string: no|Ionosphere&Troposphere]}\n"
    233234      "   PPP/sigmaC1      {Sigma for code observations in meters [floating-point number]}\n"
    234235      "   PPP/sigmaL1      {Sigma for phase observations in meters [floating-point number]}\n"
  • trunk/BNC/src/bncwindow.cpp

    r9445 r9494  
    14471447  // WhatsThis, PPP (3)
    14481448  // ------------------
    1449   _pppWidgets._lcGPS->setWhatsThis(tr("<p>Specify which kind of GPS observations you want to use and on which kind of ionosphere-free linear combination of GPS observations you want to base ambiguity resolutions.</p><p><ul><li>Specifying 'P3' means that you request BNC to use code data and so-called P3 ionosphere-free linear combination of code observations.</li><li>'P3&L3' means that you request BNC to use both, code and phase data and so-called P3 and L3 ionosphere-free linear combination of code and phase observations.</li></ul></p><p>Note that most geodetic receivers support the observation of GPS code and phase data. Hence specifying 'P3&L3' would be a good choice when processing data from such a receiver.</p><p>Specifying 'no' means that you don't want BNC to use GPS data. <i>[key: PPP/lcGPS]</i></p>"));
    1450   _pppWidgets._lcGLONASS->setWhatsThis(tr("<p>Specify which kind of GLONASS observations you want to use and on which kind of ionosphere-free linear combination of GLONASS observations you want to base ambiguity resolutions.</p><p><ul><li>Specifying 'P3' means that you request BNC to use code data and so-called P3 ionosphere-free linear combination of code observations.</li><li>'L3' means that you request BNC to use phase data and so-called L3 ionosphere-free linear combination of phase observations.</li> <li>'P3&L3' means that you request BNC to use both, code and phase data and so-called P3 and L3 ionosphere-free linear combination of code and phase observations.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use GLONASS data. <i>[key: PPP/lcGLONASS]</i></p>"));
    1451   _pppWidgets._lcGalileo->setWhatsThis(tr("<p>Specify which kind of Galileo observations you want to use and on which kind of of ionosphere-free linear combination of Galileo observations you want to base ambiguity resolutions.</p><p><ul><li>Specifying 'P3' means that you request BNC to use code data and so-called P3 ionosphere-free linear combination of code observations.</li><li>'L3' means that you request BNC to use phase data and so-called L3 ionosphere-free linear combination of phase observations.</li> <li>'P3&L3' means that you request BNC to use both, code and phase data and so-called P3 and L3 ionosphere-free linear combination of code and phase observations.</li></ul></p><p>Specifying on of these options makes only sense if Galileo data are part of the processed observation stream.</p><p>Specifying 'no' means that you don't want BNC to use Galileo data. <i>[key: PPP/lcGalileo]</i></p>"));
    1452   _pppWidgets._lcBDS->setWhatsThis(tr("<p>Specify which kind of model for observations you want to use and on which kind of ionosphere-free linear combination of BDS observations you want to base ambiguity resolutions.</p><p><ul><li>Specifying 'P3' means that you request BNC to use code data and so-called P3 ionosphere-free linear combination of code observations.</li><li>'L3' means that you request BNC to use phase data and so-called L3 ionosphere-free linear combination of phase observations.</li> <li>'P3&L3' means that you request BNC to use both, code and phase data and so-called P3 and L3 ionosphere-free linear combination of code and phase observations.</li></ul></p><p>Specifying on of these options makes only sense if BDS data are part of the processed observation stream.</p><p>Specifying 'no' means that you don't want to use BDS data. <i>[key: PPP/lcBDS]</i></p>"));
     1449  _pppWidgets._lcGPS->setWhatsThis(tr("<p>Specify which kind of GPS observations you want to use</p><p><ul><li>Specifying 'Pi' means that you request BNC to use code data of two frequencies.</li><li>Specifying 'Li' means that you request BNC to use phase data of two frequencies.</li> <li>Specifying 'Pi&Li' means that you request BNC to use both, code and phase data of two frequencies.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use GPS data. <i>[key: PPP/lcGPS]</i></p>"));
     1450  _pppWidgets._lcGLONASS->setWhatsThis(tr("<p>Specify which kind of GLONASS observations you want to use</p><p><ul><li>Specifying 'Pi' means that you request BNC to use code data of two frequencies.</li><li>Specifying'Li' means that you request BNC to use phase data of two frequencies.</li> <li>Specifying'Pi&Li' means that you request BNC to use both, code and phase data of two frequencies.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use GLONASS data. <i>[key: PPP/lcGLONASS]</i></p>"));
     1451  _pppWidgets._lcGalileo->setWhatsThis(tr("<p>Specify which kind of Galileo observations you want to use</p><p><ul><li>Specifying 'Pi' means that you request BNC to use code data of two frequencies.</li><li>Specifying'Li' means that you request BNC to use phase data of two frequencies.</li> <li>Specifying'Pi&Li' means that you request BNC to use both, code and phase data of two frequencies.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use Galileo data. <i>[key: PPP/lcGalileo]</i></p>"));
     1452  _pppWidgets._lcBDS->setWhatsThis(tr("<p>Specify which kind of BDS observations you want to use</p><p><ul><li>Specifying 'Pi' means that you request BNC to use code data from two frequencies.</li><li>Specifying'Li' means that you request BNC to use phase data of two frequencies.</li> <li>Specifying'Pi&Li' means that you request BNC to use both, code and phase data of two frequencies.</li></ul></p><p>Specifying 'no' means that you don't want BNC to use BDS data. <i>[key: PPP/lcBDS]</i></p>"));
    14531453  _pppWidgets._modelObs->setWhatsThis(tr("<p>Specify which kind of PPP model you want to use. <i>[key: PPP/modelObs]</i></p>"));
    1454   _pppWidgets._sigmaC1->setWhatsThis(tr("<p>Enter a Sigma for GNSS C1 code observations in meters.</p><p>The higher the sigma you enter, the less the contribution of C1 code observations to a PPP solution from combined code and phase data. 2.0 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma C1 = 2.0' <i>[key: PPP/sigmaC1]</i></p>"));
    1455   _pppWidgets._sigmaL1->setWhatsThis(tr("<p>Enter a Sigma for GNSS L1 phase observations in meters.</p><p>The higher the sigma you enter, the less the contribution of L1 phase observations to a PPP solutions from combined code and phase data. 0.01 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma L1 = 0.01' <i>[key: PPP/sigmaL1]</i></p>"));
    1456   _pppWidgets._sigmaGIM->setWhatsThis(tr("<p>Enter a Sigma for GIM pseudo observations in meters.</p><p>The higher the sigma you enter, the less the contribution of GIM pseudo observations to a PPP solution. 4.0 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma GIM = 4.0' <i>[key: PPP/sigmaGIM]</i></p>"));
     1454  _pppWidgets._pseudoObs->setWhatsThis(tr("<p>Specify which kind of pseudo observations you want to use <i>[key: PPP/pseudoObs]</i></p>"));
     1455  _pppWidgets._sigmaC1->setWhatsThis(tr("<p>Enter a Sigma for GPS C1 code observations in meters.</p><p>The higher the sigma you enter, the less the contribution of C1 code observations to a PPP solution from combined code and phase data. 1.0 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma C1 = 1.0' <i>[key: PPP/sigmaC1]</i></p>"));
     1456  _pppWidgets._sigmaL1->setWhatsThis(tr("<p>Enter a Sigma for GPS L1 phase observations in meters.</p><p>The higher the sigma you enter, the less the contribution of L1 phase observations to a PPP solutions from combined code and phase data. 0.01 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma L1 = 0.01' <i>[key: PPP/sigmaL1]</i></p>"));
     1457  _pppWidgets._sigmaGIM->setWhatsThis(tr("<p>Enter a Sigma for GIM pseudo observations in meters.</p><p>The higher the sigma you enter, the less the contribution of GIM pseudo observations to a PPP solution. 3.0 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma GIM = 3.0' <i>[key: PPP/sigmaGIM]</i></p>"));
    14571458  _pppWidgets._sigmaTz0->setWhatsThis(tr("<p>Enter a Sigma for a Tropospheric pseudo observation in zenith direction in meters.</p><p>The higher the sigma you enter, the less the contribution of Tz0 pseudo observations to a PPP solution. 0.10 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning<br>'Sigma Tzo = 0.10' <i>[key: PPP/sigmaTz0]</i></p>"));
    1458   _pppWidgets._maxResC1->setWhatsThis(tr("<p>Specify a maximum for residuals from C1 code observations in a PPP solution. '3.0' meters may be an appropriate choice for that.</p><p>If the maximum is exceeded, contributions from the corresponding observation will be ignored in the PPP solution.</p><p>Default is an empty option field, meaning<br>'Max Rex C1 = 3.0' <i>[key: PPP/maxResC1]</i></p>"));
    1459   _pppWidgets._maxResL1->setWhatsThis(tr("<p>Specify a maximum for residuals from L1 code observations in a PPP solution. '0.03' meters may be an appropriate choice for that.</p><p>If the maximum is exceeded, contributions from the corresponding observation will be ignored in the PPP solution.</p><p>Default is an empty option field, meaning<br>'Max Rex L1 = 0.03' <i>[key: PPP/maxResL1]</i></p>"));
     1459  _pppWidgets._maxResC1->setWhatsThis(tr("<p>Specify a maximum for residuals from GPS C1 code observations in a PPP solution. '3.0' meters may be an appropriate choice for that.</p><p>If the maximum is exceeded, contributions from the corresponding observation will be ignored in the PPP solution.</p><p>Default is an empty option field, meaning<br>'Max Rex C1 = 3.0' <i>[key: PPP/maxResC1]</i></p>"));
     1460  _pppWidgets._maxResL1->setWhatsThis(tr("<p>Specify a maximum for residuals from GPS L1 code observations in a PPP solution. '0.03' meters may be an appropriate choice for that.</p><p>If the maximum is exceeded, contributions from the corresponding observation will be ignored in the PPP solution.</p><p>Default is an empty option field, meaning<br>'Max Rex L1 = 0.03' <i>[key: PPP/maxResL1]</i></p>"));
    14601461  _pppWidgets._eleWgtCode->setWhatsThis(tr("<p>Tic 'Ele Wgt Code' to use satellite Elevation depending Weights for Code observations in the PPP solution. <i>[key: PPP/eleWgtCode]</i></p>"));
    14611462  _pppWidgets._eleWgtPhase->setWhatsThis(tr("<p>Tic 'Ele Wgt Phase' to use satellite Elevation depending Weights for Phase observations in the PPP solution. <i>[key: PPP/eleWgtPhase]</i></p>"));
  • trunk/BNC/src/pppMain.cpp

    r9490 r9494  
    181181    opt->_sigmaC1      = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0)  opt->_sigmaC1  = 1.00;
    182182    opt->_sigmaL1      = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0)  opt->_sigmaL1  = 0.01;
    183     opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 4.00;
     183    opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 3.00;
    184184    opt->_sigmaTz0     = settings.value("PPP/sigmaTz0").toDouble();if (opt->_sigmaTz0 <= 0.0) opt->_sigmaTz0 = 0.10;
    185185    opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble();
     
    225225      opt->_obsModelType = t_pppOptions::DCMcodeBias;
    226226      opt->_refSatRequired = true;
    227       opt->_noiseIon       = 1e4;
    228227      opt->_noiseCodeBias  = 1e4;
    229228    }
     
    253252      }
    254253    }
     254    if (settings.value("PPP/lcGPS").toString() == "Pi") {
     255      if (opt->_obsModelType == t_pppOptions::IF) {
     256        opt->_LCsGPS.push_back(t_lc::cIF);
     257      }
     258      else {
     259        opt->_LCsGPS.push_back(t_lc::c1);
     260        opt->_LCsGPS.push_back(t_lc::c2);
     261        if (opt->_pseudoObsIono) {
     262          opt->_LCsGPS.push_back(t_lc::GIM);
     263        }
     264        if (opt->_pseudoObsTropo) {
     265          opt->_LCsGPS.push_back(t_lc::Tz0);
     266        }
     267      }
     268    }
     269    if (settings.value("PPP/lcGPS").toString() == "Li") {
     270      if (opt->_obsModelType == t_pppOptions::IF) {
     271        opt->_LCsGPS.push_back(t_lc::lIF);
     272      }
     273      else {
     274        opt->_LCsGPS.push_back(t_lc::l1);
     275        opt->_LCsGPS.push_back(t_lc::l2);
     276        if (opt->_pseudoObsIono) {
     277          opt->_LCsGPS.push_back(t_lc::GIM);
     278        }
     279        if (opt->_pseudoObsTropo) {
     280          opt->_LCsGPS.push_back(t_lc::Tz0);
     281        }
     282      }
     283    }
    255284    // GLONASS
    256285    if (settings.value("PPP/lcGLONASS").toString() == "Pi&Li") {
     
    272301      }
    273302    }
     303    if (settings.value("PPP/lcGLONASS").toString() == "Pi") {
     304      if (opt->_obsModelType == t_pppOptions::IF) {
     305        opt->_LCsGLONASS.push_back(t_lc::cIF);
     306      }
     307      else {
     308        opt->_LCsGLONASS.push_back(t_lc::c1);
     309        opt->_LCsGLONASS.push_back(t_lc::c2);
     310        if (opt->_pseudoObsIono) {
     311          opt->_LCsGLONASS.push_back(t_lc::GIM);
     312        }
     313        if (opt->_pseudoObsTropo) {
     314          opt->_LCsGLONASS.push_back(t_lc::Tz0);
     315        }
     316      }
     317    }
     318    if (settings.value("PPP/lcGLONASS").toString() == "Li") {
     319      if (opt->_obsModelType == t_pppOptions::IF) {
     320        opt->_LCsGLONASS.push_back(t_lc::lIF);
     321      }
     322      else {
     323        opt->_LCsGLONASS.push_back(t_lc::l1);
     324        opt->_LCsGLONASS.push_back(t_lc::l2);
     325        if (opt->_pseudoObsIono) {
     326          opt->_LCsGLONASS.push_back(t_lc::GIM);
     327        }
     328        if (opt->_pseudoObsTropo) {
     329          opt->_LCsGLONASS.push_back(t_lc::Tz0);
     330        }
     331      }
     332    }
    274333    // Galileo
    275334    if (settings.value("PPP/lcGalileo").toString() == "Pi&Li") {
     
    291350      }
    292351    }
     352    if (settings.value("PPP/lcGalileo").toString() == "Pi") {
     353      if (opt->_obsModelType == t_pppOptions::IF) {
     354        opt->_LCsGalileo.push_back(t_lc::cIF);
     355      }
     356      else {
     357        opt->_LCsGalileo.push_back(t_lc::c1);
     358        opt->_LCsGalileo.push_back(t_lc::c2);
     359        if (opt->_pseudoObsIono) {
     360          opt->_LCsGalileo.push_back(t_lc::GIM);
     361        }
     362        if (opt->_pseudoObsTropo) {
     363          opt->_LCsGalileo.push_back(t_lc::Tz0);
     364        }
     365      }
     366    }
     367    if (settings.value("PPP/lcGalileo").toString() == "Li") {
     368      if (opt->_obsModelType == t_pppOptions::IF) {
     369        opt->_LCsGalileo.push_back(t_lc::lIF);
     370      }
     371      else {
     372        opt->_LCsGalileo.push_back(t_lc::l1);
     373        opt->_LCsGalileo.push_back(t_lc::l2);
     374        if (opt->_pseudoObsIono) {
     375          opt->_LCsGalileo.push_back(t_lc::GIM);
     376        }
     377        if (opt->_pseudoObsTropo) {
     378          opt->_LCsGalileo.push_back(t_lc::Tz0);
     379        }
     380      }
     381    }
    293382    // BDS
    294383    if (settings.value("PPP/lcBDS").toString() == "Pi&Li") {
     
    310399      }
    311400    }
    312 
     401    if (settings.value("PPP/lcBDS").toString() == "Pi") {
     402      if (opt->_obsModelType == t_pppOptions::IF) {
     403        opt->_LCsBDS.push_back(t_lc::cIF);
     404      }
     405      else {
     406        opt->_LCsBDS.push_back(t_lc::c1);
     407        opt->_LCsBDS.push_back(t_lc::c2);
     408        if (opt->_pseudoObsIono) {
     409          opt->_LCsBDS.push_back(t_lc::GIM);
     410        }
     411        if (opt->_pseudoObsTropo) {
     412          opt->_LCsBDS.push_back(t_lc::Tz0);
     413        }
     414      }
     415    }
     416    if (settings.value("PPP/lcBDS").toString() == "Li") {
     417      if (opt->_obsModelType == t_pppOptions::IF) {
     418        opt->_LCsBDS.push_back(t_lc::lIF);
     419      }
     420      else {
     421        opt->_LCsBDS.push_back(t_lc::l1);
     422        opt->_LCsBDS.push_back(t_lc::l2);
     423        if (opt->_pseudoObsIono) {
     424          opt->_LCsBDS.push_back(t_lc::GIM);
     425        }
     426        if (opt->_pseudoObsTropo) {
     427          opt->_LCsBDS.push_back(t_lc::Tz0);
     428        }
     429      }
     430    }
    313431    // Information from the coordinate file
    314432    // ------------------------------------
     
    335453    opt->_minObs      = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 5) opt->_minObs = 5;
    336454    opt->_minEle      = settings.value("PPP/minEle").toDouble() * M_PI / 180.0;
    337     opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 3.00;
     455    opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 3.0;
    338456    opt->_maxResL1    = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.03;
    339457    opt->_eleWgtCode  = (settings.value("PPP/eleWgtCode").toInt() != 0);
  • trunk/BNC/src/pppWidgets.cpp

    r9485 r9494  
    124124  _lcGPS->addItems(QString("P3,P3&L3").split(","));
    125125#else
    126   _lcGPS->addItems(QString("no,Pi&Li").split(","));
     126  _lcGPS->addItems(QString("no,Pi,Li,Pi&Li").split(","));
    127127#endif
    128128
     
    131131   _lcGLONASS->addItems(QString("no,P3,L3,P3&L3").split(","));
    132132#else
    133   _lcGLONASS->addItems(QString("no,Pi&Li").split(","));
     133  _lcGLONASS->addItems(QString("no,Pi,Li,Pi&Li").split(","));
    134134#endif
    135135
     
    138138  _lcGalileo->addItems(QString("no,P3,L3,P3&L3").split(","));
    139139#else
    140   _lcGalileo->addItems(QString("no,Pi&Li").split(","));
     140  _lcGalileo->addItems(QString("no,Pi,Li,Pi&Li").split(","));
    141141#endif
    142142
     
    145145  _lcBDS->addItems(QString("no,P3,L3,P3&L3").split(","));
    146146#else
    147   _lcBDS->addItems(QString("no,Pi&Li").split(","));
     147  _lcBDS->addItems(QString("no,Pi,Li,Pi&Li").split(","));
    148148#endif
    149149
Note: See TracChangeset for help on using the changeset viewer.