Index: /trunk/BNC/bncgetthread.cpp
===================================================================
--- /trunk/BNC/bncgetthread.cpp	(revision 3531)
+++ /trunk/BNC/bncgetthread.cpp	(revision 3532)
@@ -136,5 +136,6 @@
   _serialPort    = 0;
 
-  if (settings.value("serialMountPoint").toString() == _staID) {
+  if (!_staID.isEmpty() &&
+      settings.value("serialMountPoint").toString() == _staID) {
     _serialPort = new QextSerialPort(settings.value("serialPortName").toString() );
     _serialPort->setTimeout(0,100);
@@ -264,9 +265,65 @@
   }
 
+  if (!_staID.isEmpty()) {
+    _latencyChecker = new latencyChecker(_staID);
+  }
+  else {
+    _latencyChecker = 0;
+  }
+}
+
+// Instantiate the decoder
+//////////////////////////////////////////////////////////////////////////////
+t_irc bncGetThread::initDecoder() {
+
+  if      (_format.indexOf("RTCM_2") != -1 || _format.indexOf("RTCM2") != -1 ||
+           _format.indexOf("RTCM 2") != -1 ) {
+    emit(newMessage(_staID + ": Get data in RTCM 2.x format", true));
+    _decoders[_staID] = new RTCM2Decoder(_staID.data());
+  }
+  else if (_format.indexOf("RTCM_3") != -1 || _format.indexOf("RTCM3") != -1 ||
+           _format.indexOf("RTCM 3") != -1 ) {
+    emit(newMessage(_staID + ": Get data in RTCM 3.x format", true));
+    _decoders[_staID] = new RTCM3Decoder(_staID, _rawFile);
+    connect((RTCM3Decoder*) decoder(), SIGNAL(newMessage(QByteArray,bool)), 
+            this, SIGNAL(newMessage(QByteArray,bool)));
+  }
+  else if (_format.indexOf("GPSS") != -1 || _format.indexOf("BNC") != -1) {
+    emit(newMessage(_staID + ": Get Data in GPSS format", true));
+    _decoders[_staID] = new gpssDecoder();
+  }
+  else if (_format.indexOf("ZERO") != -1) {
+    emit(newMessage(_staID + ": Get data in original format", true));
+    _decoders[_staID] = new bncZeroDecoder(_staID);
+  }
+  else if (_format.indexOf("RTNET") != -1) {
+    emit(newMessage(_staID + ": Get data in RTNet format", true));
+    _decoders[_staID] = new bncRtnetDecoder();
+  }
+  else if (_format.indexOf("HASS2ASCII") != -1) {
+    emit(newMessage(_staID + ": Get data in HASS2ASCII format", true));
+    _decoders[_staID] = new hassDecoder(_staID);
+  }
+  else {
+    emit(newMessage(_staID + ": Unknown data format " + _format, true));
+    _isToBeDeleted = true;
+    return failure;
+  }
+
+  msleep(100); //sleep 0.1 sec
+  
+  if (decoder()) {
+    decoder()->initRinex(_staID, _mountPoint, _latitude, _longitude, 
+                         _nmea, _ntripVersion);
+
+  }
+
   // Initialize PPP Client?
   // ----------------------
 #ifndef MLS_SOFTWARE
+  bncSettings settings;
   if (settings.value("pppMount").toString() == _staID) {
     _PPPclient = new bncPPPclient(_staID);
+    bncApp* app = (bncApp*) qApp;
     app->_bncPPPclient = _PPPclient;
     qRegisterMetaType<bncTime>("bncTime");
@@ -278,53 +335,4 @@
 #endif
 
-  _latencyChecker = new latencyChecker(_staID);
-}
-
-// Instantiate the decoder
-//////////////////////////////////////////////////////////////////////////////
-t_irc bncGetThread::initDecoder() {
-
-  if      (_format.indexOf("RTCM_2") != -1 || _format.indexOf("RTCM2") != -1 ||
-           _format.indexOf("RTCM 2") != -1 ) {
-    emit(newMessage(_staID + ": Get data in RTCM 2.x format", true));
-    _decoders[_staID] = new RTCM2Decoder(_staID.data());
-  }
-  else if (_format.indexOf("RTCM_3") != -1 || _format.indexOf("RTCM3") != -1 ||
-           _format.indexOf("RTCM 3") != -1 ) {
-    emit(newMessage(_staID + ": Get data in RTCM 3.x format", true));
-    _decoders[_staID] = new RTCM3Decoder(_staID, _rawFile);
-    connect((RTCM3Decoder*) decoder(), SIGNAL(newMessage(QByteArray,bool)), 
-            this, SIGNAL(newMessage(QByteArray,bool)));
-  }
-  else if (_format.indexOf("GPSS") != -1 || _format.indexOf("BNC") != -1) {
-    emit(newMessage(_staID + ": Get Data in GPSS format", true));
-    _decoders[_staID] = new gpssDecoder();
-  }
-  else if (_format.indexOf("ZERO") != -1) {
-    emit(newMessage(_staID + ": Get data in original format", true));
-    _decoders[_staID] = new bncZeroDecoder(_staID);
-  }
-  else if (_format.indexOf("RTNET") != -1) {
-    emit(newMessage(_staID + ": Get data in RTNet format", true));
-    _decoders[_staID] = new bncRtnetDecoder();
-  }
-  else if (_format.indexOf("HASS2ASCII") != -1) {
-    emit(newMessage(_staID + ": Get data in HASS2ASCII format", true));
-    _decoders[_staID] = new hassDecoder(_staID);
-  }
-  else {
-    emit(newMessage(_staID + ": Unknown data format " + _format, true));
-    _isToBeDeleted = true;
-    return failure;
-  }
-
-  msleep(100); //sleep 0.1 sec
-  
-  if (decoder()) {
-    decoder()->initRinex(_staID, _mountPoint, _latitude, _longitude, 
-                         _nmea, _ntripVersion);
-
-  }
-
   return success;
 }
@@ -386,5 +394,7 @@
 
       if (tryReconnect() != success) {
-        _latencyChecker->checkReconnect();
+        if (_latencyChecker) {
+          _latencyChecker->checkReconnect();
+        }
         continue;
       }
@@ -422,5 +432,7 @@
       // ------------------
       if (nBytes == 0) {
-        _latencyChecker->checkReconnect();
+        if (_latencyChecker) {
+          _latencyChecker->checkReconnect();
+        }
         emit(newMessage(_staID + ": Data timeout, reconnecting", true));
         msleep(10000); //sleep 10 sec, G. Weber
@@ -455,9 +467,11 @@
       // Perform various scans and checks
       // --------------------------------
-      _latencyChecker->checkOutage(irc == success);
-      _latencyChecker->checkObsLatency(decoder()->_obsList);
-      _latencyChecker->checkCorrLatency(decoder()->corrGPSEpochTime());
-
-      emit newLatency(_staID, _latencyChecker->currentLatency());
+      if (_latencyChecker) {
+        _latencyChecker->checkOutage(irc == success);
+        _latencyChecker->checkObsLatency(decoder()->_obsList);
+        _latencyChecker->checkCorrLatency(decoder()->corrGPSEpochTime());
+        
+        emit newLatency(_staID, _latencyChecker->currentLatency());
+      }
 
       scanRTCM();            
