Index: /trunk/BNC/src/PPP/pppSatObs.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppSatObs.cpp (revision 9865)
+++ /trunk/BNC/src/PPP/pppSatObs.cpp (revision 9866)
@@ -46,4 +46,16 @@
_stecRefSat = 0.0;
_stecSat = 0.0;
+ _signalPriorities = QString::fromStdString(OPT->_signalPriorities);
+ if (!_signalPriorities.size()) {
+ if (OPT->_obsModelType == OPT->DCMcodeBias ||
+ OPT->_obsModelType == OPT->DCMphaseBias) {
+ // at the moment only one code or phase bias per system (G,R,E,C)/modulation considered
+ _signalPriorities = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I";
+ }
+ else {
+ _signalPriorities = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX";
+ }
+ }
+
for (unsigned ii = 0; ii < t_frequency::max; ii++) {
_obs[ii] = 0;
@@ -68,12 +80,5 @@
// Select pseudo-ranges and phase observations
// -------------------------------------------
-
- QString preferredAttribList = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX";
- if (OPT->_obsModelType == OPT->DCMcodeBias ||
- OPT->_obsModelType == OPT->DCMphaseBias) {
- // at the moment only one code or phase bias per system (G,R,E,C)/modulation considered
- preferredAttribList = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I";
- }
- QStringList priorList = preferredAttribList.split(" ", QString::SkipEmptyParts);
+ QStringList priorList = _signalPriorities.split(" ", QString::SkipEmptyParts);
string preferredAttrib;
char obsSys = pppSatObs._prn.system(); //cout << "SATELLITE: " << pppSatObs._prn.toString() << endl;
Index: /trunk/BNC/src/PPP/pppSatObs.h
===================================================================
--- /trunk/BNC/src/PPP/pppSatObs.h (revision 9865)
+++ /trunk/BNC/src/PPP/pppSatObs.h (revision 9866)
@@ -152,5 +152,6 @@
double _stecSat;
double _tropo0;
-};
+ QString _signalPriorities;
+ };
}
Index: /trunk/BNC/src/bncmain.cpp
===================================================================
--- /trunk/BNC/src/bncmain.cpp (revision 9865)
+++ /trunk/BNC/src/bncmain.cpp (revision 9866)
@@ -238,9 +238,9 @@
"\n"
"PPP Client Panel 3 keys:\n"
- " PPP/lcGPS {Select observations from GPS code and/or phase data [character string; no|Pi|Li|Pi&Li]}\n"
- " PPP/lcGLONASS {Select observations from GLONASS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
- " PPP/lcGalileo {Select observations from Galileo code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
- " PPP/lcBDS {Select observations from BDS code and/or phase data [character string: no|Pi|Li|Pi&Li]}\n"
- " PPP/modelObs {select observation model [character string: Ionosphere-free PPP|Uncombined PPP|PPP-RTK|DCM with Code Biases|DCM with Phase Biases]}\n"
+ " PPP/lcGPS {Select observations from GPS code and/or phase data [character string; Pi&Li|Pi|Li|no]}\n"
+ " PPP/lcGLONASS {Select observations from GLONASS code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n"
+ " PPP/lcGalileo {Select observations from Galileo code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n"
+ " PPP/lcBDS {Select observations from BDS code and/or phase data [character string: Pi&Li|Pi|Li|no]}\n"
+ " PPP/modelObs {select observation model [character string: Uncombined PPP|Ionosphere-free PPP|DCM with Code Biases|DCM with Phase Biases]}\n"
" PPP/pseudoOb {select pseudo observations [character string: no|Ionosphere]}\n"
" PPP/sigmaC1 {Sigma for code observations in meters [floating-point number]}\n"
Index: /trunk/BNC/src/bncwindow.cpp
===================================================================
--- /trunk/BNC/src/bncwindow.cpp (revision 9865)
+++ /trunk/BNC/src/bncwindow.cpp (revision 9866)
@@ -1031,71 +1031,71 @@
pppGroup1->setLayout(pppLayout1);
- QVBoxLayout* pppLayout2 = new QVBoxLayout();
- pppLayout2->addWidget(new QLabel("Precise Point Positioning - Processed Stations. 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. 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. '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.
"));
- pppLayout2->addWidget(_pppWidgets._staTable, 99);
- QHBoxLayout* pppLayout2sub = new QHBoxLayout();
- pppLayout2sub->addWidget(_pppWidgets._addStaButton);
- pppLayout2sub->addWidget(_pppWidgets._delStaButton);
- pppLayout2sub->addStretch(99);
-
- pppLayout2->addLayout(pppLayout2sub);
+ QGridLayout* pppLayout2 = new QGridLayout();
+ ir = 0;
+ pppLayout2->addWidget(new QLabel("Precise Point Positioning - Options.
"), ir, 0, 1, 2, Qt::AlignLeft);
+ ++ir;
+ pppLayout2->addWidget(new QLabel("GPS LCs"), ir, 0, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._lcGPS, ir, 1);
+ pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 2);
+ pppLayout2->addWidget(new QLabel("Sigma C1"), ir, 3, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._sigmaC1, ir, 4); _pppWidgets._sigmaC1->setMaximumWidth(8*ww);
+ pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 5);
+ pppLayout2->addWidget(new QLabel("Sigma L1"), ir, 6, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._sigmaL1, ir, 7); _pppWidgets._sigmaL1->setMaximumWidth(8*ww);
+ ++ir;
+ pppLayout2->addWidget(new QLabel("GLONASS LCs"), ir, 0, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._lcGLONASS, ir, 1);
+ pppLayout2->addWidget(new QLabel("Max Res C1"), ir, 3, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._maxResC1, ir, 4); _pppWidgets._maxResC1->setMaximumWidth(8*ww);
+ pppLayout2->addWidget(new QLabel("Max Res L1"), ir, 6, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._maxResL1, ir, 7); _pppWidgets._maxResL1->setMaximumWidth(8*ww);
+ ++ir;
+ pppLayout2->addWidget(new QLabel("Galileo LCs"), ir, 0, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._lcGalileo, ir, 1);
+ pppLayout2->addWidget(new QLabel("Ele Wgt Code"), ir, 3, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._eleWgtCode, ir, 4);
+ pppLayout2->addWidget(new QLabel("Ele Wgt Phase"), ir, 6, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._eleWgtPhase, ir, 7);
+ ++ir;
+ pppLayout2->addWidget(new QLabel("BDS LCs"), ir, 0, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._lcBDS, ir, 1);
+ pppLayout2->addWidget(new QLabel("Min # of Obs"), ir, 3, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._minObs, ir, 4);
+ pppLayout2->addWidget(new QLabel("Min Elevation"), ir, 6, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._minEle, ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww);
+ ++ir;
+ pppLayout2->addWidget(new QLabel("Model Obs"), ir, 0, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._modelObs, ir, 1);
+ pppLayout2->addWidget(new QLabel("Wait for clock corr."), ir, 3, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._corrWaitTime, ir, 4);
+ pppLayout2->addWidget(new QLabel("Seeding (sec)"), ir, 6, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._seedingTime, ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww);
+ ++ir;
+ pppLayout2->addWidget(new QLabel("Pseudo Obs"), ir, 0, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._pseudoObs, ir, 1);
+ pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 2);
+ pppLayout2->addWidget(new QLabel("Sigma GIM"), ir, 3, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._sigmaGIM, ir, 4); _pppWidgets._sigmaGIM->setMaximumWidth(8*ww);
+ pppLayout2->addItem(new QSpacerItem(8*ww, 0), ir, 5);
+ pppLayout2->addWidget(new QLabel("Max Res GIM"), ir, 6, Qt::AlignLeft);
+ pppLayout2->addWidget(_pppWidgets._maxResGIM, ir, 7); _pppWidgets._maxResGIM->setMaximumWidth(8*ww);
+ ++ir;
+ pppLayout2->addWidget(new QLabel(""), ir, 8);
+ pppLayout2->setColumnStretch(8, 999);
+ ++ir;
+ pppLayout2->addWidget(new QLabel(""), ir, 1);
+ pppLayout2->setRowStretch(ir, 999);
pppGroup2->setLayout(pppLayout2);
- QGridLayout* pppLayout3 = new QGridLayout();
- ir = 0;
- pppLayout3->addWidget(new QLabel("Precise Point Positioning - Options.
"), ir, 0, 1, 2, Qt::AlignLeft);
- ++ir;
- pppLayout3->addWidget(new QLabel("GPS LCs"), ir, 0, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._lcGPS, ir, 1);
- pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 2);
- pppLayout3->addWidget(new QLabel("Sigma C1"), ir, 3, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._sigmaC1, ir, 4); _pppWidgets._sigmaC1->setMaximumWidth(8*ww);
- pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 5);
- pppLayout3->addWidget(new QLabel("Sigma L1"), ir, 6, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._sigmaL1, ir, 7); _pppWidgets._sigmaL1->setMaximumWidth(8*ww);
- ++ir;
- pppLayout3->addWidget(new QLabel("GLONASS LCs"), ir, 0, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._lcGLONASS, ir, 1);
- pppLayout3->addWidget(new QLabel("Max Res C1"), ir, 3, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._maxResC1, ir, 4); _pppWidgets._maxResC1->setMaximumWidth(8*ww);
- pppLayout3->addWidget(new QLabel("Max Res L1"), ir, 6, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._maxResL1, ir, 7); _pppWidgets._maxResL1->setMaximumWidth(8*ww);
- ++ir;
- pppLayout3->addWidget(new QLabel("Galileo LCs"), ir, 0, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._lcGalileo, ir, 1);
- pppLayout3->addWidget(new QLabel("Ele Wgt Code"), ir, 3, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._eleWgtCode, ir, 4);
- pppLayout3->addWidget(new QLabel("Ele Wgt Phase"), ir, 6, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._eleWgtPhase, ir, 7);
- ++ir;
- pppLayout3->addWidget(new QLabel("BDS LCs"), ir, 0, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._lcBDS, ir, 1);
- pppLayout3->addWidget(new QLabel("Min # of Obs"), ir, 3, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._minObs, ir, 4);
- pppLayout3->addWidget(new QLabel("Min Elevation"), ir, 6, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._minEle, ir, 7);_pppWidgets._minEle->setMaximumWidth(8*ww);
- ++ir;
- pppLayout3->addWidget(new QLabel("Model Obs"), ir, 0, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._modelObs, ir, 1);
- pppLayout3->addWidget(new QLabel("Wait for clock corr."), ir, 3, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._corrWaitTime, ir, 4);
- pppLayout3->addWidget(new QLabel("Seeding (sec)"), ir, 6, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._seedingTime, ir, 7);_pppWidgets._seedingTime->setMaximumWidth(8*ww);
- ++ir;
- pppLayout3->addWidget(new QLabel("Pseudo Obs"), ir, 0, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._pseudoObs, ir, 1);
- pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 2);
- pppLayout3->addWidget(new QLabel("Sigma GIM"), ir, 3, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._sigmaGIM, ir, 4); _pppWidgets._sigmaGIM->setMaximumWidth(8*ww);
- pppLayout3->addItem(new QSpacerItem(8*ww, 0), ir, 5);
- pppLayout3->addWidget(new QLabel("Max Res GIM"), ir, 6, Qt::AlignLeft);
- pppLayout3->addWidget(_pppWidgets._maxResGIM, ir, 7); _pppWidgets._maxResGIM->setMaximumWidth(8*ww);
- ++ir;
- pppLayout3->addWidget(new QLabel(""), ir, 8);
- pppLayout3->setColumnStretch(8, 999);
- ++ir;
- pppLayout3->addWidget(new QLabel(""), ir, 1);
- pppLayout3->setRowStretch(ir, 999);
+ QVBoxLayout* pppLayout3 = new QVBoxLayout();
+ pppLayout3->addWidget(new QLabel("Precise Point Positioning - Processed Stations.
"));
+ pppLayout3->addWidget(_pppWidgets._staTable, 99);
+ QHBoxLayout* pppLayout3sub = new QHBoxLayout();
+ pppLayout3sub->addWidget(_pppWidgets._addStaButton);
+ pppLayout3sub->addWidget(_pppWidgets._delStaButton);
+ pppLayout3sub->addStretch(99);
+
+ pppLayout3->addLayout(pppLayout3sub);
pppGroup3->setLayout(pppLayout3);
Index: /trunk/BNC/src/pppMain.cpp
===================================================================
--- /trunk/BNC/src/pppMain.cpp (revision 9865)
+++ /trunk/BNC/src/pppMain.cpp (revision 9866)
@@ -149,16 +149,18 @@
t_pppOptions* opt = new t_pppOptions();
- opt->_realTime = _realTime;
- opt->_roverName = hlp[0].toStdString();
- opt->_aprSigCrd[0] = hlp[1].toDouble()+1e-10;
- opt->_aprSigCrd[1] = hlp[2].toDouble()+1e-10;
- opt->_aprSigCrd[2] = hlp[3].toDouble()+1e-10;
- opt->_noiseCrd[0] = hlp[4].toDouble()+1e-10;
- opt->_noiseCrd[1] = hlp[5].toDouble()+1e-10;
- opt->_noiseCrd[2] = hlp[6].toDouble()+1e-10;
- opt->_aprSigTrp = hlp[7].toDouble();
- opt->_noiseTrp = hlp[8].toDouble();
- opt->_nmeaPort = hlp[9].toInt();
-
+ opt->_realTime = _realTime;
+ opt->_roverName = hlp[0].toStdString();
+ opt->_aprSigCrd[0] = hlp[1].toDouble()+1e-10;
+ opt->_aprSigCrd[1] = hlp[2].toDouble()+1e-10;
+ opt->_aprSigCrd[2] = hlp[3].toDouble()+1e-10;
+ opt->_noiseCrd[0] = hlp[4].toDouble()+1e-10;
+ opt->_noiseCrd[1] = hlp[5].toDouble()+1e-10;
+ opt->_noiseCrd[2] = hlp[6].toDouble()+1e-10;
+ opt->_aprSigTrp = hlp[7].toDouble();
+ opt->_noiseTrp = hlp[8].toDouble();
+ opt->_nmeaPort = hlp[9].toInt();
+#ifdef USE_PPP
+ opt->_signalPriorities = hlp[10].toStdString();
+#endif
if (_realTime) {
opt->_corrMount.assign(settings.value("PPP/corrMount").toString().toStdString());
@@ -181,5 +183,5 @@
#endif
opt->_sigmaC1 = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0) opt->_sigmaC1 = 2.00;
- opt->_sigmaL1 = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0) opt->_sigmaL1 = 0.01;
+ opt->_sigmaL1 = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0) opt->_sigmaL1 = 0.02;
opt->_sigmaGIM = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 5.00;
opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble();
@@ -412,7 +414,7 @@
opt->_minObs = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 4) opt->_minObs = 4;
opt->_minEle = settings.value("PPP/minEle").toDouble() * M_PI / 180.0;
- opt->_maxResC1 = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 4.0;
- opt->_maxResL1 = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.03;
- opt->_maxResGIM = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 6.0;
+ opt->_maxResC1 = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 2.0;
+ opt->_maxResL1 = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.02;
+ opt->_maxResGIM = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 5.0;
opt->_eleWgtCode = (settings.value("PPP/eleWgtCode").toInt() != 0);
opt->_eleWgtPhase = (settings.value("PPP/eleWgtPhase").toInt() != 0);
Index: /trunk/BNC/src/pppOptions.h
===================================================================
--- /trunk/BNC/src/pppOptions.h (revision 9865)
+++ /trunk/BNC/src/pppOptions.h (revision 9866)
@@ -73,4 +73,5 @@
double _noisePhaseBias;
int _nmeaPort;
+ std::string _signalPriorities;
double _seedingTime;
std::vector
[key: PPP/staTable]
")); + _corrWaitTime->setWhatsThis(tr("Zero value means that BNC processes each epoch of data immediately after its arrival using satellite clock corrections available at that time.
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. [key: PPP/corrWaitTime]
")); + _seedingTime->setWhatsThis(tr("
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.
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.
A value of 60 is likely to be an appropriate choice.
Default is an empty option field, meaning that you don't want BNC to fix PPP solutions during startup to an a priori coordinate. [key: PPP/seedingTime]
")); // WhatsThis, PPP (3) // ------------------ - _corrWaitTime->setWhatsThis(tr("Zero value means that BNC processes each epoch of data immediately after its arrival using satellite clock corrections available at that time.
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. [key: PPP/corrWaitTime]
")); - _seedingTime->setWhatsThis(tr("
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.
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.
A value of 60 is likely to be an appropriate choice.
Default is an empty option field, meaning that you don't want BNC to fix PPP solutions during startup to an a priori coordinate. [key: PPP/seedingTime]
")); + _staTable->setWhatsThis(tr("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.
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.
'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.
'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:
For all other PPP models for example the following list of 'Signal Priorities' can be used:
[key: PPP/staTable]
")); // WhatsThis, PPP (4) // ------------------ - _plotCoordinates->setWhatsThis(tr("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.
Note that this option makes only sense for a stationary receiver with known a priori marker coordinates as specified through PPP option 'Coordinates file'.
Default is an empty option field, meaning that BNC shall not produce a time series plot of PPP coordinate displacements. [key: PPP/plotCoordinates]
")); + _plotCoordinates->setWhatsThis(tr("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.
Note that this option makes only sense for a stationary receiver with known a priori marker coordinates as specified through PPP option 'Coordinates file'.
Default is an empty option field, meaning that BNC shall not produce a time series plot of PPP coordinate displacements. [key: PPP/plotCoordinates]
")); _audioResponse->setWhatsThis(tr("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.
Default is an empty option field, meaning that you don't want BNC to produce alarm signals. [key: PPP/audioResponse]
")); _mapWinButton->setWhatsThis(tr("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.
The 'Open Map' button opens a windows showing a map according to specified options.
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.
")); @@ -587,15 +587,21 @@ int iRow = _staTable->rowCount(); _staTable->insertRow(iRow); + QString preferredAttributes = "G:12&CWPSLX R:12&CP E:1&CBX E:5&QIX C:26&IQX"; + if (_modelObs->currentText().contains("DCM")) { + preferredAttributes = "G:12&CW R:12&CP E:1&CX E:5&QX C:26&I"; + } + for (int iCol = 0; iCol < _staTable->columnCount(); iCol++) { - if (iCol == 0) _staTable->setItem(iRow, iCol, new QTableWidgetItem("")); - if (iCol == 1) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); - if (iCol == 2) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); - if (iCol == 3) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); - if (iCol == 4) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); - if (iCol == 5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); - if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); - if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1")); - if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6")); - if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0")); + if (iCol == 0) _staTable->setItem(iRow, iCol, new QTableWidgetItem("")); + if (iCol == 1) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); + if (iCol == 2) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); + if (iCol == 3) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); + if (iCol == 4) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); + if (iCol == 5) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); + if (iCol == 6) _staTable->setItem(iRow, iCol, new QTableWidgetItem("100.0")); + if (iCol == 7) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0.1")); + if (iCol == 8) _staTable->setItem(iRow, iCol, new QTableWidgetItem("3e-6")); + if (iCol == 9) _staTable->setItem(iRow, iCol, new QTableWidgetItem("0")); + if (iCol == 10) _staTable->setItem(iRow, iCol, new QTableWidgetItem(preferredAttributes)); } }