Index: trunk/BNC/src/PPP/options.h
===================================================================
--- trunk/BNC/src/PPP/options.h	(revision 5740)
+++ trunk/BNC/src/PPP/options.h	(revision 5742)
@@ -13,4 +13,8 @@
   t_options();
   ~t_options();
+  bool dualFreqRequired();
+  bool useGlonass();
+  bool xyzAprRoverSet();
+
   bool         _realTime;
   std::string  _roverName;     
@@ -37,5 +41,5 @@
   ColumnVector _neuEccRover;
   std::string  _antNameRover;  
-  int          _minobs;
+  int          _minObs;
   double       _minEle;
   double       _maxResC1;
Index: trunk/BNC/src/PPP/ppp.h
===================================================================
--- trunk/BNC/src/PPP/ppp.h	(revision 5740)
+++ trunk/BNC/src/PPP/ppp.h	(revision 5742)
@@ -3,5 +3,8 @@
 
 #include <string>
+
+#include "bncconst.h"
 #include "bnctime.h"
+#include "t_prn.h"
 
 namespace BNC {
@@ -14,18 +17,4 @@
 };
 
-class t_pppOpt {
- public:
-  e_pppMode   _mode;         
-  std::string _roverName;     
-  std::string _baseName;      
-  double      _xyzAprRover[3];     
-  double      _neuEccRover[3];     
-  std::string _antNameRover;  
-  std::string _antexFileName; 
-  int         _logLevel;             
-  int         _minobs;               
-  bool        _useGlonass;           
-};
-
 class t_pppOutput {
  public:
@@ -34,5 +23,4 @@
   double       _covMatrix[6]; 
   int          _numSat;       
-  double       _ambFixRate; 
   double       _pDop;         
   std::string  _log;          
@@ -40,5 +28,5 @@
 };
 
-class t_pppObs  {
+class t_obs  {
  public:
   std::string _rnxType2ch; 
@@ -53,22 +41,17 @@
   bool        _slip;          
   int         _slipCounter;   
-};
-
-class t_pppSat {
- public:
-  char _system;
-  int  _number;
+  int         _biasJumpCounter;
 };
 
 class t_pppSatObs {
  public:
-  t_pppSat              _satellite;
-  bncTime               _time;
-  std::vector<t_pppObs> _obs;
+  t_prn              _prn;
+  bncTime            _time;
+  std::vector<t_obs> _obs;
 };
 
-class t_pppOrbCorr {
+class t_orbCorr {
  public:
-  t_pppSat       _satellite;
+  t_prn          _prn;
   unsigned short _iod;
   bncTime        _time;
@@ -78,7 +61,7 @@
 };
 
-class t_pppClkCorr {
+class t_clkCorr {
  public:
-  t_pppSat       _satellite;
+  t_prn          _prn;
   unsigned short _iod;
   bncTime        _time;
@@ -90,5 +73,5 @@
 };
 
-class t_pppBias {
+class t_bias {
  public:
   std::string _rnxType3ch;
@@ -96,14 +79,12 @@
 };
 
-class t_pppSatBiases {
+class t_satBiases {
  public:
-  t_pppSat                    _satellite;
-  bncTime                     _time;
-  int                         _nx;
-  int                         _jumpCount;
-  std::vector<t_pppSatBiases> _biases;
+  t_prn               _prn;
+  bncTime             _time;
+  int                 _nx;
+  int                 _jumpCount;
+  std::vector<t_bias> _biases;
 };
-
-enum e_roverBase { e_rover, e_base };
 
 enum e_tropoModel{tropoModel_NO, tropoModel_SAAST, tropoModel_MARINI, 
@@ -113,9 +94,4 @@
                tropoMF_NIELL_WET, tropoMF_HOPF, tropoMF_GMF_DRY, 
                tropoMF_GMF_WET, tropoMF_GMF_COMB};
-
-class t_irc {
- public:
-  enum irc {success = 0, failure};
-};
 
 class t_frequency {
Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5740)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5742)
@@ -70,7 +70,11 @@
   cout << _opt->_roverName << " run" << endl;
 
-  _pppRun = new t_pppRun(_opt);
-  QThread::exec();
-
+  try {
+    _pppRun = new t_pppRun(_opt);
+    QThread::exec();
+  }
+  catch (const char* msg) {
+    cout << msg << endl;
+  }
   cout << _opt->_roverName << " exit" << endl;
 }
@@ -80,6 +84,5 @@
 t_pppRun::t_pppRun(const t_options* opt) {
   _opt = opt;
-
-  if (BNC_CORE->caster()) {
+  if (_opt->_realTime) {
     connect(BNC_CORE->caster(), SIGNAL(newObs(QByteArray, QList<t_obs>)),
             this, SLOT(slotNewObs(QByteArray, QList<t_obs>)));
@@ -96,4 +99,9 @@
     connect(BNC_CORE, SIGNAL(newCorrections(QStringList)),
             this, SLOT(slotNewCorrections(QStringList)));
+
+    _pppClient = new t_pppClient();
+  }
+  else {
+    cout << "t_pppRun: post-processing not yet implemented" << endl;
   }
 }
@@ -102,4 +110,5 @@
 ////////////////////////////////////////////////////////////////////////////
 t_pppRun::~t_pppRun() {
+  delete _pppClient;
   cout << "~t_pppRun" << endl;
 }
@@ -110,4 +119,7 @@
   QMutexLocker locker(&_mutex);
   cout << _opt->_roverName << " slotNewEphGPS" << endl;
+  t_ephGPS eph;
+  eph.set(&gpseph);
+  _pppClient->putGPSEphemeris(&eph);
 }
 
Index: trunk/BNC/src/PPP/pppThread.h
===================================================================
--- trunk/BNC/src/PPP/pppThread.h	(revision 5740)
+++ trunk/BNC/src/PPP/pppThread.h	(revision 5742)
@@ -7,4 +7,5 @@
 #include "GPSDecoder.h"
 #include "options.h"
+#include "pppClient.h"
 
 namespace BNC {
@@ -26,4 +27,5 @@
   QMutex           _mutex;
   const t_options* _opt;
+  t_pppClient*     _pppClient;
 };
 
