Index: /trunk/BNC/src/bncgetthread.cpp
===================================================================
--- /trunk/BNC/src/bncgetthread.cpp	(revision 6750)
+++ /trunk/BNC/src/bncgetthread.cpp	(revision 6751)
@@ -260,4 +260,13 @@
     if (settings.value("serialAutoNMEA").toString() == "Manual") {
       _serialNMEA = MANUAL_NMEA;
+      bncSettings settings;
+      _manualNMEASampl = settings.value("serialManualNMEASampling").toInt();
+      QString hlp      = settings.value("serialHeightNMEA").toString();
+      if (hlp.isEmpty()) {
+        hlp = "0.0";
+      }
+      QByteArray _serialHeightNMEA = hlp.toAscii();
+      _manualNMEAString = ggaString(_latitude, _longitude, _serialHeightNMEA);
+
     }
   }
@@ -610,12 +619,6 @@
     }
     if (_nmea == "yes" && _serialNMEA == MANUAL_NMEA) {
-      bncSettings settings;
-      QString hlp = settings.value("serialHeightNMEA").toString();
-      if (hlp.isEmpty()) {
-        hlp = "0.0";
-      }
-      QByteArray _serialHeightNMEA = hlp.toAscii();
-      QByteArray gga = ggaString(_latitude, _longitude, _serialHeightNMEA);
-      _query->startRequest(_mountPoint, gga);
+      _query->startRequest(_mountPoint, _manualNMEAString);
+      _lastManualNMEA = QDateTime::currentDateTime();
     }
     else {
@@ -812,10 +815,20 @@
         }
         if (i1 != -1) {
-	  int i2 = data.indexOf("*", i1);
+          int i2 = data.indexOf("*", i1);
           if (i2 != -1 && data.size() > i2 + 1) {
-            QByteArray gga = data.mid(i1,i2-i1+3);
+            QByteArray gga = data.mid(i1, i2 - i1 + 3);
             _query->sendNMEA(gga);
-	  }
-	}
+          }
+        }
+      }
+
+      if (_nmea == "yes" && _serialNMEA == MANUAL_NMEA) {
+        if (_manualNMEASampl) {
+          int dt = _lastManualNMEA.secsTo(QDateTime::currentDateTime());
+          if (fmod(double(dt), double(_manualNMEASampl)) == 0.0) {
+            _query->sendNMEA(_manualNMEAString);
+            _lastManualNMEA = QDateTime::currentDateTime();
+          }
+        }
       }
 
Index: /trunk/BNC/src/bncgetthread.h
===================================================================
--- /trunk/BNC/src/bncgetthread.h	(revision 6750)
+++ /trunk/BNC/src/bncgetthread.h	(revision 6751)
@@ -112,4 +112,7 @@
    QByteArray                 _nmea;
    QByteArray                 _ntripVersion;
+   QByteArray                 _manualNMEAString;
+   QDateTime                  _lastManualNMEA;
+   int                        _manualNMEASampl;
    int                        _nextSleep;
    int                        _iMount;
Index: /trunk/BNC/src/bncwindow.cpp
===================================================================
--- /trunk/BNC/src/bncwindow.cpp	(revision 6750)
+++ /trunk/BNC/src/bncwindow.cpp	(revision 6751)
@@ -212,5 +212,5 @@
   _rnxSkelLineEdit->setMaximumWidth(5*ww);
   _rnxScrpLineEdit    = new QLineEdit(settings.value("rnxScript").toString());
-  _rnxV3CheckBox = new QCheckBox();
+  _rnxV3CheckBox      = new QCheckBox();
   _rnxV3CheckBox->setCheckState(Qt::CheckState(settings.value("rnxV3").toInt()));
   QString hlp = settings.value("rnxV2Priority").toString();
@@ -330,4 +330,11 @@
   _serialFileNMEALineEdit    = new QLineEdit(settings.value("serialFileNMEA").toString());
   _serialHeightNMEALineEdit  = new QLineEdit(settings.value("serialHeightNMEA").toString());
