Changeset 10753 in ntrip
- Timestamp:
- Sep 2, 2025, 1:03:59 PM (4 weeks ago)
- Location:
- trunk/BNC
- Files:
-
- 11 added
- 8 deleted
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/Example_Configs/00_Readme.txt
r9969 r10753 220 220 with an update rate of 5 seconds. 221 221 222 20. Configuration File 'CompareSp3.bnc' 222 20. Configuration File 'UploadRaw.bnc' 223 Purpose: Forward the stream contents of the incoming stream BCEP00BKG0 224 from products.igs-ip.net to another caster. 225 226 21. Configuration File 'CompareSp3.bnc' 223 227 Purpose: Compare two SP3 files to calculate RMS values for orbit and clock 224 228 differences. GPS satellite G05 and GLONASS satellite R18 are excluded from this 225 229 comparison. Comparison results are saved in a logfile. 226 230 227 2 1. Configuration File 'Empty.bnc'231 22. Configuration File 'Empty.bnc' 228 232 Purpose: Provide an empty example configuration file for BNC which only 229 233 contains the default settings. … … 237 241 The scripts expect 'Example_Configs' to be the current working directory. 238 242 239 2 2. Shell Script 'RinexQC.sh'243 23. Shell Script 'RinexQC.sh' 240 244 Purpose: Equals configuration file example 'RinexQC.bnc', checks the quality of 241 245 a RINEX Version 4 file by means of a multipath analysis. The platform offscreen … … 243 247 All results are saved on disk. 244 248 245 2 3. Shell Script 'RinexConcat.sh'249 24. Shell Script 'RinexConcat.sh' 246 250 Purpose: Equals configuration file example 'RinexConcat.bnc', concatenates 247 251 several RINEX Version 3 files to produce one compiled file and edit the marker … … 249 253 offline. 250 254 251 2 4. Shell Script 'RinexEph.sh'255 25. Shell Script 'RinexEph.sh' 252 256 Purpose: Equals configuration file example 'RinexEph.bnc', converts a RTCM 253 257 stream with navigation messages to RINEX Navigation files. The configuration … … 258 262 Ephemeris resources. 259 263 260 2 5. Shell Script 'ScanLate.sh'264 26. Shell Script 'ScanLate.sh' 261 265 Purpose: Scan an observation stream for contained RTCM message types, print 262 266 observation latencies. The output is saved in a logfile. Latencies are … … 264 268 seconds. 265 269 266 2 6. Shell Script 'RinexObs.sh'270 27. Shell Script 'RinexObs.sh' 267 271 Purpose: Equals configuration file example 'RinexObs.bnc', converts RTCM 268 272 streams to RINEX Observation files. The configuration pulls streams from two … … 280 284 always overrule options contained in the configuration file. 281 285 282 2 7. Shell Script 'CompareSp3.sh'286 28. Shell Script 'CompareSp3.sh' 283 287 Purpose: Equals configuration file example 'CompareSp3.bnc', compares two SP3 284 288 files to calculate RMS values for orbit and clock differences. However, instead … … 288 292 in a logfile. 289 293 290 Andrea Stuerze, BKG291 Frankfurt, September 2022292 igs-ip@bkg.bund.de293 -
trunk/BNC/Example_Configs/01_RinexObs.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 132 uploadSamplClkRnx=5 -
trunk/BNC/Example_Configs/02_RinexEph.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/03_BrdcCorr.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec 134 135 uploadSamplSp3=30 sec 136 135 137 [PPP] 136 138 antexFile= -
trunk/BNC/Example_Configs/04_RinexConcat.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/05_RinexQC.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/06_RTK.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/07_FeedEngine.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/08_PPP.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/09_PPPNet.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/10_PPPQuickStart.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/11_PPPPostProc.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec 134 135 uploadSamplSp3=30 sec 136 135 137 [PPP] 136 138 antexFile=Input/igs20.atx -
trunk/BNC/Example_Configs/12_PPPOsm.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/13_PPPGalHAS.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/14_SaveSp3.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut=",,,2,,,IGS20,RTCM-SSR,2,Output/BKG0MGXRTS${V3PROD}.SP3,Output/BKG0MGXRTS${V3PROD}.CLK,,,,,0 byte(s)," 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/15_Sp3ETRFPPP.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut=",,,2,,,ETRF2000,IGS-SSR,2,Output/BKG0MGXRTS${V3PROD}.SP3,Output/BKG0MGXRTS${V3PROD}.CLK,,,,,0 byte(s)," 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/Example_Configs/16_Upload.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut="products.igs-ip.net,2101,CLOCK,2,user,pass,IGS20,IGS-SSR,0,Output/BKG0MGXRTS${V3PROD}.SP3,Output/BKG0MGXRTS${V3PROD}.CLK,Output/BKG0MGXRTS${V3PROD}.BIA,,,,0 byte(s)," 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=0 sec -
trunk/BNC/Example_Configs/17_Combi.bnc
r10663 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut="products.igs-ip.net,2101,SSRA02IGS1_T,2,,,IGS20,IGS-SSR,2,Output/BKG0MGXRTS${V3PROD}.SP3,Output/BKG0MGXRTS${V3PROD}.CLK,Output/BKG0MGXRTS${V3PROD}.BIA,,,,0 byte(s)," 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 132 uploadSamplClkRnx=5 -
trunk/BNC/Example_Configs/18_CombiPPP.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut="products.igs-ip.net,2101,SSRA02IGS1_T,2,,,IGS20,IGS-SSR,2,Output/BKG0MGXRTS${V3PROD}.SP3,Output/BKG0MGXRTS${V3PROD}.CLK,Output/BKG0MGXRTS${V3PROD}.BIA,,,,0 byte(s)," 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=0 sec -
trunk/BNC/Example_Configs/19_UploadEph.bnc
r10668 r10753 128 128 uploadIntr=1 day 129 129 uploadMountpointsOut= 130 uploadRawMountpointsOut= 130 131 uploadSamplBiaSnx=5 131 uploadSamplClkRnx 5132 uploadSamplClkRnx=0 132 133 uploadSamplRtcmEph=5 133 134 uploadSamplRtcmEphCorr=5 sec -
trunk/BNC/src/bnccaster.cpp
r10696 r10753 71 71 reopenOutFile(); 72 72 73 // FeedEngine output port 74 // ---------------------- 73 75 int port = settings.value("outPort").toInt(); 74 75 76 if (port != 0) { 76 77 _server = new QTcpServer; … … 136 137 _miscSockets = 0; 137 138 } 139 140 // RawUploadCaster 141 _bncRawUploadCaster = new bncRawUploadCaster(); 142 138 143 } 139 144 … … 162 167 delete _miscServer; 163 168 delete _miscSockets; 169 delete _bncRawUploadCaster; 164 170 } 165 171 … … 281 287 connect(getThread, SIGNAL(newRawData(QByteArray, QByteArray)), 282 288 this, SLOT(slotNewRawData(QByteArray, QByteArray))); 289 290 connect(getThread, SIGNAL(newRawData(QByteArray, QByteArray)), 291 _bncRawUploadCaster, SLOT(slotNewRawData(QByteArray, QByteArray))); 283 292 284 293 connect(getThread, SIGNAL(getThreadFinished(QByteArray)), -
trunk/BNC/src/bnccaster.h
r9107 r10753 33 33 34 34 #include "satObs.h" 35 #include "upload/bncrawuploadcaster.h" 35 36 36 37 class bncGetThread; … … 88 89 QTcpServer* _miscServer; 89 90 QList<QTcpSocket*>* _miscSockets; 91 bncRawUploadCaster* _bncRawUploadCaster; 90 92 QMap<std::string, QMap<t_prn, double> > _lockTimeMap; 91 93 QMap<std::string, QMap<t_prn, int> > _jumpCounterMap; -
trunk/BNC/src/bnccore.h
r10465 r10753 73 73 QMap<int, bncTableItem*> _uploadTableItems; 74 74 QMap<int, bncTableItem*> _uploadEphTableItems; 75 QMap<int, bncTableItem*> _uploadRawTableItems; 75 76 76 77 public slots: -
trunk/BNC/src/bncgetthread.cpp
r10696 r10753 344 344 _decoder = new bncRtnetDecoder(); 345 345 } else { 346 emit(newMessage(_staID + ": Unknown data format " + _format, true)); 346 emit(newMessage(_staID + ": Unknown data format " + _format + ". Please change the format entry to ZERO or ZERO2FILE to forward unchanged data.", true)); 347 347 _isToBeDeleted = true; 348 348 return failure; -
trunk/BNC/src/bnchelp.html
r10694 r10753 247 247 2.16.3 <a href=#brdcsys>Satellite System </a><br> 248 248 2.16.4 <a href=#brdcsmpl>Sampling</a><br> 249 2.17 <a href=#streams><b>Streams Canvas</b></a><br> 250 2.17.1 <a href=#streamedit>Edit Streams</a><br> 251 2.17.2 <a href=#streamdelete>Delete Stream</a><br> 252 2.17.3 <a href=#streamconf>Reconfigure Stream Selection On-the-fly</a><br> 253 2.18 <a href=#logs><b>Logging Canvas</b></a><br> 254 2.18.1 <a href=#logfile>Log</a><br> 255 2.18.2 <a href=#throughput>Throughput</a><br> 256 2.18.3 <a href=#latency>Latency</a><br> 257 2.18.4 <a href=#ppptab>PPP Plot</a><br> 258 2.19 <a href=#bottom><b>Bottom Menu Bar</b></a><br> 259 2.19.1 <a href=#streamadd>Add Stream</a><br> 260 2.19.1.1 <a href=#streamcaster>Add Stream - Coming from Caster</a><br> 261 2.19.1.1.1 <a href=#streamhost>Caster Host and Port</a><br> 262 2.19.1.1.2 <a href=#streamtable>Casters Table</a><br> 263 2.19.1.1.3 <a href=#streamuser>User and Password</a><br> 264 2.19.1.1.4 <a href=#gettable>Get Table</a><br> 265 2.19.1.1.5 <a href=#ntripv>Ntrip Version</a><br> 266 2.19.1.1.6 <a href=#castermap>Map</a><br> 267 2.19.1.2 <a href=#streamip>Add Stream - Coming from TCP/IP Port</a><br> 268 2.19.1.3 <a href=#streamudp>Add Stream - Coming from UDP Port</a><br> 269 2.19.1.4 <a href=#streamser>Add Stream - Coming from Serial Port</a><br> 270 2.19.2 <a href=#streamsdelete>Delete Stream</a><br> 271 2.19.3 <a href=#streamsmap>Map</a><br> 272 2.19.4 <a href=#start>Start</a><br> 273 2.19.5 <a href=#stop>Stop</a><br> 274 2.19.6 <a href=#contexthelp>Help? = Shift+F1</a><br> 275 2.20 <a href=#cmd><b>Command Line Options</b></a><br> 276 2.20.1 <a href=#cmdVersion>Version</a><br> 277 2.20.2 <a href=#cmdDisplay>Display</a><br> 278 2.20.3 <a href=#nw>No Window Mode</a><br> 279 2.20.4 <a href=#post>File Mode</a><br> 280 2.20.5 <a href=#conffile>Configuration File</a><br> 281 2.20.6 <a href=#confopt>Configuration Options</a><br><br> 249 2.17 <a href=#upraw><b>Upload Raw Data - NtripServer Functionality</b></a><br> 250 2.17.1 <a href=#rawsourcemount>Source Mountpoint</a><br> 251 2.17.2 <a href=#rawserver>Host & Port</a><br> 252 2.17.3 <a href=#rawmount>Upload Mountpoint, Ntrip Version, User, Password</a><br> 253 2.18 <a href=#streams><b>Streams Canvas</b></a><br> 254 2.18.1 <a href=#streamedit>Edit Streams</a><br> 255 2.18.2 <a href=#streamdelete>Delete Stream</a><br> 256 2.18.3 <a href=#streamconf>Reconfigure Stream Selection On-the-fly</a><br> 257 2.19 <a href=#logs><b>Logging Canvas</b></a><br> 258 2.19.1 <a href=#logfile>Log</a><br> 259 2.19.2 <a href=#throughput>Throughput</a><br> 260 2.19.3 <a href=#latency>Latency</a><br> 261 2.19.4 <a href=#ppptab>PPP Plot</a><br> 262 2.20 <a href=#bottom><b>Bottom Menu Bar</b></a><br> 263 2.20.1 <a href=#streamadd>Add Stream</a><br> 264 2.20.1.1 <a href=#streamcaster>Add Stream - Coming from Caster</a><br> 265 2.20.1.1.1 <a href=#streamhost>Caster Host and Port</a><br> 266 2.20.1.1.2 <a href=#streamtable>Casters Table</a><br> 267 2.20.1.1.3 <a href=#streamuser>User and Password</a><br> 268 2.20.1.1.4 <a href=#gettable>Get Table</a><br> 269 2.20.1.1.5 <a href=#ntripv>Ntrip Version</a><br> 270 2.20.1.1.6 <a href=#castermap>Map</a><br> 271 2.20.1.2 <a href=#streamip>Add Stream - Coming from TCP/IP Port</a><br> 272 2.20.1.3 <a href=#streamudp>Add Stream - Coming from UDP Port</a><br> 273 2.20.1.4 <a href=#streamser>Add Stream - Coming from Serial Port</a><br> 274 2.20.2 <a href=#streamsdelete>Delete Stream</a><br> 275 2.20.3 <a href=#streamsmap>Map</a><br> 276 2.20.4 <a href=#start>Start</a><br> 277 2.20.5 <a href=#stop>Stop</a><br> 278 2.20.6 <a href=#contexthelp>Help? = Shift+F1</a><br> 279 2.21 <a href=#cmd><b>Command Line Options</b></a><br> 280 2.21.1 <a href=#cmdVersion>Version</a><br> 281 2.21.2 <a href=#cmdDisplay>Display</a><br> 282 2.21.3 <a href=#nw>No Window Mode</a><br> 283 2.21.4 <a href=#post>File Mode</a><br> 284 2.21.5 <a href=#conffile>Configuration File</a><br> 285 2.21.6 <a href=#confopt>Configuration Options</a><br><br> 282 286 <b>3.</b> <a href=#annex><b>Annex</b></a><br><br> 283 287 3.1 <a href=#rtcm>RTCM Standards</a><br> … … 1089 1093 </li> 1090 1094 1095 <li>Configuration File 'UploadRaw.bnc'<br> 1096 Purpose: Forward the stream contents of the incoming stream BCEP00BKG0 1097 from products.igs-ip.net to another caster. 1098 </li> 1099 1091 1100 <li>Configuration File 'CompareSp3.bnc'<br> 1092 1101 Purpose: Compare two SP3 files to calculate RMS values for orbit and clock … … 1107 1116 'Example_Configs' to be the current working directory. 1108 1117 1109 <ol start="2 2">1118 <ol start="23"> 1110 1119 <li>Shell Script 'RinexQC.sh'<br> 1111 1120 Purpose: Equals configuration file example 'RinexQC.bnc', checks the quality of … … 1153 1162 For specific applications you may like to use your own set of standard configuration options from a configuration file and update some of its content via command line. When using a configuration file together with command line configuration options in one BNC call, the command line configuration options will always overrule options contained in the configuration file. 1154 1163 1155 <ol start="2 7">1164 <ol start="28"> 1156 1165 <li>Shell Script 'CompareSp3.sh'<br> 1157 1166 Purpose: Equals configuration file example 'CompareSp3.bnc', compares two SP3 … … 5563 5572 <p>Figure 32: BNC producing Broadcast Ephemeris streams from globally distributed RTCM streams; upload in RTCM format to an Ntrip Broadcaster</p> 5564 5573 5565 <p><h4 id="streams">2.17 Streams Canvas</h4></p> 5574 <p><h4 id="upraw">2.17 Upload Raw Data - NtripServer Functionality</h4></p> 5575 <p> 5576 BNC can upload Raw Data streams in any format like a NtripServer. To fill the 'Upload Raw Data' table, hit the 'Add Row' button. 5577 </p> 5578 <p><h4 id="rawsourcemount">2.17.1 Source Mountpoint</h4></p> 5579 <p> 5580 Within the 'Source Mountpoint' field please specify the Source of data from the 'Streams' section below, which shall be forwarded without decoding. 5581 If the decoder string is not an accepted one ('RTCM_2.x', 'RTCM_3.x' and 'RTNET'), please change the decoder string to 5582 <ul> 5583 <li> 'ZERO' (forward the raw data) or </li> 5584 <li> 'ZERO2FILE' (forward and store the raw data)</li> 5585 </ul> in addition. 5586 </p> 5587 <p><h4 id="rawserver">2.17.2 Host & Port - optional</h4></p> 5588 <p> 5589 Specify the 'Host' IP number or URL of an Ntrip Broadcaster to upload the stream. An empty option field means that you 5590 do not want to upload Broadcast Ephemeris. 5591 </p> 5592 <p> 5593 Enter the Ntrip Broadcaster's IP 'Port' number for stream upload. Note that Ntrip Broadcasters are often configured to provide 5594 access through more than one port, usually ports 80 and 2101. If you experience communication problems on port 80, you should 5595 try to use the alternative port(s). 5596 </p> 5597 5598 <p><h4 id="rawmount">2.17.3 Mountpoint, Ntrip Version, User, Password - mandatory if 'Host' is set</h4></p> 5599 <p> 5600 BNC uploads a stream to the Ntrip Broadcaster by referring it to a dedicated mountpoint that has been set by its operator. 5601 Specify the mountpoint based on the details you received for your stream from the operator. It is often a 9-character ID (capital letters) 5602 plus an integer number. 5603 </p> 5604 <p> 5605 For stream upload the Ntrip Version can be chosen. An Ntrip version 1 upload is protected through an upload 'Password' only. 5606 For an Ntrip Version 2 upload an upload 'User' is required in addition. Enter the user name and the password you received 5607 from the Ntrip Broadcaster operator along with the mountpoint. 5608 </p> 5609 5610 <p><h4 id="streams">2.18 Streams Canvas</h4></p> 5566 5611 <p> 5567 5612 Each stream on an Ntrip Broadcaster (and consequently on BNC) is defined using a unique source ID called mountpoint. An Ntrip Client like BNC … … 5587 5632 </table> 5588 5633 </p> 5589 <p><h4 id="streamedit">2.1 7.1 Edit Streams</h4></p>5634 <p><h4 id="streamedit">2.18.1 Edit Streams</h4></p> 5590 5635 <ul> 5591 5636 <li>BNC automatically allocates one of its internal decoders to a stream based on the stream's 'format' and 'format-details' as given in the source-table. … … 5614 5659 </ul> 5615 5660 5616 <p><h4 id="streamdelete">2.1 7.2 Delete Stream</h4></p>5661 <p><h4 id="streamdelete">2.18.2 Delete Stream</h4></p> 5617 5662 <p> 5618 5663 To remove a stream from the 'Streams' canvas in the main window, highlight it by clicking on it and hit the 'Delete Stream' button. … … 5620 5665 </p> 5621 5666 5622 <p><h4 id="streamconf">2.1 7.3 Reconfigure Stream Selection On-the-fly</h4></p>5667 <p><h4 id="streamconf">2.18.3 Reconfigure Stream Selection On-the-fly</h4></p> 5623 5668 <p> 5624 5669 The streams selection can be changed on-the-fly without interrupting uninvolved threads in the running BNC process. … … 5636 5681 </p> 5637 5682 5638 <p><h4 id="logs">2.1 8Logging Canvas</h4></p>5683 <p><h4 id="logs">2.19 Logging Canvas</h4></p> 5639 5684 <p> 5640 5685 The 'Logging Canvas' above the bottom menu bar on the main window labeled 'Log', 'Throughput', 'Latency', and 'PPP Plot' … … 5643 5688 </p> 5644 5689 5645 <p><h4 id="logfile">2.1 8.1 Log</h4></p>5690 <p><h4 id="logfile">2.19.1 Log</h4></p> 5646 5691 <p> 5647 5692 Records of BNC's activities are shown in the 'Log' tab. They can be saved into a file when a valid path is specified in the 'Logfile (full path)' field. 5648 5693 </p> 5649 5694 5650 <p><h4 id="throughput">2.1 8.2 Throughput</h4></p>5695 <p><h4 id="throughput">2.19.2 Throughput</h4></p> 5651 5696 <p> 5652 5697 The bandwidth consumption per stream is shown in the 'Throughput' tab in bits per second (bps) or kilobits per second (kbps). … … 5655 5700 <p><img src="IMG/Figure33.png"width=1000/></p> 5656 5701 <p>Figure 33: Bandwidth consumption of RTCM streams received by BNC</p> 5657 <p><h4 id="latency">2.1 8.3 Latency</h4></p>5702 <p><h4 id="latency">2.19.3 Latency</h4></p> 5658 5703 <p> 5659 5704 The latency of observations in each incoming stream is shown in the 'Latency' tab in milliseconds or seconds. … … 5666 5711 <p>Figure 34: Latency of RTCM streams received by BNC</p> 5667 5712 5668 <p><h4 id="ppptab">2.1 8.4 PPP Plot</h4></p>5713 <p><h4 id="ppptab">2.19.4 PPP Plot</h4></p> 5669 5714 <p> 5670 5715 Precise Point Positioning time series of North (red), East (green) and Up (blue) coordinate components are shown in the 'PPP Plot' tab when … … 5677 5722 <p>Figure 35: Example for time series plot of displacements produced by BNC</p> 5678 5723 5679 <p><h4 id="bottom">2. 19Bottom Menu Bar</h4></p>5724 <p><h4 id="bottom">2.20 Bottom Menu Bar</h4></p> 5680 5725 <p> 5681 5726 The bottom menu bar allows to add or delete streams to or from BNC's configuration and to start or stop it. … … 5686 5731 <p>Figure 36: Steam input communication links accepted by BNC</p> 5687 5732 5688 <p><h4 id="streamadd">2. 19.1 Add Stream</h4></p>5733 <p><h4 id="streamadd">2.20.1 Add Stream</h4></p> 5689 5734 <p> 5690 5735 Button 'Add Stream' allows you to pull streams either from an Ntrip Broadcaster or from a TCP/IP port, UPD port, or serial port. 5691 5736 </p> 5692 5737 5693 <p><h4 id="streamcaster">2. 19.1.1 Add Stream - Coming from Caster</h4></p>5738 <p><h4 id="streamcaster">2.20.1.1 Add Stream - Coming from Caster</h4></p> 5694 5739 <p> 5695 5740 Button 'Add Stream' > 'Coming from Caster' opens a window that allows users to select data streams from an Ntrip Broadcaster according … … 5697 5742 </p> 5698 5743 5699 <p><h4 id="streamhost">2. 19.1.1.1 Caster Host and Port - mandatory</h4></p>5744 <p><h4 id="streamhost">2.20.1.1.1 Caster Host and Port - mandatory</h4></p> 5700 5745 <p> 5701 5746 Enter the Ntrip Broadcaster host IP and port number. Note that EUREF and IGS operate Ntrip Broadcasters … … 5705 5750 </p> 5706 5751 5707 <p><h4 id="streamtable">2. 19.1.1.2 Casters Table - optional</h4></p>5752 <p><h4 id="streamtable">2.20.1.1.2 Casters Table - optional</h4></p> 5708 5753 <p> 5709 5754 It may be that you are not sure about your Ntrip Broadcaster's host and port number or you are interested in other … … 5715 5760 <p>Figure 37: BNC's 'Select Broadcaster' table</p> 5716 5761 5717 <p><h4 id="streamuser">2. 19.1.1.3 User and Password - mandatory for protected streams</h4></p>5762 <p><h4 id="streamuser">2.20.1.1.3 User and Password - mandatory for protected streams</h4></p> 5718 5763 <p> 5719 5764 Streams on Ntrip Broadcasters may be protected. Enter a valid 'User' ID and 'Password' for access to protected streams. … … 5723 5768 </p> 5724 5769 5725 <p><h4 id="gettable">2. 19.1.1.4 Get Table</h4></p>5770 <p><h4 id="gettable">2.20.1.1.4 Get Table</h4></p> 5726 5771 <p> 5727 5772 Use the 'Get Table' button to download the source-table from the Ntrip Broadcaster. Pay attention to data fields 'format' and 'format-details'. … … 5761 5806 <p>Figure 38: Broadcaster source-table shown by BNC</p> 5762 5807 5763 <p><h4 id="ntripv">2. 19.1.1.5 Ntrip Version - mandatory</h4></p>5808 <p><h4 id="ntripv">2.20.1.1.5 Ntrip Version - mandatory</h4></p> 5764 5809 <p> 5765 5810 Some limitations and deficiencies of the Ntrip Version 1 stream transport protocol are solved in Ntrip Version 2. … … 5790 5835 a mobile Internet Service Provider may not support it. 5791 5836 </p> 5792 <p><h4 id="castermap">2. 19.1.1.6 Map - optional</h4></p>5837 <p><h4 id="castermap">2.20.1.1.6 Map - optional</h4></p> 5793 5838 <p> 5794 5839 Button 'Map' opens a window to show a distribution map of the caster's streams. You may like to zoom in or out using the mouse. … … 5798 5843 <p>Figure 39: Stream distribution map shown by BNC as derived from Ntrip Broadcaster source-table</p> 5799 5844 5800 <p><h4 id="streamip">2. 19.1.2 Add Stream - Coming from TCP/IP Port</h4></p>5845 <p><h4 id="streamip">2.20.1.2 Add Stream - Coming from TCP/IP Port</h4></p> 5801 5846 <p> 5802 5847 Button 'Add Stream' > 'Coming from TCP/IP Port' allows to retrieve streams via TCP directly from an IP address … … 5818 5863 Note that this option works only if no proxy server is involved in the communication link. 5819 5864 </p> 5820 <p><h4 id="streamudp">2. 19.1.3 Add Stream - Coming from UDP Port</h4></p>5865 <p><h4 id="streamudp">2.20.1.3 Add Stream - Coming from UDP Port</h4></p> 5821 5866 <p> 5822 5867 Button 'Add Stream' > 'Coming from UDP Port' allows to pick up streams arriving directly at one of the local host's UDP ports without using the Ntrip transport protocol. For that you: … … 5833 5878 <p> 5834 5879 5835 <p><h4 id="streamser">2. 19.1.4 Add Stream - Coming from Serial Port</h4></p>5880 <p><h4 id="streamser">2.20.1.4 Add Stream - Coming from Serial Port</h4></p> 5836 5881 <p> 5837 5882 Button 'Add Stream' > 'Coming from Serial Port' allows to retrieve streams from a GNSS receiver via serial port without using the Ntrip transport protocol. For that you: … … 5872 5917 <p>Figure 40: BNC configuration for pulling a stream via serial port</p> 5873 5918 5874 <p><h4 id="streamsdelete">2. 19.2 Delete Stream</h4></p>5919 <p><h4 id="streamsdelete">2.20.2 Delete Stream</h4></p> 5875 5920 <p> 5876 5921 Button 'Delete Stream' allows you to delete streams previously selected for retrieval as listed under the 'Streams' canvas on BNC's main window. 5877 5922 </p> 5878 5923 5879 <p><h4 id="streamsmap">2. 19.3 Map</h4></p>5924 <p><h4 id="streamsmap">2.20.3 Map</h4></p> 5880 5925 <p> 5881 5926 Button 'Map' opens a window to show a distribution map of the streams selected for retrieval as listed under the 'Streams' canvas. … … 5883 5928 </p> 5884 5929 5885 <p><h4 id="start">2. 19.4 Start</h4></p>5930 <p><h4 id="start">2.20.4 Start</h4></p> 5886 5931 <p> 5887 5932 Hit 'Start' to start retrieving, decoding or converting GNSS data streams in real-time. … … 5890 5935 </p> 5891 5936 5892 <p><h4 id="stop">2. 19.5 Stop</h4></p>5937 <p><h4 id="stop">2.20.5 Stop</h4></p> 5893 5938 <p> 5894 5939 Hit the 'Stop' button in order to stop BNC. 5895 5940 </p> 5896 5941 5897 <p><h4 id="contexthelp">2. 19.6 Help? = Shift+F1</h4></p>5942 <p><h4 id="contexthelp">2.20.6 Help? = Shift+F1</h4></p> 5898 5943 <p> 5899 5944 BNC comes with a <i>What's This</i> help system providing information about its functionality and usage. … … 5902 5947 The dialogs on some operating systems may provide a '?' button that users can click; click the relevant widget to pop up the help text. 5903 5948 </p> 5904 <p><h4 id="cmd">2.2 0Command Line Options</h4></p>5949 <p><h4 id="cmd">2.21 Command Line Options</h4></p> 5905 5950 <p> 5906 5951 Command line options are available to run BNC in 'no window' mode or let it read previously recorded input offline from one or … … 5919 5964 provides a list of all available command line options. 5920 5965 </p> 5921 <p><h4 id="cmdVersion">2.2 0.1 Version - optional</h4></p>5966 <p><h4 id="cmdVersion">2.21.1 Version - optional</h4></p> 5922 5967 <p> 5923 5968 Command line option '--version' lets BNC print its version number. … … 5927 5972 bnc --version (MS Windows: bnc.exe --version | more) 5928 5973 </p> 5929 <p><h4 id="cmdDisplay">2.2 0.2 Display - optional</h4></p>5974 <p><h4 id="cmdDisplay">2.21.2 Display - optional</h4></p> 5930 5975 <p> 5931 5976 On systems which support graphics, command line option '--display' forces BNC to present the BNC window on the specified display. … … 5935 5980 bnc.exe --display localhost:10.0 5936 5981 </p> 5937 <p><h4 id="nw">2.2 0.3 No Window Mode - optional</h4></p>5982 <p><h4 id="nw">2.21.3 No Window Mode - optional</h4></p> 5938 5983 <p> 5939 5984 Apart from its regular windows mode, BNC can be started on all systems as a batch job with command line option '-nw'. … … 5970 6015 </p></pre> 5971 6016 5972 <p><h4 id="post">2.2 0.4 File Mode - optional</h4></p>6017 <p><h4 id="post">2.21.4 File Mode - optional</h4></p> 5973 6018 <p> 5974 6019 Although BNC is primarily a real-time online tool, for debugging purposes it can be run offline to read data from a file … … 5986 6031 <p>Note further that option '--file' forces BNC to apply the '-nw' option for running in 'no window' mode. 5987 6032 </p> 5988 <p><h4 id="conffile">2.2 0.5 Configuration File - optional</h4></p>6033 <p><h4 id="conffile">2.21.5 Configuration File - optional</h4></p> 5989 6034 The default configuration filename is 'BNC.bnc'. You may change this name at startup time using command line option '--conf <<u>confFileName</u>>'. This allows running several BNC jobs in parallel on the same host using different sets of configuration options. <u>confFileName</u> stands either for the full path to a configuration file or just for a filename. If you introduce only a filename, the corresponding file will be saved in the current working directory from where BNC is started. 5990 6035 </p> … … 5996 6041 This leads to a BNC job using configuration file 'MyConfig.bnc'. The configuration file will be saved in the current working directory. 5997 6042 </p> 5998 <p><h4 id="confopt">2.2 0.6 Configuration Options - optional</h4></p>6043 <p><h4 id="confopt">2.21.6 Configuration Options - optional</h4></p> 5999 6044 <p> 6000 6045 BNC applies options from the configuration file but allows updating every one of them on the command line while the content of the configuration file remains unchanged. Note the following syntax for Command Line Interface (CLI) options: … … 6496 6541 6497 6542 Upload Ephemeris Panel keys: 6498 uploadEphMountpointsOut {Upload corrections table [character string, semicolon separated list, each element in quotation marks, example:6543 uploadEphMountpointsOut {Upload ephemeris table [character string, semicolon separated list, each element in quotation marks, example: 6499 6544 "products.igs-ip.net,443,BCEP00BKG0,2s,usr,pass,ALL;products.igs-ip.net,443,BCEP01BKG0,2s,usr,pass,G"]} 6500 6545 uploadSamplRtcmEph {Stream upload sampling rate [integer number of seconds: 0|5|10|15|20|25|30|35|40|45|50|55|60]} 6546 6547 Upload Raw Data Panel keys: 6548 uploadRawMountpointsOut {Upload raw data table [character string, semicolon separated list, each element in quotation marks, example: 6549 "TCP00DEU0,products.igs-ip.net,443,SSRA00BKG0,2s,usr,pass;TCP01DEU0,products.igs-ip.net,443,SSRA01BKG0,2s,usr,pass"]} 6501 6550 6502 6551 Add Stream keys: -
trunk/BNC/src/bncmain.cpp
r10667 r10753 341 341 "\n" 342 342 "Upload Ephemeris Panel keys:\n" 343 " uploadEphMountpointsOut {Upload corrections table [character string, semicolon separated list, each element in quotation marks, example:\n"343 " uploadEphMountpointsOut {Upload ephemeris table [character string, semicolon separated list, each element in quotation marks, example:\n" 344 344 " \"products.igs-ip.net,443,BCEP00BKG0,2s,usr,pass,ALL;products.igs-ip.net,443,BCEP01BKG0,2s,usr,pass,G\"]}\n" 345 345 " uploadSamplRtcmEph {Stream upload sampling rate [integer number of seconds: 0|5|10|15|20|25|30|35|40|45|50|55|60]}\n" 346 "\n" 347 "Upload Raw Data Panel keys:\n" 348 " uploadRawMountpointsOut {Upload raw data table [character string, semicolon separated list, each element in quotation marks, example:\n" 349 " \"TCP00DEU0,products.igs-ip.net,443,SSRA00BKG0,2s,usr,pass;TCP01DEU0,products.igs-ip.net,443,SSRA01BKG0,2s,usr,pass\"]}\n" 346 350 "\n" 347 351 "Add Stream keys:\n" -
trunk/BNC/src/bncsettings.cpp
r10667 r10753 62 62 setValue_p("font", ""); 63 63 setValue_p("casterUrlList", (QStringList() 64 << "http://user:pass@euref-ip.net: 2101"65 << "http://user:pass@igs-ip.net: 2101"66 << "http://user:pass@products.igs-ip.net: 2101"67 << "http://user:pass@mgex.igs-ip.net: 2101"));64 << "http://user:pass@euref-ip.net:443" 65 << "http://user:pass@igs-ip.net:443" 66 << "http://user:pass@products.igs-ip.net:443" 67 << "http://user:pass@mgex.igs-ip.net:443")); 68 68 setValue_p("mountPoints", ""); 69 setValue_p("ntripVersion", "2"); 69 setValue_p("ntripVersion", "2s"); 70 70 // Network 71 71 setValue_p("proxyHost", ""); … … 181 181 setValue_p("cmbSbas", "0"); 182 182 setValue_p("cmbNavic", "0"); 183 184 183 // Upload (clk) 185 184 setValue_p("uploadMountpointsOut", ""); … … 204 203 setValue_p("trafo_scr", ""); 205 204 setValue_p("trafo_t0", ""); 206 // Upload (eph)205 // Upload Eph 207 206 setValue_p("uploadEphMountpointsOut", ""); 208 207 setValue_p("uploadSamplRtcmEph", "5"); 208 // Upload Raw 209 setValue_p("uploadRawMountpointsOut", ""); 209 210 } 210 211 } -
trunk/BNC/src/bncwindow.cpp
r10667 r10753 561 561 // ------------- 562 562 _uploadTable = new QTableWidget(0, 16); 563 _uploadTable->setHorizontalHeaderLabels(QString("Host, Port, Mount, Ntrip, User, Password, System, Format, CoM, SP3 File, RNX File, BSX File, PID, SID, IOD, bytes").split(","));563 _uploadTable->setHorizontalHeaderLabels(QString("Host, Port, Mountpoint, Ntrip, User, Password, System, Format, CoM, SP3 File, RNX File, BSX File, PID, SID, IOD, Bytes").split(",")); 564 564 _uploadTable->setSelectionMode(QAbstractItemView::ExtendedSelection); 565 565 _uploadTable->setSelectionBehavior(QAbstractItemView::SelectRows); 566 566 _uploadTable->horizontalHeader()->resizeSection(0, 13 * ww); 567 567 _uploadTable->horizontalHeader()->resizeSection(1, 5 * ww); 568 _uploadTable->horizontalHeader()->resizeSection(2, 6* ww);568 _uploadTable->horizontalHeader()->resizeSection(2, 10 * ww); 569 569 _uploadTable->horizontalHeader()->resizeSection(3, 6 * ww); 570 570 _uploadTable->horizontalHeader()->resizeSection(4, 8 * ww); … … 657 657 // Upload RTCM3 Ephemeris 658 658 // ---------------------- 659 _uploadEphTable = new QTableWidget(0, 6);659 _uploadEphTable = new QTableWidget(0, 7); 660 660 _uploadEphTable->setColumnCount(8); 661 661 _uploadEphTable->setRowCount(0); 662 _uploadEphTable->setHorizontalHeaderLabels(QString("Host, Port, Mount, Ntrip, User, Password, System, bytes").split(","));662 _uploadEphTable->setHorizontalHeaderLabels(QString("Host, Port, Mountpoint, Ntrip, User, Password, System, Bytes").split(",")); 663 663 _uploadEphTable->setSelectionMode(QAbstractItemView::ExtendedSelection); 664 664 _uploadEphTable->setSelectionBehavior(QAbstractItemView::SelectRows); … … 668 668 _uploadEphTable->horizontalHeader()->resizeSection(3, 6 * ww); 669 669 _uploadEphTable->horizontalHeader()->resizeSection(4, 8 * ww); 670 _uploadEphTable->horizontalHeader()->resizeSection( 3, 8 * ww);671 _uploadEphTable->horizontalHeader()->resizeSection( 5, 10 * ww);672 _uploadEphTable->horizontalHeader()->resizeSection( 6, 12 * ww);670 _uploadEphTable->horizontalHeader()->resizeSection(5, 8 * ww); 671 _uploadEphTable->horizontalHeader()->resizeSection(6, 10 * ww); 672 _uploadEphTable->horizontalHeader()->resizeSection(7, 12 * ww); 673 673 #if QT_VERSION < 0x050000 674 674 _uploadEphTable->horizontalHeader()->setResizeMode(QHeaderView::Interactive); … … 701 701 enableWidget(false, _uploadSamplRtcmEphSpinBox); 702 702 } 703 704 // Upload Raw data 705 // ---------------------- 706 _uploadRawTable = new QTableWidget(0, 7); 707 _uploadRawTable->setColumnCount(8); 708 _uploadRawTable->setRowCount(0); 709 _uploadRawTable->setHorizontalHeaderLabels(QString("Source Mountpoint, Host, Port, Upload Mountpoint, Ntrip, User, Password, Bytes").split(",")); 710 _uploadRawTable->setSelectionMode(QAbstractItemView::ExtendedSelection); 711 _uploadRawTable->setSelectionBehavior(QAbstractItemView::SelectRows); 712 _uploadRawTable->horizontalHeader()->resizeSection(0, 13 * ww); 713 _uploadRawTable->horizontalHeader()->resizeSection(1, 13 * ww); 714 _uploadRawTable->horizontalHeader()->resizeSection(2, 5 * ww); 715 _uploadRawTable->horizontalHeader()->resizeSection(3, 13 * ww); 716 _uploadRawTable->horizontalHeader()->resizeSection(4, 6 * ww); 717 _uploadRawTable->horizontalHeader()->resizeSection(5, 8 * ww); 718 _uploadRawTable->horizontalHeader()->resizeSection(6, 8 * ww); 719 _uploadRawTable->horizontalHeader()->resizeSection(7, 10 * ww); 720 _uploadRawTable->horizontalHeader()->resizeSection(8, 12 * ww); 721 #if QT_VERSION < 0x050000 722 _uploadRawTable->horizontalHeader()->setResizeMode(QHeaderView::Interactive); 723 #else 724 _uploadRawTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); 725 #endif 726 _uploadRawTable->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); 727 728 connect(_uploadRawTable, SIGNAL(itemSelectionChanged()), SLOT(slotBncTextChanged())); 729 730 QPushButton* addUploadRawRowButton = new QPushButton("Add Row"); 731 addUploadRawRowButton->setMaximumWidth(9 * ww); 732 QPushButton* delUploadRawRowButton = new QPushButton("Del Row"); 733 delUploadRawRowButton->setMaximumWidth(9 * ww); 703 734 704 735 // Canvas with Editable Fields … … 728 759 QWidget* uploadgroup = new QWidget(); 729 760 QWidget* uploadEphgroup = new QWidget(); 761 QWidget* uploadRawgroup = new QWidget(); 730 762 _aogroup->addTab(pgroup, tr("Network")); 731 763 _aogroup->addTab(ggroup, tr("General")); … … 746 778 _aogroup->addTab(uploadgroup, tr("Upload Corrections")); 747 779 _aogroup->addTab(uploadEphgroup, tr("Upload Ephemeris")); 780 _aogroup->addTab(uploadRawgroup, tr("Upload Raw Data")); 748 781 749 782 // Log Tab … … 1365 1398 populateUploadTable(); 1366 1399 1367 uploadLayout->addWidget(new QLabel("Upload RTCM Version 3 Broadcast Corrections to caster.<br>")); 1400 uploadLayout->addWidget(new QLabel("Upload RTCM Version 3 Broadcast Corrections to Broadcaster.<br>")); 1368 1401 uploadLayout->addWidget(_uploadTable); 1369 1402 uploadLayout->addLayout(uploadHlpLayout); … … 1386 1419 populateUploadEphTable(); 1387 1420 1388 uploadLayoutEph->addWidget(new QLabel("Upload concatenated RTCMv3 Broadcast Ephemeris to caster.<br>"));1421 uploadLayoutEph->addWidget(new QLabel("Upload RTCM Version 3 Broadcast Ephemeris to Broadcaster.<br>")); 1389 1422 uploadLayoutEph->addWidget(_uploadEphTable); 1390 1423 uploadLayoutEph->addLayout(uploadHlpLayoutEph); … … 1392 1425 uploadEphgroup->setLayout(uploadLayoutEph); 1393 1426 1427 1428 // Upload Layout (Raw Data) 1429 // ------------------------- 1430 QGridLayout* uploadHlpLayoutRaw = new QGridLayout(); 1431 1432 connect(addUploadRawRowButton, SIGNAL(clicked()), this, SLOT(slotAddUploadRawRow())); 1433 connect(delUploadRawRowButton, SIGNAL(clicked()), this, SLOT(slotDelUploadRawRow())); 1434 1435 uploadHlpLayoutRaw->addWidget(addUploadRawRowButton, 0, 0); 1436 uploadHlpLayoutRaw->addWidget(delUploadRawRowButton, 0, 1); 1437 1438 QBoxLayout* uploadLayoutRaw = new QBoxLayout(QBoxLayout::TopToBottom); 1439 populateUploadRawTable(); 1440 1441 uploadLayoutRaw->addWidget(new QLabel("Upload Raw Data to Broadcaster (Ntrip Server Functionality).<br>")); 1442 uploadLayoutRaw->addWidget(_uploadRawTable); 1443 uploadLayoutRaw->addLayout(uploadHlpLayoutRaw); 1444 1445 uploadRawgroup->setLayout(uploadLayoutRaw); 1394 1446 1395 1447 // Main Layout … … 1503 1555 _miscPortLineEdit->setWhatsThis(tr("<p>BNC can output an incoming stream through an IP port of your local host.</p><p>Specify a port number to activate this function. In this case, the stream content remains untouched; BNC does not decode or reformat the data for this output.</p><p> If the decoder string is not an accepted one ('RTCM_2.x', 'RTCM_3.x' and 'RTNET'), please change the decoder string to <ul>" 1504 1556 "<li> 'ZERO' (forward the raw data) or </li>" 1505 "<li> 'ZERO2F ile' (forward and store the raw data)</li> </ul> in addition. <i>[key: miscPort]</i></p>"));1557 "<li> 'ZERO2FILE' (forward and store the raw data)</li> </ul> in addition. <i>[key: miscPort]</i></p>")); 1506 1558 1507 1559 // WhatsThis, PPP (1) … … 1606 1658 // WhatsThis, Combine Corrections 1607 1659 // ------------------------------ 1608 _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. 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>")); 1660 _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>")); 1609 1661 addCmbRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Combine Corrections' table.</p>")); 1610 1662 delCmbRowButton->setWhatsThis(tr("<p>Hit 'Delete' button to delete the highlighted line(s) from the 'Combine Corrections' table.</p>")); … … 1625 1677 // WhatsThis, Upload Corrections 1626 1678 // ----------------------------- 1627 _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. IGS20) 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/BKG0MGXRTS${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/BKG0MGXRTS${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/BKG0MGXRTS${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>"));1679 _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', 'Mountpoint' and 'Password' fields to enter the Ntrip Broadcaster IP port, 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. IGS20) 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/BKG0MGXRTS${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/BKG0MGXRTS${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/BKG0MGXRTS${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>")); 1628 1680 addUploadRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Upload Corrections' table.</p>")); 1629 1681 delUploadRowButton->setWhatsThis(tr("<p>Hit 'Del Row' button to delete the highlighted line(s) from the 'Upload Corrections' table.</p>")); … … 1638 1690 // WhatsThis, Upload Ephemeris 1639 1691 // --------------------------- 1640 _uploadEphTable->setWhatsThis(tr("<p>BNC can upload Broadcast Ephemeris streams in RTCM Version 3 format. To fill the 'Upload Ephemeris' 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. Specify the satellite system(s) that shall be part of the uploaded stream (e.g. G for GPS or GRE for GPS+GLONASS+Galileo, or ALL). <i>[key: uploadEphHost]</i></p>"));1692 _uploadEphTable->setWhatsThis(tr("<p>BNC can upload Broadcast Ephemeris streams in RTCM Version 3 format. </p><p>To fill the 'Upload Ephemeris' 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', 'Mountpoint' and 'Password' fields to enter the Ntrip Broadcaster IP port, 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. Specify the satellite system(s) that shall be part of the uploaded stream (e.g. G for GPS or GRE for GPS+GLONASS+Galileo, or ALL). <i>[key: uploadEphMountpointsOut]</i></p>")); 1641 1693 addUploadEphRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Upload Ephemeris' table.</p>")); 1642 1694 delUploadEphRowButton->setWhatsThis(tr("<p>Hit 'Del Row' button to delete the highlighted line(s) from the 'Upload Ephemeris' table.</p>")); 1643 1695 _uploadSamplRtcmEphSpinBox->setWhatsThis(tr("<p>Select the Broadcast Ephemeris sampling interval in seconds.</p><p>Default is '5', meaning that a complete set of Broadcast Ephemeris is uploaded every 5 seconds. <i>[key: uploadSamplRtcmEph]</i></p>")); 1696 1697 // WhatsThis, Upload Raw Data 1698 // --------------------------- 1699 _uploadRawTable->setWhatsThis(tr("<p>BNC can upload Raw Data streams in any format like a NtripServer. </p><p>To fill the 'Upload Raw Data' table, hit the 'Add Row' button and double click on the 'Source Mountpoint' field to enter the Source of data from the 'Streams' section below, which shall be forwarded without decoding and hit Enter. 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', 'Upload Mountpoint' and 'Password' fields to enter the Ntrip Broadcaster IP port, the stream upload mountpoint and password. If Ntrip Version 2 is chosen, click to the 'User' field to enter a stream upload user name. </p><p> If the decoder string is not an accepted one ('RTCM_2.x', 'RTCM_3.x' and 'RTNET'), please change the decoder string to <ul>" 1700 "<li> 'ZERO' (forward the raw data) or </li>" 1701 "<li> 'ZERO2FILE' (forward and store the raw data)</li> </ul> in addition <i>[key: uploadRawMountpointsOut]</i></p>")); 1702 addUploadEphRowButton->setWhatsThis(tr("<p>Hit 'Add Row' button to add another line to the 'Upload Raw Data' table.</p>")); 1703 delUploadEphRowButton->setWhatsThis(tr("<p>Hit 'Del Row' button to delete the highlighted line(s) from the 'Upload Raw Data' table.</p>")); 1704 1644 1705 1645 1706 // WhatsThis, Streams Canvas … … 1781 1842 delete _cmbNavicCheckBox; 1782 1843 delete _cmbBsxFile; 1844 delete _uploadSamplRtcmEphCorrComboBox; 1783 1845 _uploadEphTable->deleteLater(); 1784 delete_uploadSamplRtcmEphCorrComboBox;1846 _uploadRawTable->deleteLater(); 1785 1847 _uploadTable->deleteLater(); 1786 1848 delete _uploadIntrComboBox; … … 2151 2213 QStringList uploadEphMountpointsOut; 2152 2214 for (int iRow = 0; iRow < _uploadEphTable->rowCount(); iRow++) { 2153 QString hlp; 2154 for (int iCol = 0; iCol < _uploadEphTable->columnCount(); iCol++) { 2155 if (_uploadEphTable->cellWidget(iRow, iCol) && 2156 (iCol == 3 || iCol == 4 || iCol == 5 || iCol == 6)) { 2157 if (iCol == 3) { 2158 QComboBox* ntripversion = (QComboBox*)(_uploadEphTable->cellWidget(iRow, iCol)); 2159 hlp += ntripversion->currentText() + ","; 2160 } 2161 else if (iCol == 4) { 2162 QLineEdit* user = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol)); 2163 hlp += user->text() + ","; 2164 } 2165 else if (iCol == 5) { 2166 QLineEdit* passwd = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol)); 2167 hlp += passwd->text() + ","; 2168 } 2169 else if (iCol == 6) { 2170 QLineEdit* system = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol)); 2171 hlp += system->text() + ","; 2172 } 2215 QString hlp; 2216 for (int iCol = 0; iCol < _uploadEphTable->columnCount(); iCol++) { 2217 if (_uploadEphTable->cellWidget(iRow, iCol) && 2218 (iCol == 3 || iCol == 4 || iCol == 5 || iCol == 6)) { 2219 if (iCol == 3) { 2220 QComboBox* ntripversion = (QComboBox*)(_uploadEphTable->cellWidget(iRow, iCol)); 2221 hlp += ntripversion->currentText() + ","; 2222 } 2223 else if (iCol == 4) { 2224 QLineEdit* user = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol)); 2225 hlp += user->text() + ","; 2226 } 2227 else if (iCol == 5) { 2228 QLineEdit* passwd = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol)); 2229 hlp += passwd->text() + ","; 2230 } 2231 else if (iCol == 6) { 2232 QLineEdit* system = (QLineEdit*)(_uploadEphTable->cellWidget(iRow, iCol)); 2233 hlp += system->text() + ","; 2234 } 2235 } 2236 else if (_uploadEphTable->item(iRow, iCol)) { 2237 hlp += _uploadEphTable->item(iRow, iCol)->text() + ","; 2238 } 2239 } 2240 if (!hlp.isEmpty()) { 2241 uploadEphMountpointsOut << hlp; 2242 } 2243 } 2244 2245 QStringList uploadRawMountpointsOut; 2246 for (int iRow = 0; iRow < _uploadRawTable->rowCount(); iRow++) { 2247 QString hlp; 2248 for (int iCol = 0; iCol < _uploadRawTable->columnCount(); iCol++) { 2249 if (_uploadRawTable->cellWidget(iRow, iCol) && 2250 (iCol == 4 || iCol == 5 || iCol == 6)) { 2251 if (iCol == 4) { 2252 QComboBox* ntripversion = (QComboBox*)(_uploadRawTable->cellWidget(iRow, iCol)); 2253 hlp += ntripversion->currentText() + ","; 2173 2254 } 2174 else if (_uploadEphTable->item(iRow, iCol)) { 2175 hlp += _uploadEphTable->item(iRow, iCol)->text() + ","; 2255 else if (iCol == 5) { 2256 QLineEdit* user = (QLineEdit*)(_uploadRawTable->cellWidget(iRow, iCol)); 2257 hlp += user->text() + ","; 2176 2258 } 2177 } 2178 if (!hlp.isEmpty()) { 2179 uploadEphMountpointsOut << hlp; 2180 } 2259 else if (iCol == 6) { 2260 QLineEdit* passwd = (QLineEdit*)(_uploadRawTable->cellWidget(iRow, iCol)); 2261 hlp += passwd->text() + ","; 2262 } 2263 } 2264 else if (_uploadRawTable->item(iRow, iCol)) { 2265 hlp += _uploadRawTable->item(iRow, iCol)->text() + ","; 2266 } 2267 } 2268 if (!hlp.isEmpty()) { 2269 uploadRawMountpointsOut << hlp; 2270 } 2181 2271 } 2182 2272 … … 2223 2313 settings.setValue("outSampl", _outSamplComboBox->currentText()); 2224 2314 settings.setValue("outFile", _outFileLineEdit->text()); 2225 settings.setValue("outLockTime", _outLockTimeCheckBox->checkState()); settings.setValue("outUPort", _outUPortLineEdit->text()); 2315 settings.setValue("outLockTime", _outLockTimeCheckBox->checkState()); 2316 settings.setValue("outUPort", _outUPortLineEdit->text()); 2226 2317 // Serial Output 2227 2318 settings.setValue("serialMountPoint", _serialMountPointLineEdit->text()); … … 2303 2394 } 2304 2395 settings.setValue("uploadSamplRtcmEph", _uploadSamplRtcmEphSpinBox->value()); 2305 2396 // Upload Raw Data 2397 if (!uploadRawMountpointsOut.isEmpty()) { 2398 settings.setValue("uploadRawMountpointsOut", uploadRawMountpointsOut); 2399 } 2400 else { 2401 settings.setValue("uploadRawMountpointsOut", ""); 2402 } 2306 2403 if (_caster) { 2307 2404 _caster->readMountPoints(); … … 2969 3066 QComboBox* ntripversion = new QComboBox(); 2970 3067 ntripversion->setEditable(false); 2971 ntripversion->addItems(QString(" 1,2,2s").split(","));3068 ntripversion->addItems(QString("2s,2,1").split(",")); 2972 3069 ntripversion->setFrame(false); 2973 3070 _uploadTable->setCellWidget(iRow, iCol, ntripversion); … … 2995 3092 QComboBox* format = new QComboBox(); 2996 3093 format->setEditable(false); 3094 //format->addItems(QString("IGS-SSR,RTCM-SSR,RTCM-NEW-SSR").split(",")); 2997 3095 format->addItems(QString("IGS-SSR,RTCM-SSR").split(",")); 2998 3096 format->setFrame(false); … … 3099 3197 QComboBox* format = new QComboBox(); 3100 3198 format->setEditable(false); 3199 //format->addItems(QString("IGS-SSR,RTCM-SSR,RTCM-NEW-SSR").split(",")); 3101 3200 format->addItems(QString("IGS-SSR,RTCM-SSR").split(",")); 3102 3201 format->setFrame(false); … … 3141 3240 QComboBox* ntripversion = new QComboBox(); 3142 3241 ntripversion->setEditable(false); 3143 ntripversion->addItems(QString(" 1,2,2s").split(","));3242 ntripversion->addItems(QString("2s,2,1").split(",")); 3144 3243 ntripversion->setFrame(false); 3145 3244 _uploadEphTable->setCellWidget(iRow, iCol, ntripversion); … … 3177 3276 //////////////////////////////////////////////////////////////////////////// 3178 3277 void bncWindow::slotDelUploadEphRow() { 3179 BNC_CORE->_uploadTableItems.clear(); 3278 BNC_CORE->_uploadEphTableItems.clear(); 3180 3279 int nRows = _uploadEphTable->rowCount(); 3181 3280 std::vector <bool> flg(nRows); … … 3194 3293 } 3195 3294 for (int iRow = 0; iRow < _uploadTable->rowCount(); iRow++) { 3196 BNC_CORE->_uploadTableItems[iRow] = 3295 BNC_CORE->_uploadEphTableItems[iRow] = 3197 3296 (bncTableItem*)_uploadEphTable->item(iRow, 7); 3198 3297 } … … 3261 3360 } 3262 3361 3362 // 3363 //////////////////////////////////////////////////////////////////////////// 3364 void bncWindow::slotAddUploadRawRow() { 3365 int iRow = _uploadRawTable->rowCount(); 3366 _uploadRawTable->insertRow(iRow); 3367 for (int iCol = 0; iCol < _uploadRawTable->columnCount(); iCol++) { 3368 if (iCol == 4) { 3369 QComboBox* ntripversion = new QComboBox(); 3370 ntripversion->setEditable(false); 3371 ntripversion->addItems(QString("2s,2,1").split(",")); 3372 ntripversion->setFrame(false); 3373 _uploadRawTable->setCellWidget(iRow, iCol, ntripversion); 3374 3375 } 3376 else if (iCol == 5) { 3377 QLineEdit* user = new QLineEdit(); 3378 user->setFrame(false); 3379 _uploadRawTable->setCellWidget(iRow, iCol, user); 3380 } 3381 else if (iCol == 6) { 3382 QLineEdit* passwd = new QLineEdit(); 3383 passwd->setFrame(false); 3384 passwd->setEchoMode(QLineEdit::PasswordEchoOnEdit); 3385 _uploadRawTable->setCellWidget(iRow, iCol, passwd); 3386 } 3387 else if (iCol == 7) { 3388 bncTableItem* bncIt = new bncTableItem(); 3389 bncIt->setFlags(bncIt->flags() & ~Qt::ItemIsEditable); 3390 _uploadRawTable->setItem(iRow, iCol, bncIt); 3391 BNC_CORE->_uploadRawTableItems[iRow] = bncIt; 3392 } 3393 else { 3394 _uploadRawTable->setItem(iRow, iCol, new QTableWidgetItem("")); 3395 } 3396 } 3397 } 3398 3399 // 3400 //////////////////////////////////////////////////////////////////////////// 3401 void bncWindow::slotDelUploadRawRow() { 3402 BNC_CORE->_uploadRawTableItems.clear(); 3403 int nRows = _uploadRawTable->rowCount(); 3404 std::vector <bool> flg(nRows); 3405 for (int iRow = 0; iRow < nRows; iRow++) { 3406 if (_uploadRawTable->item(iRow, 1)->isSelected()) { 3407 flg[iRow] = true; 3408 } 3409 else { 3410 flg[iRow] = false; 3411 } 3412 } 3413 for (int iRow = nRows - 1; iRow >= 0; iRow--) { 3414 if (flg[iRow]) { 3415 _uploadRawTable->removeRow(iRow); 3416 } 3417 } 3418 for (int iRow = 0; iRow < _uploadRawTable->rowCount(); iRow++) { 3419 BNC_CORE->_uploadRawTableItems[iRow] = 3420 (bncTableItem*)_uploadRawTable->item(iRow, 7); 3421 } 3422 } 3423 3424 // 3425 //////////////////////////////////////////////////////////////////////////// 3426 void bncWindow::populateUploadRawTable() { 3427 for (int iRow = _uploadRawTable->rowCount() - 1; iRow >= 0; iRow--) { 3428 _uploadRawTable->removeRow(iRow); 3429 } 3430 3431 bncSettings settings; 3432 3433 int iRow = -1; 3434 QListIterator<QString> it(settings.value("uploadRawMountpointsOut").toStringList()); 3435 while (it.hasNext()) { 3436 QStringList hlp = it.next().split(","); 3437 if (hlp.size() > 6) { 3438 ++iRow; 3439 _uploadRawTable->insertRow(iRow); 3440 } 3441 for (int iCol = 0; iCol < hlp.size(); iCol++) { 3442 if (iCol == 4) { 3443 QComboBox* ntripversion = new QComboBox(); 3444 ntripversion->setEditable(false); 3445 ntripversion->addItems(QString("1,2,2s").split(",")); 3446 ntripversion->setFrame(false); 3447 ntripversion->setCurrentIndex(ntripversion->findText(hlp[iCol])); 3448 _uploadRawTable->setCellWidget(iRow, iCol, ntripversion); 3449 } 3450 else if (iCol == 5) { 3451 QLineEdit* user = new QLineEdit(); 3452 user->setFrame(false); 3453 user->setText(hlp[iCol]); 3454 _uploadRawTable->setCellWidget(iRow, iCol, user); 3455 } 3456 else if (iCol == 6) { 3457 QLineEdit* passwd = new QLineEdit(); 3458 passwd->setFrame(false); 3459 passwd->setEchoMode(QLineEdit::PasswordEchoOnEdit); 3460 passwd->setText(hlp[iCol]); 3461 _uploadRawTable->setCellWidget(iRow, iCol, passwd); 3462 } 3463 else if (iCol == 7) { 3464 bncTableItem* bncIt = new bncTableItem(); 3465 bncIt->setFlags(bncIt->flags() & ~Qt::ItemIsEditable); 3466 _uploadRawTable->setItem(iRow, iCol, bncIt); 3467 BNC_CORE->_uploadRawTableItems[iRow] = bncIt; 3468 } 3469 else { 3470 _uploadRawTable->setItem(iRow, iCol, new QTableWidgetItem(hlp[iCol])); 3471 } 3472 } 3473 } 3474 } 3263 3475 3264 3476 // Progress Bar Change -
trunk/BNC/src/bncwindow.h
r10657 r10753 96 96 void slotAddUploadEphRow(); 97 97 void slotDelUploadEphRow(); 98 void slotAddUploadRawRow(); 99 void slotDelUploadRawRow(); 98 100 void slotSetUploadTrafo(); 99 101 void slotReqcEditOption(); … … 110 112 void populateUploadTable(); 111 113 void populateUploadEphTable(); 114 void populateUploadRawTable(); 112 115 void enableWidget(bool enable, QWidget* widget); 113 116 void startRealTime(); … … 243 246 QSpinBox* _uploadSamplRtcmEphSpinBox; 244 247 248 QTableWidget* _uploadRawTable; 249 245 250 bncCaster* _caster; 246 251 bncEphUploadCaster* _casterEph; -
trunk/BNC/src/src.pri
r10551 r10753 54 54 bncbiassinex.h \ 55 55 bncbytescounter.h bncsslconfig.h reqcdlg.h \ 56 ephemeris.h t_prn.h satObs.h \ 56 57 upload/bncrtnetdecoder.h upload/bncuploadcaster.h \ 57 ephemeris.h t_prn.h satObs.h\58 upload/bncrawuploadcaster.h \ 58 59 upload/bncrtnetuploadcaster.h upload/bnccustomtrafo.h \ 59 60 upload/bncephuploadcaster.h qtfilechooser.h \ … … 68 69 RTCM3/clock_and_orbit/clock_orbit_igs.h \ 69 70 RTCM3/clock_and_orbit/clock_orbit_rtcm.h \ 71 RTCM3/clock_and_orbit/clock_orbit_rtcm_new.h \ 70 72 rinex/rnxobsfile.h \ 71 73 rinex/rnxnavfile.h rinex/corrfile.h \ … … 93 95 bncoutf.cpp bncclockrinex.cpp bncsp3.cpp bncsinextro.cpp \ 94 96 bncbiassinex.cpp \ 97 ephemeris.cpp t_prn.cpp satObs.cpp \ 95 98 bncbytescounter.cpp bncsslconfig.cpp reqcdlg.cpp \ 96 ephemeris.cpp t_prn.cpp satObs.cpp \97 99 upload/bncrtnetdecoder.cpp upload/bncuploadcaster.cpp \ 100 upload/bncrawuploadcaster.cpp \ 98 101 upload/bncrtnetuploadcaster.cpp upload/bnccustomtrafo.cpp \ 99 102 upload/bncephuploadcaster.cpp qtfilechooser.cpp \ … … 106 109 RTCM3/RTCM3coDecoder.cpp RTCM3/ephEncoder.cpp \ 107 110 RTCM3/crsEncoder.cpp \ 111 RTCM3/clock_and_orbit/clock_orbit.cpp \ 108 112 RTCM3/clock_and_orbit/clock_orbit_igs.cpp \ 109 113 RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp \ 114 RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp \ 110 115 rinex/rnxobsfile.cpp \ 111 116 rinex/rnxnavfile.cpp rinex/corrfile.cpp \ -
trunk/BNC/src/upload/bncuploadcaster.cpp
r10227 r10753 57 57 SLOT(slotNewBytes(const QByteArray,double))); 58 58 } 59 59 60 if (BNC_CORE->_uploadEphTableItems.find(_iRow) != BNC_CORE->_uploadEphTableItems.end()) { 60 61 connect(this, SIGNAL(newBytes(QByteArray,double)), … … 62 63 SLOT(slotNewBytes(const QByteArray,double))); 63 64 } 65 66 if (BNC_CORE->_uploadRawTableItems.find(_iRow) != BNC_CORE->_uploadRawTableItems.end()) { 67 connect(this, SIGNAL(newBytes(QByteArray,double)), 68 BNC_CORE->_uploadRawTableItems.value(iRow), 69 SLOT(slotNewBytes(const QByteArray,double))); 70 } 71 64 72 65 73 _sslIgnoreErrors = (Qt::CheckState(settings.value("sslIgnoreErrors").toInt()) == Qt::Checked);
Note:
See TracChangeset
for help on using the changeset viewer.