Changeset 10239 in ntrip
- Timestamp:
- Nov 6, 2023, 12:44:22 PM (13 months ago)
- Location:
- trunk/BNC/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bnchelp.html
r10150 r10239 221 221 2.14.1.2 <a href=#combimethod>Method</a><br> 222 222 2.14.1.3 <a href=#combimax>Maximal Residuum</a><br> 223 2.14.1.4 <a href=#combismpl>Sampling</a><br> 223 2.14.1.4 <a href=#combiwait>Wait for full clock epoch</a><br> 224 2.14.1.5 <a href=#combismpl>Sampling</a><br> 224 225 2.15 <a href=#upclk><b>Upload Corrections</b></a><br> 225 226 2.15.1 <a href=#upadd>Add, Delete Row</a><br> … … 4550 4551 Default is a 'Maximal Residuum' of 999.0 meters.</p> 4551 4552 4552 <p><h4 id="combismpl">2.14.1.4 Sampling - mandatory if 'Combine Corrections' table is populated</h4></p> 4553 <p><h4 id="combiwait">2.14.1.4 Wait for full clock epoch - mandatory if 'Combine Corrections' table is populated</h4></p> 4554 <p> 4555 During the combination process BNC is waiting for clock corrections input epoch by epoch. 4556 BNC drops whatever is received later than 'Wait for full clock epoch' seconds. 4557 A value of about 10 seconds is recommended, depending on the latency of the incoming streams 4558 and the delay acceptable to your real-time GNSS combination product. 4559 </p> 4560 4561 <p><h4 id="combismpl">2.14.1.5 Sampling - mandatory if 'Combine Corrections' table is populated</h4></p> 4553 4562 <p> 4554 4563 Specify a combination sampling interval. Orbit and clock corrections will be produced following that interval. 4555 value of 10 sec may be an appropriate choice.4564 A value of 10 sec may be an appropriate choice. 4556 4565 </p> 4557 4566 -
trunk/BNC/src/bncmain.cpp
r10221 r10239 287 287 " cmbBsxFile {SINEX Bias file, full path [char string]}\n" 288 288 " cmbMaxres {Clock outlier residuum threshold in meters [floating-point number]\n" 289 " cmbWait {Wait for full clock epoch [integer number of seconds: 5-30]}\n" 289 290 " cmbSampl {Clock sampling rate [integer number of seconds: 0|10|20|30|40|50|60]}\n" 290 291 " cmbGps {GPS correction usage [integer number: 0=no,2=yes]}\n" -
trunk/BNC/src/bncsettings.cpp
r10157 r10239 172 172 setValue_p("cmbMaxres", ""); 173 173 setValue_p("cmbSampl", "10"); 174 setValue_p("cmbWait", "10"); 174 175 setValue_p("cmbGps", "2"); 175 176 setValue_p("cmbGlo", "2"); -
trunk/BNC/src/bncwindow.cpp
r10157 r10239 491 491 492 492 _cmbMaxresLineEdit = new QLineEdit(settings.value("cmbMaxres").toString()); 493 494 _cmbWaitSpinBox = new QSpinBox(); 495 _cmbWaitSpinBox->setMinimum(5); 496 _cmbWaitSpinBox->setMaximum(30); 497 _cmbWaitSpinBox->setSingleStep(1); 498 _cmbWaitSpinBox->setSuffix(" sec"); 499 _cmbWaitSpinBox->setValue(settings.value("cmbWait").toInt()); 493 500 494 501 _cmbSamplSpinBox = new QSpinBox; … … 1292 1299 cmbLayout->addWidget(new QLabel("Max Residual"), 5, 6, Qt::AlignLeft); 1293 1300 cmbLayout->addWidget(_cmbMaxresLineEdit, 5, 7, Qt::AlignRight); 1294 cmbLayout->addWidget(new QLabel("Sampling"), 6, 6, Qt::AlignLeft); 1295 cmbLayout->addWidget(_cmbSamplSpinBox, 6, 7, Qt::AlignRight); 1296 cmbLayout->addWidget(new QLabel("GNSS"), 7, 6, Qt::AlignLeft); 1297 cmbLayout->addWidget(new QLabel("GPS (C1W/C2W)"), 7, 7); 1298 cmbLayout->addWidget(_cmbGpsCheckBox, 7, 8); 1299 cmbLayout->addWidget(new QLabel("GLONASS (C1P/C2P)"), 7, 9); 1300 cmbLayout->addWidget(_cmbGloCheckBox, 7, 10); 1301 cmbLayout->addWidget(new QLabel("Galileo (C1C/C5Q)"), 7, 11); 1302 cmbLayout->addWidget(_cmbGalCheckBox, 7, 12); 1303 cmbLayout->addWidget(new QLabel("Beidou (C2I/C6I)"), 7, 13); 1304 cmbLayout->addWidget(_cmbBdsCheckBox, 7, 14); 1305 cmbLayout->addWidget(new QLabel("QZSS (C1C/C2L)"), 8, 7); 1306 cmbLayout->addWidget(_cmbQzssCheckBox, 8, 8); 1307 cmbLayout->addWidget(new QLabel("SBAS (C1C/C5Q)"), 8, 9); 1308 cmbLayout->addWidget(_cmbSbasCheckBox, 8, 10); 1309 cmbLayout->addWidget(new QLabel("IRNSS"), 8, 11); 1310 cmbLayout->addWidget(_cmbIrnssCheckBox, 8, 12); 1311 cmbLayout->setRowStretch(8, 999); 1301 cmbLayout->addWidget(new QLabel("Wait for full clock epoch"), 6, 6, Qt::AlignLeft); 1302 cmbLayout->addWidget(_cmbWaitSpinBox , 6, 7, Qt::AlignRight); 1303 cmbLayout->addWidget(new QLabel("Sampling"), 7, 6, Qt::AlignLeft); 1304 cmbLayout->addWidget(_cmbSamplSpinBox, 7, 7, Qt::AlignRight); 1305 cmbLayout->addWidget(new QLabel("GNSS"), 8, 6, Qt::AlignLeft); 1306 cmbLayout->addWidget(new QLabel("GPS (C1W/C2W)"), 8, 7); 1307 cmbLayout->addWidget(_cmbGpsCheckBox, 8, 8); 1308 cmbLayout->addWidget(new QLabel("GLONASS (C1P/C2P)"), 8, 9); 1309 cmbLayout->addWidget(_cmbGloCheckBox, 8, 10); 1310 cmbLayout->addWidget(new QLabel("Galileo (C1C/C5Q)"), 8, 11); 1311 cmbLayout->addWidget(_cmbGalCheckBox, 8, 12); 1312 cmbLayout->addWidget(new QLabel("Beidou (C2I/C6I)"), 8, 13); 1313 cmbLayout->addWidget(_cmbBdsCheckBox, 8, 14); 1314 cmbLayout->addWidget(new QLabel("QZSS (C1C/C2L)"), 9, 7); 1315 cmbLayout->addWidget(_cmbQzssCheckBox, 9, 8); 1316 cmbLayout->addWidget(new QLabel("SBAS (C1C/C5Q)"), 9, 9); 1317 cmbLayout->addWidget(_cmbSbasCheckBox, 9, 10); 1318 cmbLayout->addWidget(new QLabel("IRNSS"), 9, 11); 1319 cmbLayout->addWidget(_cmbIrnssCheckBox, 9, 12); 1320 cmbLayout->setRowStretch(9, 999); 1312 1321 1313 1322 connect(addCmbRowButton, SIGNAL(clicked()), this, SLOT(slotAddCmbRow())); … … 1529 1538 _cmbMethodComboBox->setWhatsThis(tr("<p>Select a clock combination approach. Options are 'Single-Epoch' and Kalman 'Filter'.</p><p>It is suggested to use the Kalman filter approach for the purpose of Precise Point Positioning. <i>[key: cmbMethod]</i></p>")); 1530 1539 _cmbMaxresLineEdit->setWhatsThis(tr("<p>BNC combines all incoming clocks according to specified weights. Individual clock estimates that differ by more than 'Maximal residuum' meters from the average of all clocks will be ignored.<p></p>It is suggested to specify a value of about 0.2 m for the Kalman filter combination approach and a value of about 3.0 meters for the Single-Epoch combination approach.</p><p>Default is a value of '999.0'. <i>[key: cmbMaxres]</i></p>")); 1540 _cmbWaitSpinBox->setWhatsThis(tr("<p>During the combination process BNC is waiting for clock corrections input epoch by epoch. BNC drops whatever is received later than 'Wait for full clock epoch' seconds.</p><p>A value of about 10 seconds is recommended, depending on the latency of the incoming streams and the delay acceptable to your real-time GNSS combination product. <i>[key: cmbWait]</i></p>")); 1531 1541 _cmbSamplSpinBox->setWhatsThis(tr("<p>Select a combination Sampling interval for the clocks. Clock corrections will be produced following that interval.</p><p>A value of 10 sec may be an appropriate choice. A value of zero '0' tells BNC to use all available samples. <i>[key: ]</i></p>")); 1532 1542 _cmbGpsCheckBox->setWhatsThis(tr("<p>GPS clock corrections shall be combined. GPS Broadcast ephemeris and corrections are required. <i>[key: cmbGps]</i></p>")); … … 1668 1678 _cmbTable->deleteLater(); 1669 1679 delete _cmbMaxresLineEdit; 1680 delete _cmbWaitSpinBox; 1670 1681 delete _cmbSamplSpinBox; 1671 1682 delete _cmbMethodComboBox; … … 2160 2171 settings.setValue("cmbMethod", _cmbMethodComboBox->currentText()); 2161 2172 settings.setValue("cmbMaxres", _cmbMaxresLineEdit->text()); 2173 settings.setValue("cmbWait", _cmbWaitSpinBox->value()); 2162 2174 settings.setValue("cmbSampl", _cmbSamplSpinBox->value()); 2163 2175 settings.setValue("cmbGps", _cmbGpsCheckBox->checkState()); … … 2443 2455 _mountPointsTable->item(iRow, 5)->text() == thread->longitude() ) { 2444 2456 ((bncTableItem*) _mountPointsTable->item(iRow, 8))->setGetThread(thread); 2445 disconnect(thread, SIGNAL(newBytes(QByteArray, double)), 2446 _bncFigure, SLOT(slotNewData(QByteArray, double))); 2447 connect(thread, SIGNAL(newBytes(QByteArray, double)), 2448 _bncFigure, SLOT(slotNewData(QByteArray, double))); 2449 disconnect(thread, SIGNAL(newLatency(QByteArray, double)), 2450 _bncFigureLate, SLOT(slotNewLatency(QByteArray, double))); 2451 connect(thread, SIGNAL(newLatency(QByteArray, double)), 2452 _bncFigureLate, SLOT(slotNewLatency(QByteArray, double))); 2457 disconnect(thread, SIGNAL(newBytes(QByteArray, double)), _bncFigure, SLOT(slotNewData(QByteArray, double))); 2458 connect(thread, SIGNAL(newBytes(QByteArray, double)), _bncFigure, SLOT(slotNewData(QByteArray, double))); 2459 disconnect(thread, SIGNAL(newLatency(QByteArray, double)), _bncFigureLate, SLOT(slotNewLatency(QByteArray, double))); 2460 connect(thread, SIGNAL(newLatency(QByteArray, double)), _bncFigureLate, SLOT(slotNewLatency(QByteArray, double))); 2453 2461 break; 2454 2462 } … … 2685 2693 enableWidget(true, _cmbMethodComboBox); 2686 2694 enableWidget(true, _cmbMaxresLineEdit); 2695 enableWidget(true, _cmbWaitSpinBox); 2687 2696 enableWidget(true, _cmbSamplSpinBox); 2688 2697 enableWidget(true, _cmbGpsCheckBox); … … 2698 2707 enableWidget(false, _cmbMethodComboBox); 2699 2708 enableWidget(false, _cmbMaxresLineEdit); 2709 enableWidget(false, _cmbWaitSpinBox); 2700 2710 enableWidget(false, _cmbSamplSpinBox); 2701 2711 enableWidget(false, _cmbGpsCheckBox); -
trunk/BNC/src/bncwindow.h
r10102 r10239 221 221 QComboBox* _cmbMethodComboBox; 222 222 QSpinBox* _cmbSamplSpinBox; 223 QSpinBox* _cmbWaitSpinBox; 223 224 QCheckBox* _cmbGpsCheckBox; 224 225 QCheckBox* _cmbGloCheckBox; -
trunk/BNC/src/combination/bnccomb.cpp
r10235 r10239 132 132 _cmbSampl = 5; 133 133 } 134 135 _cmbWait = settings.value("cmbWait").toInt(); 136 if (_cmbWait <= 0) { 137 _cmbSampl = 10; 138 } 139 134 140 _useGps = (Qt::CheckState(settings.value("cmbGps").toInt()) == Qt::Checked) ? true : false; 135 141 if (_useGps) { … … 451 457 void bncComb::slotNewClkCorrections(QList<t_clkCorr> clkCorrections) { 452 458 QMutexLocker locker(&_mutex); 453 const double outWait = 1.0 * _cmbSampl;454 459 int currentWeek = 0; 455 460 double currentSec = 0.0; … … 576 581 // Process the front epoch 577 582 // ----------------------- 578 if (epoTime < (_lastClkCorrTime - outWait)) {583 if (epoTime < (_lastClkCorrTime - _cmbWait)) { 579 584 _resTime = epoTime; 580 585 processEpoch(_resTime, clkCorrVec); -
trunk/BNC/src/combination/bnccomb.h
r10235 r10239 256 256 e_method _method; 257 257 int _cmbSampl; 258 int _cmbWait; 258 259 int _ms; 259 260 QMap<char, cmbEpoch> _buffer;
Note:
See TracChangeset
for help on using the changeset viewer.