Changeset 9652 in ntrip
- Timestamp:
- Mar 11, 2022, 9:57:17 AM (3 years ago)
- Location:
- trunk/BNC/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/bncmain.cpp
r9559 r9652 267 267 "Upload Corrections Panel keys:\n" 268 268 " uploadMountpointsOut {Upload corrections table [character string, semicolon separated list, each element in quotation marks, example:\n" 269 " \"igs-ip.net,2101,SSRA03IGS0,1,,pass,IGS14,RTCM-SSR,0,/home/user/BNC OUTPUT${V3PROD}.sp3,/home/user/BNCOUTPUT${V3PROD}.clk,258,1,0;\n"269 " \"igs-ip.net,2101,SSRA03IGS0,1,,pass,IGS14,RTCM-SSR,0,/home/user/BNC0SSRRTS${V3PROD}.sp3,/home/user/BNC0SSRRTS${V3PROD}.clk,/home/user/BNC0SSRRTS${V3PROD}.bia,258,1,0;\n" 270 270 " euref-ip.net,2101,EUREF01,1,,pass,ETRF2000,RTCM-SSR,0,,,258,2,0\"]}\n" 271 " uploadIntr {Length of SP3 and Clock RINEX file interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]}\n"271 " uploadIntr {Length of SP3, Clock RINEX and Bias SINEX file interval [character string: 1 min|2 min|5 min|10 min|15 min|30 min|1 hour|1 day]}\n" 272 272 " uploadSamplRtcmEphCorr {Orbit corrections stream sampling rate [integer number of seconds: 0|5|10|15|20|25|30|35|40|45|50|55|60]}\n" 273 273 " uploadSamplSp3 {SP3 file sampling rate [integer number of minutes: 0-15]}\n" … … 325 325 "//user:pass@igs-ip.net:2101/FFMJ00DEU1 RTCM_3.1 DEU 50.09 8.66 no 2\"\n" 326 326 "(7) bnc --key cmbStreams \"CLK11 BLG 1.0;CLK93 CNES 1.0\"\n" 327 "(8) bnc --key uploadMountpointsOut \"products.igs-ip.net,98756,TEST,letmein,IGS14,2,/Users/weber/BNC OUTPUT${V3PROD}.clk,,33,3,2;"327 "(8) bnc --key uploadMountpointsOut \"products.igs-ip.net,98756,TEST,letmein,IGS14,2,/Users/weber/BNC0SSRRTS${V3PROD}.clk,,33,3,2;" 328 328 "euref-ip.net,333,TEST2,aaaaa,ETRF2000,2,,,33,5,5\"\n" 329 329 "(9) bnc --key PPP/staTable \"FFMJ00DEU1,100.0,100.0,100.0,100.0,100.0,100.0,0.1,3e-6,7777;" -
trunk/BNC/src/bncoutf.cpp
r9418 r9652 72 72 int indHlp = intStr.indexOf("min"); 73 73 if (!sampl) { 74 sampl++; 74 if (_sklBaseName.contains("V3PROD")){ 75 sampl +=5; 76 } else { 77 sampl++; 78 } 75 79 } 76 80 … … 160 164 addition = QString("_CLK"); 161 165 } 166 if (_extension.contains("bia") || _extension.contains("BIA")) { 167 addition = QString("_ABS"); 168 } 162 169 if (_extension.count(".") == 2) { 163 170 _extension.replace(0,1,"_"); … … 214 221 return success; 215 222 } 223 224 QString bncoutf::agencyFromFileName() { 225 return QString("%1").arg(_sklBaseName.left(3)); 226 } -
trunk/BNC/src/bncoutf.h
r9158 r9652 7 7 8 8 #include "bncutils.h" 9 #include <iostream> 9 10 10 11 class bncoutf { … … 13 14 virtual ~bncoutf(); 14 15 t_irc write(int GPSweek, double GPSweeks, const QString& str); 15 16 QString agencyFromFileName(); 16 17 protected: 17 18 virtual t_irc reopen(int GPSweek, double GPSweeks); -
trunk/BNC/src/bncsettings.cpp
r9424 r9652 188 188 setValue_p("uploadSamplSp3", "1"); 189 189 setValue_p("uploadSamplClkRnx", "10"); 190 setValue_p("uploadSamplBiaSnx", "60"); 190 191 setValue_p("trafo_dx", ""); 191 192 setValue_p("trafo_dy", ""); -
trunk/BNC/src/bncwindow.cpp
r9635 r9652 1507 1507 // WhatsThis, Upload Corrections 1508 1508 // ----------------------------- 1509 _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to Broadcast Ephemeris (Broadcast Corrections) in different SSR formats. You may have a situation where clocks and orbits come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified Ntrip Broadcaster Host and Port</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris Corrections if you specify correction streams in the 'Combine Corrections' table.</p><p>To fill the 'Upload Corrections' table, hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an Ntrip Broadcaster and hit Enter. Select the Ntrip Version that shall be used for data upload. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the Ntrip Broadcaster IP port (default is 80), the mountpoint and the stream upload password. If Ntrip Version 2 is chosen, click to the 'User' field to enter a stream upload user name. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference System (e.g. IGS14) for outgoing clock and orbit corrections.</p><p>Select a target SSR format (e.g. IGS-SSR) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create such files. The following is a path example for a Linux system: /home/user/BNCOUTPUT${V3PROD}.sp3<br>Note that '${V3PROD}' produces the time stamp in the filename, which is related to the RINEX version 3 filename concept.</p><p>Specify a path for saving generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system: /home/user/BNCOUTPUT${V3PROD}.clk<br>Note that '${V3PROD}' produces the time stamp in the filename, which is related to the RINEX version 3 filename concept.</p><p>Finally, specify a SSR Provider ID (issued by RTCM), SSR Solution ID, and SSR Issue of Data number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Correction stream, BNC will add that stream content to the Broadcast Ephemeris to save results in files specified via SP3 and/or Clock RINEX file path. You should then define only the SP3 and Clock RINEX file path and no further option in the 'Upload Corrections' table. <i>[key: uploadMountpointsOut]</i></p>"));1509 _uploadTable->setWhatsThis(tr("<p>BNC can upload clock and orbit corrections to Broadcast Ephemeris (Broadcast Corrections) as well as Code Biases in different SSR formats. You may have a situation where clocks, orbits and code biases come from an external Real-time Network Engine (1) or a situation where clock and orbit corrections are combined within BNC (2).</p><p>(1) BNC identifies a stream as coming from a Real-time Network Engine if its format is specified as 'RTNET' and hence its decoder string in the 'Streams' canvas is 'RTNET'. It encodes and uploads that stream to the specified Ntrip Broadcaster Host and Port</p><p>(2) BNC understands that it is expected to encode and upload combined Broadcast Ephemeris Corrections if you specify correction streams in the 'Combine Corrections' table.</p><p>To fill the 'Upload Corrections' table, hit the 'Add Row' button, double click on the 'Host' field to enter the IP or URL of an Ntrip Broadcaster and hit Enter. Select the Ntrip Version that shall be used for data upload. Then double click on the 'Port', 'Mount' and 'Password' fields to enter the Ntrip Broadcaster IP port (default is 80), the mountpoint and the stream upload password. If Ntrip Version 2 is chosen, click to the 'User' field to enter a stream upload user name. An empty 'Host' option field means that you don't want to upload corrections.</p><p>Select a target coordinate reference System (e.g. IGS14) for outgoing clock and orbit corrections.</p><p>Select a target SSR format (e.g. IGS-SSR) for outgoing clock and orbit corrections.</p><p>By default orbit and clock corrections refer to Antenna Phase Center (APC). Tick 'CoM' to refer uploaded corrections to Center of Mass instead of APC.</p><p>Specify a path for saving generated Broadcast Corrections plus Broadcast Ephemeris as SP3 orbit files. If the specified directory does not exist, BNC will not create such files. The following is a path example for a Linux system: /home/user/BNC0SSRRTS${V3PROD}.sp3.</p><p>Specify a path for saving generated Broadcast Correction clocks plus Broadcast Ephemeris clocks as Clock RINEX files. If the specified directory does not exist, BNC will not create Clock RINEX files. The following is a path example for a Linux system: /home/user/BNC0SSRRTS${V3PROD}.clk.</p><p>Specify a path for saving generated Code Biases as SINEX Bias files. If the specified directory does not exist, BNC will not create SINEX Bias files. The following is a path example for a Linux system: /home/user/BNC0SSRRTS${V3PROD}.bia.</p><p>Note that '${V3PROD}' produces the time stamp in the filename, which is related to the RINEX version 3 filename concept.</p><p>Finally, specify a SSR Provider ID (issued by RTCM), SSR Solution ID, and SSR Issue of Data number.</p><p>In case the 'Combine Corrections' table contains only one Broadcast Correction stream, BNC will add that stream content to the Broadcast Ephemeris to save results in files specified via SP3 and/or Clock RINEX file path. You should then define only the SP3 and Clock RINEX file path and no further option in the 'Upload Corrections' table. <i>[key: uploadMountpointsOut]</i></p>")); 1510 1510 addUploadRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Upload Corrections' table.</p>")); 1511 1511 delUploadRowButton->setWhatsThis(tr("<p>Hit 'Del Row' button to delete the highlighted line(s) from the 'Upload Corrections' table.</p>")); 1512 _uploadIntrComboBox->setWhatsThis(tr("<p>Select the length of the SP3 and Clock RINEX files. <i>[key: uploadIntr]</i></p>"));1512 _uploadIntrComboBox->setWhatsThis(tr("<p>Select the length of the SP3, Clock RINEX and Bias SINEX files. <i>[key: uploadIntr]</i></p>")); 1513 1513 _uploadSamplRtcmEphCorrSpinBox->setWhatsThis(tr("<p>Select a stream's orbit correction sampling interval in seconds.</p><p>A value of zero '0' tells BNC to upload all available orbit and clock correction samples together in combined messages. <i>[key: uploadSamplRtcmEphCorr]</i></p>")); 1514 1514 _uploadSamplSp3SpinBox->setWhatsThis(tr("<p>Select a SP3 orbit file sampling interval in minutes.</p><p>A value of zero '0' tells BNC to store all available samples into SP3 orbit files. <i>[key: uploadSamplSp3]</i></p>")); -
trunk/BNC/src/src.pri
r9523 r9652 58 58 bncmap.h bncantex.h bncephuser.h \ 59 59 bncoutf.h bncclockrinex.h bncsp3.h bncsinextro.h \ 60 bncbissinex.h \ 60 61 bncbytescounter.h bncsslconfig.h reqcdlg.h \ 61 62 upload/bncrtnetdecoder.h upload/bncuploadcaster.h \ … … 96 97 bncmap_svg.cpp bncantex.cpp bncephuser.cpp \ 97 98 bncoutf.cpp bncclockrinex.cpp bncsp3.cpp bncsinextro.cpp \ 99 bncbiassinex.cpp \ 98 100 bncbytescounter.cpp bncsslconfig.cpp reqcdlg.cpp \ 99 101 ephemeris.cpp t_prn.cpp satObs.cpp \ -
trunk/BNC/src/upload/bncrtnetdecoder.cpp
r9025 r9652 76 76 hlp[3], hlp[4], 77 77 hlp[5], hlp[6], hlp[7], CoM, 78 hlp[9], hlp[10], 78 hlp[9], hlp[10],hlp[11], 79 79 PID, SID, IOD, iRow); 80 80 newCaster->start(); -
trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
r9512 r9652 20 20 #include "bncephuser.h" 21 21 #include "bncclockrinex.h" 22 #include "bncbiassinex.h" 22 23 #include "bncsp3.h" 23 24 #include "gnss.h" … … 33 34 const QString& userName, const QString& password, 34 35 const QString& crdTrafo, const QString& ssrFormat, bool CoM, const QString& sp3FileName, 35 const QString& rnxFileName, int PID, int SID, int IOD, int iRow) :36 const QString& rnxFileName, const QString& bsxFileName, int PID, int SID, int IOD, int iRow) : 36 37 bncUploadCaster(mountpoint, outHost, outPort, ntripVersion, userName, password, iRow, 0) { 37 38 … … 53 54 if (!rnxFileName.isEmpty()) { 54 55 _casterID += " " + rnxFileName; 56 } 57 58 if (!bsxFileName.isEmpty()) { 59 _casterID += " " + bsxFileName; 55 60 } 56 61 … … 87 92 } 88 93 int samplClkRnx = settings.value("uploadSamplClkRnx").toInt(); 89 int samplSp3 = settings.value("uploadSamplSp3").toInt() * 60; 94 int samplSp3 = settings.value("uploadSamplSp3").toInt() * 60; 95 int samplBiaSnx = settings.value("uploadSamplBiaSnx").toInt(); 90 96 91 97 if (_samplRtcmEphCorr == 0.0) { … … 113 119 _sp3 = 0; 114 120 } 121 122 // SINEX writer 123 // ------------ 124 if (!bsxFileName.isEmpty()) { 125 _bsx = new bncBiasSinex(bsxFileName, intr, samplBiaSnx); 126 } 127 else { 128 _bsx = 0; 129 } 130 115 131 116 132 // Set Transformation Parameters … … 674 690 biasSat->Biases[ii].Type = type; 675 691 biasSat->Biases[ii].Bias = it.value(); 692 if (_bsx) { 693 QString obsCode = 'C' + it.key(); 694 _bsx->write(epoTime.gpsw(), epoTime.gpssec(), prnStr, obsCode, it.value()); 695 } 676 696 } 677 697 } … … 737 757 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator; 738 758 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter; 759 if (_bsx) { 760 QString obsCode = 'L' + pbSig.type; 761 _bsx->write(epoTime.gpsw(), epoTime.gpssec(), prnStr, obsCode, pbSig.bias); 762 } 739 763 } 740 764 } -
trunk/BNC/src/upload/bncrtnetuploadcaster.h
r9512 r9652 14 14 class bncClockRinex; 15 15 class bncSP3; 16 class bncBiasSinex; 16 17 17 18 class bncRtnetUploadCaster : public bncUploadCaster { … … 26 27 const QString& sp3FileName, 27 28 const QString& rnxFileName, 29 const QString& bsxFileName, 28 30 int PID, int SID, int IOD, int iRow); 29 31 void decodeRtnetStream(char* buffer, int bufLen); … … 78 80 bncClockRinex* _rnx; 79 81 bncSP3* _sp3; 82 bncBiasSinex* _bsx; 80 83 QMap<QString, const t_eph*>* _usedEph; 81 84 };
Note:
See TracChangeset
for help on using the changeset viewer.