Index: /trunk/BNC/src/PPP/ephpool.cpp
===================================================================
--- /trunk/BNC/src/PPP/ephpool.cpp	(revision 5748)
+++ /trunk/BNC/src/PPP/ephpool.cpp	(revision 5749)
@@ -49,5 +49,5 @@
 /////////////////////////////////////////////////////////////////////////////
 void t_ephPool::putEphemeris(t_eph* eph) {
-  if (eph && eph->isOK()) {
+  if (eph && eph->ok()) {
     _satEphPool[eph->prn().toInt()].putEphemeris(_maxQueueSize, eph);
   }
@@ -119,5 +119,5 @@
   for (unsigned ii = 0; ii < _ephs.size(); ii++) {
     t_eph* eph = _ephs[ii];
-    if (eph->IOD() == corr->IOD() || corr->absClk()) {
+    if (eph->IOD() == corr->IOD()) {
       eph->setClkCorr(corr); 
     }
@@ -133,7 +133,7 @@
     t_eph* eph = _ephs[ii];
     t_irc irc = eph->getCrd(tt, xc, vv);
-    if (irc == t_irc::success) {
-      if (eph->prn().system() == 'R') {
-        double age = tt - eph->toc();
+    if (irc == success) {
+      if (eph->system() == 'R') {
+        double age = tt - eph->TOC();
         if (fabs(age) > 3600.0) {
           continue;
@@ -143,5 +143,5 @@
     }
   }
-  return t_irc::failure;
+  return failure;
 }
 
@@ -150,5 +150,5 @@
 int t_ephPool::t_satEphPool::getChannel() const {
   if (_ephs.size() > 0) {
-    return _ephs[0]->getChannel();
+    return _ephs[0]->slotNum();
   }
   return 0;
Index: /trunk/BNC/src/PPP/ppp.h
===================================================================
--- /trunk/BNC/src/PPP/ppp.h	(revision 5748)
+++ /trunk/BNC/src/PPP/ppp.h	(revision 5749)
@@ -54,4 +54,6 @@
 class t_orbCorr {
  public:
+  t_prn          prn() const {return _prn;}
+  unsigned short IOD() const {return _iod;}
   t_prn          _prn;
   unsigned short _iod;
@@ -64,8 +66,9 @@
 class t_clkCorr {
  public:
+  t_prn          prn() const {return _prn;}
+  unsigned short IOD() const {return _iod;}
   t_prn          _prn;
   unsigned short _iod;
   bncTime        _time;
-  bool           _absClk;
   double         _dClk;
   double         _dotDClk;
Index: /trunk/BNC/src/ephemeris.cpp
===================================================================
--- /trunk/BNC/src/ephemeris.cpp	(revision 5748)
+++ /trunk/BNC/src/ephemeris.cpp	(revision 5749)
@@ -12,5 +12,7 @@
 #include "bnctime.h"
 #include "bnccore.h"
-
+#include "PPP/ppp.h"
+
+using namespace BNC;
 using namespace std;
 
@@ -30,4 +32,39 @@
   }
   return crc;
+}
+
+// Constructor
+////////////////////////////////////////////////////////////////////////////
+t_eph::t_eph() {
+  _ok      = false;
+  _orbCorr = 0;
+  _clkCorr = 0;
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void t_eph::setOrbCorr(const BNC::t_orbCorr* orbCorr) {
+  delete _orbCorr; 
+  _orbCorr = new t_orbCorr(*orbCorr);
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void t_eph::setClkCorr(const BNC::t_clkCorr* clkCorr) {
+  delete _clkCorr; 
+  _clkCorr = new t_clkCorr(*clkCorr);
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+t_irc t_eph::getCrd(const bncTime& tt, ColumnVector& xc,
+                    ColumnVector& vv, bool noCorr) const {
+  xc.ReSize(4);
+  vv.ReSize(3);
+  position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
+  if (!noCorr) {
+    throw "t_eph::getCrd: not yet implemented";
+  }
+  return success;
 }
 
Index: /trunk/BNC/src/ephemeris.h
===================================================================
--- /trunk/BNC/src/ephemeris.h	(revision 5748)
+++ /trunk/BNC/src/ephemeris.h	(revision 5749)
@@ -7,8 +7,14 @@
 #include <string>
 #include "bnctime.h"
+#include "bncconst.h"
 extern "C" {
 #include "rtcm3torinex.h"
 }
 
+namespace BNC {
+  class t_orbCorr;
+  class t_clkCorr;
+}
+
 class t_eph {
  public:
@@ -16,5 +22,5 @@
   enum e_type {unknown, GPS, GLONASS, Galileo};
 
-  t_eph() {_ok = false;}
+  t_eph();
   virtual ~t_eph() {};
 
@@ -36,4 +42,5 @@
   }
   QString prn() const {return _prn;}
+  char system() const {return _prn[0].toAscii();}
   const QDateTime& receptDateTime() const {return _receptDateTime;}
 
@@ -50,12 +57,20 @@
   }
 
+  t_irc getCrd(const bncTime& tt, ColumnVector& xc,
+               ColumnVector& vv, bool noCorr = false) const;
+  void setOrbCorr(const BNC::t_orbCorr* orbCorr);
+  void setClkCorr(const BNC::t_clkCorr* clkCorr);
+  virtual int slotNum() const {return 0;}
+
   static QString rinexDateStr(const bncTime& tt, const QString& prn,
                               double version);
 
  protected:  
-  QString   _prn;
-  bncTime   _TOC;
-  QDateTime _receptDateTime;
-  bool      _ok;
+  QString         _prn;
+  bncTime         _TOC;
+  QDateTime       _receptDateTime;
+  bool            _ok;
+  BNC::t_orbCorr* _orbCorr;
+  BNC::t_clkCorr* _clkCorr;
 };
 
@@ -143,5 +158,5 @@
   void set(const glonassephemeris* ee);
 
-  int  slotNum() const {return int(_frequency_number);}
+  virtual int slotNum() const {return int(_frequency_number);}
 
  private:
