Index: trunk/BNC/GPSS/hassDecoder.cpp
===================================================================
--- trunk/BNC/GPSS/hassDecoder.cpp	(revision 3577)
+++ 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 3577)
+++ 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;
 } ;
 
Index: trunk/BNC/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 3577)
+++ trunk/BNC/RTCM3/RTCM3Decoder.cpp	(revision 3578)
@@ -433,32 +433,4 @@
 }
 
-// Store ephemerides
-//////////////////////////////////////////////////////////////////////////////
-bool RTCM3Decoder::storeEph(const gpsephemeris& gpseph) {
-  t_ephGPS eph; eph.set(&gpseph);
-
-  return storeEph(eph);
-}
-
-
-bool RTCM3Decoder::storeEph(const t_ephGPS& gpseph) {
-  const double secPerWeek = 7.0 * 24.0 * 3600.0;
-  double weekold = 0.0;
-  double weeknew = gpseph.GPSweek() + gpseph.GPSweeks() / secPerWeek;
-  string prn = gpseph.prn().toAscii().data();
-  if ( _ephList.find(prn) != _ephList.end() ) {
-    weekold = _ephList.find(prn)->second.GPSweek() 
-            + _ephList.find(prn)->second.GPSweeks() / secPerWeek; 
-  }
-
-  if ( weeknew - weekold > 1.0/secPerWeek ) {
-    _ephList[prn] = gpseph;
-
-    return true;
-  }
-
-  return false;
-}
-
 // Time of Corrections
 //////////////////////////////////////////////////////////////////////////////
Index: trunk/BNC/RTCM3/RTCM3Decoder.h
===================================================================
--- trunk/BNC/RTCM3/RTCM3Decoder.h	(revision 3577)
+++ trunk/BNC/RTCM3/RTCM3Decoder.h	(revision 3578)
@@ -32,5 +32,4 @@
 #include "../RTCM/GPSDecoder.h"
 #include "RTCM3coDecoder.h"
-#include "ephemeris.h"
 #include "bncrawfile.h"
 
@@ -46,7 +45,4 @@
   virtual t_irc Decode(char* buffer, int bufLen, std::vector<std::string>& errmsg);
   virtual int corrGPSEpochTime() const;
-
-  bool  storeEph(const gpsephemeris& gpseph);
-  bool  storeEph(const t_ephGPS&     gpseph);
 
  signals:
@@ -65,5 +61,4 @@
   t_mode                 _mode;
 
-  std::map<std::string, t_ephGPS> _ephList;
   double                 _antXYZ[3];
   bncRawFile*            _rawFile;
Index: trunk/BNC/RTCM3/RTCM3coDecoder.h
===================================================================
--- trunk/BNC/RTCM3/RTCM3coDecoder.h	(revision 3577)
+++ trunk/BNC/RTCM3/RTCM3coDecoder.h	(revision 3578)
@@ -31,5 +31,4 @@
 #include <QtNetwork>
 
-#include "bncephuser.h"
 #include "RTCM/GPSDecoder.h"
 
@@ -38,5 +37,5 @@
 }
 
-class RTCM3coDecoder : public bncEphUser, public GPSDecoder {
+class RTCM3coDecoder : public QObject, public GPSDecoder {
 Q_OBJECT
  public:
@@ -53,5 +52,5 @@
   void newCorrLine(QString line, QString staID, long coTime);
 
- protected:
+ private:
   void printLine(const QString& line, long coTime);
   std::ofstream* _out;
@@ -61,6 +60,4 @@
   QByteArray     _buffer;
   double         _GPSweeks;
-
- private:
   ClockOrbit     _co;
   Bias           _bias;
