Changeset 958 in ntrip


Ignore:
Timestamp:
Jul 22, 2008, 4:44:49 PM (16 years ago)
Author:
weber
Message:

* empty log message *

Location:
trunk/BNS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNS/bnshelp.html

    r957 r958  
    22
    33<p>
    4 The BKG Ntrip Server (BNS) is a program for generating real-time GNSS clock and orbit corrections to Broadcast Ephemeris in RTCM Version 3 format and upload the resulting stream to NTRIP broadcasters like <u>http://www.euref-ip.net/home</u> or <u>http://www.igs-ip.net/home</u>.
    5 </p>
     4The BKG Ntrip Server (BNS) is a program for generating real-time GNSS clock and orbit corrections to Broadcast Ephemeris in RTCM Version 3 format and upload the resulting stream to NTRIP broadcasters like <u>http://www.euref-ip.net/home</u> or <u>http://www.igs-ip.net/home.</u> It is meant as a tool for service providers with real-time access to a continental or global distributet GNSS reference station network.
     5</p>
     6
    67<p>
    78BNS has been developed for the Federal Agency for Cartography and Geodesy (BKG) within the framework of EUREF's Real-time GNSS Project (EUREF-IP, IP for Internet Protocol) and the Real-Time IGS Pilot Project (RTIGS).
    89</p>
     10
    911<p>
    1012BNS has been written under GNU General Public License (GPL). Binaries for BNS are available for Windows, 32-bit Linux, 64-bit Linux (compiled using option -m32), Solaris, and Mac systems. We used the MinGW Version 5.3.1 compiler to create the Windows binary. It is likely that BNS can be compiled on other systems where a GNU compiler and Qt Version 4.3.2 are installed.
    1113</p>
     14
     15<p>
     16Please ensure that you have installed the latest version of BNS available from <u>http://igs.bkg.bund.de/index_ntrip_down.htm</u>. We are continuously working on the program and would appreciate if you could send any comments, suggestions, or bug reports to [euref-ip@bkg.bund.de] or [igs-ip@bkg.bund.de].
     17</p>
     18
    1219<h3>Contents</h3>
    1320<p>
    1421<h4>
    1522<a href=#purpose>1. Purpose</a><br>
    16 <a href=#resources>2. Resources</a><br>
    17 <a href=#options>3. Options</a><br>
    18 <a href=#limits>4. Limitations</a><br>
    19 <a href=#authors>5. Authors</a><br>
    20 <a href=#annex>8. Annex</a><br>
     23<a href=#function>2. Functioning</a><br>
     24<a href=#resources>3. Resources</a><br>
     25<a href=#options>4. Options</a><br>
     26<a href=#limits>5. Limitations</a><br>
     27<a href=#authors>6. Authors</a><br>
     28<a href=#annex>7. Annex</a><br>
    2129</h4>
    2230</p>
     
    2735
    2836<ul>
    29 <li>read GNSS clock and orbit corrections in a plain ASCII format from an IP port of your local host. These corrections can be provided by a real-time GNSS engine like RTNet. They are expected to refer to the IGS Earth-Centered-Earth-Fixed (ECEF) reference system.</li>
    30 <li>read GNSS Broadcast Ephemeris in RINEX Navigation file format from an IP port of your local host. This information can be provided in real-time by the 'BKG Ntrip Client' (BNC) program.</li>
    31 <li>convert the IGS Earth-Centered-Earth-Fixed clock and and orbit corrections into corrections to Broadcast Ephemeris with radial, along-track and cross-track components.</li>
    32 <li>upload the stream of cock and orbit Broadcast Ephemeris corrections to an Ntrip Broadcaster.</li>
     37<li>read GNSS clocks and orbits in a plain ASCII format from an IP port. They can be provided by a real-time GNSS engine like RTNet and are expected to refer to the IGS Earth-Centered-Earth-Fixed (ECEF) reference system.</li>
     38<li>read GNSS Broadcast Ephemeris in RINEX Navigation file format from an IP port. This information can be provided in real-time by the 'BKG Ntrip Client' (BNC) program.</li>
     39<li>convert the IGS Earth-Centered-Earth-Fixed clocks and and orbits into corrections to Broadcast Ephemeris with radial, along-track and cross-track components.</li>
     40<li>upload the stream of cock and orbit corrections to Broadcast Ephemeris to an Ntrip Broadcaster.</li>
    3341<li>save the Broadcast Ephemeris clock corrections in Clock RINEX files.</li>
    3442<li>save the Broadcast Ephemeris orbit corrections in SP3 files.</li>
     
    3947</p>
    4048
    41 <p><a name="resources"><h3>2. Resources</h3></p>
     49<p><a name="function"><h3>2. Functioning</h3></p>
     50<p>
     51The BNS procedure for generating RTCM Version 3 clock and orbit corrections to Broadcast ephemeris in radial, along-track and cross-track components is the following:
     52</p>
     53<p>
     54<ul>
     55<li>Continuously receive up to date Broadcast Ephemeris carrying approximate orbits and clocks for all satellites. Receive them in RINEX Version 3 Navigation file format. Read new Broadcast Ephemeris immediately whenever they become available. Tools like the 'BKG Ntrip Client' (BNC) provide this information.</li>
     56<li>Continuously receive best available clock and orbit estimates for all satellites in X,Y,Z Earth-Centered-Earth-Fixed IGS05 reference system. Receive them every epoch in a plain ASCII format as provided by a real-time GNSS engine like RTNet.</li>
     57</ul>
     58<p>Then, once per epoch:</p>
     59<ul>
     60<li>Calculate X,Y,Z coordinates from Broadcast Ephemeris orbits.</li>
     61<li>Calculate differences dX,dY,dZ between Broadcast Ephemeris orbits and IGS05 orbits.</li>
     62<li>Model orbit differences through polynomial of low degree.</li>
     63<li>Derive model-based estimation of corrections to Broadcast Ephemeris orbits.
     64<li>Tranform model-based orbit corrections into radial, along-track and cross-track components.</li>
     65<br><br>
     66<li>Calculate differences dC between clocks from Broadcast Ephemeris and IGS05 clocks.</li>
     67<li>Model clock differences through polynomial of low degree.</li>
     68<li>Derive model-based estimation of corrections to Broadcast Ephemeris clocks.</li>
     69<br><br>
     70<li>Encode Broadcast Ephemeris clock and orbit corrections in RTCM Version 3 format.</li>
     71<li>Upload corrections in RTCM Verion 3 format to NTRIP Broadcaster.</li>
     72</ul>
     73<p>
     74
     75<p><a name="resources"><h3>3. Resources</h3></p>
    4276<p>
    4377BNS requires access to the Internet with a minimum of about 2 to 3 kbits/sec for stream upload to an Ntrip Broadcaster depending on the number of visible satellites. You need to make sure that the connection can sustain the required bandwidth.
     
    4781</p>
    4882
    49 <p><a name="options"><h3>3. Options</h3></p>
    50 <p>
    51 3.1. <a href=#file>File</a><br>
    52 3.2. <a href=#help>Help</a><br>
    53 3.3. <a href=#proxy>Proxy</a><br>
    54 3.4. <a href=#general>General</a><br>
    55 &nbsp; &nbsp; &nbsp; 3.4.1. <a href=#logfile>Logfile</a><br>
    56 &nbsp; &nbsp; &nbsp; 3.4.2. <a href=#appfile>Append Files</a><br>
    57 3.5. <a href=#input>Input</a><br>
    58 &nbsp; &nbsp; &nbsp; 3.5.1. <a href=#ephemeris>Ephemeris</a><br>
    59 &nbsp; &nbsp; &nbsp; 3.5.2. <a href=#clocks>Clocks</a><br>
    60 3.6. <a href=#caster>NTRIP Caster</a><br>
    61 &nbsp; &nbsp; &nbsp; 3.6.1. <a href=#cashost>Host</a><br>
    62 &nbsp; &nbsp; &nbsp; 3.6.2. <a href=#casport>Port</a><br>
    63 &nbsp; &nbsp; &nbsp; 3.6.3. <a href=#casproxy>Use Proxy</a><br>
    64 &nbsp; &nbsp; &nbsp; 3.6.4. <a href=#casmount>Mountpoint</a><br>
    65 &nbsp; &nbsp; &nbsp; 3.6.5. <a href=#caspass>Password</a><br>
    66 &nbsp; &nbsp; &nbsp; 3.6.6. <a href=#casdata>Data</a><br>
    67 3.7. <a href=#clocks>RINEX Clocks</a><br>
    68 &nbsp; &nbsp; &nbsp; 3.7.1. <a href=#clkdir>Directory</a><br>
    69 &nbsp; &nbsp; &nbsp; 3.7.2. <a href=#clkint>Interval</a><br>
    70 &nbsp; &nbsp; &nbsp; 3.7.3. <a href=#clksamp>Sampling</a><br>
    71 3.8. <a href=#orbits>SP3 Orbits</a><br>
    72 &nbsp; &nbsp; &nbsp; 3.8.1. <a href=#orbdir>Directory</a><br>
    73 &nbsp; &nbsp; &nbsp; 3.8.2. <a href=#orbint>Interval</a><br>
    74 &nbsp; &nbsp; &nbsp; 3.8.3. <a href=#orbsamp>Sampling</a><br>
    75 3.9 <a href=#start>Start</a><br>
    76 3.10. <a href=#stop>Stop</a><br>
    77 3.11. <a href=#nw>No Window</a>
    78 </p>
    79 
    80 <p><a name="file"><h4>3.1. File</h4></p>
     83<p><a name="options"><h3>4. Options</h3></p>
     84<p>
     854.1. <a href=#file>File</a><br>
     864.2. <a href=#help>Help</a><br>
     874.3. <a href=#proxy>Proxy</a><br>
     884.4. <a href=#general>General</a><br>
     89&nbsp; &nbsp; &nbsp; 4.4.1. <a href=#logfile>Logfile</a><br>
     90&nbsp; &nbsp; &nbsp; 4.4.2. <a href=#appfile>Append Files</a><br>
     91&nbsp; &nbsp; &nbsp; 4.4.3. <a href=#refsystem>Reference System</a><br>
     924.5. <a href=#input>Input</a><br>
     93&nbsp; &nbsp; &nbsp; 4.5.1. <a href=#ephemeris>Ephemeris</a><br>
     94&nbsp; &nbsp; &nbsp; 4.5.2. <a href=#clocks>Clocks & Orbits</a><br>
     95&nbsp; &nbsp; &nbsp; 4.5.3. <a href=#saveclk>Save Clocks & Orbits</a><br>
     964.6. <a href=#caster>NTRIP Caster</a><br>
     97&nbsp; &nbsp; &nbsp; 4.6.1. <a href=#cashost>Host</a><br>
     98&nbsp; &nbsp; &nbsp; 4.6.2. <a href=#casport>Port</a><br>
     99&nbsp; &nbsp; &nbsp; 4.6.3. <a href=#casmount>Mountpoint</a><br>
     100&nbsp; &nbsp; &nbsp; 4.6.4. <a href=#caspass>Password</a><br>
     101&nbsp; &nbsp; &nbsp; 4.6.5. <a href=#casproxy>Use Proxy</a><br>
     102&nbsp; &nbsp; &nbsp; 4.6.6. <a href=#casstream>Save Stream</a><br>
     1034.7. <a href=#rnxclk>RINEX Clocks</a><br>
     104&nbsp; &nbsp; &nbsp; 4.7.1. <a href=#clkdir>Directory</a><br>
     105&nbsp; &nbsp; &nbsp; 4.7.2. <a href=#clkint>Interval</a><br>
     106&nbsp; &nbsp; &nbsp; 4.7.3. <a href=#clksamp>Sampling</a><br>
     1074.8. <a href=#orbits>SP3 Orbits</a><br>
     108&nbsp; &nbsp; &nbsp; 4.8.1. <a href=#orbdir>Directory</a><br>
     109&nbsp; &nbsp; &nbsp; 4.8.2. <a href=#orbint>Interval</a><br>
     110&nbsp; &nbsp; &nbsp; 4.8.3. <a href=#orbsamp>Sampling</a><br>
     1114.9 <a href=#start>Start</a><br>
     1124.10. <a href=#stop>Stop</a><br>
     1134.11. <a href=#nw>No Window</a>
     114</p>
     115
     116<p><a name="file"><h4>4.1. File</h4></p>
    81117
    82118<p>
     
    96132</p>
    97133
    98 <p><a name="help"><h4>3.2. Help</h4></p>
     134<p><a name="help"><h4>4.2. Help</h4></p>
    99135
    100136<p>
     
    115151</p>
    116152
    117 <p><a name="proxy"><h4>3.3. Proxy - for usage in a protected LAN</h4></p>
     153<p><a name="proxy"><h4>4.3. Proxy - for usage in a protected LAN</h4></p>
    118154
    119155<p>
     
    122158Note that IP streaming is often 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 these are not possible, you might need to run BNS outside your LAN on a host that has unobstructed connection to the Internet.
    123159</p>
    124 <p><a name="general"><h4>3.4. General Options</h4></p>
    125 
    126 <p><a name="logfile"><h4>3.4.1 Logfile - optional</h4></p>
     160<p><a name="general"><h4>4.4. General Options</h4></p>
     161
     162<p><a name="logfile"><h4>4.4.1 Logfile - optional</h4></p>
    127163<p>
    128164Records of BNC's activities are shown in the Log section on the bottom of the main window. These logs can be saved into a file when a valid path is specified in the 'Log (full path)' field. The message log covers the communication status between BNC and the NTRIP broadcaster as well as problems that may occur in the communication link, stream availability, stream delay, stream conversion etc. All times are given in UTC. The default value for 'Log (full path)' is an empty option field, meaning that BNC logs will not saved into a file.
    129165</p>
    130166
    131 <p><a name="appfile"><h4>3.4.2 Append Files</h4></p>
     167<p><a name="appfile"><h4>4.4.2 Append Files</h4></p>
    132168<p>
    133169When BNS is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append existing files following a restart of BNS, a system crash or when BNS crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far. Note that option 'Append files' affects all types of files created by BNS.
    134170</p>
    135171
    136 <p><a name="input"><h4>3.5. Input</h4></p>
    137 <p>
    138 BNS needs GNSS clock and orbit corrections in the IGS Earth-Centered-Earth-Fixed (ECEF) reference system and Broadcast Ephemeris in RINEX Navigation file format.
    139 </p>
    140 
    141 <p><a name="ephemeris"><h4>3.5.1 Ephemeris - mandatory</h4></p>
    142 <p>
    143 BNS reads GNSS Broadcast Ephemeris in RINEX Version3 Navigation file format from an IP address and port. This information can be provided in real-time by the 'BKG Ntrip Client' (BNC) program. Enter the respective servers IP address and port number. Make sure that this server is up and running before you start BNS. If a prosy server is operated between BNS and the server providing the Broadcast Ephemeris, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to use it for stream upload.
    144 </p>
    145 
    146 <p><a name="clocks"><h4>3.5.2 Clocks - mandatory</h4></p>
    147 <p>
    148 BNS reads GNSS clock and orbit corrections in a plain ASCII format from an IP address and port. These corrections can be provided by a real-time GNSS engine like RTNet. They are expected to refer to the IGS Earth-Centered-Earth-Fixed (ECEF) reference system. Enter the respective servers IP address and port number. Make sure that this server is up and running. If a prosy server is operated between BNS and the server providing the clock and orbit corrections, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to use it for stream upload.
    149 </p>
    150 
    151 <p><a name="caster"><h4>3.6. NTRIP Caster</h4></p>
    152 <p>
    153 BNS can upload the resulting stream of cock and orbit corrections (refering to Broadcast Ephemeris) to an Ntrip Broadcaster. For that EUREF and IGS operate NTRIP broadcasters at <u>http://www.euref-ip.net/home</u> and <u>http://www.igs-ip.net/home</u> which might be used for stream upload. The stream format follows RTCM Version 3 currently transmitting thentative message types 4056 and 4057.
     172<p><a name="refsystem"><h4>4.4.3 Reference System - mandatory</h4></p>
     173<p>
     174BNS refers its final clock and orbit corrections to a specific reference system. Available options are
     175<p>
     176<ul>
     177<li>IGS05 which stands for the GNSS-based IGS realization of the International Terrestrial Reference System (ITRS), and</li>
     178<li>ETRS89 which stands for the European Terrestrial Reference System 1989 adopted by EUREF.</li>
     179</ul>
     180</p>
     181<p>
     182As the clocks and orbits coming from real-time GNSS engin are expected in the 'IGS05' reference system (X,Y,Z ECEF), in fact no transformation is carried out if you select this option.
     183</p>
     184<p>
     185The implemented formulas for transformation from ITRS (IGS05) to ETRS89 are taken from 'Boucher and Altamimi 2007: Specifications for reference frame fixing in the analysis of EUREF GPS campaign', see <u>http://etrs89.ensg.ign.fr/memo2007.pdf</u>.
     186</p>
     187
     188<p><a name="input"><h4>4.5. Input</h4></p>
     189<p>
     190BNS needs GNSS clocks and orbits in the IGS Earth-Centered-Earth-Fixed (ECEF) reference system and Broadcast Ephemeris in RINEX Navigation file format.
     191</p>
     192
     193<p><a name="ephemeris"><h4>4.5.1 Ephemeris - mandatory</h4></p>
     194<p>
     195BNS reads GNSS Broadcast Ephemeris in RINEX Version 3 Navigation file format from an IP address and port. This information can be provided in real-time by the 'BKG Ntrip Client' (BNC) program through a persistent socket connection. Note that whenever a new set of Broadcast Ephemeris becomes availabe, it has to be transmitted immediately. Enter the respective servers IP address and port number. If BNS runs (advantageously) on the same host which provides the Broadcast Ephemeris, 127.0.0.1 has to be introduced as the servers IP address. Make sure that this server is up and running before you start BNS.
     196</p>
     197<p>
     198If a proxy server is operated between BNS and the server providing the Broadcast Ephemeris, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to use it for stream download.
     199</p>
     200<p>
     201The following is an example for Broadcast Ephemeris records in RINEX Version 3 Navigation file format concerning GPS PRN32 and GLONASS PRN04:
     202</p>
     203<p>
     204<pre>
     205G32 2008 07 22 12 00 00  3.08818183839e-04  2.72848410532e-12  0.00000000000e+00
     206     1.10000000000e+01 -4.00312500000e+01  4.63269297026e-09  9.74027926504e-01
     207    -2.19419598579e-06  1.39143558918e-02  8.25151801109e-06  5.15381674576e+03
     208     2.16000000000e+05 -8.56816768646e-08 -3.26801342873e-02 -2.94297933578e-07
     209     9.68688494953e-01  2.30468750000e+02 -1.30607654294e+00 -8.26105839196e-09
     210    -3.62872257943e-10  1.00000000000e+00  1.48900000000e+03  0.00000000000e+00
     211     2.00000000000e+00  0.00000000000e+00 -2.79396772385e-09  1.10000000000e+01
     212     0.00000000000e+00  0.00000000000e+00
     213R04 2008 07 22 08 15 14  4.76110726595e-05  0.00000000000e+00  2.88600000000e+04
     214    -1.76267827148e+04 -4.64202880859e-01  1.86264514923e-09  0.00000000000e+00
     215    -1.79631489258e+04 -3.41343879700e-01 -2.79396772385e-09  6.00000000000e+00
     216    -4.20270556641e+03  3.50097942352e+00  0.00000000000e+00  0.00000000000e+00
     217</pre>
     218</p>
     219
     220<p><a name="clocks"><h4>4.5.2 Clocks & Orbits - mandatory</h4></p>
     221<p>
     222BNS reads GNSS clocks and orbits in a plain ASCII format from an IP address and port. They can be provided by a real-time GNSS engine like RTNet and are expected to refer to the IGS Earth-Centered-Earth-Fixed (ECEF) reference system. Enter the respective servers IP address and port number to establish a persistent socket connection. If BNS runs (advantageously) on the same host which provides the clocks and orbits, 127.0.0.1 has to be introduced as the servers IP address. Make sure that this server is up and running before you start BNS.
     223</p>
     224<p>
     225If a proxy server is operated between BNS and the server providing the clocks and orbits, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to use them for stream download.
     226</p>
     227
     228<p>
     229Below you find an example for precise clocks and orbits coming in plain ASCII format from a real-time GNSS engine. Each epoch starts with an asterisk character followed by GPS Week, Second in GPS Week and Number of satellites. Subsequent records provide the following set of parameters for each satellite:
     230</p>
     231
     232<p>
     233<ul>
     234<li>GNSS Indicator and Satellite Vehicle Pseudo Random Number</li>
     235<li>X,Y,Z coordinates in Earth-Centered-Earth-Fixed system [m]</li>
     236<li>Satellite clock error [ns]</li>
     237<li>Standard deviation of satellite clock error [ns]</li>
     238</ul>
     239</p>
     240
     241</p>
     242<p>
     243<pre>
     244*  1489  218527.000000 13
     245G08    -76413.307  24866966.637   8527190.979     -162.790607     0.375
     246G09  13547198.314 -14993483.355  16521052.798        6.462891    -0.335
     247G12  23546505.279 -11419650.825  -4126405.941     -356.488306    -0.103
     248G15  20671877.676   1926153.017  16592944.847     -147.015776    -0.216
     249G17  14584397.556  20610108.909   8557082.997       38.709284    -0.081
     250G18   8169428.184 -16862693.369  18872507.835     -153.553965    -0.149
     251G22  -6624646.069 -14262545.420  21565075.194      211.479778    -0.089
     252G26  21424721.760   7905958.802  13511083.183      296.893434     0.413
     253G28   5220247.539  14404808.121  22087340.167      -21.263655     0.184
     254R04  14087836.321 -12766880.844  16904727.671       47.601404    -0.302
     255R13   9968458.843   4774687.770  22964489.920     -205.604626     0.526
     256R14  11765674.558 -13533158.122  18154217.335     -142.409508     0.093
     257R23  15142315.506  19152857.044   7329580.240     -111.465205    -0.316
     258*  1489  218528.000000 13
     259G08    -76893.521  24867989.053   8524186.937     -162.790606     0.376
     260G09  13547066.674 -14991254.946  16523118.186        6.462896    -0.334
     261G12  23547101.712 -11419571.961  -4123272.866     -356.488305    -0.102
     262G15  20673380.091   1927636.846  16590899.052     -147.015776    -0.215
     263G17  14583421.795  20609591.381   8559990.870       38.709276    -0.083
     264G18   8171742.449 -16863250.285  18870956.178     -153.553959    -0.148
     265G22  -6622069.142 -14263374.211  21565314.170      211.479771    -0.091
     266G26  21425938.906   7907253.545  13508540.885      296.893448     0.415
     267G28   5217668.842  14405642.686  22087373.519      -21.263659     0.183
     268R04  14090047.809 -12767642.452  16902327.088       47.601401    -0.303
     269R13   9967725.004   4777752.821  22964170.268     -205.604617     0.529
     270R14  11764988.257 -13530761.727  18156438.374     -142.409512     0.091
     271R23  15141704.650  19152042.802   7332976.247     -111.465201    -0.316
     272</pre>
     273</p>
     274
     275
     276<p><a name="clocks"><h4>4.5.3 Save Clocks & Orbits - optional</h4></p>
     277<p>
     278Specify the full path to a file where incoming clocks and orbits are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved.
     279</p>
     280
     281<p><a name="caster"><h4>4.6. NTRIP Caster</h4></p>
     282<p>
     283BNS can upload the resulting stream of cock and orbit corrections to Broadcast Ephemeris to an Ntrip Broadcaster. For that EUREF and IGS operate NTRIP broadcasters at <u>http://www.euref-ip.net/home</u> and <u>http://www.igs-ip.net/home</u> which might be used for stream upload. The stream's format is RTCM Version 3. Note that it only carries the thentative message types 4056 and 4057 for combined GPS and GLONASS clock and orbit corrections.
    154284</p>
    155285
    156 <p><a name="cashost"><h4>3.6.1 Host - optional</h4></p>
     286<p><a name="cashost"><h4>4.6.1 Host - optional</h4></p>
    157287Enter the NTRIP broadcaster 'Host' IP name or number for stream upload.
    158288</p>
    159289
    160 <p><a name="casport"><h4>3.6.2 Port - mandatory if 'Host' is set</h4></p>
     290<p><a name="casport"><h4>4.6.2 Port - mandatory if 'Host' is set</h4></p>
    161291<p>
    162292Enter the NTRIP broadcaster IP 'Port' number for stream upload. Note that NTRIP Broadcaster installations often provide access through more than one port, usually ports 80 and 2101. In case you experience communication problems on port 80, you may like to use the alternative port(s).
    163293</p>
    164294
    165 <p><a name="casproxy"><h4>3.6.3 Use Proxy - optional if 'Host' and 'Proxy' is set</h4></p>
    166 <p>
    167 In case BNS is operated in a protected LAN, you may need to use the proxy server protecting your network. Once you have specified your proxies host and port, you can tick 'Use proxy' to use it for stream upload.
    168 </p>
    169 
    170 <p><a name="casmount"><h4>3.6.4 Mountpoint - mandatory if 'Host' is set</h4></p>
    171 <p>
    172 Each stream on an NTRIP broadcaster is defined using a unique source ID called mountpoint. An NTRIP server like BNS can upload its stream to the broadcaster by referring to a specific mountpoint established by the broadcaster operator. Specify the mountpoint you receive from the operator for your stream. Note that it usually is a four character ID (capital letters) plus an integer number.
    173 </p>
    174 
    175 <p><a name="caspass"><h4>3.6.5 Password - mandatory if 'Host' is set</h4></p>
    176 <p>
    177 In NTRIP Version 1.0 stream upload ist protected through a generic upload 'Password'. Enter the password you received from the broadcaster operator along with the mounpoint.
    178 </p>
    179 
    180 <p><a name="casdata"><h4>3.6.6 Data - optional</h4></p>
    181 <p>
    182 The clock and orbit corrections streamed by BNS to an NTRIP broadcaster can recorded. Specify the full 'Data' path here to save this information in a local file. Default value for 'Data' path is an empty option field, meaning that the upload stream contents will not be saved locally.
    183 </p>
    184 <p>
    185 <ul>
    186 <li>Mountpoint</li>
     295<p><a name="casmount"><h4>4.6.3 Mountpoint - mandatory if 'Host' is set</h4></p>
     296<p>
     297Each stream on an NTRIP broadcaster is defined using a unique source ID called mountpoint. An NTRIP server like BNS can upload its stream to the broadcaster by referring to a dedicated mountpoint established by the broadcaster operator. Specify the mountpoint you receive from the operator for your stream. Note that it usually is a four character ID (capital letters) plus an integer number.
     298</p>
     299
     300<p><a name="caspass"><h4>4.6.4 Password - mandatory if 'Host' is set</h4></p>
     301<p>
     302In NTRIP Version 1.0 stream upload is only protected through a generic upload 'Password'. Enter the password you received from the broadcaster operator along with the mounpoint.
     303</p>
     304
     305<p><a name="casproxy"><h4>4.6.5 Use Proxy - optional if 'Host' and 'Proxy' is set</h4></p>
     306<p>
     307In case BNS is operated in a protected LAN, you may need to communicate through a proxy server protecting your network. Once you have specified your proxies host and port, you can tick 'Use proxy' to use it for stream upload.
     308</p>
     309
     310<p><a name="casstream"><h4>4.6.6 Save Stream - optional</h4></p>
     311<p>
     312The clock and orbit corrections streamed by BNS to an NTRIP broadcaster can be recorded. Specify a full 'Save stream' path here to save this information in a local file. Default value for 'Save stream' is an empty option field, meaning that the upload stream contents will not be saved locally.
     313</p>
     314<p>
     315The file contents will be plain ASCII comprising records carrying the following set of parameters:
     316</p>
     317
     318<p>
     319<ul>
    187320<li>GPS Week</li>
    188321<li>Second in GPS Week</li>
     
    194327<li>Cross-track Component of Orbit Correction to Broadcast Ephemeris [m]</li>
    195328</ul>
     329</p>
     330<p>
     331The following is an example file contents based on combined GPS and GLONASS clock and orbit corrections carried in RTCM Version 3 message types 4056 and 4057:
    196332</p>
    197333<p>
     
    208344</p>
    209345
    210 <p><a name="rinex"><h4>3.7. RINEX Clocks</h4></p>
     346<p><a name="rnxclk"><h4>4.7. RINEX Clocks</h4></p>
    211347<p>
    212348The clock corrections generated by BNS can be saved in Clock RINEX files. The file names follow the RINEX convention.
    213349</p>
    214350
    215 <p><a name="clkdir"><h4>3.7.1 Directory - optional</h4></p>
    216 <p>
    217 Here you can specify the path to where the Clock RINEX files will be stored. If the specified directory does not exist, BNC will not create Clock RINEX files. Default value for 'Directory' is an empty option field, meaning that no Clock RINEX files will be written.
    218 </p>
    219 
    220 <p><a name="clkint"><h4>3.7.2 Interval - mandatory if 'Directory' is set</h4></p>
     351<p><a name="clkdir"><h4>4.7.1 Directory - optional</h4></p>
     352<p>
     353Here you can specify the path to where the Clock RINEX files will be stored. If the specified directory does not exist, BNS will not create Clock RINEX files. Default value for 'Directory' is an empty option field, meaning that no Clock RINEX files will be written.
     354</p>
     355
     356<p><a name="clkint"><h4>4.7.2 Interval - mandatory if 'Directory' is set</h4></p>
    221357<p>
    222358Select the length of the Clock RINEX file generated. The default value is 1 day.
    223359</p>
    224360
    225 <p><a name="clksamp"><h4>3.7.3 Sampling - mandatory if 'Directory' is set</h4></p>
     361<p><a name="clksamp"><h4>4.7.3 Sampling - mandatory if 'Directory' is set</h4></p>
    226362<p>
    227363Select the Clock RINEX sampling interval in seconds. A value of zero '0' tells BNS to store all received epochs into Clock RINEX. This is the default value.
    228364</p>
    229365
    230 <p><a name="orbits"><h4>3.8. SP3 Orbits</h4></p>
    231 <p>
    232 The orbit corrections generated by BNS can be saved in SP3 orbit files. The file names follow the RINEX convention.
    233 </p>
    234 
    235 <p><a name="orbdir"><h4>3.8.1 Directory - optional</h4></p>
    236 <p>
    237 Here you can specify the path to where the SP3 orbit files will be stored. If the specified directory does not exist, BNC will not create SP3 orbit files. Default value for 'Directory' is an empty option field, meaning that no SP3 orbit files will be written.
    238 </p>
    239 
    240 <p><a name="orbint"><h4>3.8.2 Interval - mandatory if 'Directory' is set</h4></p>
    241 <p>
    242 Select the length of the SP3 orbit file generated. The default value is 1 day.
    243 </p>
    244 
    245 <p><a name="orbsamp"><h4>3.8.3 Sampling - mandatory if 'Directory' is set</h4></p>
    246 <p>
    247 Select the SP3 orbit file sampling interval in seconds. A value of zero '0' tells BNS to store all received epochs into SP3 orbit files. This is the default value.
    248 </p>
    249 
    250 <p><a name="start"><h4>3.9. Start</h4></p>
    251 <p>
    252 Hit 'Start' to start receiving IGS corbit and clock corrections and convert them into corrections to Broadcast Ephemeris. Note that 'Start' generally forces BNS to begin with fresh files which might overwrite existing files when necessary unless the option 'Append files' is ticked.
     366<p><a name="orbits"><h4>4.8. SP3 Orbits</h4></p>
     367<p>
     368The orbit corrections generated by BNS can be saved in SP3 Orbit files. The file names follow the RINEX convention.
     369</p>
     370
     371<p><a name="orbdir"><h4>4.8.1 Directory - optional</h4></p>
     372<p>
     373Here you can specify the path to where the SP3 Orbit files will be stored. If the specified directory does not exist, BNS will not create SP3 Orbit files. Default value for 'Directory' is an empty option field, meaning that no SP3 Orbit files will be written.
     374</p>
     375
     376<p><a name="orbint"><h4>4.8.2 Interval - mandatory if 'Directory' is set</h4></p>
     377<p>
     378Select the length of the SP3 Orbit file generated. The default value is 1 day.
     379</p>
     380
     381<p><a name="orbsamp"><h4>4.8.3 Sampling - mandatory if 'Directory' is set</h4></p>
     382<p>
     383Select the SP3 Orbit file sampling interval in seconds. A value of zero '0' tells BNS to store all received epochs into SP3 Orbit files. This is the default value.
     384</p>
     385
     386<p><a name="start"><h4>4.9. Start</h4></p>
     387<p>
     388Hit 'Start' to start receiving IGS orbits and clocks and convert them into corrections to Broadcast Ephemeris. Note that 'Start' generally forces BNS to begin with fresh files which might overwrite existing files when necessary unless the option 'Append files' is ticked.
    253389</p>
    254390
    255 <p><a name="stop"><h4>3.10. Stop</h4></p>
     391<p><a name="stop"><h4>4.10. Stop</h4></p>
    256392<p>
    257393Hit the 'Stop' button in order to stop BNS.
    258394</p>
    259395
    260 <p><a name="nw"><h4>3.11. No Window - optional</h4></p>
     396<p><a name="nw"><h4>4.11. No Window - optional</h4></p>
    261397<p>
    262398On all systems BNS can be started in batch mode with the command line option '-nw'. BNS will then run in 'no window' mode, using options from the configuration file ${HOME}/.config/BKG/BNC_NTRIP_Server.conf (Unix/Linux, see Config File example in the Annex) or from the register BKG_NTRIP_Server (Windows).
     
    265401Note that the self-explaining contents of the configuration file or the Windows register can easily be edited. Terminate BNS using Windows Task Manager when running it in 'no window' mode on Windows systems.
    266402</p>
    267 <p><a name="limits"><h3>4. Limitations</h3></p>
     403<p><a name="limits"><h3>5. Limitations</h3></p>
    268404<ul>
    269405<li>
     
    271407</li>
    272408<li>
    273 Currently BNS will only generate the tentative RTCM Version 3.x message types 4056 and 4057.
     409Currently BNS can only generate the tentative RTCM Version 3 message types 4056 and 4057 for combined GPS and GLONASS orbit and clock corrections.
    274410</li>
    275411<li>
     
    281417<br>
    282418</ul>
    283 <p><a name="authors"><h3>5. Authors</h3></p>
     419<p><a name="authors"><h3>6. Authors</h3></p>
    284420<p>
    285421The BKG Ntrip Server (BNS) Qt Graphic User Interface (GUI) has been developed for the Federal Agency for Cartography and Geodesy (BKG) by Leos Mervart, Czech Technical University Prague, Department of Geodesy. BNS includes a GNU GPL open source RTCM 3.x encoder, written for BKG by Dirk Stoecker, Alberding GmbH, Schoenefeld.
    286 </p>
    287 <p>
    288 Please ensure that you have installed the latest version of BNS available from <u>http://igs.bkg.bund.de/index_ntrip_down.htm</u>. We are continuously working on the program and would appreciate if you could send any comments, suggestions, or bug reports to:
    289422</p>
    290423<p>
     
    292425Federal Agency for Cartography and Geodesy (BKG)<br>
    293426Frankfurt, Germany<br>
    294 euref-ip@bkg.bund.de or igs-ip@bkg.bund.de
    295 </p>
    296 
    297 <p><a name="annex"><h3>6. Annex</h3></p>
    298 <p>
    299 6.1. <a href=#history>History</a><br>
    300 6.2. <a href=#ntrip>NTRIP</a><br>
    301 6.3. <a href=#rtcm>RTCM</a><br>
    302 &nbsp; &nbsp; &nbsp; 6.3.1 RTCM <a href=#rtcm3> Version 3.x</a><br>
    303 6.4. <a href=#config>Config File</a><br>
    304 6.5. <a href=#links>Links</a><br>
    305 </p>
    306 
    307 <p><a name=history><h3>6.1 History</h3></p>
     427[euref-ip@bkg.bund.de] or [igs-ip@bkg.bund.de]
     428</p>
     429
     430<p><a name="annex"><h3>7. Annex</h3></p>
     431<p>
     4327.1. <a href=#history>History</a><br>
     4337.2. <a href=#rtcm>RTCM</a><br>
     434&nbsp; &nbsp; &nbsp; 7.2.1 RTCM <a href=#ntrip>NTRIP</a><br>
     435&nbsp; &nbsp; &nbsp; 7.2.2 RTCM <a href=#rtcm3>Version 3.x</a><br>
     4367.3. <a href=#config>Config File</a><br>
     4377.4. <a href=#links>Links</a><br>
     438</p>
     439
     440<p><a name=history><h4>7.1 History</h4></p>
     441</p>
    308442<table>
    309443<tr></tr>
    310 <tr><td>August 2008 &nbsp;</td><td>Version 1.0 &nbsp;</td><td>[Add] First Beta Binaries published based on Qt 4.2.3.</td></tr>
     444<tr><td>August 2008 &nbsp;</td><td>Version 1.0 &nbsp;</td><td>[Add] First Beta Binaries published.</td></tr>
    311445</table>
    312446</p>
    313447
    314 <p><a name="ntrip"><h4>6.2. NTRIP</h4></p>
     448<p><a name="rtcm"><h4>7.2. RTCM</h4></p>
     449
     450<p>
     451The Radio Technical Commission for Maritime Services (RTCM) is an international non-profit scientific, professional and educational organization. Special Committees provide a forum in which governmental and non-governmental members work together to develop technical standards and consensus recommendations in regard to issues of particular concern. RTCM is engaged in the development of international standards for maritime radionavigation and radiocommunication systems. The output documents and reports prepared by RTCM Committees are published as RTCM Recommended Standards. Topics concerning Differential Global Navigation Satellite Systems (DGNSS) are handled by the Special Committee SC 104.
     452<p>
     453Personal copies of RTCM Recommended Standards can be ordered through <u>http://www.rtcm.org/orderinfo.php</u>.
     454</p>
     455
     456<p><a name="ntrip"><h4>7.2.1 NTRIP</h4></p>
    315457
    316458<p>
     
    337479</p>
    338480
    339 <p>
    340 </p>
    341 
    342 <p><a name="rtcm"><h4>6.3. RTCM</h4></p>
    343 
    344 <p>
    345 The Radio Technical Commission for Maritime Services (RTCM) is an international non-profit scientific, professional and educational organization. Special Committees provide a forum in which governmental and non-governmental members work together to develop technical standards and consensus recommendations in regard to issues of particular concern. RTCM is engaged in the development of international standards for maritime radionavigation and radiocommunication systems. The output documents and reports prepared by RTCM Committees are published as RTCM Recommended Standards. Topics concerning Differential Global Navigation Satellite Systems (DGNSS) are handled by the Special Committee SC 104.
    346 <p>
    347 Personal copies of RTCM Recommended Standards can be ordered through <u>http://www.rtcm.org/orderinfo.php</u>.
    348 </p>
    349 
    350 <p><a name="rtcm3"><h4>6.3.1 RTCM Version 3.x</h4></p>
     481<p><a name="rtcm3"><h4>7.2.2 RTCM Version 3.x</h4></p>
    351482<p>
    352483RTCM Version 3.x has been developed as a stream format alternative to RTCM Version 2.x. Service providers and vendors have asked for a standard that would be efficient, easy to use, and easily adaptable to new situations.
     
    354485
    355486<p>
    356 RTCM is in the process of developing new Version 3 messages types to transport satellite clock and orbit corrections in real-time. Based on the latest available proposal, the following tentative messages currently under discussion are of interest here:
     487RTCM is in the process of developing new Version 3 message types to transport satellite clock and orbit corrections in real-time. Based on the latest available proposal, the following tentative messages currently under discussion are of interest here:
    357488<ul>
    358489<li>Message type 4050: GPS orbit corrections to Broadcast Ephemeris</li>
     
    370501</p>
    371502
    372 <p><a name="config"><h4>6.4. Config File</h4></p>
    373 <p>
    374 The following is an example for the contents of a Unix/Linux configuration file ${HOME}/.config/BKG/BKG_NTRIP_Client.conf. It enables the upload of stream CLCK1 to www.euref-ip.net. Clock RINEX files and SP3 orbit files are uploaded to a directory /home/weber/rinex :
     503<p><a name="config"><h4>7.3. Config File</h4></p>
     504<p>
     505The following is an example for the contents of a Unix/Linux configuration file ${HOME}/.config/BKG/BKG_NTRIP_Client.conf. It enables the upload of stream CLCK1 to www.euref-ip.net. Clock RINEX files and SP3 Orbit files are uploaded to a directory /home/weber/rinex :
    375506<pre>
    376507[General]
     508clkFile=/home/weber/clocks.txt
     509clkHost=142.71.30.12
    377510clkPort=2067
     511clkProxy=2
     512ephHost=141.71.30.13
    378513ephPort=2066
     514ephProxy=2
     515fileAppend=0
     516font="Andale Sans,9,-1,5,75,0,0,0,0,0"
    379517logFile=/home/weber/rinex/log.txt
    380518mountpoint=CLCK1
    381 outFile=/home/weber/rinex/data.txt
     519outFile=/home/weber/rinex/CLCK1.txt
    382520outHost=www.igs-ip.net
    383521outPort=2101
    384 password=uploadpass
     522outProxy=2
     523password=uploadPass
     524proxyHost=gate-f
     525proxyPort=8000
     526refSys=IGS05
     527rnxAppend=2
    385528rnxIntr=1 day
    386529rnxPath=/home/weber/rinex
    387 rnxSampl=0
    388 sp3Intr=1 day
    389 sp3Path=/home/weber/rinex
     530rnxSampl=30
     531sp3Intr=1 hour
     532sp3Path=/home/weber/sp3
    390533sp3Sampl=0
    391534</pre>
    392535</p>
    393536
    394 <p><a name="links"><h3>6.5 Links</h3></p>
     537<p><a name="links"><h4>7.4 Links</h4></p>
    395538<table>
    396539<tr></tr>
     
    404547</table>
    405548
    406 
  • trunk/BNS/bnswindow.cpp

    r917 r958  
    4242  img->setPixmap(QPixmap(":ntrip-logo.png"));
    4343  dlgLayout->addWidget(img, 0,0);
    44   dlgLayout->addWidget(new QLabel("BKG NTRIP Server (BNS) Version 1.0"), 0,1);
     44  dlgLayout->addWidget(new QLabel("BKG Ntrip Server (BNS) Version 1.0"), 0,1);
    4545  dlgLayout->addWidget(tb,1,0,1,2);
    4646  dlgLayout->addWidget(_closeButton,2,1,Qt::AlignRight); 
     
    112112  setCentralWidget(_canvas);
    113113
     114  _proxyHostLineEdit  = new QLineEdit(settings.value("proxyHost").toString());
     115  _proxyHostLineEdit->setWhatsThis(tr("<p>If you are running BNC within a protected Local Area Network (LAN), you might 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 these are not possible, you might need to run BNC outsideyour LAN on a network that has unobstructed connection to the Internet.</p>"));
     116  _proxyPortLineEdit  = new QLineEdit(settings.value("proxyPort").toString());
     117  _proxyPortLineEdit->setWhatsThis(tr("<p>If you are running BNC within a protected Local Area Network (LAN), you might 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 these are not possible, you might need to run BNC outsideyour LAN on a network that has unobstructed connection to the Internet.</p>"));
     118  _proxyPortLineEdit->setMaximumWidth(9*ww);
     119
     120  _logFileLineEdit    = new QLineEdit(settings.value("logFile").toString());
     121  _logFileLineEdit->setWhatsThis(tr("<p>Records of BNS activities are shown in the Log section on the bottom of this window. They can be saved into a file when a valid path is specified in the 'Logfile (full path)' field.</p>"));
     122  _fileAppendCheckBox  = new QCheckBox();
     123  _fileAppendCheckBox->setCheckState(Qt::CheckState(settings.value("fileAppend").toInt()));
     124  _fileAppendCheckBox->setWhatsThis(tr("<p>When BNS is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append already existing files following a restart of BNS, a system crash or when BNS crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far.</p>"));
     125
     126  _refSysComboBox = new QComboBox;
     127  _refSysComboBox->setMaximumWidth(9*ww);
     128  _refSysComboBox->setEditable(false);
     129  _refSysComboBox->addItems(QString("IGS05,ETRS89").split(","));
     130  int ii = _refSysComboBox->findText(settings.value("refSys").toString());
     131  if (ii != -1) {
     132    _refSysComboBox->setCurrentIndex(ii);
     133  }
     134  _refSysComboBox->setWhatsThis(tr("Select the target reference system for outgoing orbit and clock corrections."));
     135
     136  _ephHostLineEdit  = new QLineEdit(settings.value("ephHost").toString());
     137  _ephHostLineEdit->setWhatsThis(tr("BNS reads Broadcast Ephemeris in RINEX Version 3 Navigation file format from an IP address. Specify the host IP e.g. of a BNC installation providing this information."));
    114138  _ephPortLineEdit  = new QLineEdit(settings.value("ephPort").toString());
    115   _ephPortLineEdit->setWhatsThis(tr("Port for broadcast ephemeris (from BNC)"));
     139  _ephPortLineEdit->setWhatsThis(tr("BNS reads Broadcast Ephemeris in RINEX Version 3 Navigation file format from an IP address. Specify the IP port e.g. of a BNC installation providing this information."));
     140  _ephProxyCheckBox  = new QCheckBox();
     141  _ephProxyCheckBox->setCheckState(Qt::CheckState(settings.value("ephProxy").toInt()));
     142  _ephProxyCheckBox->setWhatsThis(tr("If a proxy server is operated between BNS and the server providing Broadcast Ephemeris, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to activate them for stream access."));
    116143  _ephPortLineEdit->setMaximumWidth(9*ww);
    117144
     145  _clkHostLineEdit  = new QLineEdit(settings.value("clkHost").toString());
     146  _clkHostLineEdit->setWhatsThis(tr("BNS reads Clock and Orbit corrections referring to the IGS system (X,Y,Z, ECEF) from an IP address. Specify the host IP e.g. of an RTNet installation providing this information."));
    118147  _clkPortLineEdit  = new QLineEdit(settings.value("clkPort").toString());
    119   _clkPortLineEdit->setWhatsThis(tr("Port for clock results (from RTNET)"));
     148  _clkPortLineEdit->setWhatsThis(tr("BNS reads Clock and Orbit corrections referring to the IGS system (X,Y,Z, ECEF) from an IP address. Specify the IP port e.g. of a RTNet installation providing this information."));
     149  _clkProxyCheckBox  = new QCheckBox();
     150  _clkProxyCheckBox->setCheckState(Qt::CheckState(settings.value("clkProxy").toInt()));
     151  _clkProxyCheckBox->setWhatsThis(tr("If a proxy server is operated between BNS and the server providing Clock and Orbit corrections, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to activate them for stream access."));
     152  _clkFileLineEdit    = new QLineEdit(settings.value("clkFile").toString());
     153  _clkFileLineEdit->setWhatsThis(tr("Specify the full path to a file where incoming IGS Clock and Orbit corrections are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that incoming corrections are not saved."));
    120154  _clkPortLineEdit->setMaximumWidth(9*ww);
    121155
    122   _logFileLineEdit    = new QLineEdit(settings.value("logFile").toString());
    123156  _outHostLineEdit    = new QLineEdit(settings.value("outHost").toString());
     157  _outHostLineEdit->setWhatsThis(tr("BNS can stream clock and orbit corrections to Broadcast Ephemeris in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
    124158  _outPortLineEdit    = new QLineEdit(settings.value("outPort").toString());
     159  _outPortLineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
    125160  _outPortLineEdit->setMaximumWidth(9*ww);
    126161  _mountpointLineEdit = new QLineEdit(settings.value("mountpoint").toString());
     162  _mountpointLineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
    127163  _mountpointLineEdit->setMaximumWidth(9*ww);
    128164  _passwordLineEdit   = new QLineEdit(settings.value("password").toString());
     165  _passwordLineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
    129166  _passwordLineEdit->setMaximumWidth(9*ww);
    130167  _passwordLineEdit->setEchoMode(QLineEdit::Password);
     168  _outProxyCheckBox  = new QCheckBox();
     169  _outProxyCheckBox->setCheckState(Qt::CheckState(settings.value("outProxy").toInt()));
     170  _outProxyCheckBox->setWhatsThis(tr("If a proxy server is operated between BNS and the NTRIP Broadcaster, you may need to use the proxy server settings you have specified. Tick 'Use proxy' to activate them for stream upload."));
    131171  _outFileLineEdit    = new QLineEdit(settings.value("outFile").toString());
     172  _outFileLineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing Clock and Orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
    132173
    133174  _rnxPathLineEdit = new QLineEdit(settings.value("rnxPath").toString());
     175  _rnxPathLineEdit->setWhatsThis(tr("Specify the path for saving the generated clock corrections as Clock RINEX files. If the specified directory does not exist, BNS will not create Clock RINEX files."));
    134176  _rnxIntrComboBox = new QComboBox;
    135177  _rnxIntrComboBox->setMaximumWidth(9*ww);
    136178  _rnxIntrComboBox->setEditable(false);
    137179  _rnxIntrComboBox->addItems(QString("1 min,2 min,5 min,10 min,15 min,30 min,1 hour,1 day").split(","));
    138   int ii = _rnxIntrComboBox->findText(settings.value("rnxIntr").toString());
     180  ii = _rnxIntrComboBox->findText(settings.value("rnxIntr").toString());
    139181  if (ii != -1) {
    140182    _rnxIntrComboBox->setCurrentIndex(ii);
    141183  }
     184  _rnxIntrComboBox->setWhatsThis(tr("Select the length of the Clock RINEX file."));
    142185  _rnxSamplSpinBox = new QSpinBox;
    143186  _rnxSamplSpinBox->setMinimum(0);
     
    147190  _rnxSamplSpinBox->setValue(settings.value("rnxSampl").toInt());
    148191  _rnxSamplSpinBox->setSuffix(" sec");
     192  _rnxSamplSpinBox->setWhatsThis(tr("Select the Clock RINEX file sampling interval in seconds. A value of zero '0' tells BNS to store all available samples into Clock RINEX files."));
    149193
    150194  _sp3PathLineEdit = new QLineEdit(settings.value("sp3Path").toString());
     195  _sp3PathLineEdit->setWhatsThis(tr("Specify the path for saving the generatec orbit corrections as SP3 orbit files. If the specified directory does not exist, BNS will not create Clock RINEX files."));
    151196  _sp3IntrComboBox = new QComboBox;
    152197  _sp3IntrComboBox->setMaximumWidth(9*ww);
     
    157202    _sp3IntrComboBox->setCurrentIndex(ii);
    158203  }
     204  _sp3IntrComboBox->setWhatsThis(tr("Select the length of the SP3 orbit file."));
    159205  _sp3SamplSpinBox = new QSpinBox;
    160206  _sp3SamplSpinBox->setMinimum(0);
     
    164210  _sp3SamplSpinBox->setValue(settings.value("sp3Sampl").toInt());
    165211  _sp3SamplSpinBox->setSuffix(" sec");
     212  _sp3SamplSpinBox->setWhatsThis(tr("Select the SP3 orbit file sampling interval in seconds. A value of zero '0' tells BNS to store all available samples into SP3 orbit files."));
    166213
    167214  // TabWidget
     
    169216  QTabWidget* tabs = new QTabWidget();
    170217
    171   // Basic Input/Output Tab
    172   // ----------------------
    173   QWidget* tab_bas = new QWidget();
    174   tabs->addTab(tab_bas, "Basic Options");
    175 
    176   QGridLayout* layout_bas = new QGridLayout;
    177   layout_bas->setColumnMinimumWidth(2, 9*ww);
    178 
    179   layout_bas->addWidget(new QLabel("Input Ports"),  0, 0, 1, 2);
    180   layout_bas->addWidget(new QLabel("Output Files"), 0, 3, 1, 2);
    181   layout_bas->addWidget(new QLabel("Ephemeris"),    1, 0, Qt::AlignLeft);
    182   layout_bas->addWidget(_ephPortLineEdit,           1, 1);
    183   layout_bas->addWidget(new QLabel("Log"),          1, 3, Qt::AlignLeft);
    184   layout_bas->addWidget(_logFileLineEdit,           1, 4);
    185   layout_bas->addWidget(new QLabel("Clocks"),       2, 0, Qt::AlignLeft);
    186   layout_bas->addWidget(_clkPortLineEdit,           2, 1);
    187   layout_bas->addWidget(new QLabel("Data"),         2, 3, Qt::AlignLeft);
    188   layout_bas->addWidget(_outFileLineEdit,           2, 4);
    189   layout_bas->addWidget(new QLabel(""),             3, 0);
    190   layout_bas->addWidget(new QLabel(""),             4, 0);
    191   layout_bas->addWidget(new QLabel(""),             5, 0);
    192 
    193   tab_bas->setLayout(layout_bas);
     218  // Proxy Tab
     219  // ---------
     220  QWidget* tab_prx = new QWidget();
     221  tabs->setMaximumHeight(20*ww);
     222  tabs->addTab(tab_prx, "Proxy");
     223
     224  QGridLayout* layout_prx = new QGridLayout;
     225  layout_prx->setColumnMinimumWidth(0,9*ww);
     226
     227  layout_prx->addWidget(new QLabel("Proxy host"), 0, 0, Qt::AlignLeft);
     228  layout_prx->addWidget(_proxyHostLineEdit,       0, 1);
     229  layout_prx->addWidget(new QLabel("Proxy port"), 1, 0, Qt::AlignLeft);
     230  layout_prx->addWidget(_proxyPortLineEdit,       1, 1);
     231  layout_prx->addWidget(new QLabel("Settings for the proxy in protected networks, leave boxes blank if none."),2, 0, 1, 2, Qt::AlignLeft);
     232  layout_prx->addWidget(new QLabel("    "),       3, 0);
     233  layout_prx->addWidget(new QLabel("    "),       4, 0);
     234
     235  tab_prx->setLayout(layout_prx);
     236
     237  // General Tab
     238  // -----------
     239  QWidget* tab_gen = new QWidget();
     240  tabs->addTab(tab_gen, "General");
     241
     242  QGridLayout* layout_gen = new QGridLayout;
     243  layout_gen->setColumnMinimumWidth(0,9*ww);
     244
     245  layout_gen->addWidget(new QLabel("Logfile (full path)"), 0, 0);
     246  layout_gen->addWidget(_logFileLineEdit,                  0, 1);
     247  layout_gen->addWidget(new QLabel("Append files"),        1, 0);
     248  layout_gen->addWidget(_fileAppendCheckBox,               1, 1);
     249  layout_gen->addWidget(new QLabel("Reference System"),    2, 0);
     250  layout_gen->addWidget(_refSysComboBox,                   2, 1);
     251  layout_gen->addWidget(new QLabel("General settings for logfile, file handling and target reference system."),3, 0, 1, 2, Qt::AlignLeft);
     252  layout_gen->addWidget(new QLabel("    "),                4, 0);
     253
     254  tab_gen->setLayout(layout_gen);
     255
     256  // Input Tab
     257  // ---------
     258  QWidget* tab_inp = new QWidget();
     259  tabs->addTab(tab_inp, "Input");
     260
     261  QGridLayout* layout_inp = new QGridLayout;
     262  layout_inp->setColumnMinimumWidth(0, 9*ww);
     263
     264  layout_inp->addWidget(new QLabel("Ephemeris"),       0, 0, Qt::AlignLeft);
     265  layout_inp->addWidget(new QLabel("Host"),            0, 1, Qt::AlignRight);
     266  layout_inp->addWidget(_ephHostLineEdit,              0, 2);
     267  layout_inp->addWidget(new QLabel("Port"),            0, 3, Qt::AlignLeft);
     268  layout_inp->addWidget(_ephPortLineEdit,              0, 4);
     269  layout_inp->addWidget(new QLabel("Use proxy"),       0, 5, Qt::AlignLeft);
     270  layout_inp->addWidget(_ephProxyCheckBox,             0, 6);
     271  layout_inp->addWidget(new QLabel("Clocks & Orbits"), 1, 0, Qt::AlignLeft);
     272  layout_inp->addWidget(new QLabel("Host"),            1, 1, Qt::AlignRight);
     273  layout_inp->addWidget(_clkHostLineEdit,              1, 2);
     274  layout_inp->addWidget(new QLabel("Port"),            1, 3, Qt::AlignLeft);
     275  layout_inp->addWidget(_clkPortLineEdit,              1, 4);
     276  layout_inp->addWidget(new QLabel("Use proxy"),       1, 5, Qt::AlignLeft);
     277  layout_inp->addWidget(_clkProxyCheckBox,             1, 6);
     278  layout_inp->addWidget(new QLabel("Save Clocks & Orbits"), 2, 0, Qt::AlignLeft);
     279  layout_inp->addWidget(new QLabel("(full path)"), 2, 1, Qt::AlignRight);
     280  layout_inp->addWidget(_clkFileLineEdit,         2, 2);
     281  layout_inp->addWidget(new QLabel("Read broadcast ephemeris and IGS clocks and orbits."), 3, 0, 1, 6, Qt::AlignLeft);
     282  layout_inp->addWidget(new QLabel(""),                4, 0);
     283
     284  tab_inp->setLayout(layout_inp);
    194285
    195286  // NTRIP Caster Tab
     
    199290
    200291  QGridLayout* layout_cas = new QGridLayout;
    201   layout_cas->setColumnMinimumWidth(2, 9*ww);
    202 
    203   layout_cas->addWidget(new QLabel(""),           0, 0);
    204   layout_cas->addWidget(new QLabel("Host"),       1, 0, Qt::AlignLeft);
    205   layout_cas->addWidget(_outHostLineEdit,         1, 1);
    206   layout_cas->addWidget(new QLabel("Port"),       1, 3, Qt::AlignLeft);
    207   layout_cas->addWidget(_outPortLineEdit,         1, 4);
    208   layout_cas->addWidget(new QLabel("Mountpoint"), 2, 0, Qt::AlignLeft);
    209   layout_cas->addWidget(_mountpointLineEdit,      2, 1);
    210   layout_cas->addWidget(new QLabel("Password"),   2, 3, Qt::AlignLeft);
    211   layout_cas->addWidget(_passwordLineEdit,        2, 4);
    212   layout_cas->addWidget(new QLabel(""),           3, 0);
    213   layout_cas->addWidget(new QLabel(""),           4, 0);
    214   layout_cas->addWidget(new QLabel(""),           5, 0);
     292  layout_cas->setColumnMinimumWidth(0, 9*ww);
     293
     294  layout_cas->addWidget(new QLabel("Host"),       0, 0, Qt::AlignLeft);
     295  layout_cas->addWidget(_outHostLineEdit,         0, 1);
     296  layout_cas->addWidget(new QLabel("Port"),       0, 3, Qt::AlignLeft);
     297  layout_cas->addWidget(_outPortLineEdit,         0, 4);
     298  layout_cas->addWidget(new QLabel("Mountpoint"), 1, 0, Qt::AlignLeft);
     299  layout_cas->addWidget(_mountpointLineEdit,      1, 1);
     300  layout_cas->addWidget(new QLabel("Password"),   1, 3, Qt::AlignLeft);
     301  layout_cas->addWidget(_passwordLineEdit,        1, 4);
     302  layout_cas->addWidget(new QLabel("Use proxy"),  2, 0, Qt::AlignLeft);
     303  layout_cas->addWidget(_outProxyCheckBox,        2, 1);
     304  layout_cas->addWidget(new QLabel("Save stream (full path)"), 3, 0, Qt::AlignLeft);
     305  layout_cas->addWidget(_outFileLineEdit,         3, 1);
     306  layout_cas->addWidget(new QLabel("Stream upload of clock and orbit corrections to NTRIP broadcaster."),4, 0, 1, 2, Qt::AlignLeft);
    215307
    216308  tab_cas->setLayout(layout_cas);
    217309
    218   // RINEX and SP3 Tab
    219   // -----------------
     310  // RINEX Tab
     311  // ---------
    220312  QWidget* tab_rin = new QWidget();
    221   tabs->addTab(tab_rin, "RINEX and SP3");
     313  tabs->addTab(tab_rin, "RINEX Clocks ");
    222314
    223315  QGridLayout* layout_rin = new QGridLayout;
    224 
    225   layout_rin->addWidget(new QLabel("Clocks in RINEX Format"),  0, 0, 1, 4);
    226   layout_rin->addWidget(new QLabel("Directory"),               1, 0);
    227   layout_rin->addWidget(_rnxPathLineEdit,                      1, 1, 1, 3);
    228   layout_rin->addWidget(new QLabel("Interval"),                2, 0);
    229   layout_rin->addWidget(_rnxIntrComboBox,                      2, 1);
    230   layout_rin->addWidget(new QLabel("Sampling"),                2, 2, Qt::AlignRight);
    231   layout_rin->addWidget(_rnxSamplSpinBox,                      2, 3, Qt::AlignLeft);
    232   layout_rin->addWidget(new QLabel(""),                        3, 0);
    233   layout_rin->addWidget(new QLabel("Ephemeris in SP3 Format"), 4, 0, 1, 4);
    234   layout_rin->addWidget(new QLabel("Directory"),               5, 0);
    235   layout_rin->addWidget(_sp3PathLineEdit,                      5, 1, 1, 3);
    236   layout_rin->addWidget(new QLabel("Interval"),                6, 0);
    237   layout_rin->addWidget(_sp3IntrComboBox,                      6, 1);
    238   layout_rin->addWidget(new QLabel("Sampling"),                6, 2, Qt::AlignRight);
    239   layout_rin->addWidget(_sp3SamplSpinBox,                      6, 3, Qt::AlignLeft);
     316  layout_rin->setColumnMinimumWidth(0, 9*ww);
     317
     318  layout_rin->addWidget(new QLabel("Directory"),                    0, 0);
     319  layout_rin->addWidget(_rnxPathLineEdit,                           0, 1);
     320  layout_rin->addWidget(new QLabel("Interval"),                     1, 0);
     321  layout_rin->addWidget(_rnxIntrComboBox,                           1, 1);
     322  layout_rin->addWidget(new QLabel("Sampling"),                     2, 0);
     323  layout_rin->addWidget(_rnxSamplSpinBox,                           2, 1);
     324  layout_rin->addWidget(new QLabel("Save clock corrections in Clock RINEX file format."),  3, 0, 1, 2, Qt::AlignLeft);
     325  layout_rin->addWidget(new QLabel(""),                             4, 0);
    240326
    241327  tab_rin->setLayout(layout_rin);
     328
     329  // SP3 Tab
     330  // -------
     331  QWidget* tab_sp3 = new QWidget();
     332  tabs->addTab(tab_sp3, "SP3 Orbits");
     333
     334  QGridLayout* layout_sp3 = new QGridLayout;
     335  layout_sp3->setColumnMinimumWidth(0, 9*ww);
     336
     337  layout_sp3->addWidget(new QLabel("Directory"),                 0, 0);
     338  layout_sp3->addWidget(_sp3PathLineEdit,                        0, 1);
     339  layout_sp3->addWidget(new QLabel("Interval"),                  1, 0);
     340  layout_sp3->addWidget(_sp3IntrComboBox,                        1, 1);
     341  layout_sp3->addWidget(new QLabel("Sampling"),                  2, 0);
     342  layout_sp3->addWidget(_sp3SamplSpinBox,                        2, 1);
     343  layout_sp3->addWidget(new QLabel("Save orbit corrections in SP3 file format."), 3, 0, 1, 2, Qt::AlignLeft);
     344  layout_sp3->addWidget(new QLabel(""),                          4, 0);
     345
     346  tab_sp3->setLayout(layout_sp3);
    242347
    243348  // Log
     
    345450void bnsWindow::slotSaveOptions() {
    346451  QSettings settings;
     452  settings.setValue("proxyHost",  _proxyHostLineEdit->text());
     453  settings.setValue("proxyPort",  _proxyPortLineEdit->text());
     454  settings.setValue("logFile",    _logFileLineEdit->text());
     455  settings.setValue("fileAppend", _fileAppendCheckBox->checkState());
     456  settings.setValue("refSys",     _refSysComboBox->currentText());
     457  settings.setValue("ephHost",    _ephHostLineEdit->text());
    347458  settings.setValue("ephPort",    _ephPortLineEdit->text());
     459  settings.setValue("ephProxy",   _ephProxyCheckBox->checkState());
     460  settings.setValue("clkHost",    _clkHostLineEdit->text());
    348461  settings.setValue("clkPort",    _clkPortLineEdit->text());
    349   settings.setValue("logFile",    _logFileLineEdit->text());
     462  settings.setValue("clkProxy",   _clkProxyCheckBox->checkState());
     463  settings.setValue("clkFile",    _clkFileLineEdit->text());
    350464  settings.setValue("outHost",    _outHostLineEdit->text());
    351465  settings.setValue("outPort",    _outPortLineEdit->text());
     466  settings.setValue("outProxy",   _outProxyCheckBox->checkState());
    352467  settings.setValue("mountpoint", _mountpointLineEdit->text());
     468  settings.setValue("outFile",    _outFileLineEdit->text());
    353469  settings.setValue("password",   _passwordLineEdit->text());
    354   settings.setValue("outFile",    _outFileLineEdit->text());
    355470  settings.setValue("rnxPath",    _rnxPathLineEdit->text());
    356471  settings.setValue("rnxIntr",    _rnxIntrComboBox->currentText());
  • trunk/BNS/bnswindow.h

    r845 r958  
    5656  QWidget*   _canvas;
    5757
     58  QLineEdit* _proxyHostLineEdit;
     59  QLineEdit* _proxyPortLineEdit;
     60  QLineEdit* _ephHostLineEdit;
    5861  QLineEdit* _ephPortLineEdit;
     62  QLineEdit* _clkHostLineEdit;
    5963  QLineEdit* _clkPortLineEdit;
     64  QLineEdit* _clkFileLineEdit;
    6065  QLineEdit* _logFileLineEdit;
    6166  QLineEdit* _outHostLineEdit;
     
    6873  QComboBox* _rnxIntrComboBox;
    6974  QComboBox* _sp3IntrComboBox;
     75  QComboBox* _refSysComboBox;
    7076  QSpinBox*  _rnxSamplSpinBox;
    7177  QSpinBox*  _sp3SamplSpinBox;
     78  QCheckBox* _fileAppendCheckBox;
     79  QCheckBox* _outProxyCheckBox;
     80  QCheckBox* _ephProxyCheckBox;
     81  QCheckBox* _clkProxyCheckBox;
    7282
    7383  QTextEdit*  _log;
Note: See TracChangeset for help on using the changeset viewer.