Index: /trunk/BNC/bncgetthread.cpp
===================================================================
--- /trunk/BNC/bncgetthread.cpp	(revision 2112)
+++ /trunk/BNC/bncgetthread.cpp	(revision 2113)
@@ -288,10 +288,4 @@
   if (settings.value("pppMount").toString() == _staID) {
     _PPPclient = new bncPPPclient(_staID);
-    connect(((bncApp*)qApp), SIGNAL(newEphGPS(gpsephemeris)),
-	    _PPPclient, SLOT(slotNewEphGPS(gpsephemeris)));
-    connect(((bncApp*)qApp), SIGNAL(newCorrections(QList<QString>)),
-	    _PPPclient, SLOT(slotNewCorrections(QList<QString>)));
-    connect(_PPPclient, SIGNAL(newMessage(QByteArray,bool)), 
-            ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
   }
 
Index: /trunk/BNC/bncmodel.cpp
===================================================================
--- /trunk/BNC/bncmodel.cpp	(revision 2112)
+++ /trunk/BNC/bncmodel.cpp	(revision 2113)
@@ -42,6 +42,8 @@
 #include <cmath>
 #include <newmatio.h>
+#include <sstream>
 
 #include "bncmodel.h"
+#include "bncapp.h"
 #include "bncpppclient.h"
 #include "bancroft.h"
@@ -51,14 +53,16 @@
 using namespace std;
 
-const unsigned MINOBS =    4;
-const double   MINELE = 10.0 * M_PI / 180.0;
-const double   sig_crd_0 =  100.0;
-const double   sig_crd_p =  100.0;
-const double   sig_clk_0 = 1000.0;
-const double   sig_trp_0 =    0.01;
-const double   sig_trp_p =    1e-6;
-const double   sig_amb_0 =  100.0;
-const double   sig_P3    =    1.0;
-const double   sig_L3    =    0.01;
+const unsigned MINOBS       =    4;
+const double   MINELE       = 10.0 * M_PI / 180.0;
+const double   MAXRES_CODE  = 10.0;
+const double   MAXRES_PHASE = 0.10;
+const double   sig_crd_0    =  100.0;
+const double   sig_crd_p    =  100.0;
+const double   sig_clk_0    = 1000.0;
+const double   sig_trp_0    =    0.01;
+const double   sig_trp_p    =    1e-6;
+const double   sig_amb_0    =  100.0;
+const double   sig_P3       =    1.0;
+const double   sig_L3       =    0.01;
 
 // Constructor
@@ -109,5 +113,10 @@
 // Constructor
 ////////////////////////////////////////////////////////////////////////////
-bncModel::bncModel() {
+bncModel::bncModel(QByteArray staID) {
+
+  _staID   = staID;
+
+  connect(this, SIGNAL(newMessage(QByteArray,bool)), 
+          ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
 
   bncSettings settings;
@@ -394,9 +403,7 @@
   ColumnVector    vv;
 
+  // Loop over all outliers
+  // ----------------------
   do {
-
-    if (epoData->size() < MINOBS) {
-      return failure;
-    }
     
     // Bancroft Solution
@@ -470,4 +477,16 @@
   }
 
+  // Message (both log file and screen)
+  // ----------------------------------
+  ostringstream str;
+  str.setf(ios::fixed);
+  str << "    PPP " << _staID.data() << " " 
+      << epoData->tt.timestr(1) << " " << epoData->size() << " " 
+      << setw(14) << setprecision(3) << x()   << "  "
+      << setw(14) << setprecision(3) << y()   << "  "
+      << setw(14) << setprecision(3) << z();
+
+  emit newMessage(QString(str.str().c_str()).toAscii(), true);
+
   return success;
 }
@@ -478,7 +497,4 @@
                                const ColumnVector& vv,
                                QMap<QString, t_satData*>& satData) {
-
-  const static double MAXRES_CODE  = 10.0;
-  const static double MAXRES_PHASE = 0.10;
 
   double vvMaxCode  = 0.0;
Index: /trunk/BNC/bncmodel.h
===================================================================
--- /trunk/BNC/bncmodel.h	(revision 2112)
+++ /trunk/BNC/bncmodel.h	(revision 2113)
@@ -50,7 +50,8 @@
 };
 
-class bncModel {
+class bncModel : public QObject {
+ Q_OBJECT
  public:
-  bncModel();
+  bncModel(QByteArray staID);
   ~bncModel();
   t_irc cmpBancroft(t_epoData* epoData);
@@ -62,4 +63,7 @@
   double trp() const {return _estTropo ? _params[4]->xx : 0.0;}
   
+ signals:
+  void newMessage(QByteArray msg, bool showOnScreen);
+
  private:
   double cmpValue(t_satData* satData);
@@ -70,4 +74,5 @@
                           QMap<QString, t_satData*>& satData);
 
+  QByteArray         _staID;
   QVector<bncParam*> _params;
   SymmetricMatrix    _QQ;
Index: /trunk/BNC/bncpppclient.cpp
===================================================================
--- /trunk/BNC/bncpppclient.cpp	(revision 2112)
+++ /trunk/BNC/bncpppclient.cpp	(revision 2113)
@@ -39,9 +39,6 @@
  * -----------------------------------------------------------------------*/
 
-#include <iomanip>
-#include <newmatio.h>
-#include <sstream>
-
 #include "bncpppclient.h"
+#include "bncapp.h"
 #include "bncutils.h"
 #include "bncconst.h"
@@ -57,7 +54,13 @@
 ////////////////////////////////////////////////////////////////////////////
 bncPPPclient::bncPPPclient(QByteArray staID) {
+
+  connect(((bncApp*)qApp), SIGNAL(newEphGPS(gpsephemeris)),
+          this, SLOT(slotNewEphGPS(gpsephemeris)));
+  connect(((bncApp*)qApp), SIGNAL(newCorrections(QList<QString>)),
+          this, SLOT(slotNewCorrections(QList<QString>)));
+
   _staID   = staID;
   _epoData = 0;
-  _model   = new bncModel();
+  _model   = new bncModel(staID);
 }
 
@@ -333,16 +336,4 @@
     return;
   }
-
-  ostringstream str;
-  str.setf(ios::fixed);
-  str << "    PPP " << _staID.data() << " " 
-      << _epoData->tt.timestr(1) << " " << _epoData->size() << " " 
-      << setw(14) << setprecision(3) << _model->x()   << "  "
-      << setw(14) << setprecision(3) << _model->y()   << "  "
-      << setw(14) << setprecision(3) << _model->z()   << "  "
-      << setw(8)  << setprecision(3) << _model->clk() << "  "
-      << setw(8)  << setprecision(3) << _model->trp();
-
-  emit newMessage(QString(str.str().c_str()).toAscii(), true);
-}
-
+}
+
Index: /trunk/BNC/bncpppclient.h
===================================================================
--- /trunk/BNC/bncpppclient.h	(revision 2112)
+++ /trunk/BNC/bncpppclient.h	(revision 2113)
@@ -88,7 +88,4 @@
   void putNewObs(p_obs pp);
 
- signals:
-  void newMessage(QByteArray msg, bool showOnScreen);
-
  public slots:
   void slotNewEphGPS(gpsephemeris gpseph);
