Index: /trunk/BNC/bnchelp.html
===================================================================
--- /trunk/BNC/bnchelp.html	(revision 1408)
+++ /trunk/BNC/bnchelp.html	(revision 1409)
@@ -130,8 +130,9 @@
 &nbsp; &nbsp; &nbsp; 3.12.2. <a href=#streamhost>Caster Host and Port</a><br>
 &nbsp; &nbsp; &nbsp; 3.12.3. <a href=#streamuser>Caster User and Password</a><br>
-&nbsp; &nbsp; &nbsp; 3.12.4. <a href=#streamtable>Get Table</a><br>
-&nbsp; &nbsp; &nbsp; 3.12.5. <a href=#streamdelete>Delete Streams</a><br>
-&nbsp; &nbsp; &nbsp; 3.12.6. <a href=#streamedit>Edit Streams</a><br>
-&nbsp; &nbsp; &nbsp; 3.12.7. <a href=#streamconf>Reconfigure Streams On-the-fly</a><br>
+&nbsp; &nbsp; &nbsp; 3.12.4. <a href=#streamntrip>NTRIP Version</a><br>
+&nbsp; &nbsp; &nbsp; 3.12.5. <a href=#streamtable>Get Table</a><br>
+&nbsp; &nbsp; &nbsp; 3.12.6. <a href=#streamdelete>Delete Streams</a><br>
+&nbsp; &nbsp; &nbsp; 3.12.7. <a href=#streamedit>Edit Streams</a><br>
+&nbsp; &nbsp; &nbsp; 3.12.8. <a href=#streamconf>Reconfigure Streams On-the-fly</a><br>
 3.13. <a href=#start>Start</a><br>
 3.14. <a href=#stop>Stop</a><br>
@@ -736,9 +737,10 @@
 </p>
 
+<p>
 Streams selected for retrieval are listed under the 'Streams' canvas section on BNC's main window. The list provides the following information extracted from source-table(s) produced by the NTRIP broadcasters:
+</p>
  
 <table>
-<tr></tr>
-<tr><td>'broadcaster:port' &nbsp;</td><td>NTRIP broadcaster URL and port.</td></tr>
+<tr><td>'broadcaster:port'&nbsp; </td><td>NTRIP broadcaster URL and port.</td></tr>
 <tr><td>'mountpoint' &nbsp;</td><td>Mountpoint on NTRIP broadcaster.</td></tr>
 <tr><td>'decoder' &nbsp;</td><td>Type of decoder used to handle the incoming stream content according to its format; editable.</td></tr>
@@ -746,4 +748,5 @@
 <tr><td>'long' &nbsp;</td><td>Approximate longitude of reference station, in degrees, east; editable if 'nmea' = 'yes'.</td></tr>
 <tr><td>'nmea' &nbsp;</td><td>Indicates whether or not streaming needs to be initiated by BNC through sending NMEA-GGA message carrying position coordinates in 'lat' and 'long'.</td></tr>
+<tr><td>'ntrip' &nbsp;</td><td>Selected NTRIP transport protocol version.</td></tr>
 <tr><td>'bytes' &nbsp;</td><td>Number of bytes retrieved.
 </table>
@@ -764,5 +767,21 @@
 </p> 
 