+
+  _serialManualNMEASamplingSpinBox = new QSpinBox();
+  _serialManualNMEASamplingSpinBox->setMinimum(0);
+  _serialManualNMEASamplingSpinBox->setMaximum(300);
+  _serialManualNMEASamplingSpinBox->setSingleStep(10);
+  _serialManualNMEASamplingSpinBox->setValue(settings.value("serialManualNMEASampling").toInt());
+  _serialManualNMEASamplingSpinBox->setSuffix(" sec");
 
   connect(_serialMountPointLineEdit, SIGNAL(textChanged(const QString &)),
@@ -765,4 +772,5 @@
   _serialAutoNMEAComboBox->setMaximumWidth(9*ww);
   _serialHeightNMEALineEdit->setMaximumWidth(8*ww);
+  _serialManualNMEASamplingSpinBox->setMaximumWidth(8*ww);
 
   serLayout->addWidget(new QLabel("Port settings to feed a serial connected receiver.<br>"),0,0,1,30);
@@ -787,4 +795,6 @@
   serLayout->addWidget(new QLabel("Height"),                      5,14, Qt::AlignRight); // 20
   serLayout->addWidget(_serialHeightNMEALineEdit,                 5,15, 1,11);
+  serLayout->addWidget(new QLabel("Sampling"),                    5,25, Qt::AlignRight);
+ serLayout->addWidget(_serialManualNMEASamplingSpinBox,           5,26, 1,12);
   serLayout->addWidget(new QLabel(""),                            6, 1);
   serLayout->setRowStretch(7, 999);
@@ -1308,4 +1318,5 @@
   _serialFileNMEALineEdit->setWhatsThis(tr("<p>Specify the full path to a file where NMEA messages coming from your serial connected receiver are saved.</p><p>Default is an empty option field, meaning that NMEA messages will not be saved on disk.</p>"));
   _serialHeightNMEALineEdit->setWhatsThis(tr("<p>Specify an approximate 'Height' above mean sea level in meters for the reference station introduced through 'Mountpoint'. Together with the latitude and longitude from the NTRIP broadcaster sourcetable the height information is used to build one initial GPGGA message to be sent to the NTRIP broadcaster.</p><p>This option is only relevant when option 'NMEA' is set to 'Manual'.</p>"));
+  _serialManualNMEASamplingSpinBox->setWhatsThis(tr("<p>Select the sampling interval in seconds for manual generated NMEA string. A sampling rate of '0' means, the NMEA string will be send only once. </p>"));
   _reqcActionComboBox->setWhatsThis(tr("<p>BNC allows to 'Edit or Concatenate' RINEX v2 or v3 files or to perform a quality check and 'Analyze' the data following UNAVCO's famous 'teqc' program.</p>"));
   _reqcEditOptionButton->setWhatsThis(tr("<p>Specify options for editing RINEX v2 or v3 files.</p>"));
@@ -1719,6 +1730,7 @@
   settings.setValue("serialStopBits",  _serialStopBitsComboBox->currentText());
   settings.setValue("serialAutoNMEA",  _serialAutoNMEAComboBox->currentText());
-  settings.setValue("serialFileNMEA",_serialFileNMEALineEdit->text());
-  settings.setValue("serialHeightNMEA",_serialHeightNMEALineEdit->text());
+  settings.setValue("serialFileNMEA",    _serialFileNMEALineEdit->text());
+  settings.setValue("serialHeightNMEA",  _serialHeightNMEALineEdit->text());
+  settings.setValue("serialMaualSampling", _serialManualNMEASamplingSpinBox->value());
 // Outages
   settings.setValue("obsRate",     _obsRateComboBox->currentText());
@@ -2208,4 +2220,5 @@
     bool enable3 = enable && _serialAutoNMEAComboBox->currentText() == "Manual";
     enableWidget(enable3, _serialHeightNMEALineEdit);
+    enableWidget(enable3, _serialManualNMEASamplingSpinBox);
   }
 
Index: /trunk/BNC/src/bncwindow.h
===================================================================
--- /trunk/BNC/src/bncwindow.h	(revision 6750)
+++ /trunk/BNC/src/bncwindow.h	(revision 6751)
@@ -188,4 +188,5 @@
     QLineEdit* _serialFileNMEALineEdit;
     QComboBox* _serialAutoNMEAComboBox;
+    QSpinBox*  _serialManualNMEASamplingSpinBox;
 
     QLineEdit*   _LatLineEdit;
