Changeset 9866 in ntrip for trunk


Ignore:
Timestamp:
Oct 31, 2022, 9:49:58 PM (2 years ago)
Author:
stuerze
Message:

minor changes

Location:
trunk/BNC/src
Files:
7 edited

Legend:

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

    r9821 r9866  
    4646  _stecRefSat = 0.0;
    4747  _stecSat    = 0.0;
     48  _signalPriorities = QString::fromStdString(OPT->_signalPriorities);
     49  if (!_signalPriorities.size()) {
     50    if (OPT->_obsModelType == OPT->DCMcodeBias ||
     51        OPT->_obsModelType == OPT->DCMphaseBias) {
     52      // at the moment only one code or phase bias per system (G,R,E,C)/modulation considered
     53      _signalPriorities = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I";
     54    }
     55    else {
     56      _signalPriorities = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX";
     57    }
     58  }
     59
    4860  for (unsigned ii = 0; ii < t_frequency::max; ii++) {
    4961    _obs[ii] = 0;
     
    6880  // Select pseudo-ranges and phase observations
    6981  // -------------------------------------------
    70 
    71   QString preferredAttribList = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX";
    72   if (OPT->_obsModelType == OPT->DCMcodeBias ||
    73       OPT->_obsModelType == OPT->DCMphaseBias) {
    74     // at the moment only one code or phase bias per system (G,R,E,C)/modulation considered
    75     preferredAttribList = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I";
    76   }
    77   QStringList priorList = preferredAttribList.split(" ", QString::SkipEmptyParts);
     82  QStringList priorList = _signalPriorities.split(" ", QString::SkipEmptyParts);
    7883  string preferredAttrib;
    7984  char obsSys = pppSatObs._prn.system();  //cout << "SATELLITE: " << pppSatObs._prn.toString() << endl;
  • trunk/BNC/src/PPP/pppSatObs.h

    r9568 r9866  
    152152  double                       _stecSat;
    153153  double                       _tropo0;
    154 };
     154  QString                      _signalPriorities;
     155        };
    155156
    156157}
  • trunk/BNC/src/bncmain.cpp

    r9854 r9866  
    238238      "\n"
    239239      "PPP Client Panel 3 keys:\n"
    240       "   PPP/lcGPS        {Select observations from GPS code and/or phase data [character string; no|Pi|Li|Pi&Li]}\n"
    241       "   PPP/lcGLONASS    {Select observations from GLONASS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
    242       "   PPP/lcGalileo    {Select observations from Galileo code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
    243       "   PPP/lcBDS        {Select observations from BDS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
    244       "   PPP/modelObs     {select observation model [character string: Ionosphere-free PPP|Uncombined PPP|PPP-RTK|DCM with Code Biases|DCM with Phase Biases]}\n"
     240      "   PPP/lcGPS        {Select observations from GPS code and/or phase data [character string;     Pi&Li|Pi|Li|no]}\n"
     241      "   PPP/lcGLONASS    {Select observations from GLONASS code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n"
     242      "   PPP/lcGalileo    {Select observations from Galileo code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n"
     243      "   PPP/lcBDS        {Select observations from BDS code and/or phase data [character string:     Pi&Li|Pi|Li|no]}\n"
     244      "   PPP/modelObs     {select observation model [character string: Uncombined PPP|Ionosphere-free PPP|DCM with Code Biases|DCM with Phase Biases]}\n"
    245245      "   PPP/pseudoOb     {select pseudo observations [character string: no|Ionosphere]}\n"
    246246      "   PPP/sigmaC1      {Sigma for code observations in meters [floating-point number]}\n"
  • trunk/BNC/src/bncwindow.cpp

    r9854 r9866  
    10311031  pppGroup1->setLayout(pppLayout1);
    10321032
    1033   QVBoxLayout* pppLayout2 = new QVBoxLayout();
    1034   pppLayout2->addWidget(new QLabel("Precise Point Positioning - Processed Stations.<br>"));
    1035   pppLayout2->addWidget(_pppWidgets._staTable, 99);
    1036   QHBoxLayout* pppLayout2sub = new QHBoxLayout();
    1037   pppLayout2sub->addWidget(_pppWidgets._addStaButton);
    1038   pppLayout2sub->addWidget(_pppWidgets._delStaButton);
    1039   pppLayout2sub->addStretch(99);
    1040 
    1041   pppLayout2->addLayout(pppLayout2sub);
     1033  QGridLayout* pppLayout2 = new QGridLayout();
     1034  ir = 0;
     1035  pppLayout2->addWidget(new QLabel("Precise Point Positioning - Options.<br>"), ir, 0, 1, 2, Qt::AlignLeft);
     1036  ++ir;
     1037  pppLayout2->addWidget(new QLabel("GPS LCs"),              ir, 0, Qt::AlignLeft);
     1038  pppLayout2->addWidget(_pppWidgets._lcGPS,                 ir, 1);
     1039  pppLayout2->addItem(new QSpacerItem(8*ww, 0),             ir, 2);
     1040  pppLayout2->addWidget(new QLabel("Sigma C1"),             ir, 3, Qt::AlignLeft);
     1041  pppLayout2->addWidget(_pppWidgets._sigmaC1,               ir, 4); _pppWidgets._sigmaC1->setMaximumWidth(8*ww);
     1042  pppLayout2->addItem(new QSpacerItem(8*ww, 0),             ir, 5);
     1043  pppLayout2->addWidget(new QLabel("Sigma L1"),             ir, 6, Qt::AlignLeft);
     1044  pppLayout2->addWidget(_pppWidgets._sigmaL1,               ir, 7); _pppWidgets._sigmaL1->setMaximumWidth(8*ww);
     1045  ++ir;
     1046  pppLayout2->addWidget(new QLabel("GLONASS LCs"),          ir, 0, Qt::AlignLeft);
     1047  pppLayout2->addWidget(_pppWidgets._lcGLONASS,             ir, 1);
     1048  pppLayout2->addWidget(new QLabel("Max Res C1"),           ir, 3, Qt::AlignLeft);
     1049  pppLayout2->addWidget(_pppWidgets._maxResC1,              ir, 4); _pppWidgets._maxResC1->setMaximumWidth(8*ww);
     1050  pppLayout2->addWidget(new QLabel("Max Res L1"),           ir, 6, Qt::AlignLeft);
     1051  pppLayout2->addWidget(_pppWidgets._maxResL1,              ir, 7); _pppWidgets._maxResL1->setMaximumWidth(8*ww);
     1052  ++ir;
     1053  pppLayout2->addWidget(new QLabel("Galileo LCs"),          ir, 0, Qt::AlignLeft);
     1054  pppLayout2->addWidget(_pppWidgets._lcGalileo,             ir, 1);
     1055  pppLayout2->addWidget(new QLabel("Ele Wgt Code"),         ir, 3, Qt::AlignLeft);
     1056  pppLayout2->addWidget(_pppWidgets._eleWgtCode,            ir, 4);
     1057  pppLayout2->addWidget(new QLabel("Ele Wgt Phase"),        ir, 6, Qt::AlignLeft);
     1058  pppLayout2->addWidget(_pppWidgets._eleWgtPhase,           ir, 7);
     1059  ++ir;
     1060  pppLayout2->addWidget(new QLabel("BDS LCs"),              ir, 0, Qt::AlignLeft);
     1061  pppLayout2->addWidget(_pppWidgets._lcBDS,                 ir, 1);
     1062  pppLayout2->addWidget(new QLabel("Min # of Obs"),         ir, 3, Qt::AlignLeft);
     1063  pppLayout2->addWidget(_pppWidgets._minObs,                ir, 4);
     1064  pppLayout2->addWidget(new QLabel("Min Elevation"),        ir, 6, Qt::AlignLeft);
     1065  pppLayout2->addWidget(_pppWidgets._minEle,                ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww);
     1066  ++ir;
     1067  pppLayout2->addWidget(new QLabel("Model Obs"),            ir, 0, Qt::AlignLeft);
     1068  pppLayout2->addWidget(_pppWidgets._modelObs,              ir, 1);
     1069  pppLayout2->addWidget(new QLabel("Wait for clock corr."), ir, 3, Qt::AlignLeft);
     1070  pppLayout2->addWidget(_pppWidgets._corrWaitTime,          ir, 4);
     1071  pppLayout2->addWidget(new QLabel("Seeding (sec)"),        ir, 6, Qt::AlignLeft);
     1072  pppLayout2->addWidget(_pppWidgets._seedingTime,           ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww);
     1073  ++ir;
     1074  pppLayout2->addWidget(new QLabel("Pseudo Obs"),           ir, 0, Qt::AlignLeft);
     1075  pppLayout2->addWidget(_pppWidgets._pseudoObs,             ir, 1);
     1076  pppLayout2->addItem(new QSpacerItem(8*ww, 0),             ir, 2);
     1077  pppLayout2->addWidget(new QLabel("Sigma GIM"),            ir, 3, Qt::AlignLeft);
     1078  pppLayout2->addWidget(_pppWidgets._sigmaGIM,              ir, 4); _pppWidgets._sigmaGIM->setMaximumWidth(8*ww);
     1079  pppLayout2->addItem(new QSpacerItem(8*ww, 0),             ir, 5);
     1080  pppLayout2->addWidget(new QLabel("Max Res GIM"),            ir, 6, Qt::AlignLeft);
     1081  pppLayout2->addWidget(_pppWidgets._maxResGIM,        ir, 7); _pppWidgets._maxResGIM->setMaximumWidth(8*ww);
     1082  ++ir;
     1083  pppLayout2->addWidget(new QLabel(""),                     ir, 8);
     1084  pppLayout2->setColumnStretch(8, 999);
     1085  ++ir;
     1086  pppLayout2->addWidget(new QLabel(""),                     ir, 1);
     1087  pppLayout2->setRowStretch(ir, 999);
    10421088
    10431089  pppGroup2->setLayout(pppLayout2);
    10441090
    1045   QGridLayout* pppLayout3 = new QGridLayout();
    1046   ir = 0;
    1047   pppLayout3->addWidget(new QLabel("Precise Point Positioning - Options.<br>"), ir, 0, 1, 2, Qt::AlignLeft);
    1048   ++ir;
    1049   pppLayout3->addWidget(new QLabel("GPS LCs"),              ir, 0, Qt::AlignLeft);
    1050   pppLayout3->addWidget(_pppWidgets._lcGPS,                 ir, 1);
    1051   pppLayout3->addItem(new QSpacerItem(8*ww, 0),             ir, 2);
    1052   pppLayout3->addWidget(new QLabel("Sigma C1"),             ir, 3, Qt::AlignLeft);
    1053   pppLayout3->addWidget(_pppWidgets._sigmaC1,               ir, 4); _pppWidgets._sigmaC1->setMaximumWidth(8*ww);
    1054   pppLayout3->addItem(new QSpacerItem(8*ww, 0),             ir, 5);
    1055   pppLayout3->addWidget(new QLabel("Sigma L1"),             ir, 6, Qt::AlignLeft);
    1056   pppLayout3->addWidget(_pppWidgets._sigmaL1,               ir, 7); _pppWidgets._sigmaL1->setMaximumWidth(8*ww);
    1057   ++ir;
    1058   pppLayout3->addWidget(new QLabel("GLONASS LCs"),          ir, 0, Qt::AlignLeft);
    1059   pppLayout3->addWidget(_pppWidgets._lcGLONASS,             ir, 1);
    1060   pppLayout3->addWidget(new QLabel("Max Res C1"),           ir, 3, Qt::AlignLeft);
    1061   pppLayout3->addWidget(_pppWidgets._maxResC1,              ir, 4); _pppWidgets._maxResC1->setMaximumWidth(8*ww);
    1062   pppLayout3->addWidget(new QLabel("Max Res L1"),           ir, 6, Qt::AlignLeft);
    1063   pppLayout3->addWidget(_pppWidgets._maxResL1,              ir, 7); _pppWidgets._maxResL1->setMaximumWidth(8*ww);
    1064   ++ir;
    1065   pppLayout3->addWidget(new QLabel("Galileo LCs"),          ir, 0, Qt::AlignLeft);
    1066   pppLayout3->addWidget(_pppWidgets._lcGalileo,             ir, 1);
    1067   pppLayout3->addWidget(new QLabel("Ele Wgt Code"),         ir, 3, Qt::AlignLeft);
    1068   pppLayout3->addWidget(_pppWidgets._eleWgtCode,            ir, 4);
    1069   pppLayout3->addWidget(new QLabel("Ele Wgt Phase"),        ir, 6, Qt::AlignLeft);
    1070   pppLayout3->addWidget(_pppWidgets._eleWgtPhase,           ir, 7);
    1071   ++ir;
    1072   pppLayout3->addWidget(new QLabel("BDS LCs"),              ir, 0, Qt::AlignLeft);
    1073   pppLayout3->addWidget(_pppWidgets._lcBDS,                 ir, 1);
    1074   pppLayout3->addWidget(new QLabel("Min # of Obs"),         ir, 3, Qt::AlignLeft);
    1075   pppLayout3->addWidget(_pppWidgets._minObs,                ir, 4);
    1076   pppLayout3->addWidget(new QLabel("Min Elevation"),        ir, 6, Qt::AlignLeft);
    1077   pppLayout3->addWidget(_pppWidgets._minEle,                ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww);
    1078   ++ir;
    1079   pppLayout3->addWidget(new QLabel("Model Obs"),            ir, 0, Qt::AlignLeft);
    1080   pppLayout3->addWidget(_pppWidgets._modelObs,              ir, 1);
    1081   pppLayout3->addWidget(new QLabel("Wait for clock corr."), ir, 3, Qt::AlignLeft);
    1082   pppLayout3->addWidget(_pppWidgets._corrWaitTime,          ir, 4);
    1083   pppLayout3->addWidget(new QLabel("Seeding (sec)"),        ir, 6, Qt::AlignLeft);
    1084   pppLayout3->addWidget(_pppWidgets._seedingTime,           ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww);
    1085   ++ir;
    1086   pppLayout3->addWidget(new QLabel("Pseudo Obs"),           ir, 0, Qt::AlignLeft);
    1087   pppLayout3->addWidget(_pppWidgets._pseudoObs,             ir, 1);
    1088   pppLayout3->addItem(new QSpacerItem(8*ww, 0),             ir, 2);
    1089   pppLayout3->addWidget(new QLabel("Sigma GIM"),            ir, 3, Qt::AlignLeft);
    1090   pppLayout3->addWidget(_pppWidgets._sigmaGIM,              ir, 4); _pppWidgets._sigmaGIM->setMaximumWidth(8*ww);
    1091   pppLayout3->addItem(new QSpacerItem(8*ww, 0),             ir, 5);
    1092   pppLayout3->addWidget(new QLabel("Max Res GIM"),            ir, 6, Qt::AlignLeft);
    1093   pppLayout3->addWidget(_pppWidgets._maxResGIM,        ir, 7); _pppWidgets._maxResGIM->setMaximumWidth(8*ww);
    1094   ++ir;
    1095   pppLayout3->addWidget(new QLabel(""),                     ir, 8);
    1096   pppLayout3->setColumnStretch(8, 999);
    1097   ++ir;
    1098   pppLayout3->addWidget(new QLabel(""),                     ir, 1);
    1099   pppLayout3->setRowStretch(ir, 999);
     1091  QVBoxLayout* pppLayout3 = new QVBoxLayout();
     1092  pppLayout3->addWidget(new QLabel("Precise Point Positioning - Processed Stations.<br>"));
     1093  pppLayout3->addWidget(_pppWidgets._staTable, 99);
     1094  QHBoxLayout* pppLayout3sub = new QHBoxLayout();
     1095  pppLayout3sub->addWidget(_pppWidgets._addStaButton);
     1096  pppLayout3sub->addWidget(_pppWidgets._delStaButton);
     1097  pppLayout3sub->addStretch(99);
     1098
     1099  pppLayout3->addLayout(pppLayout3sub);
    11001100
    11011101  pppGroup3->setLayout(pppLayout3);
  • trunk/BNC/src/pppMain.cpp

    r9783 r9866  
    149149    t_pppOptions* opt = new t_pppOptions();
    150150
    151     opt->_realTime     = _realTime;
    152     opt->_roverName    = hlp[0].toStdString();
    153     opt->_aprSigCrd[0] = hlp[1].toDouble()+1e-10;
    154     opt->_aprSigCrd[1] = hlp[2].toDouble()+1e-10;
    155     opt->_aprSigCrd[2] = hlp[3].toDouble()+1e-10;
    156     opt->_noiseCrd[0]  = hlp[4].toDouble()+1e-10;
    157     opt->_noiseCrd[1]  = hlp[5].toDouble()+1e-10;
    158     opt->_noiseCrd[2]  = hlp[6].toDouble()+1e-10;
    159     opt->_aprSigTrp    = hlp[7].toDouble();
    160     opt->_noiseTrp     = hlp[8].toDouble();
    161     opt->_nmeaPort     = hlp[9].toInt();
    162 
     151    opt->_realTime         = _realTime;
     152    opt->_roverName        = hlp[0].toStdString();
     153    opt->_aprSigCrd[0]     = hlp[1].toDouble()+1e-10;
     154    opt->_aprSigCrd[1]     = hlp[2].toDouble()+1e-10;
     155    opt->_aprSigCrd[2]     = hlp[3].toDouble()+1e-10;
     156    opt->_noiseCrd[0]      = hlp[4].toDouble()+1e-10;
     157    opt->_noiseCrd[1]      = hlp[5].toDouble()+1e-10;
     158    opt->_noiseCrd[2]      = hlp[6].toDouble()+1e-10;
     159    opt->_aprSigTrp        = hlp[7].toDouble();
     160    opt->_noiseTrp         = hlp[8].toDouble();
     161    opt->_nmeaPort         = hlp[9].toInt();
     162#ifdef USE_PPP
     163    opt->_signalPriorities = hlp[10].toStdString();
     164#endif
    163165    if (_realTime) {
    164166      opt->_corrMount.assign(settings.value("PPP/corrMount").toString().toStdString());
     
    181183#endif
    182184    opt->_sigmaC1      = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0)  opt->_sigmaC1  = 2.00;
    183     opt->_sigmaL1      = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0)  opt->_sigmaL1  = 0.01;
     185    opt->_sigmaL1      = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0)  opt->_sigmaL1  = 0.02;
    184186    opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 5.00;
    185187    opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble();
     
    412414    opt->_minObs      = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 4) opt->_minObs = 4;
    413415    opt->_minEle      = settings.value("PPP/minEle").toDouble() * M_PI / 180.0;
    414     opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 4.0;
    415     opt->_maxResL1    = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.03;
    416     opt->_maxResGIM   = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 6.0;
     416    opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 2.0;
     417    opt->_maxResL1    = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.02;
     418    opt->_maxResGIM   = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 5.0;
    417419    opt->_eleWgtCode  = (settings.value("PPP/eleWgtCode").toInt() != 0);
    418420    opt->_eleWgtPhase = (settings.value("PPP/eleWgtPhase").toInt() != 0);
  • trunk/BNC/src/pppOptions.h

    r9599 r9866  
    7373  double                  _noisePhaseBias;
    7474  int                     _nmeaPort;
     75  std::string             _signalPriorities;
    7576  double                  _seedingTime;
    7677  std::vector<t_lc::type> _LCsGPS;
  • trunk/BNC/src/pppWidgets.cpp

    r9790 r9866  
    126126  _lcGPS->addItems(QString("P3,P3&L3").split(","));
    127127#else
    128   _lcGPS->addItems(QString("no,Pi,Li,Pi&Li").split(","));
     128  _lcGPS->addItems(QString("Pi&Li,Pi,Li,no").split(","));
    129129#endif
    130130
     
    133133   _lcGLONASS->addItems(QString("no,P3,L3,P3&L3").split(","));
    134134#else
    135   _lcGLONASS->addItems(QString("no,Pi,Li,Pi&Li").split(","));
     135  _lcGLONASS->addItems(QString("Pi&Li,Pi,Li,no").split(","));
    136136#endif
    137137
     
    140140  _lcGalileo->addItems(QString("no,P3,L3,P3&L3").split(","));
    141141#else
    142   _lcGalileo->addItems(QString("no,Pi,Li,Pi&Li").split(","));
     142  _lcGalileo->addItems(QString("Pi&Li,Pi,Li,no").split(","));
    143143#endif
    144144
     
    147147  _lcBDS->addItems(QString("no,P3,L3,P3&L3").split(","));
    148148#else
    149   _lcBDS->addItems(QString("no,Pi,Li,Pi&Li").split(","));
     149  _lcBDS->addItems(QString("Pi&Li,Pi,Li,no").split(","));
    150150#endif
    151151
     
    156156  _pseudoObs->addItems(QString("no").split(","));
    157157#else
    158   //_modelObs->addItems(QString("Ionosphere-free PPP,Uncombined PPP,PPP-RTK,DCM with Code Biases,DCM with Phase Biases").split(","));
    159   _modelObs->addItems(QString("Ionosphere-free PPP,Uncombined PPP,DCM with Code Biases,DCM with Phase Biases").split(","));
     158  _modelObs->addItems(QString("Uncombined PPP,Ionosphere-free PPP,DCM with Code Biases,DCM with Phase Biases").split(","));
    160159  _pseudoObs->addItems(QString("no,Ionosphere").split(","));
    161160#endif
     
    182181  _corrWaitTime->setSuffix(" sec");
    183182
    184   _staTable->setColumnCount(10);
     183  _staTable->setColumnCount(11);
    185184  _staTable->setRowCount(0);
    186185  _staTable->setHorizontalHeaderLabels(
    187      QString("Station,Sigma N,Sigma E,Sigma H,Noise N,Noise E,Noise H,Tropo Sigma,Tropo Noise, NMEA Port").split(","));
     186  QString("Station,Sigma N,Sigma E,Sigma H,Noise N,Noise E,Noise H,Tropo Sigma,Tropo Noise, NMEA Port,Signal Priorities").split(","));
    188187  _staTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
    189188  _staTable->setSelectionBehavior(QAbstractItemView::SelectRows);
     189  _staTable->setColumnWidth(0,120);
     190  _staTable->setColumnWidth(10,220);
    190191#if QT_VERSION >= 0x050000
    191192  _staTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    192193#endif
    193194  _staTable->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
    194 
    195195  connect(_addStaButton, SIGNAL(clicked()), this, SLOT(slotAddStation()));
    196196  connect(_delStaButton, SIGNAL(clicked()), this, SLOT(slotDelStation()));
     
    209209  // WhatsThis, PPP (2)
    210210  // ------------------
    211   _staTable->setWhatsThis(tr("<p>Specify values for Sigma and white Noise of the Stations North, East and Height coordinate components in meters. Specify also a Sigma in meters for a priori model based Tropospheric delays and a Sigma in meters per second for the delay's Noise. You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host.</p><p>Specifying one record per Station is mandatory. BNC will only process data for stations which are listed here. To define a station, specify the 'Mountpoint' when in 'Real-Time Streams' mode or the 4-character station ID when in 'RINEX Files' mode.</p><p>'Sigma' is meant to describe the uncertainty of a single coordinate or tropospheric delay estimated for one epoch. 'Noise' is meant to describe the variation of estimates from epoch to epoch.</p><p><ul><li>A Sigma of 100.0 meters may be an appropriate choice e.g. for the initial N/E/H coordinates. However, this value may be significantly smaller (i.e. 0.01) for stations with well-known a priori coordinates.</li><li>A Noise of 100.0 meters for the estimated N/E/H coordinates may also be appropriate considering the potential movement of a rover position.</li><li>A value of 0.1 meters may be an appropriate Sigma for the a priori model based Tropospheric delay estimation.</li><li>Specify a Noise to describe the expected variation of the tropospheric effect over time. Supposing 1Hz observation data, specifying a value of 3e-6 would mean that the tropospheric effect may vary 3600 * 3e-6 = 0.01 meters per hour.</li></ul></p><p> <i>[key: PPP/staTable]</i></p>"));
     211  _corrWaitTime->setWhatsThis(tr("<p>Zero value means that BNC processes each epoch of data immediately after its arrival using satellite clock corrections available at that time.</p><p> Specifying a non-zero value (i.e. 5 sec) means that the epochs of data are buffered and the processing of each epoch is postponed till the satellite clock corrections not older than '5 sec' (example) become available. <i>[key: PPP/corrWaitTime]</i><p>"));
     212  _seedingTime->setWhatsThis(tr("<p>Enter the length of a startup period in seconds for which you want to fix the PPP solutions to known a priori coordinates as introduced through option 'Coordinates file'. Adjust 'Sigma N/E/H' in the PPP Stations table according to the coordinate's precision. Fixing a priori coordinates is done in BNC through setting 'Sigma N/E/H' temporarily to zero.</p><p>This option allows the PPP solution to rapidly converge. It requires that the antenna remains unmoved on the a priori known position throughout the startup period.</p><p>A value of 60 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning that you don't want BNC to fix PPP solutions during startup to an a priori coordinate. <i>[key: PPP/seedingTime]</i></p>"));
    212213
    213214  // WhatsThis, PPP (3)
    214215  // ------------------
    215   _corrWaitTime->setWhatsThis(tr("<p>Zero value means that BNC processes each epoch of data immediately after its arrival using satellite clock corrections available at that time.</p><p> Specifying a non-zero value (i.e. 5 sec) means that the epochs of data are buffered and the processing of each epoch is postponed till the satellite clock corrections not older than '5 sec' (example) become available. <i>[key: PPP/corrWaitTime]</i><p>"));
    216   _seedingTime->setWhatsThis(tr("<p>Enter the length of a startup period in seconds for which you want to fix the PPP solutions to known a priori coordinates as introduced through option 'Coordinates file'. Adjust 'Sigma N/E/H' in the PPP Stations table according to the coordinate's precision. Fixing a priori coordinates is done in BNC through setting 'Sigma N/E/H' temporarily to zero.</p><p>This option allows the PPP solution to rapidly converge. It requires that the antenna remains unmoved on the a priori known position throughout the startup period.</p><p>A value of 60 is likely to be an appropriate choice.</p><p>Default is an empty option field, meaning that you don't want BNC to fix PPP solutions during startup to an a priori coordinate. <i>[key: PPP/seedingTime]</i></p>"));
     216  _staTable->setWhatsThis(tr("<p>Specify values for Sigma and white Noise of the Stations North, East and Height coordinate components in meters. Specify also a Sigma in meters for a priori model based Tropospheric delays and a Sigma in meters per second for the delay's Noise. You can also specify a 'NMEA Port' to output coordinates in NMEA format through an IP port of your local host. Specify a list of signal priorities for the observations that shall be used for PPP.</p><p>Specifying one record per Station is mandatory. BNC will only process data for stations which are listed here. To define a station, specify the 'Mountpoint' when in 'Real-Time Streams' mode or the 4-character station ID when in 'RINEX Files' mode.</p><p>'Sigma' is meant to describe the uncertainty of a single coordinate or tropospheric delay estimated for one epoch. 'Noise' is meant to describe the variation of estimates from epoch to epoch.</p><p><ul><li>A Sigma of 100.0 meters may be an appropriate choice e.g. for the initial N/E/H coordinates. However, this value may be significantly smaller (i.e. 0.01) for stations with well-known a priori coordinates.</li><li>A Noise of 100.0 meters for the estimated N/E/H coordinates may also be appropriate considering the potential movement of a rover position.</li><li>A value of 0.1 meters may be an appropriate Sigma for the a priori model based Tropospheric delay estimation.</li><li>Specify a Noise to describe the expected variation of the tropospheric effect over time. Supposing 1Hz observation data, specifying a value of 3e-6 would mean that the tropospheric effect may vary 3600 * 3e-6 = 0.01 meters per hour.</li></ul></p><p>'Signal Priorities' can be specified as equal for all systems, as system specific or as system and frequency specific. Please note, for 'DCM with Phase Biases' or 'DCM with Code Biases' at the moment only one code or phase bias per system (G,R,E,C)/modulation can be considered. Hence, for example the following list of 'Signal Priorities' would be valid: <ul><li>'G:12&CW R:12&CP E:1&CX E:5&QX C:26&I'</li></ul><p>For all other PPP models for example the following list of 'Signal Priorities' can be used:</p> <ul><li>'G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX'</li></ul> <p> <i>[key: PPP/staTable]</i></p>"));
    217217
    218218  // WhatsThis, PPP (4)
    219219  // ------------------
    220   _plotCoordinates->setWhatsThis(tr("<p>For one of your PPP Stations BNC can produce a time series plot of coordinate displacements in the 'PPP Plot' tab below. Specify a 'Mountpoint' (when in 'Real-Time Streams' mode) or the 4-character station ID (when in 'RINEX Files' mode) to define the station whose coordinate displacements you would like to see plotted.</p><p>Note that this option makes only sense for a stationary receiver with known a priori marker coordinates as specified through PPP option 'Coordinates file'.</p><p>Default is an empty option field, meaning that BNC shall not produce a time series plot of PPP coordinate displacements. <i>[key: PPP/plotCoordinates]</i></p>"));
     220  _plotCoordinates->setWhatsThis(tr("<p>For one of your PPP Stations BNC can produce a time series plot of coordinate displacements in the 'PPP Plot' tab below. Specify a 'Mountpoint' (when in 'Real-Time Streams' mode) or the 9/4-character station ID (when in 'RINEX Files' mode) to define the station whose coordinate displacements you would like to see plotted.</p><p>Note that this option makes only sense for a stationary receiver with known a priori marker coordinates as specified through PPP option 'Coordinates file'.</p><p>Default is an empty option field, meaning that BNC shall not produce a time series plot of PPP coordinate displacements. <i>[key: PPP/plotCoordinates]</i></p>"));
    221221  _audioResponse->setWhatsThis(tr("<p>Specify an 'Audio response' threshold in meters. A beep is produced by BNC whenever a horizontal PPP coordinate component differs by more than the threshold value from the a priori marker coordinate.</p><p>Default is an empty option field, meaning that you don't want BNC to produce alarm signals. <i>[key: PPP/audioResponse]</i></p>"));
    222222  _mapWinButton->setWhatsThis(tr("<p>You may like to track your rover position using Open Street Map as a background map. A 'Track map' can be produced with BNC in 'Real-Time Streams' or 'RINEX files' PPP mode.</p><p>The 'Open Map' button opens a windows showing a map according to specified options.</p><p>Even in 'RINEX files' post processing mode you should not forget to specify a proxy under the 'Network' tab if that is operated in front of BNC because the program needs to download the map data. Without any entry, BNC will try to use the system proxies.</p>"));
     
    587587  int iRow = _staTable->rowCount();
    588588  _staTable->insertRow(iRow);
     589  QString preferredAttributes = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX";
     590  if (_modelObs->currentText().contains("DCM")) {
     591    preferredAttributes = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I";
     592  }
     593
    589594  for (int iCol = 0; iCol < _staTable->columnCount(); iCol++) {
    590      if (iCol == 0) _staTable->setItem(iRow, iCol, new QTableWidgetItem(""));
    591      if (iCol == 1) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
    592      if (iCol == 2) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
    593      if (iCol == 3) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
    594      if (iCol == 4) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
    595      if (iCol == 5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
    596      if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
    597      if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1"));
    598      if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6"));
    599      if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0"));
     595     if (iCol ==  0) _staTable->setItem(iRow, iCol, new QTableWidgetItem(""));
     596     if (iCol ==  1) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
     597     if (iCol ==  2) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
     598     if (iCol ==  3) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
     599     if (iCol ==  4) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
     600     if (iCol ==  5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
     601     if (iCol ==  6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0"));
     602     if (iCol ==  7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1"));
     603     if (iCol ==  8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6"));
     604     if (iCol ==  9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0"));
     605     if (iCol == 10) _staTable->setItem(iRow, iCol, new QTableWidgetItem(preferredAttributes));
    600606  }
    601607}
Note: See TracChangeset for help on using the changeset viewer.