-<p><a name="streamtable"><h4>3.12.4 Get Table</h4></p>
+<p><a name="streamntrip"><h4>3.12.4 NTRIP Version - mandatory</h4></p>
+<p>
+Some limitations and deficiencies of the NTRIP version 1 stream transport protocol are solved in NTRIP version 2. Improvements mainly concern a full HTTP compatibility in view of requirements coming from proxy servers. Options implemented in BNC are:
+</p>
+<p>
+&nbsp; 1:&nbsp; NTRIP version 1 in TCP/IP mode,<br>
+&nbsp; 2:&nbsp; NTRIP version 2 in TCP/IP mode.
+</p>
+<p>
+Try using option '2' if your streams are blocked by a proxy and protocol version 2 is supported by the broadcaster. Select option '1' if you not sure whether the broadcaster supports NTRIP version 2.
+</p>
+
+
+
+</p>
+
+<p><a name="streamtable"><h4>3.12.5 Get Table</h4></p>
 <p>
 Use the 'Get Table' button to download the source-table from the NTRIP broadcaster. Pay attention to data fields 'format' and 'format-details'. Keep in mind that BNC can only decode and convert streams that come in RTCM Version 2.x, RTCM Version 3.x, or RTIGS format. RTCM Version 2.x streams must contain message types 18 and 19 or 20 and 21 while RTCM Version 3.x streams must contain GPS or SBAS message types 1002 or 1004 and may contain GLONASS message types 1010 or 1012, see data field 'format-details' for available message types and their repetition rates in brackets. Note that in order to produce RINEX Navigation files RTCM Version 3.x streams containing message types 1019 (GPS) and 1020 (GLONASS) are required. Select your streams line by line, use +Shift and +Ctrl when necessary.
@@ -775,9 +794,9 @@
 </p> 
 
-<p><a name="streamdelete"><h4>3.12.5 Delete Streams</h4></p>
+<p><a name="streamdelete"><h4>3.12.6 Delete Streams</h4></p>
 <p>
 To remove a stream from the 'Streams' canvas in the main window, highlight it by clicking on it and hit the 'Delete Streams' button. You can also remove multiple streams simultaneously by highlighting them using +Shift and +Ctrl.</p>
 
-<p><a name="streamedit"><h4>3.12.6 Edit Streams</h4></p>
+<p><a name="streamedit"><h4>3.12.7 Edit Streams</h4></p>
 <ul>
 <li>
@@ -789,10 +808,10 @@
 <li>
 BNC can also retrieve streams from virtual reference stations (VRS). To initiate these streams, an approximate rover position needs to be sent in NMEA format to the NTRIP broadcaster. In return, a user-specific data stream is generated, typically by a Network-RTK software. VRS streams are indicated by a 'yes' in the source-table as well as in the 'nmea' column on the 'Streams' canvas in BNC's main window. They are customized exactly to the latitude and longitude transmitted to the NTRIP broadcaster via NMEA-GGA messages.
-<br>If NMEA-GGA messages are not coming from a serial connected GNSS rover, BNC simulates them from the default latitude and longitude of the source-table as shown in the 'lat' and 'lon' columns on the 'Streams' canvas. However, in most cases you would probably want to change these defaults according to your requirement. Double-click on 'lat' and 'lon' fields, enter the values you wish to send and then hit Enter. The format is in positive north latitude degrees (e.g. for northern hemisphere: 52.436, for southern hemisphere: -24.567) and eastern longitude degrees (example: 358.872 or -1.128). Only streams with a 'yes' in their 'nmea' column can be edited. The position must preferably be a point within the VRS service area of the network. RINEX files generated from these streams will contain an additional COMMENT line in the header beginning with 'NMEA' showing the 'lat' and 'lon' used.
+<br>If NMEA-GGA messages are not coming from a serial connected GNSS rover, BNC simulates them from the default latitude and longitude of the source-table as shown in the 'lat' and 'long' columns on the 'Streams' canvas. However, in most cases you would probably want to change these defaults according to your requirement. Double-click on 'lat' and 'long' fields, enter the values you wish to send and then hit Enter. The format is in positive north latitude degrees (e.g. for northern hemisphere: 52.436, for southern hemisphere: -24.567) and eastern longitude degrees (example: 358.872 or -1.128). Only streams with a 'yes' in their 'nmea' column can be edited. The position must preferably be a point within the VRS service area of the network. RINEX files generated from these streams will contain an additional COMMENT line in the header beginning with 'NMEA' showing the 'lat' and 'long' used.
 <br>Note that when running BNC in a Local Area Network (LAN), NMEA strings may be blocked by a proxy server, firewall or virus scanner.
 </li>
 </ul> 
 
-<p><a name="streamconf"><h4>3.12.7 Reconfigure Streams On-the-fly</h4></p>
+<p><a name="streamconf"><h4>3.12.8 Reconfigure Streams On-the-fly</h4></p>
 <p>
 The streams selection can be changed on-the-fly without interrupting uninvolved threads in the running BNC process.
@@ -916,7 +935,8 @@
 8.1. <a href=#history>History</a><br>
 8.2. <a href=#rtcm>RTCM</a><br>
-&nbsp; &nbsp; &nbsp; 8.2.1 <a href=#ntrip>NTRIP</a><br>
-&nbsp; &nbsp; &nbsp; 8.2.2 RTCM <a href=#rtcm2>Version 2.x</a><br>
-&nbsp; &nbsp; &nbsp; 8.2.3 RTCM <a href=#rtcm3>Version 3.x</a><br>
+&nbsp; &nbsp; &nbsp; 8.2.1 NTRIP <a href=#ntrip1>Version 1</a><br>
+&nbsp; &nbsp; &nbsp; 8.2.2 NTRIP <a href=#ntrip2>Version 2</a><br>
+&nbsp; &nbsp; &nbsp; 8.2.3 RTCM <a href=#rtcm2>Version 2.x</a><br>
+&nbsp; &nbsp; &nbsp; 8.2.4 RTCM <a href=#rtcm3>Version 3.x</a><br>
 8.3. <a href=#rtigs>RTIGS</a><br>
 &nbsp; &nbsp; &nbsp; 8.3.1 <a href=#soc>SOC</a><br>
@@ -935,6 +955,5 @@
 <tr><td>Apr 2008 &nbsp;</td><td>Version 1.5 &nbsp;</td><td>[Add] Handle ephemeris from RTCM Version 3.x streams<br> [Add] Upgrade to Qt Version 4.3.2<br> [Add] Optional RINEX v3 output<br> [Add] SBAS support<br> [Bug] RINEX skeleton download following stream outage<br> [Add] Handle ephemeris from RTIGS streams<br> [Add] Monitor stream failure/recovery and latency<br> [Mod] Redesign of main window<br> [Bug] Freezing of About window on Mac systems<br> [Bug] Fixed problem with PRN 32 in RTCMv2 decoder<br> [Bug] Fix for Trimble 4000SSI receivers in RTCMv2 decoder<br> [Mod] Major revision of input buffer in RTCMv2 decoder</td></tr>
 <tr><td>Dec 2008 &nbsp;</td><td>Version 1.6 &nbsp;</td><td>[Mod] Fill blanc columns in RINEXv3 with 0.000<br> [Add] RTCMv3 decoder for clock and orbit corrections<br>[Add] Check RTCMv3 streams for incoming message types<br> [Add] Decode RTCMv2 message types 3, 20, 21, and 22<br> [Add] Loss of lock and lock time indicator<br> [Bug] Rounding error in RTCMv3 decoder concerning GLONASS height<br> [Mod] Accept GLONASS in RTCMv3 when transmitted first<br> [Add] Leap second 1 January 2009<br> [Add] Offline mode, read data from file<br> [Add] Output antenna descriptor, coordinates and excentricities from RTCMv3<br> [Add] Reconfiguration on-the-fly<br> [Mod] Binary ouput of synchronized observations<br> [Add] Binary output of unsynchronized observations<br> [Bug] Fixed problem with joined RTCMv3 blocks</td></tr>
-<tr><td>Jan 2009 &nbsp;</td><td>Version 1.7 &nbsp;</td><td>
-[Add] Full proxy support<br> [Mod] Ntrip source-table request<br> [Bug] RINEX navigation file format<br> [Add] Support of NTRIP v2<br> [Add] Rover support via serial port</td></tr>
+<tr><td>Jan 2009 &nbsp;</td><td>Version 1.7 &nbsp;</td><td>[Mod] NTRIP v1 source-table request<br> [Bug] RINEX navigation file format<br> [Add] Support of NTRIP v2<br> [Add] Rover support via serial port</td></tr>
 </table>
 </p>
