Changeset 9158 in ntrip for trunk/BNC/src
- Timestamp:
- Oct 1, 2020, 3:19:04 PM (4 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bnccore.cpp
r8921 r9158 280 280 if (_rinexVers == 0) { 281 281 282 if ( Qt::CheckState(settings.value("ephV3").toInt()) == Qt::Checked) { 282 if ( Qt::CheckState(settings.value("ephV2").toInt()) == Qt::Checked) { 283 _rinexVers = 2; 284 } 285 else { 283 286 _rinexVers = 3; 284 }285 else {286 _rinexVers = 2;287 287 } 288 288 … … 305 305 QString ephFileNameGPS = _ephPath + "BRDC"; 306 306 307 bool ephV 3 = (_rinexVers == 3)? true : false;307 bool ephV2 = (_rinexVers == 2)? true : false; 308 308 309 309 QString hlpStr = bncRinex::nextEpochStr(datTim, 310 settings.value("ephIntr").toString(), ephV 3);310 settings.value("ephIntr").toString(), ephV2); 311 311 312 312 if (_rinexVers == 3) { -
trunk/BNC/src/bnchelp.html
r9155 r9158 30 30 <p> 31 31 <h4>Authors</h4> 32 Georg Weber<sup>(1)</sup>, Leoš Mervart<sup>(2)</sup>, Andrea Stürze<sup>(1)</sup>, Axel Rülke<sup>(1)</sup>,Dirk Stöcker<sup>(3)</sup><br><br>32 Georg Weber<sup>(1)</sup>, Leoš Mervart<sup>(2)</sup>, Andrea Stürze<sup>(1)</sup>, Dirk Stöcker<sup>(3)</sup><br><br> 33 33 34 34 <sup>(1) Federal Agency for Cartography and Geodesy (BKG), Frankfurt, Germany</sup><br> … … 108 108 2.4.6 <a href="#sklMandat">Skeleton Mandatory</a><br> 109 109 2.4.7 <a href="#rnxscript">Script</a><br> 110 2.4.9 <a href="#rnxvers3">Version 3</a><br> 110 111 2.4.8 <a href="#rnxvers2">Version 2</a><br> 111 2.4.9 <a href="#rnxvers3">Version 3</a><br>112 2.4.10 <a href="#rnxvers3File">Version 3 Filenames</a><br>113 112 2.5 <a href="#ephemeris"><b>RINEX Ephemeris</b></a><br> 114 113 2.5.1 <a href="#ephdir">Directory</a><br> … … 116 115 2.5.3 <a href="#ephport">Port</a><br> 117 116 2.5.4 <a href="#ephvers">Version</a><br> 118 2.5.5 <a href="#ephversFile">Version 3 Filenames</a><br>119 117 2.6 <a href="#reqc"><b>RINEX Editing & QC</b></a><br> 120 118 2.6.1 <a href="#reqcact">Action</a><br> … … 1600 1598 </p> 1601 1599 1602 <p><h4 id="rnxvers2">2.4.8 Version 2 - optional</h4></p> 1603 <p> 1604 GNSS observation data are generally hold available within BNC according to attributes as defined in RINEX Version 3. These attributes describe the tracking mode or channel when generating the observation signals. Capital letters specifying signal generation attributes are A, B, C, D, I, L, M, N, P, Q, S, W, X, Y, and Z, see RINEX Version 3 documentation. Although RINEX Version 3 with its signal generation attributes is the internal default processing format for BNC, there are two applications where the program is explicitly required to produce data files in RINEX Version 2 format: 1600 <p><h4 id="rnxvers3">2.4.8 Version 3 - optional</h4></p> 1601 <p> 1602 The default format for RINEX Observation files is RINEX Version 3. There is nothing to activate in addition to save RTCM Version 3 observation streams in RINEX Version 3 format. 1603 </p> 1604 1605 <p> 1606 Note, that it is possible to force an RTCM Version 2 stream to be saved in RINEX Version 3 file format. However, this is not recommended, because such stream cannot be precisely mapped to RINEX Version 3 as the required information on tracking modes (observation attributes) is not part of RTCM Version 2. 1607 </p> 1608 1609 <p><h4 id="rnxvers2">2.4.9 Version 2 - optional</h4></p> 1610 <p> 1611 GNSS observation data are generally hold available within BNC according to attributes as defined in RINEX Version 3. These attributes describe the tracking mode or channel when generating the observation signals. Capital letters specifying signal generation attributes are A, B, C, D, I, L, M, N, P, Q, S, W, X, Y, and Z, see RINEX Version 3 documentation. Although RINEX Version 3 with its signal generation attributes is the internal default processing format for BNC, there are two applications where the program can be setup to produce data files in RINEX Version 2.11 format: 1605 1612 <ol type="1"> 1606 1613 <li>When saving the content of incoming observation streams in RINEX Version 2 files as described in this section.</li> 1607 1614 <li>When editing or concatenating RINEX 3 files to save them in Version 2 format, see section on 'RINEX Editing & QC'.</li> 1608 1615 </ol> 1609 As the Version 2 format ignores signal generation attributes, BNC is forced to somehow map RINEX Version 3 to RINEX Version 2 although this cannot be done in one-to-one correspondence. Hence we introduce a 'Signal priority' list of attributes (characters, forming a string) for mapping Version 3 to Version 2.1616 Select RINEX 'Version 2' if you would like to save RTCM Version 3 observation streams in RINEX Version 2 format. As the Version 2 format ignores signal generation attributes, BNC is forced to somehow map RINEX Version 3 to RINEX Version 2 although this cannot be done in one-to-one correspondence. Hence we introduce a 'Signal priority' list of attributes (characters, forming a string) for mapping Version 3 to Version 2. 1610 1617 </p> 1611 1618 <p> … … 1636 1643 </p> 1637 1644 1638 <p><h4 id="rnxvers3">2.4.9 Version 3 - optional</h4></p>1639 <p>1640 The default format for RINEX Observation files is RINEX Version 2.11. Select RINEX 'Version 3' if you would like to save RTCM Version 3 observation streams in RINEX Version 3.03 format.1641 </p>1642 1643 <p>1644 Note that it is possible to force an RTCM Version 2 stream to be saved in RINEX Version 3 file format. However, this is not recommended because such stream cannot be precisely mapped to RINEX Version 3 as the required information on tracking modes (observation attributes) is not part of RTCM Version 2.1645 </p>1646 1647 <p><h4 id="rnxvers3File">2.4.10 Version 3 Filenames - optional</h4></p>1648 <p>1649 Tick check box 'Version 3 filenames' to let BNC create so-called extended filenames following the RINEX Version 3 standard.1650 </p>1651 <p>Default is an empty check box, meaning to still use filenames following the RINEX Version 2 standard although the file content is saved in RINEX Version 3 format.1652 </p>1653 1654 1645 <p><h4 id="ephemeris">2.5 RINEX Ephemeris</h4></p> 1655 1646 <p> 1656 Broadcast Ephemeris can be saved in RINEX Navigation files when received e.g. via RTCM Version 3 message types 1019 (GPS) or 1020 (GLONASS) or 1044 (QZSS) or 1043 (SBAS) or 1045 and 1046 (Galileo) or 63 (BDS/BeiDou, tentative message number). The filename convention follows the details given in section 'RINEX Filenames' except that the first four characters are 'BRDC'. 1647 Broadcast Ephemeris can be saved in RINEX Navigation files when received e.g. via RTCM Version 3 message types: 1648 <ul> 1649 <li> 1019 (GPS) or </li> 1650 <li> 1020 (GLONASS) or </li> 1651 <li> 1044 (QZSS) or </li> 1652 <li> 1043 (SBAS) or </li> 1653 <li> 1045 (Galileo F/NAV) or </li> 1654 <li> 1046 (Galileo I/NAV) or </li> 1655 <li> 1042 (BDS/BeiDou) or </li> 1656 <li> 1041 (IRNSS). </li> 1657 </ul> 1658 </p> 1659 <p> The filename convention follows the details given in section 'RINEX Filenames' except that the first four characters are 'BRDC'. 1657 1660 </p> 1658 1661 <p> … … 1660 1663 </p> 1661 1664 <p> 1662 Regarding RINEX Version 3 you will find all ephemeris data for GPS, GLONASS, Galileo, SBAS, QZSS, and BDS gathered in one Navigation file.1665 Regarding RINEX Version 3 you will find all ephemeris data for GPS, GLONASS, Galileo, SBAS, QZSS, BDS, and IRNSS gathered in one Navigation file. 1663 1666 </p> 1664 1667 <p> … … 1697 1700 <p><h4 id="ephvers">2.5.4 Version - optional</h4></p> 1698 1701 <p> 1699 Default format for RINEX Navigation files containing Broadcast Ephemeris is RINEX Version 2.11. Select 'Version 3' if you want to save the ephemeris data in RINEX Version 3.03 format. 1700 </p> 1701 <p> 1702 Note that this does not concern the Broadcast Ephemeris output through IP port, which is always in RINEX Version 3.03 format. 1703 </p> 1704 1705 <p><h4 id="ephversFile">2.5.5 Version 3 Filenames - optional</h4></p> 1706 <p> 1707 Tick check box 'Version 3 filenames' to let BNC create so-called extended filenames following the RINEX Version 3 standard. 1708 </p> 1709 <p>Default is an empty check box, meaning to still use filenames following the RINEX Version 2 standard although the file content is saved in RINEX Version 3 format. 1710 </p> 1711 1712 <p><img src="IMG/screenshot42.png"/></p> 1713 <p>Figure 9: BNC converting Broadcast Ephemeris stream to RINEX Version 3 Navigation files</p> 1702 Default format for RINEX Navigation files containing Broadcast Ephemeris is RINEX Version 3. Select 'Version 2' if you want to save the ephemeris data in RINEX Version 2.11 format. 1703 </p> 1704 <p> 1705 Note that this does not concern the Broadcast Ephemeris output through IP port, which is always in RINEX Version 3 format. 1706 </p> 1714 1707 1715 1708 <p><h4 id="reqc">2.6 RINEX Editing & QC</h4></p> … … 1745 1738 <p> 1746 1739 When specifying several input files, BNC will concatenate their contents. In case of RINEX Observation input files with different observation type header records, BNC will output only one set of adjusted observation type records in the RINEX header which fits to the whole file content. 1747 </p>1748 <p>1749 Note that you may specify several RINEX Version 2 Navigation files for GPS and GLONASS.1750 1740 </p> 1751 1741 … … 5120 5110 rnxScript {File upload script, full path [character string]} 5121 5111 rnxV2Priority {Priority of signal attributes [character string, list separated by blank character, example: G:CWPX_? R:CP]} 5122 rnxV3 {Produce version 3 file content [integer number: 0=no,2=yes]} 5123 rnxV3filenames {Produce version 3 filenames [integer number: 0=no,2=yes]} 5112 rnxV2 {Produce version 2 file content [integer number: 0=no,2=yes]} 5124 5113 5125 5114 <b>RINEX Ephemeris Panel keys:</b> … … 5127 5116 ephIntr {File interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]} 5128 5117 ephOutPort {Output port [integer number]} 5129 ephV3 {Produce version 3 file content [integer number: 0=no,2=yes]} 5130 ephV3filenames {Produce version 3 filenames [integer number: 0=no,2=yes]} 5118 ephV2 {Produce version 2 file content [integer number: 0=no,2=yes]} 5131 5119 5132 5120 <b>RINEX Editing and QC Panel keys:</b> … … 5215 5203 PPP/antexFile {ANTEX file, full path [character string]} 5216 5204 PPP/crdFile {Coordinates file, full path [character string]} 5217 PPP/v 3filenames {Produce version 3filenames, [integer number: 0=no,2=yes]}5205 PPP/v2filenames {Produce version 2 filenames, [integer number: 0=no,2=yes]} 5218 5206 PPP/logPath {Directory for PPP log files [character string]} 5219 5207 PPP/nmeaPath {Directory for NMEA output files [character string]} -
trunk/BNC/src/bncmain.cpp
r9154 r9158 115 115 " rnxScript {File upload script, full path [character string]}\n" 116 116 " rnxV2Priority {Priority of signal attributes [character string, list separated by blank character, example: G:12&PWCSLXYN G:5&IQX C:IQX]}\n" 117 " rnxV 3 {Produce version 3file contents [integer number: 0=no,2=yes]}\n"117 " rnxV2 {Produce version 2 file contents [integer number: 0=no,2=yes]}\n" 118 118 "\n" 119 119 "RINEX Ephemeris Panel keys:\n" … … 121 121 " ephIntr {File interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]}\n" 122 122 " ephOutPort {Output port [integer number]}\n" 123 " ephV 3 {Produce version 3file contents [integer number: 0=no,2=yes]}\n"123 " ephV2 {Produce version 2 file contents [integer number: 0=no,2=yes]}\n" 124 124 "\n" 125 125 "RINEX Editing and QC Panel keys:\n" … … 206 206 " PPP/corrMount {Corrections mountpoint [character string]}\n" 207 207 " PPP/corrFile {Corrections file, full path [character string]}\n" 208 " PPP/v 3filenames {Produce version 3filenames, 0=no,2=yes}\n"208 " PPP/v2filenames {Produce version 2 filenames, 0=no,2=yes}\n" 209 209 " PPP/crdFile {Coordinates file, full path [character string]}\n" 210 210 " PPP/logPath {Directory for PPP log files [character string]}\n" -
trunk/BNC/src/bncoutf.cpp
r8320 r9158 48 48 49 49 _append = Qt::CheckState(settings.value("rnxAppend").toInt()) == Qt::Checked; 50 _v 3filenames = settings.value("PPP/v3filenames").toBool();50 _v2filenames = settings.value("PPP/v2filenames").toBool(); 51 51 } 52 52 … … 77 77 if ( indHlp != -1) { 78 78 int step = intStr.left(indHlp-1).toInt(); 79 if ( _v3filenames) {79 if (!_v2filenames) { 80 80 epoStr += QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0')); // H 81 81 } else { … … 95 95 } 96 96 97 if ( _v3filenames) {97 if (!_v2filenames) { 98 98 epoStr += QString("_%1M").arg(step, 2, 10, QChar('0')); // period 99 99 } … … 103 103 else if (intStr == "1 hour") { 104 104 int step = intStr.left(indHlp-1).toInt(); 105 if ( _v3filenames) {105 if (!_v2filenames) { 106 106 epoStr += QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0')); // H 107 107 epoStr += QString("%1").arg(0, 2, 10, QChar('0')); // M … … 114 114 else { 115 115 int step = intStr.left(indHlp-1).toInt(); 116 if ( _v3filenames) {116 if (!_v2filenames) { 117 117 epoStr += QString("%1").arg(0, 2, 10, QChar('0')); // H 118 118 epoStr += QString("%1").arg(0, 2, 10, QChar('0')); // M … … 122 122 } 123 123 124 if ( _v3filenames) {124 if (!_v2filenames) { 125 125 if (sampl < 60) { 126 126 epoStr += QString("_%1S").arg(sampl, 2, 10, QChar('0')); … … 153 153 baseName.replace("${V3}" , QString("_U_%1%2").arg(yyyy).arg(doy)); 154 154 if (_extension.count(".") == 2) {_extension.replace(0,1,"_"); } 155 155 156 156 return _path + baseName + epoStr + _extension; 157 157 } -
trunk/BNC/src/bncoutf.h
r7506 r9158 34 34 QString _fName; 35 35 bool _append; 36 bool _v 3filenames;36 bool _v2filenames; 37 37 }; 38 38 -
trunk/BNC/src/bncrinex.cpp
r9107 r9158 116 116 _writeRinexFileOnlyWithSkl = settings.value("rnxOnlyWithSKL").toBool(); 117 117 118 _rnxV 3 = (Qt::CheckState(settings.value("rnxV3").toInt()) == Qt::Checked) ? true : false;118 _rnxV2 = (Qt::CheckState(settings.value("rnxV2").toInt()) == Qt::Checked) ? true : false; 119 119 } 120 120 … … 249 249 //////////////////////////////////////////////////////////////////////////// 250 250 QString bncRinex::nextEpochStr(const QDateTime& datTim, 251 const QString& intStr, bool rnxV 3,251 const QString& intStr, bool rnxV2, 252 252 QDateTime* nextEpoch) { 253 253 … … 261 261 if ( indHlp != -1) { 262 262 int step = intStr.left(indHlp-1).toInt(); 263 if ( rnxV3) {263 if (!rnxV2) { 264 264 epoStr += QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0')); // H 265 265 } else { … … 288 288 } 289 289 } 290 if ( rnxV3) {290 if (!rnxV2) { 291 291 epoStr += QString("_%1M").arg(step, 2, 10, QChar('0')); // period 292 292 } … … 294 294 else if (intStr == "1 hour") { 295 295 int step = intStr.left(indHlp-1).toInt(); 296 if ( rnxV3) {296 if (!rnxV2) { 297 297 epoStr += QString("%1").arg(datTim.time().hour(), 2, 10, QChar('0')); // H 298 298 epoStr += QString("%1").arg(0, 2, 10, QChar('0')); // M … … 312 312 else { 313 313 int step = intStr.left(indHlp-1).toInt(); 314 if ( rnxV3) {314 if (!rnxV2) { 315 315 epoStr += QString("%1").arg(0, 2, 10, QChar('0')); // H 316 316 epoStr += QString("%1").arg(0, 2, 10, QChar('0')); // M … … 343 343 344 344 QString hlpStr = nextEpochStr(datTim, settings.value("rnxIntr").toString(), 345 _rnxV 3, &_nextCloseEpoch);345 _rnxV2, &_nextCloseEpoch); 346 346 347 347 int n = _statID.size(); … … 380 380 } 381 381 382 if ( _rnxV3) {382 if (!_rnxV2) { 383 383 QString country; 384 384 QString monNum = "0"; … … 428 428 // Set RINEX Version 429 429 // ----------------- 430 int intHeaderVers = (Qt::CheckState(settings.value("rnxV 3").toInt()) == Qt::Checked ? 3 : 2);430 int intHeaderVers = (Qt::CheckState(settings.value("rnxV2").toInt()) == Qt::Checked ? 2 : 3); 431 431 432 432 // Open the Output File -
trunk/BNC/src/bncrinex.h
r8936 r9158 47 47 static QString nextEpochStr(const QDateTime& datTim, 48 48 const QString& intStr, 49 bool rnxV 3,49 bool rnxV2, 50 50 QDateTime* nextEpoch = 0); 51 51 static std::string asciiSatLine(const t_satObs& obs, bool outLockTime); … … 71 71 QString _localSklNameAlternative; 72 72 bool _writeRinexFileOnlyWithSkl; 73 bool _rnxV 3;73 bool _rnxV2; 74 74 QByteArray _latitude; 75 75 QByteArray _longitude; -
trunk/BNC/src/bncsettings.cpp
r8870 r9158 91 91 setValue_p("rnxV2Priority", ""); 92 92 setValue_p("rnxScript", ""); 93 setValue_p("rnxV 3", "0");93 setValue_p("rnxV2", "0"); 94 94 // RINEX Ephemeris 95 95 setValue_p("ephPath", ""); 96 96 setValue_p("ephIntr", "1 day"); 97 97 setValue_p("ephOutPort", ""); 98 setValue_p("ephV 3", "0");98 setValue_p("ephV2", "0"); 99 99 // Reqc 100 100 setValue_p("reqcAction", ""); -
trunk/BNC/src/bncwindow.cpp
r9107 r9158 239 239 _rnxSkelLineEdit->setMaximumWidth(5*ww); 240 240 _rnxScrpLineEdit = new QLineEdit(settings.value("rnxScript").toString()); 241 _rnxV 3CheckBox = new QCheckBox();242 _rnxV 3CheckBox->setCheckState(Qt::CheckState(settings.value("rnxV3").toInt()));241 _rnxV2CheckBox = new QCheckBox(); 242 _rnxV2CheckBox->setCheckState(Qt::CheckState(settings.value("rnxV2").toInt())); 243 243 QString hlp = settings.value("rnxV2Priority").toString(); 244 244 if (hlp.isEmpty()) { … … 247 247 _rnxV2Priority = new QLineEdit(hlp); 248 248 249 connect(_rnxPathLineEdit, SIGNAL(textChanged(const QString &)), 250 this, SLOT(slotBncTextChanged())); 251 connect(_rnxV3CheckBox, SIGNAL(stateChanged(int)), 252 this, SLOT(slotBncTextChanged())); 249 connect(_rnxPathLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(slotBncTextChanged())); 250 connect(_rnxV2CheckBox, SIGNAL(stateChanged(int)), this, SLOT(slotBncTextChanged())); 253 251 254 252 // RINEX Ephemeris Options … … 263 261 } 264 262 _ephOutPortLineEdit = new QLineEdit(settings.value("ephOutPort").toString()); 265 _ephV 3CheckBox = new QCheckBox();266 _ephV 3CheckBox->setCheckState(Qt::CheckState(settings.value("ephV3").toInt()));263 _ephV2CheckBox = new QCheckBox(); 264 _ephV2CheckBox->setCheckState(Qt::CheckState(settings.value("ephV2").toInt())); 267 265 268 266 connect(_ephOutPortLineEdit, SIGNAL(textChanged(const QString &)), … … 764 762 oLayout->addWidget(new QLabel("Version 2 signal priority"), 5, 0); 765 763 oLayout->addWidget(_rnxV2Priority, 5, 1, 1, 15); 766 oLayout->addWidget(new QLabel("Version 3"), 6, 0);767 oLayout->addWidget(_rnxV 3CheckBox, 6, 1);764 oLayout->addWidget(new QLabel("Version 2"), 6, 0); 765 oLayout->addWidget(_rnxV2CheckBox, 6, 1); 768 766 oLayout->addWidget(new QLabel(""), 7, 1); 769 767 oLayout->setRowStretch(8, 999); … … 785 783 eLayout->addWidget(new QLabel("Port"), 3, 0); 786 784 eLayout->addWidget(_ephOutPortLineEdit, 3, 1); 787 eLayout->addWidget(new QLabel("Version 3"), 4, 0);788 eLayout->addWidget(_ephV 3CheckBox, 4, 1);785 eLayout->addWidget(new QLabel("Version 2"), 4, 0); 786 eLayout->addWidget(_ephV2CheckBox, 4, 1); 789 787 eLayout->setRowStretch(5, 999); 790 788 … … 938 936 pppLayout1->addWidget(new QLabel("Data source"), ir, 0); 939 937 pppLayout1->addWidget(_pppWidgets._dataSource, ir, 1); 940 pppLayout1->addWidget(new QLabel(" Version 3filenames"),ir, 4);941 pppLayout1->addWidget(_pppWidgets._v 3filenames, ir, 5, 1, 3);938 pppLayout1->addWidget(new QLabel(" Version 2 filenames"),ir, 4); 939 pppLayout1->addWidget(_pppWidgets._v2filenames, ir, 5, 1, 3); 942 940 ++ir; 943 941 pppLayout1->addWidget(new QLabel("Corrections stream"), ir, 0); … … 1292 1290 // WhatsThis, Network 1293 1291 // ------------------ 1294 _proxyHostLineEdit->setWhatsThis(tr("<p>If you are running BNC within a protected Local Area Network (LAN), you may need to use a proxy server to access the Internet. Enter your proxy server IP and port number in case one is operated in front of BNC. If you do not know the IP and port of your proxy server, check the proxy server settings in your Internet browser or ask your network administrator. </p><p>Note that IP streaming is sometimes not allowed in a LAN. In this case you need to ask your network administrator for an appropriate modification of the local security policy or for the installation of a TCP relay to the Ntrip Broadcasters. If this is not possible, you may need to run BNC outside your LAN on a network that has unobstructed connection to the Internet. <i>[key: proxyHost]</i></p>"));1292 _proxyHostLineEdit->setWhatsThis(tr("<p>If you are running BNC within a protected Local Area Network (LAN), you may need to use a proxy server to access the Internet. Enter your proxy server IP and port number in case one is operated in front of BNC. If you do not know the IP and port of your proxy server, check the proxy server settings in your Internet browser or ask your network administrator. Without any entry, BNC will try to use the system proxies. </p><p>Note that IP streaming is sometimes not allowed in a LAN. In this case you need to ask your network administrator for an appropriate modification of the local security policy or for the installation of a TCP relay to the Ntrip Broadcasters. If this is not possible, you may need to run BNC outside your LAN on a network that has unobstructed connection to the Internet. <i>[key: proxyHost]</i></p>")); 1295 1293 _proxyPortLineEdit->setWhatsThis(tr("<p>Enter your proxy server port number in case a proxy is operated in front of BNC. <i>[key: proxyPort]</i></p>")); 1296 1294 _sslCaCertPathLineEdit->setWhatsThis(tr("<p>Communication with an Ntrip Broadcaster over SSL requires the exchange of client and/or server certificates. Specify the path to a directory where you save certificates on your system. Don't try communication via SSL if you are not sure whether this is supported by the involved Ntrip Broadcaster.</p><p>Note that SSL communication is usually done over port 443. <i>[key: sslCaCertPath]</i></p>")); … … 1314 1312 _rnxScrpLineEdit->setWhatsThis(tr("<p>Whenever a RINEX Observation file is finally saved, you may want to compress, copy or upload it immediately, for example via FTP. BNC allows you to execute a script/batch file to carry out such operation.</p><p>Specify the full path of a script or batch file. BNC will pass the full RINEX Observation file path to the script as command line parameter (%1 on Windows systems, $1 on Unix/Linux/Mac systems). <i>[key: rnxScript]</i></p>")); 1315 1313 _rnxV2Priority->setWhatsThis(tr("<p>Specify a priority list of characters defining signal attributes as defined in RINEX Version 3. Priorities will be used to map observations with RINEX Version 3 attributes from incoming streams to Version 2. The underscore character '_' stands for undefined attributes. A question mark '?' can be used as wildcard which represents any one character.</p><p>Signal priorities can be specified as equal for all systems, as system specific or as system and freq. specific. For example: </li><ul><li>'CWPX_?' (General signal priorities valid for all GNSS) </li><li>'I:ABCX' (System specific signal priorities for IRNSS) </li><li>'G:12&PWCSLX G:5&IQX R:12&PC R:3&IQX' (System and frequency specific signal priorities) </li></ul>Default is the following priority list 'G:12&PWCSLX G:5&IQX R:12&PC R:3&IQX R:46&ABX E:16&BCXZ E:578&IQX J:1&SLXCZ J:26&SLX J:5&IQX C:267&IQX C:128&DPX C:7&DPZ I:ABCX S:1&C S:5&IQX'. <i>[key: rnxV2Priority]</i></p>")); 1316 _rnxV 3CheckBox->setWhatsThis(tr("<p>The default format for RINEX Observation files is RINEX Version 2.</p><p>Select 'Version 3' if you want to save observations in RINEX Version 3 format. <i>[key: rnxV3]</i></p>"));1314 _rnxV2CheckBox->setWhatsThis(tr("<p>The default format for RINEX Observation files is RINEX Version 3.</p><p>Select 'Version 2' if you want to save observations in RINEX Version 2 format. <i>[key: rnxV2]</i></p>")); 1317 1315 1318 1316 // WhatsThis, RINEX Ephemeris … … 1321 1319 _ephIntrComboBox->setWhatsThis(tr("<p>Select the length of the RINEX Navigation file. <i>[key: ephIntr]</i></p>")); 1322 1320 _ephOutPortLineEdit->setWhatsThis(tr("<p>BNC can produce ephemeris data in RINEX Navigation ASCII format on your local host through an IP port.</p><p>Specify a port number here to activate this function. <i>[key: ephOutPort]</i></p>")); 1323 _ephV 3CheckBox->setWhatsThis(tr("<p>The default format for output of RINEX Navigation data containing Broadcast Ephemeris is RINEX Version 2.</p><p>Select 'Version 3' if you want to output ephemeris in RINEX Version 3 format. <i>[key: ephV3]</i></p>"));1321 _ephV2CheckBox->setWhatsThis(tr("<p>The default format for output of RINEX Navigation data containing Broadcast Ephemeris is RINEX Version 3.</p><p>Select 'Version 2' if you want to output ephemeris in RINEX Version 2 format. <i>[key: ephV2]</i></p>")); 1324 1322 1325 1323 // WhatsThis, RINEX Editing & QC … … 1394 1392 _pppWidgets._antexFile->setWhatsThis(tr("<p>Observations in RTCM streams or RINEX files should be referred to the receiver's and to the satellite's Antenna Phase Center (APC) and therefore be corrected for<ul><li>Receiver APC offsets</li><li>Receiver APC variations</li><li>Satellite APC offsets.</li></ul> Specify the full path to an IGS 'ANTEX file' which contains APC offsets and variations.</p><p>If you don't specify an 'ANTEX file' then observations will not be corrected for APC offsets and variations.</p>")); 1395 1393 _pppWidgets._crdFile->setWhatsThis(tr("<p>Enter the full path to an ASCII file which specifies the streams or files of those stations you want to process. Specifying a 'Coordinates file' is optional. If it exists, it should contain one record per station with the following parameters separated by blank character:<p><ul><li>Specify the station either by<ul><li>the 'Mountpoint' of the station's RTCM stream (when in real-time PPP mode), or</li><li>the 4-charater station ID of the RINEX Observations file (when in post processing PPP mode).</li></ul></li><li>Approximate X,Y,Z coordinate of station's Antenna Reference Point [m] (ARP, specify '0.0 0.0 0.0' if unknown).</li><li>North, East and Up component of antenna eccentricity [m] (specify '0.0 0.0 0.0' if unknown).</li><li>20 Characters describing the antenna type and radome following the IGS 'ANTEX file' standard (leave blank if unknown).</li><li>Receiver type following the naming conventions for IGS equipment.</li></ul></p><p>Records with exclamation mark '!' in the first column or blank records will be interpreted as comment lines and ignored.</p>")); 1396 _pppWidgets._v 3filenames->setWhatsThis(tr("<p>Tick 'Version 3 filenames' to let BNC create so-called extended filenames for PPP logfiles, NMEA files and SINEX Troposphere files following the RINEX Version 3 standard.</p><p>Default is an empty check box, meaning to create filenames following the RINEX Version 2standard. The file content is not affected by this option. It only concerns the filenames.</p>"));1394 _pppWidgets._v2filenames->setWhatsThis(tr("<p>Tick 'Version 2 filenames' to let BNC create filenames for PPP logfiles , NMEA files and SINEX Troposphere files following the RINEX Version 2 standard.</p><p>Default is an empty check box, meaning to create filenames following the RINEX Version 3 standard. The file content is not affected by this option. It only concerns the filenames.</p>")); 1397 1395 _pppWidgets._logPath->setWhatsThis(tr("<p>Specify a directory for saving daily PPP logfiles. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no PPP logfiles shall be produced.</p>")); 1398 1396 _pppWidgets._nmeaPath->setWhatsThis(tr("<p>Specify a directory for saving coordinates in daily NMEA files. If the specified directory does not exist, BNC will not create such files.</p><p>Default is an empty option field, meaning that no NMEA file shall be produced.</p>")); … … 1515 1513 delete _rnxSkelLineEdit; 1516 1514 delete _rnxScrpLineEdit; 1517 delete _rnxV 3CheckBox;1515 delete _rnxV2CheckBox; 1518 1516 delete _rnxV2Priority; 1519 1517 delete _ephPathLineEdit; 1520 1518 delete _ephIntrComboBox; 1521 1519 delete _ephOutPortLineEdit; 1522 delete _ephV 3CheckBox;1520 delete _ephV2CheckBox; 1523 1521 delete _corrPathLineEdit; 1524 1522 delete _corrIntrComboBox; … … 1971 1969 settings.setValue("rnxScript", _rnxScrpLineEdit->text()); 1972 1970 settings.setValue("rnxV2Priority",_rnxV2Priority->text()); 1973 settings.setValue("rnxV 3", _rnxV3CheckBox->checkState());1971 settings.setValue("rnxV2", _rnxV2CheckBox->checkState()); 1974 1972 // RINEX Ephemeris 1975 1973 settings.setValue("ephPath", _ephPathLineEdit->text()); 1976 1974 settings.setValue("ephIntr", _ephIntrComboBox->currentText()); 1977 1975 settings.setValue("ephOutPort", _ephOutPortLineEdit->text()); 1978 settings.setValue("ephV 3", _ephV3CheckBox->checkState());1976 settings.setValue("ephV2", _ephV2CheckBox->checkState()); 1979 1977 // Broadcast Corrections 1980 1978 settings.setValue("corrPath", _corrPathLineEdit->text()); … … 2459 2457 enableWidget(enable, _rnxScrpLineEdit); 2460 2458 enableWidget(enable, _rnxV2Priority); 2461 enableWidget(enable, _rnxV 3CheckBox);2459 enableWidget(enable, _rnxV2CheckBox); 2462 2460 2463 2461 bool enable1 = true; 2464 enable1 = _rnxV 3CheckBox->isChecked();2462 enable1 = _rnxV2CheckBox->isChecked(); 2465 2463 if (enable && enable1) { 2464 enableWidget(true, _rnxV2Priority); 2465 } 2466 if (enable && !enable1) { 2466 2467 enableWidget(false, _rnxV2Priority); 2467 }2468 if (enable && !enable1) {2469 enableWidget(true, _rnxV2Priority);2470 2468 } 2471 2469 } … … 2473 2471 // RINEX Observations, Signal Priority 2474 2472 // ----------------------------------- 2475 if (sender() == 0 || sender() == _rnxV 3CheckBox) {2473 if (sender() == 0 || sender() == _rnxV2CheckBox) { 2476 2474 if (!_rnxPathLineEdit->text().isEmpty()) { 2477 2475 enableWidget(enable, _rnxIntrComboBox); 2478 enable = !_rnxV3CheckBox->isChecked();2476 enable = _rnxV2CheckBox->isChecked(); 2479 2477 enableWidget(enable, _rnxV2Priority); 2480 2478 } … … 2486 2484 enable = !_ephPathLineEdit->text().isEmpty() || !_ephOutPortLineEdit->text().isEmpty(); 2487 2485 enableWidget(enable, _ephIntrComboBox); 2488 enableWidget(enable, _ephV 3CheckBox);2486 enableWidget(enable, _ephV2CheckBox); 2489 2487 } 2490 2488 -
trunk/BNC/src/bncwindow.h
r8621 r9158 162 162 QLineEdit* _sp3CompLogLineEdit; 163 163 164 QCheckBox* _rnxV 3CheckBox;164 QCheckBox* _rnxV2CheckBox; 165 165 QLineEdit* _rnxV2Priority; 166 QCheckBox* _ephV 3CheckBox;166 QCheckBox* _ephV2CheckBox; 167 167 QLineEdit* _rnxSkelLineEdit; 168 168 QCheckBox* _rnxFileCheckBox; -
trunk/BNC/src/pppMain.cpp
r8961 r9158 462 462 opt->_aprSigPhaseBias = 1000.0; 463 463 // TODO: Find realistic values!!!!!! 464 opt->_noiseIon = 1.00;465 opt->_noiseCodeBias = 1.00;466 opt->_noisePhaseBias = 5.00;464 opt->_noiseIon = 5.00; // Todo: add all to table 465 opt->_noiseCodeBias = 5.00; 466 opt->_noisePhaseBias = 5.00; 467 467 // pseudo observations 468 opt->_sigmaGIMdiff = 2.00; // Todo: add to bncWindow468 opt->_sigmaGIMdiff = 5.00; // Todo: add to bncWindow 469 469 opt->_sigmaTz0 = 0.10; 470 470 -
trunk/BNC/src/pppRun.cpp
r8824 r9158 179 179 country; 180 180 181 bool v 3filenames = settings.value("PPP/v3filenames").toBool();181 bool v2filenames = settings.value("PPP/v2filenames").toBool(); 182 182 QString logFileSkl = settings.value("PPP/logPath").toString(); 183 183 int l = logFileSkl.length(); … … 189 189 logFileSkl += QDir::separator(); 190 190 } 191 if ( v3filenames) {191 if (!v2filenames) { 192 192 logFileSkl = logFileSkl + ID9 + "${V3}" + distStr + ".ppp"; 193 193 } … … 207 207 nmeaFileSkl += QDir::separator(); 208 208 } 209 if ( v3filenames) {209 if (!v2filenames) { 210 210 nmeaFileSkl = nmeaFileSkl + ID9 + "${V3}" + distStr + ".nmea"; 211 211 } … … 224 224 snxtroFileSkl += QDir::separator(); 225 225 } 226 if ( v3filenames) {226 if (!v2filenames) { 227 227 snxtroFileSkl = snxtroFileSkl + ID9 + "${V3}" + distStr + ".tra"; 228 228 } -
trunk/BNC/src/pppWidgets.cpp
r8961 r9158 76 76 _snxtroAc = new QLineEdit(); _snxtroAc ->setObjectName("PPP/snxtroAc"); _widgets << _snxtroAc; 77 77 _snxtroSol = new QLineEdit(); _snxtroSol ->setObjectName("PPP/snxtroSol"); _widgets << _snxtroSol; 78 _v 3filenames = new QCheckBox(); _v3filenames ->setObjectName("PPP/v3filenames"); _widgets << _v3filenames;78 _v2filenames = new QCheckBox(); _v2filenames ->setObjectName("PPP/v2filenames"); _widgets << _v2filenames; 79 79 _staTable = new QTableWidget(); _staTable ->setObjectName("PPP/staTable"); _widgets << _staTable; 80 80 _lcGPS = new QComboBox(); _lcGPS ->setObjectName("PPP/lcGPS"); _widgets << _lcGPS; … … 245 245 delete _snxtroAc; 246 246 delete _snxtroSol; 247 delete _v 3filenames;247 delete _v2filenames; 248 248 for (int iRow = _staTable->rowCount()-1; iRow >=0; iRow--) { 249 249 _staTable->removeRow(iRow); … … 376 376 _eleWgtCode ->setCheckState(Qt::CheckState(settings.value(_eleWgtCode ->objectName()).toInt())); 377 377 _eleWgtPhase->setCheckState(Qt::CheckState(settings.value(_eleWgtPhase->objectName()).toInt())); 378 _v 3filenames->setCheckState(Qt::CheckState(settings.value(_v3filenames->objectName()).toInt()));378 _v2filenames->setCheckState(Qt::CheckState(settings.value(_v2filenames->objectName()).toInt())); 379 379 380 380 // SpinBoxex … … 445 445 settings.setValue(_snxtroAc ->objectName(), _snxtroAc ->text()); 446 446 settings.setValue(_snxtroSol ->objectName(), _snxtroSol ->text()); 447 settings.setValue(_v 3filenames ->objectName(), _v3filenames ->checkState());447 settings.setValue(_v2filenames ->objectName(), _v2filenames ->checkState()); 448 448 settings.setValue(_lcGPS ->objectName(), _lcGPS ->currentText()); 449 449 settings.setValue(_lcGLONASS ->objectName(), _lcGLONASS ->currentText()); -
trunk/BNC/src/pppWidgets.h
r8905 r9158 60 60 QLineEdit* _snxtroAc; 61 61 QLineEdit* _snxtroSol; 62 QCheckBox* _v 3filenames;62 QCheckBox* _v2filenames; 63 63 QTableWidget* _staTable; 64 64 QComboBox* _lcGPS; -
trunk/BNC/src/reqcdlg.cpp
r8637 r9158 95 95 96 96 _reqcRnxVersion->setEditable(false); 97 _reqcRnxVersion->addItems(QString(" 2,3").split(","));97 _reqcRnxVersion->addItems(QString("3,2").split(",")); 98 98 _reqcRnxVersion->setMaximumWidth(7*ww); 99 99
Note:
See TracChangeset
for help on using the changeset viewer.