Index: trunk/BNC/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/combination/bnccomb.cpp	(revision 2989)
+++ trunk/BNC/combination/bnccomb.cpp	(revision 2990)
@@ -66,5 +66,22 @@
 }
 
-
+// 
+////////////////////////////////////////////////////////////////////////////
+QString cmbParam::toString() const {
+
+  QString outStr;
+ 
+  if      (type == AC_offset) {
+    outStr = "AC offset  " + AC;
+  }
+  else if (type == Sat_offset) {
+    outStr = "Sat Offset " + prn;
+  }
+  else if (type == clk) {
+    outStr = "Clk Corr   " + prn;
+  }
+
+  return outStr;
+}
 
 // Constructor
@@ -90,8 +107,6 @@
 
   _caster = new cmbCaster();
-  connect(_caster, SIGNAL(error(const QByteArray)),
-          this, SLOT(slotError(const QByteArray)));
-  connect(_caster, SIGNAL(newMessage(const QByteArray)),
-          this, SLOT(slotMessage(const QByteArray)));
+  connect(this, SIGNAL(newMessage(QByteArray,bool)), 
+          ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
 
   // Initialize Parameters
@@ -251,18 +266,4 @@
 }
 
-// Print one correction
-////////////////////////////////////////////////////////////////////////////
-void bncComb::printSingleCorr(const QString& acName, const t_corr* corr) {
-  cout.setf(ios::fixed);
-  cout << acName.toAscii().data()                             << " " 
-       << corr->prn.toAscii().data()                          << " "
-       << corr->tt.timestr()                                  << " "
-       << setw(4) << corr->iod                                << " " 
-       << setw(8) << setprecision(4) << corr->dClk * t_CST::c << "   "
-       << setw(8) << setprecision(4) << corr->rao[0]          << " "
-       << setw(8) << setprecision(4) << corr->rao[1]          << " "
-       << setw(8) << setprecision(4) << corr->rao[2]          << endl;
-}
-
 // Send results to caster
 ////////////////////////////////////////////////////////////////////////////
@@ -325,16 +326,4 @@
 }
 
-// Write an Error Message
-////////////////////////////////////////////////////////////////////////////
-void bncComb::slotError(const QByteArray msg) {
-  cout << msg.data() << endl;
-}
-
-// Write a Message
-////////////////////////////////////////////////////////////////////////////
-void bncComb::slotMessage(const QByteArray msg) {
-  cout << msg.data() << endl;
-}
-
 // Change the correction so that it refers to last received ephemeris 
 ////////////////////////////////////////////////////////////////////////////
@@ -370,4 +359,11 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncComb::processEpochs(const QList<cmbEpoch*>& epochs) {
+
+  _log.clear();
+
+  QTextStream out(&_log, QIODevice::WriteOnly);
+
+  out <<                  "Combination:" << endl 
+      << "-----------------------------" << endl;
 
   // Predict Parameters Values, Add White Noise
@@ -441,6 +437,5 @@
 
         ll(iObs) = corr->dClk * t_CST::c - DotProduct(AA.Row(iObs), x0);
-    
-        printSingleCorr(epo->acName, corr);
+
         delete corr;
       }
@@ -459,11 +454,14 @@
         }
       }
-    }
- 
-    cout << "vv = " << vv.t();
+      out.setRealNumberNotation(QTextStream::FixedNotation);
+      out.setFieldWidth(8);
+      out.setRealNumberPrecision(4);
+      out << pp->toString() << " "
+          << pp->xx << " +- " << _QQ(pp->index,pp->index) << endl;
+    }
   }
 
   dumpResults(resTime, resCorr);
 
-  cout << "Corrections processed" << endl << endl;
-}
+  emit newMessage(_log, false);
+}
Index: trunk/BNC/combination/bnccomb.h
===================================================================
--- trunk/BNC/combination/bnccomb.h	(revision 2989)
+++ trunk/BNC/combination/bnccomb.h	(revision 2990)
@@ -15,4 +15,5 @@
   ~cmbParam();
   double partial(const QString& acIn, t_corr* corr);
+  QString toString() const;
   parType type;
   int     index;
@@ -34,10 +35,5 @@
   void newMessage(QByteArray msg, bool showOnScreen);
 
- private slots:
-  void slotMessage(const QByteArray msg);
-  void slotError(const QByteArray msg);
-
  private:
-
   class cmbEpoch {
    public:
@@ -71,5 +67,4 @@
 
   void processEpochs(const QList<cmbEpoch*>& epochs);
-  void printSingleCorr(const QString& acName, const t_corr* corr);
   void dumpResults(const bncTime& resTime, 
                    const QMap<QString, t_corr*>& resCorr);
@@ -85,4 +80,5 @@
   double                _sigClk;
   SymmetricMatrix       _QQ;
+  QByteArray            _log;
 };
 
Index: trunk/BNC/combination/cmbcaster.cpp
===================================================================
--- trunk/BNC/combination/cmbcaster.cpp	(revision 2989)
+++ trunk/BNC/combination/cmbcaster.cpp	(revision 2990)
@@ -19,4 +19,5 @@
 #include "bncsettings.h"
 #include "bncversion.h"
+#include "bncapp.h"
 
 using namespace std;
@@ -29,4 +30,6 @@
   _outSocket  = 0;
   _sOpenTrial = 0;
+  connect(this, SIGNAL(newMessage(QByteArray,bool)), 
+          ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
 }
 
@@ -75,5 +78,5 @@
     delete _outSocket;
     _outSocket = 0;
-    emit(newMessage("Broadcaster: Connect timeout"));
+    emit(newMessage("Broadcaster: Connect timeout", true));
     return;
   }
@@ -92,8 +95,8 @@
     delete _outSocket;
     _outSocket = 0;
-    emit(newMessage("Broadcaster: Connection broken"));
+    emit(newMessage("Broadcaster: Connection broken", true));
   }
   else {
-    emit(newMessage("Broadcaster: Connection opened"));
+    emit(newMessage("Broadcaster: Connection opened", true));
     _sOpenTrial = 0;
   }
Index: trunk/BNC/combination/cmbcaster.h
===================================================================
--- trunk/BNC/combination/cmbcaster.h	(revision 2989)
+++ trunk/BNC/combination/cmbcaster.h	(revision 2990)
@@ -14,6 +14,5 @@
 
  signals:
-  void error(const QByteArray msg);
-  void newMessage(const QByteArray msg);
+  void newMessage(QByteArray msg, bool showOnScreen);
 
  private:
