Index: /trunk/BNS/bns.cpp
===================================================================
--- /trunk/BNS/bns.cpp	(revision 2326)
+++ /trunk/BNS/bns.cpp	(revision 2327)
@@ -658,4 +658,21 @@
     _t0  =  2000.0;
   }
+  else if (trafo == "NAD83") {
+    _dx  =  0.9956;
+    _dy  = -1.9013;
+    _dz  = -0.5215;
+    _dxr =  0.0007;
+    _dyr = -0.0007;
+    _dzr =  0.0005;
+    _ox  =  25.915;
+    _oy  =   9.426;
+    _oz  =  11.599;
+    _oxr =  0.067;
+    _oyr = -0.757;
+    _ozr = -0.051;
+    _sc  =  0.62;
+    _scr = -0.18;
+    _t0  =  1997.0;
+  }
   else if (trafo == "Custom") {
     _dx  = settings.value("trafo_dx").toDouble();
Index: /trunk/BNS/bnshelp.html
===================================================================
--- /trunk/BNS/bnshelp.html	(revision 2326)
+++ /trunk/BNS/bnshelp.html	(revision 2327)
@@ -338,4 +338,5 @@
 <li>IGS05 which stands for the GNSS-based IGS realization of the International Terrestrial Reference Frame 2005 (ITRF2005), and</li>
 <li>ETRF2000 which stands for the European Terestrial Reference Frame 2000 adopted by EUREF, and</li>
+<li>NAD83 which stands for the North American Datum 1983 as adopted for the U.S.A., and</li>
 <li>'Custom' which allows a transformation of Broadcast Corrections from the IGS05 system to any other system through specifying up to 14 Helmert Transformation Parameters.</li>
 </ul>
@@ -345,4 +346,5 @@
 <u>IGS05:</u> As the clocks and orbits coming from real-time GNSS engine are expected to be in the IGS05 system, no transformation is carried out if this option is selected.
 </p>
+
 <p>
 <u>ETRF2000:</u> The formulars for the transformation 'ITRF2005-&gt;ETRF2000' are taken from 'Claude Boucher and Zuheir Altamimi 2008: Specifications for reference frame fixing in the analysis of EUREF GPS campaign', see <u>http://etrs89.ensg.ign.fr/memo-V7.pdf</u>. The following 14 Helmert Transformation Parameters were introduced:
@@ -367,4 +369,29 @@
 </pre>
 </p>
+
+<p>
+<u>NAD83:</u>Parameters for the transformation 'ITRF2005-&gt;NAD83' are taken from <u> http://www.ngs.noaa.gov/CORS/metadata1/</u>, see section 'ITRF00 --> NAD83 (CORS96)'.
+</p>
+<p>
+<pre>
+Translation in X at epoch To:  0.9956 m
+Translation in Y at epoch To: -1.9013 m
+Translation in Z at epoch To: -0.5215 m
+Translation rate in X:  0.0007 m/y
+Translation rate in Y: -0.0007 m/y
+Translation rate in Z:  0.0005 m/y
+Rotation in X at epoch To: 25.915 mas
+Rotation in Y at epoch To:  9.426 mas
+Rotation in Z at epoch To: 11.599 mas
+Rotation rate in X:  0.067 mas/y 
+Rotation rate in Y: -0.757 mas/y
+Rotation rate in Z: -0.051 mas/y
+Scale at epoch To : 0.00000000062
+Scale rate: -0.00000000018 /y
+To: 1997.0
+</pre>
+</p>
+
+
 <p>
 <u>Custom:</u> The default numbers shown as examples are those for a transformation from ITRF2005 to ETRF2000'.
@@ -672,4 +699,5 @@
 <tr><td>outFile_2=/home/weber/rinex/CLCK2</td><td>Broadcast Corrections II: Save (full path)</td></tr>
 <tr><td>CoM_2=0</td><td>Broadcast Corrections II: Center of Mass</td></tr>
+
 <tr><td>outHost3=www.igs-.net</td><td>Broadcast Corrections III: Host</td></tr>
 <tr><td>outPort3=2101</td><td>Broadcast Corrections III: Port</td></tr>
@@ -679,4 +707,29 @@
 <tr><td>outFile_3=/home/weber/rinex/CLCK3</td><td>Broadcast Corrections III: Save (full path)</td></tr>
 <tr><td>CoM_3=0</td><td>Broadcast Corrections III: Center of Mass</td></tr>
+
+<tr><td>outHost4=www.igs-.net</td><td>Broadcast Corrections IV: Host</td></tr>
+<tr><td>outPort4=2101</td><td>Broadcast Corrections IV: Port</td></tr>
+<tr><td>mountpoint_4=CLCK4</td><td>Broadcast Corrections IV: Mountpoint</td></tr>
+<tr><td>password4=pw</td><td>Broadcast Corrections IV: Password</td></tr>
+<tr><td>refSys_4=ETRF2000</td><td>Broadcast Corrections IV: System</td></tr>
+<tr><td>outFile_4=/home/weber/rinex/CLCK4</td><td>Broadcast Corrections IV: Save (full path)</td></tr>
+<tr><td>CoM_4=0</td><td>Broadcast Corrections IV: Center of Mass</td></tr>
+
+<tr><td>outHost5=www.igs-.net</td><td>Broadcast Corrections V: Host</td></tr>
+<tr><td>outPort5=2101</td><td>Broadcast Corrections V: Port</td></tr>
+<tr><td>mountpoint_5=CLCK5</td><td>Broadcast Corrections V: Mountpoint</td></tr>
+<tr><td>password5=pw</td><td>Broadcast Corrections V: Password</td></tr>
+<tr><td>refSys_5=ETRF2000</td><td>Broadcast Corrections V: System</td></tr>
+<tr><td>outFile_5=/home/weber/rinex/CLCK5</td><td>Broadcast Corrections V: Save (full path)</td></tr>
+<tr><td>CoM_5=0</td><td>Broadcast Corrections V: Center of Mass</td></tr>
+
+<tr><td>outHost6=www.igs-.net</td><td>Broadcast Corrections VI: Host</td></tr>
+<tr><td>outPort6=2101</td><td>Broadcast Corrections VI: Port</td></tr>
+<tr><td>mountpoint_6=CLCK6</td><td>Broadcast Corrections VI: Mountpoint</td></tr>
+<tr><td>password6=pw</td><td>Broadcast Corrections VI: Password</td></tr>
+<tr><td>refSys_6=ETRF2000</td><td>Broadcast Corrections VI: System</td></tr>
+<tr><td>outFile_6=/home/weber/rinex/CLCK6</td><td>Broadcast Corrections VI: Save (full path)</td></tr>
+<tr><td>CoM_6=0</td><td>Broadcast Corrections VI: Center of Mass</td></tr>
+
 <tr><td>outHostEph=www.igs-ip.net</td><td>Broadcast Ephemeris: Host</td></tr>
 <tr><td>outPortEph=2101</td><td>Broadcast Ephemeris: Port</td></tr>
Index: /trunk/BNS/bnssettings.cpp
===================================================================
--- /trunk/BNS/bnssettings.cpp	(revision 2326)
+++ /trunk/BNS/bnssettings.cpp	(revision 2327)
@@ -62,4 +62,28 @@
     setValue("outFile_3",   "");
 
+    setValue("outHost4",    "");
+    setValue("outPort4",    "");
+    setValue("mountpoint_4","");
+    setValue("password4",   "");
+    setValue("refSys_4",    "IGS05");
+    setValue("CoM_4",       "0");
+    setValue("outFile_4",   "");
+
+    setValue("outHost5",    "");
+    setValue("outPort5",    "");
+    setValue("mountpoint_5","");
+    setValue("password5",   "");
+    setValue("refSys_5",    "IGS05");
+    setValue("CoM_5",       "0");
+    setValue("outFile_5",   "");
+
+    setValue("outHost6",    "");
+    setValue("outPort6",    "");
+    setValue("mountpoint_6","");
+    setValue("password6",   "");
+    setValue("refSys_6",    "IGS05");
+    setValue("CoM_6",       "0");
+    setValue("outFile_6",   "");
+
     setValue("outHostEph",    "");
     setValue("outPortEph",    "");
Index: /trunk/BNS/bnswindow.cpp
===================================================================
--- /trunk/BNS/bnswindow.cpp	(revision 2326)
+++ /trunk/BNS/bnswindow.cpp	(revision 2327)
@@ -177,5 +177,5 @@
   _refSys_1_ComboBox = new QComboBox;
   _refSys_1_ComboBox->setEditable(false);
-  _refSys_1_ComboBox->addItems(QString("IGS05,ETRF2000,Custom").split(","));
+  _refSys_1_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,Custom").split(","));
   int ii = _refSys_1_ComboBox->findText(settings.value("refSys_1").toString());
   if (ii != -1) {
@@ -195,5 +195,5 @@
   _refSys_2_ComboBox = new QComboBox;
   _refSys_2_ComboBox->setEditable(false);
-  _refSys_2_ComboBox->addItems(QString("IGS05,ETRF2000,Custom").split(","));
+  _refSys_2_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,Custom").split(","));
   ii = _refSys_2_ComboBox->findText(settings.value("refSys_2").toString());
   if (ii != -1) {
@@ -213,5 +213,5 @@
   _refSys_3_ComboBox = new QComboBox;
   _refSys_3_ComboBox->setEditable(false);
-  _refSys_3_ComboBox->addItems(QString("IGS05,ETRF2000,Custom").split(","));
+  _refSys_3_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,Custom").split(","));
   ii = _refSys_3_ComboBox->findText(settings.value("refSys_3").toString());
   if (ii != -1) {
@@ -221,4 +221,58 @@
   _CoM_3_CheckBox  = new QCheckBox();
   _CoM_3_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_3").toInt()));
+
+  // Broadcast Corrections IV Options
+  // --------------------------------
+  _outHost_4_LineEdit    = new QLineEdit(settings.value("outHost4").toString());
+  _outPort_4_LineEdit    = new QLineEdit(settings.value("outPort4").toString());
+  _password_4_LineEdit   = new QLineEdit(settings.value("password4").toString());
+  _password_4_LineEdit->setEchoMode(QLineEdit::Password);
+  _mountpoint_4_LineEdit = new QLineEdit(settings.value("mountpoint_4").toString());
+  _refSys_4_ComboBox = new QComboBox;
+  _refSys_4_ComboBox->setEditable(false);
+  _refSys_4_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,Custom").split(","));
+  ii = _refSys_4_ComboBox->findText(settings.value("refSys_4").toString());
+  if (ii != -1) {
+    _refSys_4_ComboBox->setCurrentIndex(ii);
+  }
+  _outFile_4_LineEdit    = new QLineEdit(settings.value("outFile_4").toString());
+  _CoM_4_CheckBox  = new QCheckBox();
+  _CoM_4_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_4").toInt()));
+
+  // Broadcast Corrections V Options
+  // -------------------------------
+  _outHost_5_LineEdit    = new QLineEdit(settings.value("outHost5").toString());
+  _outPort_5_LineEdit    = new QLineEdit(settings.value("outPort5").toString());
+  _password_5_LineEdit   = new QLineEdit(settings.value("password5").toString());
+  _password_5_LineEdit->setEchoMode(QLineEdit::Password);
+  _mountpoint_5_LineEdit = new QLineEdit(settings.value("mountpoint_5").toString());
+  _refSys_5_ComboBox = new QComboBox;
+  _refSys_5_ComboBox->setEditable(false);
+  _refSys_5_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,Custom").split(","));
+  ii = _refSys_5_ComboBox->findText(settings.value("refSys_5").toString());
+  if (ii != -1) {
+    _refSys_5_ComboBox->setCurrentIndex(ii);
+  }
+  _outFile_5_LineEdit    = new QLineEdit(settings.value("outFile_5").toString());
+  _CoM_5_CheckBox  = new QCheckBox();
+  _CoM_5_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_5").toInt()));
+
+  // Broadcast Corrections VI Options
+  // --------------------------------
+  _outHost_6_LineEdit    = new QLineEdit(settings.value("outHost6").toString());
+  _outPort_6_LineEdit    = new QLineEdit(settings.value("outPort6").toString());
+  _password_6_LineEdit   = new QLineEdit(settings.value("password6").toString());
+  _password_6_LineEdit->setEchoMode(QLineEdit::Password);
+  _mountpoint_6_LineEdit = new QLineEdit(settings.value("mountpoint_6").toString());
+  _refSys_6_ComboBox = new QComboBox;
+  _refSys_6_ComboBox->setEditable(false);
+  _refSys_6_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,Custom").split(","));
+  ii = _refSys_6_ComboBox->findText(settings.value("refSys_6").toString());
+  if (ii != -1) {
+    _refSys_6_ComboBox->setCurrentIndex(ii);
+  }
+  _outFile_6_LineEdit    = new QLineEdit(settings.value("outFile_6").toString());
+  _CoM_6_CheckBox  = new QCheckBox();
+  _CoM_6_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_6").toInt()));
 
   // Broadcast Ephemerides
@@ -284,4 +338,5 @@
   _ephEchoLineEdit->setWhatsThis(tr("Specify the full path to a file where incoming Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that incoming Broadcast Ephemeris are not saved."));
   _clkPortLineEdit->setWhatsThis(tr("BNS reads Clocks & Orbits referring to the IGS system (X,Y,Z, ECEF) in SP3 format from an IP port. Specify a local IP port e.g. for an RTNet installation to provide this information."));
+
   _outHost_1_LineEdit->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."));
   _outPort_1_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
@@ -290,4 +345,5 @@
   _refSys_1_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
   _outFile_1_LineEdit->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."));
+
   _outHost_2_LineEdit->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."));
   _outPort_2_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
@@ -296,4 +352,5 @@
   _refSys_2_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
   _outFile_2_LineEdit->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."));
+
   _outHost_3_LineEdit->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."));
   _outPort_3_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
@@ -302,4 +359,26 @@
   _refSys_3_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
   _outFile_3_LineEdit->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."));
+
+  _outHost_4_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit corrections to Broadcast Ephemeris in RTCM Version 4 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."));
+  _outPort_4_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
+  _mountpoint_4_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
+  _password_4_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
+  _refSys_4_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
+  _outFile_4_LineEdit->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."));
+
+  _outHost_5_LineEdit->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."));
+  _outPort_5_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
+  _mountpoint_5_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
+  _password_5_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
+  _refSys_5_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
+  _outFile_5_LineEdit->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."));
+
+  _outHost_6_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit corrections to Broadcast Ephemeris in RTCM Version 6 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."));
+  _outPort_6_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
+  _mountpoint_6_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
+  _password_6_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
+  _refSys_6_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
+  _outFile_6_LineEdit->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."));
+
   _outHost_Eph_LineEdit->setWhatsThis(tr("BNS can upload a Broadcast Ephemeris stream 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 Broadcast Ephemeris."));
   _outPort_Eph_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
@@ -528,4 +607,121 @@
           this, SLOT(slotBnsTextChanged()));
 
+  // Broadcast Corrections IV Tab
+  // ----------------------------
+  QWidget* tab_cas4 = new QWidget();
+  tabs->addTab(tab_cas4, "Broadcast Corrections IV");
+
+  QGridLayout* layout_cas4 = new QGridLayout;
+
+  layout_cas4->setColumnMinimumWidth(0, 9*ww);
+  _outPort_4_LineEdit->setMaximumWidth(9*ww);
+  _password_4_LineEdit->setMaximumWidth(9*ww);
+  _mountpoint_4_LineEdit->setMaximumWidth(12*ww);
+  _refSys_4_ComboBox->setMaximumWidth(12*ww);
+
+  layout_cas4->addWidget(new QLabel("Host"),               0, 0);
+  layout_cas4->addWidget(_outHost_4_LineEdit,              0, 1, 1, 3);
+  layout_cas4->addWidget(new QLabel("  Port"),             0, 4, Qt::AlignRight);
+  layout_cas4->addWidget(_outPort_4_LineEdit,              0, 5, 1, 10);
+  layout_cas4->addWidget(new QLabel("Mountpoint"),         1, 0);
+  layout_cas4->addWidget(_mountpoint_4_LineEdit,           1, 1);
+  layout_cas4->addWidget(new QLabel("Password"),           1, 2, Qt::AlignRight);
+  layout_cas4->addWidget(_password_4_LineEdit,             1, 3);
+  layout_cas4->addWidget(new QLabel(" "),                  1, 4);
+  layout_cas4->addWidget(new QLabel(" "),                  1, 5);
+  layout_cas4->addWidget(new QLabel("System"),             2, 0);
+  layout_cas4->addWidget(_refSys_4_ComboBox,               2, 1);
+  layout_cas4->addWidget(new QLabel("  Save (full path)"), 2, 2, Qt::AlignRight);
+  layout_cas4->addWidget(_outFile_4_LineEdit,              2, 3, 1, 30);
+  layout_cas4->addWidget(new QLabel("Center of Mass"),     3, 0);
+  layout_cas4->addWidget(_CoM_4_CheckBox,                  3, 1);
+  layout_cas4->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
+
+  tab_cas4->setLayout(layout_cas4);
+
+  connect(_refSys_4_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
+          this, SLOT(customTrafo(const QString)));
+
+  connect(_outHost_4_LineEdit, SIGNAL(textChanged(const QString &)),
+          this, SLOT(slotBnsTextChanged()));
+
+  // Broadcast Corrections V Tab
+  // ---------------------------
+  QWidget* tab_cas5 = new QWidget();
+  tabs->addTab(tab_cas5, "Broadcast Corrections V");
+
+  QGridLayout* layout_cas5 = new QGridLayout;
+
+  layout_cas5->setColumnMinimumWidth(0, 9*ww);
+  _outPort_5_LineEdit->setMaximumWidth(9*ww);
+  _password_5_LineEdit->setMaximumWidth(9*ww);
+  _mountpoint_5_LineEdit->setMaximumWidth(12*ww);
+  _refSys_5_ComboBox->setMaximumWidth(12*ww);
+
+  layout_cas5->addWidget(new QLabel("Host"),               0, 0);
+  layout_cas5->addWidget(_outHost_5_LineEdit,              0, 1, 1, 3);
+  layout_cas5->addWidget(new QLabel("  Port"),             0, 4, Qt::AlignRight);
+  layout_cas5->addWidget(_outPort_5_LineEdit,              0, 5, 1, 10);
+  layout_cas5->addWidget(new QLabel("Mountpoint"),         1, 0);
+  layout_cas5->addWidget(_mountpoint_5_LineEdit,           1, 1);
+  layout_cas5->addWidget(new QLabel("Password"),           1, 2, Qt::AlignRight);
+  layout_cas5->addWidget(_password_5_LineEdit,             1, 3);
+  layout_cas5->addWidget(new QLabel(" "),                  1, 4);
+  layout_cas5->addWidget(new QLabel(" "),                  1, 5);
+  layout_cas5->addWidget(new QLabel("System"),             2, 0);
+  layout_cas5->addWidget(_refSys_5_ComboBox,               2, 1);
+  layout_cas5->addWidget(new QLabel("  Save (full path)"), 2, 2, Qt::AlignRight);
+  layout_cas5->addWidget(_outFile_5_LineEdit,              2, 3, 1, 30);
+  layout_cas5->addWidget(new QLabel("Center of Mass"),     3, 0);
+  layout_cas5->addWidget(_CoM_5_CheckBox,                  3, 1);
+  layout_cas5->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
+
+  tab_cas5->setLayout(layout_cas5);
+
+  connect(_refSys_5_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
+          this, SLOT(customTrafo(const QString)));
+
+  connect(_outHost_5_LineEdit, SIGNAL(textChanged(const QString &)),
+          this, SLOT(slotBnsTextChanged()));
+
+  // Broadcast Corrections VI Tab
+  // ----------------------------
+  QWidget* tab_cas6 = new QWidget();
+  tabs->addTab(tab_cas6, "Broadcast Corrections VI");
+
+  QGridLayout* layout_cas6 = new QGridLayout;
+
+  layout_cas6->setColumnMinimumWidth(0, 9*ww);
+  _outPort_6_LineEdit->setMaximumWidth(9*ww);
+  _password_6_LineEdit->setMaximumWidth(9*ww);
+  _mountpoint_6_LineEdit->setMaximumWidth(12*ww);
+  _refSys_6_ComboBox->setMaximumWidth(12*ww);
+
+  layout_cas6->addWidget(new QLabel("Host"),               0, 0);
+  layout_cas6->addWidget(_outHost_6_LineEdit,              0, 1, 1, 3);
+  layout_cas6->addWidget(new QLabel("  Port"),             0, 4, Qt::AlignRight);
+  layout_cas6->addWidget(_outPort_6_LineEdit,              0, 5, 1, 10);
+  layout_cas6->addWidget(new QLabel("Mountpoint"),         1, 0);
+  layout_cas6->addWidget(_mountpoint_6_LineEdit,           1, 1);
+  layout_cas6->addWidget(new QLabel("Password"),           1, 2, Qt::AlignRight);
+  layout_cas6->addWidget(_password_6_LineEdit,             1, 3);
+  layout_cas6->addWidget(new QLabel(" "),                  1, 4);
+  layout_cas6->addWidget(new QLabel(" "),                  1, 5);
+  layout_cas6->addWidget(new QLabel("System"),             2, 0);
+  layout_cas6->addWidget(_refSys_6_ComboBox,               2, 1);
+  layout_cas6->addWidget(new QLabel("  Save (full path)"), 2, 2, Qt::AlignRight);
+  layout_cas6->addWidget(_outFile_6_LineEdit,              2, 3, 1, 30);
+  layout_cas6->addWidget(new QLabel("Center of Mass"),     3, 0);
+  layout_cas6->addWidget(_CoM_6_CheckBox,                  3, 1);
+  layout_cas6->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
+
+  tab_cas6->setLayout(layout_cas6);
+
+  connect(_refSys_6_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
+          this, SLOT(customTrafo(const QString)));
+
+  connect(_outHost_6_LineEdit, SIGNAL(textChanged(const QString &)),
+          this, SLOT(slotBnsTextChanged()));
+
   // Broadcast Ephemerides
   // ---------------------
@@ -624,10 +820,17 @@
   _statusLbl[4] = new QLabel("0 byte(s)"); _statusCnt[4] = 0;
   _statusLbl[5] = new QLabel("0 byte(s)"); _statusCnt[5] = 0;
-  _statusLbl[6] = new QLabel("RINEX Ephemeris:");  
-  _statusLbl[7] = new QLabel("Clocks & Orbits:");
-  _statusLbl[8] = new QLabel("Broadcast Corrections I:");  
-  _statusLbl[9] = new QLabel("Broadcast Corrections II:");  
-  _statusLbl[10] = new QLabel("Broadcast Corrections III:");  
-  _statusLbl[11] = new QLabel("Broadcast Ephemeris:");  
+  _statusLbl[6] = new QLabel("0 byte(s)"); _statusCnt[6] = 0;
+  _statusLbl[7] = new QLabel("0 byte(s)"); _statusCnt[7] = 0;
+  _statusLbl[8] = new QLabel("0 byte(s)"); _statusCnt[8] = 0;
+
+  _statusLbl[9]  = new QLabel("RINEX Ephemeris:");  
+  _statusLbl[10] = new QLabel("Clocks & Orbits:");
+  _statusLbl[11] = new QLabel("Broadcast Corrections I:");  
+  _statusLbl[12] = new QLabel("Broadcast Corrections II:");  
+  _statusLbl[13] = new QLabel("Broadcast Corrections III:");  
+  _statusLbl[14] = new QLabel("Broadcast Corrections IV:");  
+  _statusLbl[15] = new QLabel("Broadcast Corrections V:");  
+  _statusLbl[16] = new QLabel("Broadcast Corrections VI:");  
+  _statusLbl[17] = new QLabel("Broadcast Ephemeris:");  
 
   _statusLbl[0]->setWhatsThis(tr("Status of incoming broadcast ephemeris."));
@@ -636,24 +839,37 @@
   _statusLbl[3]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster II."));
   _statusLbl[4]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster III."));
-  _statusLbl[5]->setWhatsThis(tr("Status of outgoing Broadcast Ephemeris to NTRIP broadcaster"));
-  _statusLbl[6]->setWhatsThis(tr("Status of incoming broadcast ephemeris."));
-  _statusLbl[7]->setWhatsThis(tr("Status of incoming stream of clocks and orbits I."));
-  _statusLbl[8]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster I."));
-  _statusLbl[9]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster II."));
-  _statusLbl[10]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster III."));
-  _statusLbl[11]->setWhatsThis(tr("Status of outgoing Broadcast Ephemeris to NTRIP broadcaster"));
-
-  layout_status->addWidget(_statusLbl[6],  0, 0);
+  _statusLbl[5]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster IV."));
+  _statusLbl[6]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster V."));
+  _statusLbl[7]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VI."));
+  _statusLbl[8]->setWhatsThis(tr("Status of outgoing Broadcast Ephemeris to NTRIP broadcaster"));
+
+  _statusLbl[9]->setWhatsThis(tr("Status of incoming broadcast ephemeris."));
+  _statusLbl[10]->setWhatsThis(tr("Status of incoming stream of clocks and orbits I."));
+  _statusLbl[11]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster I."));
+  _statusLbl[12]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster II."));
+  _statusLbl[13]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster III."));
+  _statusLbl[14]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster IV."));
+  _statusLbl[15]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster V."));
+  _statusLbl[16]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VI."));
+  _statusLbl[17]->setWhatsThis(tr("Status of outgoing Broadcast Ephemeris to NTRIP broadcaster"));
+
+  layout_status->addWidget(_statusLbl[9],  0, 0);
   layout_status->addWidget(_statusLbl[0],  0, 1);
-  layout_status->addWidget(_statusLbl[11], 0, 2); 
-  layout_status->addWidget(_statusLbl[5],  0, 3); 
-  layout_status->addWidget(_statusLbl[7],  1, 0);
+  layout_status->addWidget(_statusLbl[17], 0, 2); 
+  layout_status->addWidget(_statusLbl[8],  0, 3); 
+  layout_status->addWidget(_statusLbl[10], 1, 0);
   layout_status->addWidget(_statusLbl[1],  1, 1);
-  layout_status->addWidget(_statusLbl[8],  1, 2); 
+  layout_status->addWidget(_statusLbl[11], 1, 2); 
   layout_status->addWidget(_statusLbl[2],  1, 3); 
-  layout_status->addWidget(_statusLbl[9],  2, 2); 
+  layout_status->addWidget(_statusLbl[12], 2, 2); 
   layout_status->addWidget(_statusLbl[3],  2, 3); 
-  layout_status->addWidget(_statusLbl[10], 3, 2); 
+  layout_status->addWidget(_statusLbl[13], 3, 2); 
   layout_status->addWidget(_statusLbl[4],  3, 3); 
+  layout_status->addWidget(_statusLbl[14], 4, 2); 
+  layout_status->addWidget(_statusLbl[5],  4, 3); 
+  layout_status->addWidget(_statusLbl[15], 5, 2); 
+  layout_status->addWidget(_statusLbl[6],  5, 3); 
+  layout_status->addWidget(_statusLbl[16], 6, 2); 
+  layout_status->addWidget(_statusLbl[7],  6, 3); 
   _status->setLayout(layout_status);
 
@@ -812,4 +1028,28 @@
   settings.setValue("outFile_3",   _outFile_3_LineEdit->text());
   settings.setValue("CoM_3",       _CoM_3_CheckBox->checkState());
+
+  settings.setValue("outHost4",    _outHost_4_LineEdit->text());
+  settings.setValue("outPort4",    _outPort_4_LineEdit->text());
+  settings.setValue("mountpoint_4",_mountpoint_4_LineEdit->text());
+  settings.setValue("password4",   _password_4_LineEdit->text());
+  settings.setValue("refSys_4",    _refSys_4_ComboBox->currentText());
+  settings.setValue("outFile_4",   _outFile_4_LineEdit->text());
+  settings.setValue("CoM_4",       _CoM_4_CheckBox->checkState());
+
+  settings.setValue("outHost5",    _outHost_5_LineEdit->text());
+  settings.setValue("outPort5",    _outPort_5_LineEdit->text());
+  settings.setValue("mountpoint_5",_mountpoint_5_LineEdit->text());
+  settings.setValue("password5",   _password_5_LineEdit->text());
+  settings.setValue("refSys_5",    _refSys_5_ComboBox->currentText());
+  settings.setValue("outFile_5",   _outFile_5_LineEdit->text());
+  settings.setValue("CoM_5",       _CoM_5_CheckBox->checkState());
+
+  settings.setValue("outHost6",    _outHost_6_LineEdit->text());
+  settings.setValue("outPort6",    _outPort_6_LineEdit->text());
+  settings.setValue("mountpoint_6",_mountpoint_6_LineEdit->text());
+  settings.setValue("password6",   _password_6_LineEdit->text());
+  settings.setValue("refSys_6",    _refSys_6_ComboBox->currentText());
+  settings.setValue("outFile_6",   _outFile_6_LineEdit->text());
+  settings.setValue("CoM_6",       _CoM_6_CheckBox->checkState());
 
   settings.setValue("outHostEph",    _outHost_Eph_LineEdit->text());
@@ -1083,4 +1323,103 @@
   }
 
+  // Enable/disable Broadcast Corrections IV Options
+  // -----------------------------------------------
+  if (sender() == 0 || sender() == _outHost_4_LineEdit) {
+    if (!_outHost_4_LineEdit->text().isEmpty()) {
+      _outPort_4_LineEdit->setStyleSheet("background-color: white");
+      _mountpoint_4_LineEdit->setStyleSheet("background-color: white");
+      _password_4_LineEdit->setStyleSheet("background-color: white");
+      _outFile_4_LineEdit->setStyleSheet("background-color: white");
+      _refSys_4_ComboBox->setStyleSheet("background-color: white");
+      _CoM_4_CheckBox->setPalette(palette_white);
+      _outPort_4_LineEdit->setEnabled(true);
+      _mountpoint_4_LineEdit->setEnabled(true);
+      _password_4_LineEdit->setEnabled(true);
+      _outFile_4_LineEdit->setEnabled(true);
+      _refSys_4_ComboBox->setEnabled(true);
+      _CoM_4_CheckBox->setEnabled(true);
+    } 
+    else {
+      _outPort_4_LineEdit->setStyleSheet("background-color: lightGray");
+      _mountpoint_4_LineEdit->setStyleSheet("background-color: lightGray");
+      _password_4_LineEdit->setStyleSheet("background-color: lightGray");
+      _outFile_4_LineEdit->setStyleSheet("background-color: lightGray");
+      _refSys_4_ComboBox->setStyleSheet("background-color: lightGray");
+      _CoM_4_CheckBox->setPalette(palette_gray);
+      _outPort_4_LineEdit->setEnabled(false);
+      _mountpoint_4_LineEdit->setEnabled(false);
+      _password_4_LineEdit->setEnabled(false);
+      _outFile_4_LineEdit->setEnabled(false);
+      _refSys_4_ComboBox->setEnabled(false);
+      _CoM_4_CheckBox->setEnabled(false);
+    }
+  }
+
+  // Enable/disable Broadcast Corrections V Options
+  // ----------------------------------------------
+  if (sender() == 0 || sender() == _outHost_5_LineEdit) {
+    if (!_outHost_5_LineEdit->text().isEmpty()) {
+      _outPort_5_LineEdit->setStyleSheet("background-color: white");
+      _mountpoint_5_LineEdit->setStyleSheet("background-color: white");
+      _password_5_LineEdit->setStyleSheet("background-color: white");
+      _outFile_5_LineEdit->setStyleSheet("background-color: white");
+      _refSys_5_ComboBox->setStyleSheet("background-color: white");
+      _CoM_5_CheckBox->setPalette(palette_white);
+      _outPort_5_LineEdit->setEnabled(true);
+      _mountpoint_5_LineEdit->setEnabled(true);
+      _password_5_LineEdit->setEnabled(true);
+      _outFile_5_LineEdit->setEnabled(true);
+      _refSys_5_ComboBox->setEnabled(true);
+      _CoM_5_CheckBox->setEnabled(true);
+    } 
+    else {
+      _outPort_5_LineEdit->setStyleSheet("background-color: lightGray");
+      _mountpoint_5_LineEdit->setStyleSheet("background-color: lightGray");
+      _password_5_LineEdit->setStyleSheet("background-color: lightGray");
+      _outFile_5_LineEdit->setStyleSheet("background-color: lightGray");
+      _refSys_5_ComboBox->setStyleSheet("background-color: lightGray");
+      _CoM_5_CheckBox->setPalette(palette_gray);
+      _outPort_5_LineEdit->setEnabled(false);
+      _mountpoint_5_LineEdit->setEnabled(false);
+      _password_5_LineEdit->setEnabled(false);
+      _outFile_5_LineEdit->setEnabled(false);
+      _refSys_5_ComboBox->setEnabled(false);
+      _CoM_5_CheckBox->setEnabled(false);
+    }
+  }
+
+  // Enable/disable Broadcast Corrections VI Options
+  // -----------------------------------------------
+  if (sender() == 0 || sender() == _outHost_6_LineEdit) {
+    if (!_outHost_6_LineEdit->text().isEmpty()) {
+      _outPort_6_LineEdit->setStyleSheet("background-color: white");
+      _mountpoint_6_LineEdit->setStyleSheet("background-color: white");
+      _password_6_LineEdit->setStyleSheet("background-color: white");
+      _outFile_6_LineEdit->setStyleSheet("background-color: white");
+      _refSys_6_ComboBox->setStyleSheet("background-color: white");
+      _CoM_6_CheckBox->setPalette(palette_white);
+      _outPort_6_LineEdit->setEnabled(true);
+      _mountpoint_6_LineEdit->setEnabled(true);
+      _password_6_LineEdit->setEnabled(true);
+      _outFile_6_LineEdit->setEnabled(true);
+      _refSys_6_ComboBox->setEnabled(true);
+      _CoM_6_CheckBox->setEnabled(true);
+    } 
+    else {
+      _outPort_6_LineEdit->setStyleSheet("background-color: lightGray");
+      _mountpoint_6_LineEdit->setStyleSheet("background-color: lightGray");
+      _password_6_LineEdit->setStyleSheet("background-color: lightGray");
+      _outFile_6_LineEdit->setStyleSheet("background-color: lightGray");
+      _refSys_6_ComboBox->setStyleSheet("background-color: lightGray");
+      _CoM_6_CheckBox->setPalette(palette_gray);
+      _outPort_6_LineEdit->setEnabled(false);
+      _mountpoint_6_LineEdit->setEnabled(false);
+      _password_6_LineEdit->setEnabled(false);
+      _outFile_6_LineEdit->setEnabled(false);
+      _refSys_6_ComboBox->setEnabled(false);
+      _CoM_6_CheckBox->setEnabled(false);
+    }
+  }
+
   // Enable/disable Broadcast Ephemerides
   // ------------------------------------
Index: /trunk/BNS/bnswindow.h
===================================================================
--- /trunk/BNS/bnswindow.h	(revision 2326)
+++ /trunk/BNS/bnswindow.h	(revision 2327)
@@ -114,4 +114,28 @@
   QCheckBox* _CoM_3_CheckBox;
 
+  QLineEdit* _outHost_4_LineEdit;
+  QLineEdit* _outPort_4_LineEdit;
+  QLineEdit* _mountpoint_4_LineEdit;
+  QLineEdit* _password_4_LineEdit;
+  QComboBox* _refSys_4_ComboBox;
+  QLineEdit* _outFile_4_LineEdit;
+  QCheckBox* _CoM_4_CheckBox;
+
+  QLineEdit* _outHost_5_LineEdit;
+  QLineEdit* _outPort_5_LineEdit;
+  QLineEdit* _mountpoint_5_LineEdit;
+  QLineEdit* _password_5_LineEdit;
+  QComboBox* _refSys_5_ComboBox;
+  QLineEdit* _outFile_5_LineEdit;
+  QCheckBox* _CoM_5_CheckBox;
+
+  QLineEdit* _outHost_6_LineEdit;
+  QLineEdit* _outPort_6_LineEdit;
+  QLineEdit* _mountpoint_6_LineEdit;
+  QLineEdit* _password_6_LineEdit;
+  QComboBox* _refSys_6_ComboBox;
+  QLineEdit* _outFile_6_LineEdit;
+  QCheckBox* _CoM_6_CheckBox;
+
   QLineEdit* _outHost_Eph_LineEdit;
   QLineEdit* _outPort_Eph_LineEdit;
@@ -133,6 +157,6 @@
 //QWidget*    _status;
   QGroupBox*  _status;
-  QLabel*     _statusLbl[12];  
-  double      _statusCnt[6];
+  QLabel*     _statusLbl[18];  
+  double      _statusCnt[9];
   QMutex      _mutex;
 
