Index: /trunk/BNC/bncgetthread.cpp
===================================================================
--- /trunk/BNC/bncgetthread.cpp	(revision 3514)
+++ /trunk/BNC/bncgetthread.cpp	(revision 3515)
@@ -126,4 +126,5 @@
   _isToBeDeleted = false;
   _decoder       = 0;
+  _decoderAux    = 0;
   _query         = 0;
   _nextSleep     = 0;
@@ -345,4 +346,5 @@
   delete _PPPclient;
   delete _decoder;
+  delete _decoderAux;
   delete _rnx;
   delete _rawFile;
@@ -382,4 +384,9 @@
       // -----------------------
       _decoder->_obsList.clear();
+      if (_decoderAux) {
+        _decoderAux->_obsList.clear();
+      }
+
+      GPSDecoder* decoderUsed = _decoder;
 
       // Read Data
@@ -391,4 +398,11 @@
       else if (_rawFile) {
         data = _rawFile->readChunk();
+        if (_rawFile->format() == "HASS2ASCII") {
+          if (_decoderAux == 0) {
+            emit(newMessage(_staID + ": Get data in HASS format", true));
+            _decoderAux = new hassDecoder(_staID);
+          }
+          decoderUsed = _decoderAux;
+        }
 
         if (data.isEmpty()) {
@@ -428,12 +442,12 @@
       // -----------
       vector<string> errmsg;
-      _decoder->_obsList.clear();
-      t_irc irc = _decoder->Decode(data.data(), data.size(), errmsg);
+      decoderUsed->_obsList.clear();
+      t_irc irc = decoderUsed->Decode(data.data(), data.size(), errmsg);
 
       // Perform various scans and checks
       // --------------------------------
       _latencyChecker->checkOutage(irc == success);
-      _latencyChecker->checkObsLatency(_decoder->_obsList);
-      _latencyChecker->checkCorrLatency(_decoder->corrGPSEpochTime());
+      _latencyChecker->checkObsLatency(decoderUsed->_obsList);
+      _latencyChecker->checkCorrLatency(decoderUsed->corrGPSEpochTime());
 
       emit newLatency(_staID, _latencyChecker->currentLatency());
@@ -443,5 +457,5 @@
       // Loop over all observations (observations output)
       // ------------------------------------------------
-      QListIterator<t_obs> it(_decoder->_obsList);
+      QListIterator<t_obs> it(decoderUsed->_obsList);
       bool firstObs = true;
       while (it.hasNext()) {
@@ -455,5 +469,5 @@
         // Check observation epoch
         // -----------------------
-        if (!_rawFile && !dynamic_cast<gpssDecoder*>(_decoder)) {
+        if (!_rawFile && !dynamic_cast<gpssDecoder*>(decoderUsed)) {
           int    week;
           double sec;
@@ -509,5 +523,5 @@
         firstObs = false;
       }
-      _decoder->_obsList.clear();
+      decoderUsed->_obsList.clear();
     }
     catch (Exception& exc) {
Index: /trunk/BNC/bncgetthread.h
===================================================================
--- /trunk/BNC/bncgetthread.h	(revision 3514)
+++ /trunk/BNC/bncgetthread.h	(revision 3515)
@@ -106,4 +106,5 @@
 
    GPSDecoder*     _decoder;
+   GPSDecoder*     _decoderAux;
    bncNetQuery*    _query;
    QUrl            _mountPoint;
