Index: trunk/BNC/bncpppthread.cpp
===================================================================
--- trunk/BNC/bncpppthread.cpp	(revision 2020)
+++ trunk/BNC/bncpppthread.cpp	(revision 2021)
@@ -59,5 +59,9 @@
     wait();
   }
-  cout << "PPP Client " << _staID.data() << " destructor\n";
+  QMapIterator<QString, t_eph*> it(_eph);
+  while (it.hasNext()) {
+    it.next();
+    delete it.value();
+  }
 }
 
@@ -94,5 +98,12 @@
 void bncPPPthread::slotNewEpochData(QList<p_obs> obsList) {
   QMutexLocker locker(&_mutex);
-  cout << "PPP Client: new observations " << obsList.size() << endl;
+  QListIterator<p_obs> it(obsList);
+  while (it.hasNext()) {
+    p_obs          pp  = it.next();
+    t_obsInternal* obs = &(pp->_o);
+    QString staID = QString(obs->StatID); 
+    cout << obs->GPSWeek << " " << obs->GPSWeeks << " " 
+         << staID.toAscii().data() << " " << obs->satSys << obs->satNum << endl;
+  }
 }
 
@@ -104,6 +115,12 @@
   QString prn = QString("G%1").arg(gpseph.satellite, 2, 10, QChar('0'));
 
-
-  cout << "PPP Client: new ephemeris " << prn.toAscii().data() << endl;
+  if (_eph.contains(prn)) {
+    (static_cast<t_ephGPS*>(_eph.value(prn)))->set(&gpseph);
+  }
+  else {
+    t_ephGPS* ee = new t_ephGPS();
+    ee->set(&gpseph);
+    _eph[prn] = ee;
+  }
 }
 
Index: trunk/BNC/bncpppthread.h
===================================================================
--- trunk/BNC/bncpppthread.h	(revision 2020)
+++ trunk/BNC/bncpppthread.h	(revision 2021)
@@ -30,5 +30,5 @@
 
 #include "RTCM/GPSDecoder.h"
-#include "RTCM3/rtcm3torinex.h"
+#include "RTCM3/ephemeris.h"
 
 class bncPPPthread : public QThread {
@@ -57,7 +57,8 @@
 
  private:
-  QByteArray      _staID;
-  bool            _isToBeDeleted;
-  QMutex          _mutex;
+  QByteArray            _staID;
+  bool                  _isToBeDeleted;
+  QMutex                _mutex;
+  QMap<QString, t_eph*> _eph;
 };
 