@@ -948,5 +967,5 @@
 </p>
 
-<p><a name="ntrip"><h4>8.2.1 NTRIP</h4></p>
+<p><a name="ntrip1"><h4>8.2.1 NTRIP Version 1</h4></p>
 
 <p>
@@ -987,6 +1006,23 @@
 </p>
 
-
-<p><a name="rtcm2"><h4>8.2.2 RTCM Version 2.x</h4></p>
+<p><a name="ntrip2"><h4>8.2.1 NTRIP Version 2</h4></p>
+
+<p>
+The major changes of NTRIP version 2.0 compared to Version 1.0 are:
+</p>
+
+<ul>
+<li>cleared and fixed design problems and HTTP protocol violations;</li>
+<li>replaced non standard directives;</li>
+<li>chunked transfer encoding;</li>
+<li>improvements in header records;</li>
+<li>sourcetable filtering; and</li>
+<li>RTSP communication.</li>
+</ul>
+
+<p>NTRIP version 2 allows to either communicate in TCP/IP mode or in RTSP/RTP mode. Note that RTSP/RTP support is not yet implemented in BNC.
+</p>
+
+<p><a name="rtcm2"><h4>8.2.3 RTCM Version 2.x</h4></p>
 <p>
 Transmitting GNSS carrier phase data can be done through RTCM Version 2.x messages. Please note that only RTCM Version 2.2 and 2.3 streams may include GLONASS data. Messages that may be of some interest here are:
@@ -1026,5 +1062,5 @@
 </ul>
 
-<p><a name="rtcm3"><h4>8.2.3 RTCM Version 3.x</h4></p>
+<p><a name="rtcm3"><h4>8.2.4 RTCM Version 3.x</h4></p>
 <p>
 RTCM Version 3.x has been developed as a more efficient alternative to RTCM Version 2.x. Service providers and vendors have asked for a standard that would be more efficient, easy to use, and more easily adaptable to new situations. The main complaint was that the Version 2 parity scheme was wasteful of bandwidth. Another complaint was that the parity is not independent from word to word. Still another was that even with so many bits devoted to parity, the actual integrity of the message was not as high as it should be. Plus, 30-bit words are awkward to handle. The Version 3.x standard is intended to correct these weaknesses.
Index: /trunk/BNC/bnctabledlg.cpp
===================================================================
--- /trunk/BNC/bnctabledlg.cpp	(revision 1408)
+++ /trunk/BNC/bnctabledlg.cpp	(revision 1409)
@@ -52,5 +52,5 @@
 
   setMinimumSize(600,400);
-  setWindowTitle(tr("Add Mountpoints"));
+  setWindowTitle(tr("Add Streams"));
 
   QVBoxLayout* mainLayout = new QVBoxLayout(this);
@@ -106,6 +106,8 @@
   mainLayout->addLayout(editLayout);
 
+  _ntripVersionComboBox->setWhatsThis(tr("<p>Select the NTRIP transport protocol version you want to use. Implemented options are:<br>&nbsp; 1:&nbsp; NTRIP version 1, TCP/IP<br>&nbsp; 2:&nbsp; NTRIP version 2, TCP/IP<br>Select option '1' if you not sure whether the NTRIP broadcaster supports NTRIP version 2.</p>"));
+
   _table = new QTableWidget(this);
