Index: trunk/BNC/GPSS/hassDecoder.cpp
===================================================================
--- trunk/BNC/GPSS/hassDecoder.cpp	(revision 3520)
+++ trunk/BNC/GPSS/hassDecoder.cpp	(revision 3578)
@@ -20,4 +20,5 @@
 #include "bnctime.h"
 #include "bncutils.h"
+#include "RTCM3/RTCM3coDecoder.h"
 
 using namespace std;
@@ -25,5 +26,5 @@
 // Constructor
 ////////////////////////////////////////////////////////////////////////////
-hassDecoder::hassDecoder(const QString& staID) : RTCM3coDecoder(staID) {
+hassDecoder::hassDecoder(const QString& staID) {
   _GPSweeks = -1.0;
 }
@@ -128,6 +129,10 @@
                      0.0, dotRao[0], dotRao[1], dotRao[2], 0.0);
 
-    reopen(_fileNameSkl, _fileName, _out);    
-    printLine(corrLine, coTime);
+    RTCM3coDecoder::reopen(_fileNameSkl, _fileName, _out);    
+    if (_out) {
+      *_out << corrLine.toAscii().data() << endl;
+      _out->flush();
+    }
+    emit newCorrLine(corrLine, _staID, coTime);
   }
 
Index: trunk/BNC/GPSS/hassDecoder.h
===================================================================
--- trunk/BNC/GPSS/hassDecoder.h	(revision 3520)
+++ trunk/BNC/GPSS/hassDecoder.h	(revision 3578)
@@ -5,9 +5,9 @@
 #include <QtCore>
 
-#include "RTCM3/RTCM3coDecoder.h"
+#include "bncephuser.h"
+#include "RTCM/GPSDecoder.h"
 
-class hassDecoder : public RTCM3coDecoder {
+class hassDecoder : public bncEphUser, public GPSDecoder {
 Q_OBJECT
-
  public:
   hassDecoder(const QString& staID);
@@ -15,5 +15,14 @@
   virtual t_irc Decode(char* data, int dataLen, std::vector<std::string>& errmsg);
 
+ signals:
+  void newCorrLine(QString line, QString staID, long coTime);
+
  private:
+  std::ofstream* _out;
+  QString        _staID;
+  QString        _fileNameSkl;
+  QString        _fileName;
+  QByteArray     _buffer;
+  double         _GPSweeks;
 } ;
 
