Changeset 10955 in ntrip for trunk/BNC/src/bncwindow.cpp
- Timestamp:
- Jul 3, 2026, 11:10:42 AM (15 hours ago)
- File:
-
- 1 edited
-
trunk/BNC/src/bncwindow.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bncwindow.cpp
r10945 r10955 472 472 // Combine Corrections 473 473 // ------------------- 474 _cmbTable = new QTableWidget(0, 4);475 _cmbTable->setHorizontalHeaderLabels(QString("Mountpoint, AC Name, Weight Factor, Exclude Satellites").split(",")); 474 _cmbTable = new QTableWidget(0, 5); 475 _cmbTable->setHorizontalHeaderLabels(QString("Mountpoint, AC Name, Weight Factor, Exclude Satellites, Attitude").split(",")); 476 476 _cmbTable->setSelectionMode(QAbstractItemView::ExtendedSelection); 477 477 _cmbTable->setSelectionBehavior(QAbstractItemView::SelectRows); 478 _cmbTable->setMaximumWidth( 40 * ww);478 _cmbTable->setMaximumWidth(50 * ww); 479 479 _cmbTable->horizontalHeader()->resizeSection(0, 10 * ww); 480 480 _cmbTable->horizontalHeader()->resizeSection(1, 6 * ww); 481 481 _cmbTable->horizontalHeader()->resizeSection(2, 9 * ww); 482 482 _cmbTable->horizontalHeader()->resizeSection(3, 9 * ww); 483 _cmbTable->horizontalHeader()->resizeSection(4, 8 * ww); 483 484 #if QT_VERSION < 0x050000 484 485 _cmbTable->horizontalHeader()->setResizeMode(QHeaderView::Interactive); … … 1701 1702 // WhatsThis, Combine Corrections 1702 1703 // ------------------------------ 1703 _cmbTable->setWhatsThis(tr("<p>BNC allows to process several orbit and clock correction streams in real-time to produce, encode, upload and save a combination of correctors coming from different providers. </p><p>To add a line to the 'Combine Corrections' table hit the 'Add Row' button, double click on the 'Mountpoint' field to specify a Broadcast Ephemeris Correction mountpoint from the 'Streams' section below and hit Enter. Then double click on the 'AC Name' field to enter your choice of an abbreviation for the Analysis Center (AC) providing the stream. Double click on the 'Weight Factor' field to enter a weight factor to be applied for this stream in the combination. A Factor greater than 1 will enlarge the sigma of the clock pseudo-observations and with it down-weight its contribution. Finally, double click on the 'Exclude Satellites' field and specify satellites, to exclude them for an individual AC. An entry 'G04,G31,R' means to excludes GPS satellites PRN 4 and 31 as well as all GLONASS satellites from one individual AC. Default is an empty option field, meaning that no satellite is excluded from this individual AC.</p><p>Note that the orbit information in the resulting combination stream is just copied from one of the incoming streams. The stream used for providing the orbits may vary over time: if the orbit providing stream has an outage then BNC switches to the next remaining stream for getting hold of the orbit information.</p><p>The combination process requires Broadcast Ephemeris. Besides orbit and clock correction streams BNC should therefore pull a stream carrying Broadcast Ephemeris in the form of RTCM Version 3 messages.</p><p>It is possible to specify only one Broadcast Ephemeris Correction stream in the 'Combine Corrections' table. Instead of combining corrections BNC will then add the corrections to the Broadcast Ephemeris with the possibility to save final orbit and clock results in SP3 and/or Clock RINEX format. <i>[key: cmbStreams]</i></p>")); 1704 _cmbTable->setWhatsThis(tr("<p>BNC allows to process several orbit and clock correction streams in real-time to produce, encode, upload and save a combination of correctors coming from different providers. </p><p>To add a line to the 'Combine Corrections' table hit the 'Add Row' button, double click on the 'Mountpoint' field to specify a Broadcast Ephemeris Correction mountpoint from the 'Streams' section below and hit Enter. Then double click on the 'AC Name' field to enter your choice of an abbreviation for the Analysis Center (AC) providing the stream. Double click on the 'Weight Factor' field to enter a weight factor to be applied for this stream in the combination. A Factor greater than 1 will enlarge the sigma of the clock pseudo-observations and with it down-weight its contribution. Finally, double click on the 'Exclude Satellites' field and specify satellites, to exclude them for an individual AC. An entry 'G04,G31,R' means to excludes GPS satellites PRN 4 and 31 as well as all GLONASS satellites from one individual AC. Default is an empty option field, meaning that no satellite is excluded from this individual AC.</p><p>Use the 'Attitude' field to select how satellite attitude is modelled when converting Antenna Phase Center (APC) corrections to Center-of-Mass (CoM) positions for SP3 output. 'Computed' (default) applies BNC's kinematic attitude model, including GPS noon/midnight turn manoeuvres, GLONASS yaw-fixed mode, and Galileo/BDS orbit-normal mode switching. 'Nominal' uses a simplified continuous Sun-pointing model without manoeuvre modelling. 'SSR' uses the yaw angle transmitted in the SSR phase bias message; select this option only if you trust the yaw values provided by the AC. If no yaw angle is available for a particular satellite in a given epoch, BNC falls back to 'Computed'. Note that the attitude model affects APC-referenced streams only; for CoM-referenced streams the AC has already applied attitude before encoding.</p><p>Note that the orbit information in the resulting combination stream is just copied from one of the incoming streams. The stream used for providing the orbits may vary over time: if the orbit providing stream has an outage then BNC switches to the next remaining stream for getting hold of the orbit information.</p><p>The combination process requires Broadcast Ephemeris. Besides orbit and clock correction streams BNC should therefore pull a stream carrying Broadcast Ephemeris in the form of RTCM Version 3 messages.</p><p>It is possible to specify only one Broadcast Ephemeris Correction stream in the 'Combine Corrections' table. Instead of combining corrections BNC will then add the corrections to the Broadcast Ephemeris with the possibility to save final orbit and clock results in SP3 and/or Clock RINEX format. <i>[key: cmbStreams]</i></p>")); 1704 1705 addCmbRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Combine Corrections' table.</p>")); 1705 1706 delCmbRowButton->setWhatsThis(tr("<p>Hit 'Delete' button to delete the highlighted line(s) from the 'Combine Corrections' table.</p>")); … … 2218 2219 QString hlp; 2219 2220 for (int iCol = 0; iCol < _cmbTable->columnCount(); iCol++) { 2220 if (_cmbTable->item(iRow, iCol)) { 2221 if (iCol == 4) { 2222 QComboBox* attCombo = qobject_cast<QComboBox*>(_cmbTable->cellWidget(iRow, iCol)); 2223 hlp += (attCombo ? attCombo->currentText() : "Computed") + " "; 2224 } 2225 else if (_cmbTable->item(iRow, iCol)) { 2221 2226 hlp += _cmbTable->item(iRow, iCol)->text() + " "; 2222 2227 } … … 3056 3061 _cmbTable->insertRow(iRow); 3057 3062 for (int iCol = 0; iCol < _cmbTable->columnCount(); iCol++) { 3058 _cmbTable->setItem(iRow, iCol, new QTableWidgetItem("")); 3063 if (iCol == 4) { 3064 QComboBox* attCombo = new QComboBox(); 3065 attCombo->setEditable(false); 3066 attCombo->addItems(QString("Computed,SSR,Nominal").split(",")); 3067 attCombo->setFrame(false); 3068 _cmbTable->setCellWidget(iRow, iCol, attCombo); 3069 } 3070 else { 3071 _cmbTable->setItem(iRow, iCol, new QTableWidgetItem("")); 3072 } 3059 3073 } 3060 3074 } … … 3110 3124 _cmbTable->insertRow(iRow); 3111 3125 } 3112 for (int iCol = 0; iCol < hlp.size(); iCol++) { 3113 _cmbTable->setItem(iRow, iCol, new QTableWidgetItem(hlp[iCol])); 3126 for (int iCol = 0; iCol < hlp.size() && iCol < _cmbTable->columnCount(); iCol++) { 3127 if (iCol == 4) { 3128 QComboBox* attCombo = new QComboBox(); 3129 attCombo->setEditable(false); 3130 attCombo->addItems(QString("Computed,SSR,Nominal").split(",")); 3131 attCombo->setFrame(false); 3132 int idx = attCombo->findText(hlp[iCol]); 3133 if (idx != -1) attCombo->setCurrentIndex(idx); 3134 _cmbTable->setCellWidget(iRow, iCol, attCombo); 3135 } 3136 else { 3137 _cmbTable->setItem(iRow, iCol, new QTableWidgetItem(hlp[iCol])); 3138 } 3139 } 3140 // Ensure the Attitude combo exists even for old configs without column 4 3141 if (hlp.size() <= 4 && _cmbTable->columnCount() > 4 && iRow >= 0 3142 && !_cmbTable->cellWidget(iRow, 4)) { 3143 QComboBox* attCombo = new QComboBox(); 3144 attCombo->setEditable(false); 3145 attCombo->addItems(QString("Computed,SSR,Nominal").split(",")); 3146 attCombo->setFrame(false); 3147 _cmbTable->setCellWidget(iRow, 4, attCombo); 3114 3148 } 3115 3149 }
Note:
See TracChangeset
for help on using the changeset viewer.