-  _table->setWhatsThis(tr("<p>Use the 'Get Table' button to download the sourcetable from the NTRIP broadcaster. Select the desired streams line by line, using +Shift and +Ctrl when necessary. Hit 'OK' to return to the main window.</p><p>Pay attention to data fields 'format' and 'format-details'. Keep in mind that BNC can only decode and convert streams that come in RTCM Version 2.x, RTCM Version 3.x, or RTIGS format. RTCM Version 2.x streams must contain message Type 18 and 19 or 20 and 21 while RTCM Version 3.x streams must contain GPS or SBAS message Type 1002 or 1004 and may contain GLONASS message types 1010 or 1012. See data field 'format-details' for available message types and their repetition rates in brackets.</p><p>Note that in order to produce RINEX Navigation files, RTCM Version 3.x streams containing message Type 1019 (GPS) and 1020 (GLONASS) or RTIGS streams are required.</p><p>Search for RTCM Version 3.x streams containing (premature) message Types 4056 and 4057 if you need corrections to Broadcast Ephemeris.</p><p>The content of data field 'nmea' tells you whether a stream retrieval needs to be initiated by BNC by sending an NMEA-GGA message containing the user (or virtual reference station)'s coordinate.</p>"));
+  _table->setWhatsThis(tr("<p>Use the 'Get Table' button to download the sourcetable from the NTRIP broadcaster. Select the desired streams line by line, using +Shift and +Ctrl when necessary. Hit 'OK' to return to the main window.</p><p>Pay attention to data field 'format'. Keep in mind that BNC can only decode and convert streams that come in RTCM Version 2.x, RTCM Version 3.x, or RTIGS format. See data field 'format-details' for available message types and their repetition rates in brackets.</p><p>The content of data field 'nmea' tells you whether a stream comes from a virtual reference station (VRS).</p>"));
   connect(_table, SIGNAL(itemSelectionChanged()),
           this, SLOT(slotSelectionChanged()));
Index: /trunk/BNC/bncwindow.cpp
===================================================================
--- /trunk/BNC/bncwindow.cpp	(revision 1408)
+++ /trunk/BNC/bncwindow.cpp	(revision 1409)
@@ -60,5 +60,5 @@
   int ww = QFontMetrics(this->font()).width('w');
   
-  static const QStringList labels = QString("account,broadcaster:port / mountpoint,decoder,lat,long,nmea,ntrip,bytes").split(",");
+  static const QStringList labels = QString("account, Streams:     broadcaster:port/mountpoint,decoder,lat,long,nmea,ntrip,bytes").split(",");
 
   setMinimumSize(80*ww, 65*ww);
@@ -89,8 +89,8 @@
   connect(_actQuit, SIGNAL(triggered()), SLOT(close()));
 
-  _actAddMountPoints = new QAction(tr("Add &Mountpoints"),this);
+  _actAddMountPoints = new QAction(tr("Add &Streams"),this);
   connect(_actAddMountPoints, SIGNAL(triggered()), SLOT(slotAddMountPoints()));
 
-  _actDeleteMountPoints = new QAction(tr("&Delete Mountpoints"),this);
+  _actDeleteMountPoints = new QAction(tr("&Delete Streams"),this);
   connect(_actDeleteMountPoints, SIGNAL(triggered()), SLOT(slotDeleteMountPoints()));
   _actDeleteMountPoints->setEnabled(false);
@@ -114,5 +114,4 @@
   _proxyPortLineEdit->setMaximumWidth(9*ww);
   _miscMountLineEdit  = new QLineEdit(settings.value("miscMount").toString());
-  _miscMountLineEdit->setMaximumWidth(20*ww);
   _scanRTCMCheckBox  = new QCheckBox();
   _scanRTCMCheckBox->setCheckState(Qt::CheckState(
@@ -330,9 +329,9 @@
   _adviseFailSpinBox->setWhatsThis(tr("<p>An advisory note is generated when no (or only corrupted) observations are seen throughout the 'Failure threshold' time span. A value of 15 min (default) is recommended.</p><p>A value of zero '0' means that for any stream failure, however short, BNC immediately generates an advisory note.</p><p>Note that for using this function you need to specify the 'Observation rate'.</p>"));
   _makePauseCheckBox->setWhatsThis(tr("<p>In case of a continuously corrupted stream, the decoding process can be paused and decodings are then attempted again at decreasing rate till the stream hopefully recovers. Tick 'Pause' to activate this function.</p><p>Do not tick 'Pause' (default) in order to prevent BNC from making any decoding pause. Be aware that this may incur an unnecessary workload.</p><p>Note that this function is only effective if an 'Observation rate' is specified.</p>"));
-  _logFileLineEdit->setWhatsThis(tr("Records of BNC's 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."));
+  _logFileLineEdit->setWhatsThis(tr("Records of BNC's activities are shown in the 'Logs' 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."));
   _adviseScriptLineEdit->setWhatsThis(tr("<p>Specify the full path to a script or batch file to handle advisory notes generated in the event of corrupted streams or stream outages. The affected mountpoint and one of the comments 'Begin_Outage', 'End_Outage', 'Begin_Corrupted', or 'End_Corrupted' are passed on to the script as command line parameters.</p><p>The script can be configured to send an email to BNC's operator and/or to the affected stream provider. An empty option field (default) or invalid path means that you don't want to use this option.</p><p> Note that for using this function you need to specify the 'Observation rate'.</p>"));
-  _perfIntrComboBox->setWhatsThis(tr("<p>BNC can average latencies per stream over a certain period of GPS time. The resulting mean latencies are recorded in the Log file/section at the end of each 'Log latency' interval together with results of a statistical evaluation (approximate number of covered epochs, data gaps).</p><p>Select a 'Log latency' interval or select the empty option field if you do not want BNC to log latencies and statistical information.</p>"));
-  _mountPointsTable->setWhatsThis(tr("<p>Streams selected for retrieval are listed in the 'Mountpoints' section. Clicking on 'Add Mountpoints' button will open a window that allows the user to select data streams from an NTRIP broadcaster according to their mountpoints. To remove a stream from the 'Mountpoints' list, highlight it by clicking on it and hit the 'Delete Mountpoints' button. You can also remove multiple mountpoints by highlighting them using +Shift and +Ctrl.</p><p>BNC automatically allocates one of its internal decoders to a stream based on the stream's 'format' and 'format-details' as given in the sourcetable. However, there might be cases where you need to override the automatic selection due to incorrect sourcetable for example. BNC allows users to manually select the required decoder by editing the decoder string. Double click on the 'decoder' field, enter your preferred decoder and then hit Enter. The accepted decoder strings are 'RTCM_2.x', 'RTCM_3.x', and 'RTIGS'.</p><p>In case you need to log the raw data as is, BNC allows users to by-pass its decoders and and directly save the input in daily log files. To do this specify the decoder string as 'ZERO'.</p><p>BNC can also retrieve streams from virtual reference stations (VRS). To initiate these streams, an approximate rover position needs to be sent in NMEA GGA message to the NTRIP broadcaster. In return, a user-specific data stream is generated, typically by a Network-RTK software. This stream is customized to the exact latitude and longitude as shown in the 'lat' and 'long' columns under 'Mountpoints'. These VRS streams are indicated by a 'yes' in the 'nmea' column under 'Mountpoints' as well as in the sourcetable. The default 'lat' and 'long' values are taken from the sourcetable. However, in most cases you would probably want to change this according to your requirement. Double click on 'lat' and 'long' fields, enter the values you wish to send and then hit Enter. The format is in positive north latitude degrees (e.g. for northern hemisphere: 52.436, for southern hemisphere: -24.567) and eastern longitude degrees (e.g.: 358.872 or -1.128). Only mountpoints with a 'yes' in its 'nmea' column can be edited. The position should preferably be a point within the coverage of the network.</p>"));
-  _log->setWhatsThis(tr("Records of BNC's activities are shown in the Log section. The message log covers the communication status between BNC and the NTRIP broadcaster as well as any problems that occur in the communication link, stream availability, stream delay, stream conversion etc."));
+  _perfIntrComboBox->setWhatsThis(tr("<p>BNC can average latencies per stream over a certain period of GPS time. The resulting mean latencies are recorded in the 'Logs' section at the end of each 'Log latency' interval together with results of a statistical evaluation (approximate number of covered epochs, data gaps).</p><p>Select a 'Log latency' interval or select the empty option field if you do not want BNC to log latencies and statistical information.</p>"));
+  _mountPointsTable->setWhatsThis(tr("<p>Streams selected for retrieval are listed in the 'Streams' section. Clicking on 'Add Streams' button will open a window that allows the user to select data streams from an NTRIP broadcaster according to their mountpoints. To remove a stream from the 'Streams' list, highlight it by clicking on it and hit the 'Delete Streams' button. You can also remove multiple streams by highlighting them using +Shift and +Ctrl.</p><p>BNC automatically allocates one of its internal decoders to a stream based on the stream's 'format' as given in the sourcetable. BNC allows users to change this selection by editing the decoder string. Double click on the 'decoder' field, enter your preferred decoder and then hit Enter. The accepted decoder strings are 'RTCM_2.x', 'RTCM_3.x', and 'RTIGS'.</p><p>In case you need to log the raw data as is, BNC allows users to by-pass its decoders and and directly save the input in daily log files. To do this specify the decoder string as 'ZERO'.</p><p>BNC can also retrieve streams from virtual reference stations (VRS). VRS streams are indicated by a 'yes' in the 'nmea' column. To initiate these streams, the approximate latitude/longitude rover position is sent to the NTRIP broadcaster. The default values can be change according to your requirement. Double click on 'lat' and 'long' fields, enter the values you wish to send and then hit Enter.</p>"));
+  _log->setWhatsThis(tr("Records of BNC's activities are shown in the 'Logs' section. The message log covers the communication status between BNC and the NTRIP broadcaster as well as any problems that occur in the communication link, stream availability, stream delay, stream conversion etc."));
   _ephV3CheckBox->setWhatsThis(tr("The default format for RINEX Navigation files containing Broadcast Ephemeris is RINEX Version 2.11. Select 'Version 3' if you want to save the ephemeris in RINEX Version 3 format."));
   _rnxV3CheckBox->setWhatsThis(tr("The default format for RINEX Observation files is RINEX Version 2.11. Select 'Version 3' if you want to save the observations in RINEX Version 3 format."));
@@ -352,5 +351,6 @@
   setCentralWidget(_canvas);
 
-  QTabWidget* aogroup = new QTabWidget();
+//QTabWidget* aogroup = new QTabWidget();
+  aogroup = new QTabWidget();
   QWidget* pgroup = new QWidget();
   QWidget* ggroup = new QWidget();
@@ -373,10 +373,10 @@
 
   QGridLayout* pLayout = new QGridLayout;
-  pLayout->setColumnMinimumWidth(0,14*ww);
-  pLayout->addWidget(new QLabel("Proxy host"),0,0, Qt::AlignLeft);
-  pLayout->addWidget(_proxyHostLineEdit,0, 1);
-  pLayout->addWidget(new QLabel("Proxy port"),1,0, Qt::AlignLeft);
-  pLayout->addWidget(_proxyPortLineEdit,1,1);
-  pLayout->addWidget(new QLabel("Settings for the proxy in protected networks, leave the boxes blank if none."),2, 0, 1, 2, Qt::AlignLeft);
+  pLayout->setColumnMinimumWidth(0,13*ww);
+  pLayout->addWidget(new QLabel("Proxy host"),                   0, 0);
+  pLayout->addWidget(_proxyHostLineEdit,                         0, 1, 1,10);
+  pLayout->addWidget(new QLabel("Proxy port"),                   1, 0);
+  pLayout->addWidget(_proxyPortLineEdit,                         1, 1);
+  pLayout->addWidget(new QLabel("Settings for the proxy in protected networks, leave boxes blank if none."),2, 0, 1, 50, Qt::AlignLeft);
   pLayout->addWidget(new QLabel("    "),3,0);
   pLayout->addWidget(new QLabel("    "),4,0);
@@ -445,11 +445,11 @@
   QGridLayout* rLayout = new QGridLayout;
   rLayout->setColumnMinimumWidth(0,14*ww);
-  rLayout->addWidget(new QLabel("Mountpoint"),                    0, 0, Qt::AlignLeft);
-  rLayout->addWidget(_miscMountLineEdit,                          0, 1,1,15,Qt::AlignLeft);
+  rLayout->addWidget(new QLabel("Mountpoint"),                    0, 0);
+  rLayout->addWidget(_miscMountLineEdit,                          0, 1, 1,7);
   rLayout->addWidget(new QLabel("Log latency"),                   1, 0);
   rLayout->addWidget(_perfIntrComboBox,                           1, 1);
   rLayout->addWidget(new QLabel("Scan RTCM"),                     2, 0);
   rLayout->addWidget(_scanRTCMCheckBox,                           2, 1);
-  rLayout->addWidget(new QLabel("Log latencies or scan RTCM streams for numbers of message types and antenna information."),3, 0, 1, 4, Qt::AlignLeft);
+  rLayout->addWidget(new QLabel("Log latencies or scan RTCM streams for numbers of message types and antenna information."),3, 0,1,30);
   rLayout->addWidget(new QLabel("    "),                          4, 0);
   rLayout->addWidget(new QLabel("    "),                          5, 0);
@@ -508,8 +508,14 @@
   sergroup->setLayout(serLayout);
 
-  QVBoxLayout* mLayout = new QVBoxLayout;
-  mLayout->addWidget(aogroup);
-  mLayout->addWidget(_mountPointsTable);
-  mLayout->addWidget(_log);
+//QVBoxLayout* mLayout = new QVBoxLayout;
+//mLayout->addWidget(aogroup);
+//mLayout->addWidget(_mountPointsTable);
+//mLayout->addWidget(_log);
+  QGridLayout* mLayout = new QGridLayout;
+  aogroup->setCurrentIndex(settings.value("startTab").toInt());
+  mLayout->addWidget(aogroup,             0,0);
+  mLayout->addWidget(_mountPointsTable,   1,0);
+  mLayout->addWidget(new QLabel(" Logs:"),2,0);
+  mLayout->addWidget(_log,                3,0);
 
   _canvas->setLayout(mLayout);
@@ -759,11 +765,12 @@
   settings.setValue("miscMount",   _miscMountLineEdit->text());
   settings.setValue("scanRTCM",    _scanRTCMCheckBox->checkState());
-  settings.setValue("serialPortName", _serialPortNameLineEdit->text());
-  settings.setValue("serialMountPoint", _serialMountPointLineEdit->text());
-  settings.setValue("serialBaudRate", _serialBaudRateComboBox->currentText());
-  settings.setValue("serialParity",   _serialParityComboBox->currentText());
-  settings.setValue("serialDataBits", _serialDataBitsComboBox->currentText());
-  settings.setValue("serialStopBits", _serialStopBitsComboBox->currentText());
-  settings.setValue("serialAutoNMEA", _serialAutoNMEACheckBox->checkState());
+  settings.setValue("serialPortName",  _serialPortNameLineEdit->text());
+  settings.setValue("serialMountPoint",_serialMountPointLineEdit->text());
+  settings.setValue("serialBaudRate",  _serialBaudRateComboBox->currentText());
+  settings.setValue("serialParity",    _serialParityComboBox->currentText());
+  settings.setValue("serialDataBits",  _serialDataBitsComboBox->currentText());
+  settings.setValue("serialStopBits",  _serialStopBitsComboBox->currentText());
+  settings.setValue("serialAutoNMEA",  _serialAutoNMEACheckBox->checkState());
+  settings.setValue("startTab",    aogroup->currentIndex());
   
   QStringList mountPoints;
