Index: /trunk/BNC/src/PPP/pppEphPool.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppEphPool.cpp	(revision 6140)
+++ /trunk/BNC/src/PPP/pppEphPool.cpp	(revision 6141)
@@ -81,4 +81,5 @@
 /////////////////////////////////////////////////////////////////////////////
 void t_pppEphPool::t_satEphPool::putOrbCorrection(t_orbCorr* corr) {
+  cout << "ORB: " << corr->_prn.toString() << ' ' << corr->IOD() << endl;
   for (unsigned ii = 0; ii < _ephs.size(); ii++) {
     t_eph* eph = _ephs[ii];
@@ -88,4 +89,5 @@
     }
   }
+  cout << "wrong" << endl;
   delete corr;
 }
@@ -94,9 +96,15 @@
 /////////////////////////////////////////////////////////////////////////////
 void t_pppEphPool::t_satEphPool::putClkCorrection(t_clkCorr* corr) {
+  cout << "CLK: " << corr->_prn.toString() << ' ' << corr->IOD() << ' ' << corr->_dClk << endl;
+  bool set = false;
   for (unsigned ii = 0; ii < _ephs.size(); ii++) {
     t_eph* eph = _ephs[ii];
     if (eph->IOD() == corr->IOD()) {
       eph->setClkCorr(corr); 
+      set = true;
     }
+  }
+  if (!set) {
+    cout << "wrong" << endl;
   }
   delete corr;
@@ -107,7 +115,9 @@
 t_irc t_pppEphPool::t_satEphPool::getCrd(const bncTime& tt, ColumnVector& xc,
                                            ColumnVector& vv) const {
+  cout << "getCrd " << endl;
   for (unsigned ii = 0; ii < _ephs.size(); ii++) {
     t_eph* eph = _ephs[ii];
     t_irc irc = eph->getCrd(tt, xc, vv, OPT->useOrbClkCorr());
+    cout << "getCrd " << eph->prn().toString() << ' ' << irc << endl;
     if (irc == success) {
       if (eph->prn().system() == 'R') {
Index: /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 6140)
+++ /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 6141)
@@ -69,11 +69,15 @@
     _fileNameSkl = path + staID;
   }
-  _out      = 0;
-  _GPSweeks = -1.0;
+  _out = 0;
 
   qRegisterMetaType<bncTime>("bncTime");
-
-  connect(this, SIGNAL(newCorrLine(QString, QString, bncTime)), 
-          BNC_CORE, SLOT(slotNewCorrLine(QString, QString, bncTime)));
+  qRegisterMetaType< QList<t_orbCorr> >("QList:t_orbCorr");
+  qRegisterMetaType< QList<t_clkCorr> >("QList:t_clkCorr");
+
+  connect(this, SIGNAL(newOrbCorrections(QList<t_orbCorr>)), 
+          BNC_CORE, SLOT(slotNewOrbCorrections(QList<t_orbCorr>)));
+
+  connect(this, SIGNAL(newClkCorrections(QList<t_clkCorr>)), 
+          BNC_CORE, SLOT(slotNewClkCorrections(QList<t_clkCorr>)));
 
   connect(this, SIGNAL(providerIDChanged(QString)), 
@@ -99,8 +103,7 @@
 // Reopen Output File
 //////////////////////////////////////////////////////////////////////// 
-void RTCM3coDecoder::reopen(const QString& fileNameSkl, QString& fileName,
-                            ofstream*& out) {
-
-  if (!fileNameSkl.isEmpty()) {
+void RTCM3coDecoder::reopen() {
+
+  if (!_fileNameSkl.isEmpty()) {
 
     bncSettings settings;
@@ -111,22 +114,21 @@
                                       settings.value("corrIntr").toString());
 
-    QString fileNameHlp = fileNameSkl 
+    QString fileNameHlp = _fileNameSkl 
       + QString("%1").arg(datTim.date().dayOfYear(), 3, 10, QChar('0'))
       + hlpStr + datTim.toString(".yyC");
 
-    if (fileName == fileNameHlp) {
+    if (_fileName == fileNameHlp) {
       return;
     }
     else {
-      fileName = fileNameHlp;
-    }
-
-    delete out;
+      _fileName = fileNameHlp;
+    }
+
+    delete _out;
     if ( Qt::CheckState(settings.value("rnxAppend").toInt()) == Qt::Checked) {
-      out = new ofstream( fileName.toAscii().data(),
-                           ios_base::out | ios_base::app );
+      _out = new ofstream( _fileName.toAscii().data(), ios_base::out | ios_base::app );
     }
     else {
-      out = new ofstream( fileName.toAscii().data() );
+      _out = new ofstream( _fileName.toAscii().data() );
     }
   }
@@ -170,5 +172,5 @@
             _bias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 || _bias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) ) {
 
-        reopen(_fileNameSkl, _fileName, _out);
+        reopen();
 
         // Guess GPS week and sec using system time
@@ -189,5 +191,5 @@
             GPSweek -= 1;
           }
-          _GPSweeks = GPSEpochTime;
+          _lastTime.set(GPSweek, double(GPSEpochTime));
         }
 
@@ -223,20 +225,13 @@
             }
           } 
-
-          _GPSweeks = weekDay * 86400.0 + GPSDaySec;
+          _lastTime.set(GPSweek, weekDay * 86400.0 + GPSDaySec);
         }
 
         checkProviderID();
 
-        QStringList asciiLines = corrsToASCIIlines(GPSweek, _GPSweeks, 
-                                                   _co, &_bias);
-
-        QStringListIterator it(asciiLines);
-        while (it.hasNext()) {
-          QString line = it.next();
-          printLine(line, GPSweek, _GPSweeks);
-        }
+        sendResults();
 
         retCode = success;
+
         memset(&_co, 0, sizeof(_co));
         memset(&_bias, 0, sizeof(_bias));
@@ -245,7 +240,4 @@
   }
 
-  if (retCode != success) {
-    _GPSweeks = -1.0;
-  }
   return retCode;
 }
@@ -253,48 +245,14 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
-void RTCM3coDecoder::printLine(const QString& line, int GPSweek, 
-                               double GPSweeks) {
-  if (_out) {
-    *_out << line.toAscii().data() << endl;
-    _out->flush();
-  }
-
-  int    currWeek;
-  double currSec;
-  currentGPSWeeks(currWeek, currSec);
-  bncTime currTime(currWeek, currSec);
-
-  bncTime coTime(GPSweek, GPSweeks);
-
-  double dt = currTime - coTime;
-  const double MAXDT = 10 * 60.0;
-  if (fabs(dt) > MAXDT) {
-    emit newMessage("suspicious correction: " + _staID.toAscii() + " " 
-                    + line.toAscii(), false);
-  }
-  else {
-    emit newCorrLine(line, _staID, coTime);
-  }
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-QStringList RTCM3coDecoder::corrsToASCIIlines(int GPSweek, double GPSweeks,
-                                              const ClockOrbit& co,
-                                              const CodeBias* bias) {
-
-  QStringList retLines;
+void RTCM3coDecoder::sendResults() {
+
+  QList<t_orbCorr> orbCorrections;
+  QList<t_clkCorr> clkCorrections;
 
   // Loop over all satellites (GPS and Glonass)
   // ------------------------------------------
-  if (co.NumberOfSat[CLOCKORBIT_SATGPS] > 0 || co.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
-    QString line1;
-    line1.sprintf("! Orbits/Clocks: %d GPS %d Glonass",
-                  co.NumberOfSat[CLOCKORBIT_SATGPS], co.NumberOfSat[CLOCKORBIT_SATGLONASS]);
-    retLines << line1;
-  }
-  for (int ii = 0; ii < CLOCKORBIT_NUMGPS+co.NumberOfSat[CLOCKORBIT_SATGLONASS]; ii++) {
+  for (unsigned ii = 0; ii < CLOCKORBIT_NUMGPS + _co.NumberOfSat[CLOCKORBIT_SATGLONASS]; ii++) {
     char sysCh = ' ';
-    if      (ii < co.NumberOfSat[CLOCKORBIT_SATGPS]) {
+    if      (ii < _co.NumberOfSat[CLOCKORBIT_SATGPS]) {
       sysCh = 'G';
     }
@@ -302,81 +260,57 @@
       sysCh = 'R';
     }
-
-    if (sysCh != ' ') {
-
-      QString linePart;
-      linePart.sprintf("%d %d %d %.1f %c%2.2d",
-                       co.messageType, co.UpdateInterval, GPSweek, GPSweeks,
-                       sysCh, co.Sat[ii].ID);
-
-      // Combined message (orbit and clock)
-      // ----------------------------------
-      if ( co.messageType == COTYPE_GPSCOMBINED     || 
-           co.messageType == COTYPE_GLONASSCOMBINED ) {
-        QString line;
-        line.sprintf("   %3d"
-                     "   %8.3f %8.3f %8.3f %8.3f"
-                     "   %10.5f %10.5f %10.5f %10.5f"
-                     "   %10.5f",
-                     co.Sat[ii].IOD, 
-                     co.Sat[ii].Clock.DeltaA0,
-                     co.Sat[ii].Orbit.DeltaRadial, 
-                     co.Sat[ii].Orbit.DeltaAlongTrack,
-                     co.Sat[ii].Orbit.DeltaCrossTrack,
-                     co.Sat[ii].Clock.DeltaA1,
-                     co.Sat[ii].Orbit.DotDeltaRadial, 
-                     co.Sat[ii].Orbit.DotDeltaAlongTrack,
-                     co.Sat[ii].Orbit.DotDeltaCrossTrack,
-                     co.Sat[ii].Clock.DeltaA2);
-        retLines << linePart+line;
+    else {
+      continue;
+    }
+
+    // Orbit correction
+    // ----------------
+    if ( _co.messageType == COTYPE_GPSCOMBINED     || 
+         _co.messageType == COTYPE_GLONASSCOMBINED ||
+         _co.messageType == COTYPE_GPSORBIT        ||
+         _co.messageType == COTYPE_GLONASSORBIT    ) {
+
+      t_orbCorr orbCorr;
+      orbCorr._prn.set(sysCh, _co.Sat[ii].ID);
+      orbCorr._staID    = _staID.toAscii().data();
+      orbCorr._iod      = _co.Sat[ii].IOD;
+      orbCorr._time     = _lastTime;
+      orbCorr._system   = 'R';
+      orbCorr._xr[0]    = _co.Sat[ii].Orbit.DeltaRadial;
+      orbCorr._xr[1]    = _co.Sat[ii].Orbit.DeltaAlongTrack;
+      orbCorr._xr[2]    = _co.Sat[ii].Orbit.DeltaCrossTrack;
+      orbCorr._dotXr[0] = _co.Sat[ii].Orbit.DotDeltaRadial; 
+      orbCorr._dotXr[1] = _co.Sat[ii].Orbit.DotDeltaAlongTrack;
+      orbCorr._dotXr[2] = _co.Sat[ii].Orbit.DotDeltaCrossTrack;
+
+      orbCorrections.push_back(orbCorr);
+
+      _IODs[orbCorr._prn.toString()] = _co.Sat[ii].IOD;
+    }
+
+    if ( _co.messageType == COTYPE_GPSCOMBINED     || 
+         _co.messageType == COTYPE_GLONASSCOMBINED ||
+         _co.messageType == COTYPE_GPSCLOCK        ||
+         _co.messageType == COTYPE_GLONASSCLOCK    ) {
+
+      t_clkCorr clkCorr;
+      clkCorr._prn.set(sysCh, _co.Sat[ii].ID);
+      clkCorr._staID      = _staID.toAscii().data();
+      clkCorr._time       = _lastTime;
+      clkCorr._dClk       = _co.Sat[ii].Clock.DeltaA0,
+      clkCorr._dotDClk    = _co.Sat[ii].Clock.DeltaA1,
+      clkCorr._dotDotDClk = _co.Sat[ii].Clock.DeltaA2;
+      clkCorr._clkPartial = 0.0;
+
+      if (_IODs.contains(clkCorr._prn.toString())) {
+        clkCorr._iod = _IODs[clkCorr._prn.toString()];
+        clkCorrections.push_back(clkCorr);
       }
-
-      // Orbits only
-      // -----------
-      else if ( co.messageType == COTYPE_GPSORBIT     || 
-                co.messageType == COTYPE_GLONASSORBIT ) {
-        QString line;
-        line.sprintf("   %3d"
-                     "   %8.3f %8.3f %8.3f"
-                     "   %10.5f %10.5f %10.5f",
-                     co.Sat[ii].IOD, 
-                     co.Sat[ii].Orbit.DeltaRadial, 
-                     co.Sat[ii].Orbit.DeltaAlongTrack,
-                     co.Sat[ii].Orbit.DeltaCrossTrack,
-                     co.Sat[ii].Orbit.DotDeltaRadial, 
-                     co.Sat[ii].Orbit.DotDeltaAlongTrack,
-                     co.Sat[ii].Orbit.DotDeltaCrossTrack);
-        retLines << linePart+line;
-      }
-
-      // Clocks only
-      // -----------
-      else if ( co.messageType == COTYPE_GPSCLOCK     || 
-                co.messageType == COTYPE_GLONASSCLOCK ) {
-        QString line;
-        line.sprintf("   %8.3f   %10.5f   %10.5f",
-                     co.Sat[ii].Clock.DeltaA0,
-                     co.Sat[ii].Clock.DeltaA1,
-                     co.Sat[ii].Clock.DeltaA2);
-        retLines << linePart+line;
-      }
-
-      // User Range Accuracy
-      // -------------------
-      else if ( co.messageType == COTYPE_GPSURA     || 
-                co.messageType == COTYPE_GLONASSURA ) {
-        QString line;
-        line.sprintf("   %f", co.Sat[ii].UserRangeAccuracy);
-        retLines << linePart+line;
-      }
-
-      // High-Resolution Clocks
-      // ----------------------
-      else if ( co.messageType == COTYPE_GPSHR     || 
-                co.messageType == COTYPE_GLONASSHR ) {
-        QString line;
-        line.sprintf("   %8.3f", co.Sat[ii].hrclock);
-        retLines << linePart+line;
-      }
+    }
+
+    // High-Resolution Clocks
+    // ----------------------
+    if ( _co.messageType == COTYPE_GPSHR     || 
+         _co.messageType == COTYPE_GLONASSHR ) {
     }
   }
@@ -384,40 +318,44 @@
   // Loop over all satellites (GPS and Glonass)
   // ------------------------------------------
-  if (bias) {
-    if (bias->NumberOfSat[CLOCKORBIT_SATGPS] > 0 || bias->NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
-      QString line1;
-      line1.sprintf("! Biases: %d GPS %d Glonass",
-                    bias->NumberOfSat[CLOCKORBIT_SATGPS], bias->NumberOfSat[CLOCKORBIT_SATGLONASS]);
-      retLines << line1;
-    }
-    for (int ii = 0; ii < CLOCKORBIT_NUMGPS + bias->NumberOfSat[CLOCKORBIT_SATGLONASS]; ii++) {
-      char sysCh = ' ';
-      int messageType;
-      if      (ii < bias->NumberOfSat[CLOCKORBIT_SATGPS]) {
-        sysCh = 'G';
-        messageType = BTYPE_GPS;
-      }
-      else if (ii >= CLOCKORBIT_NUMGPS) {
-        sysCh = 'R';
-        messageType = BTYPE_GLONASS;
-      }
-      if (sysCh != ' ') {
-        QString line;
-        line.sprintf("%d %d %d %.1f %c%2.2d %d", 
-                     messageType, bias->UpdateInterval, GPSweek, GPSweeks, 
-                     sysCh, bias->Sat[ii].ID,
-                     bias->Sat[ii].NumberOfCodeBiases);
-        for (int jj = 0; jj < bias->Sat[ii].NumberOfCodeBiases; jj++) {
-          QString hlp;
-          hlp.sprintf(" %d %8.3f",  bias->Sat[ii].Biases[jj].Type,
-                      bias->Sat[ii].Biases[jj].Bias);
-          line += hlp;
-        }
-        retLines << line;
-      }
-    }
-  }
-
-  return retLines;
+  QList<t_satBias> satBiases;
+  for (unsigned ii = 0; ii < CLOCKORBIT_NUMGPS + _bias.NumberOfSat[CLOCKORBIT_SATGLONASS]; ii++) {
+    char sysCh = ' ';
+    if      (ii < _bias.NumberOfSat[CLOCKORBIT_SATGPS]) {
+      sysCh = 'G';
+    }
+    else if (ii >= CLOCKORBIT_NUMGPS) {
+      sysCh = 'R';
+    }
+    else {
+      continue;
+    }
+    t_satBias satBias;
+    satBias._prn.set(sysCh, _bias.Sat[ii].ID);
+    satBias._time      = _lastTime;
+    satBias._nx        = 0;
+    satBias._jumpCount = 0;
+    for (unsigned jj = 0; jj < _bias.Sat[ii].NumberOfCodeBiases; jj++) {
+    }
+  }
+
+  if (orbCorrections.size() > 0) {
+    emit newOrbCorrections(orbCorrections);
+  }
+  if (clkCorrections.size() > 0) {
+    emit newClkCorrections(clkCorrections);
+  }
+  if (_out) {
+    QListIterator<t_orbCorr> itOrb(orbCorrections);
+    while (itOrb.hasNext()) {
+      const t_orbCorr& orbCorr = itOrb.next();
+      *_out << "O " << orbCorr.toString() << endl;
+    }
+    QListIterator<t_clkCorr> itClk(clkCorrections);
+    while (itClk.hasNext()) {
+      const t_clkCorr& clkCorr = itClk.next();
+      *_out << "C " << clkCorr.toString() << endl;
+    }
+    _out->flush();
+  }
 }
 
Index: /trunk/BNC/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 6140)
+++ /trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 6141)
@@ -27,12 +27,10 @@
 
 #include <fstream>
-
 #include <QtCore>
 #include <QtNetwork>
-
 #include "GPSDecoder.h"
 
 extern "C" {
-#include "clock_orbit_rtcm.h"
+# include "clock_orbit_rtcm.h"
 }
 
@@ -43,17 +41,16 @@
   virtual ~RTCM3coDecoder();
   virtual t_irc Decode(char* buffer, int bufLen, std::vector<std::string>& errmsg);
-  virtual int corrGPSEpochTime() const {return (int) _GPSweeks;}
+  virtual int   corrGPSEpochTime() const {return int(_lastTime.gpssec());}
 
-  static QStringList corrsToASCIIlines(int GPSweek, double GPSweeks, 
-                                       const ClockOrbit& co, const CodeBias* bias);
-  static void reopen(const QString& fileNameSkl, QString& fileName,
-                     std::ofstream*& out);
  signals:
-  void newCorrLine(QString line, QString staID, bncTime coTime);
+  void newOrbCorrections(QList<t_orbCorr> orbCorr);
+  void newClkCorrections(QList<t_clkCorr> clkCorr);
+  void newBiases(QList<t_satBias> biases);
   void newMessage(QByteArray msg, bool showOnScreen);
   void providerIDChanged(QString staID);
 
  private:
-  void printLine(const QString& line, int GPSweek, double GPSweeks);
+  void sendResults();
+  void reopen();
   void checkProviderID();
   std::ofstream* _out;
@@ -62,8 +59,9 @@
   QString        _fileName;
   QByteArray     _buffer;
-  double         _GPSweeks;
   ClockOrbit     _co;
   CodeBias       _bias;
   int            _providerID[3];
+  bncTime        _lastTime;
+  QMap<std::string, unsigned short> _IODs;
 };
 
Index: /trunk/BNC/src/bnccore.cpp
===================================================================
--- /trunk/BNC/src/bnccore.cpp	(revision 6140)
+++ /trunk/BNC/src/bnccore.cpp	(revision 6141)
@@ -118,5 +118,5 @@
   _userName = _userName.leftJustified(20, ' ', true);
 
-  _corrs = new QMultiMap<bncTime, QString>;
+  _corrs = new QMultiMap<bncTime, t_clkCorr>;
 
   _dateAndTimeGPS = 0;
@@ -633,5 +633,4 @@
 ////////////////////////////////////////////////////////////////////////////
 void t_bncCore::slotQuit() {
-  cout << "t_bncCore::slotQuit" << endl;
   delete _caster; _caster = 0;
   qApp->quit();
@@ -640,7 +639,18 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
-void t_bncCore::slotNewCorrLine(QString line, QString staID, bncTime coTime) {
-
+void t_bncCore::slotNewOrbCorrections(QList<t_orbCorr> orbCorrections) {
+  emit newOrbCorrections(orbCorrections);
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void t_bncCore::slotNewClkCorrections(QList<t_clkCorr> clkCorrections) {
   QMutexLocker locker(&_mutex);
+
+  if (clkCorrections.size() == 0) {
+    return;
+  }
+  bncTime coTime = clkCorrections[0]._time;
+  QString staID(clkCorrections[0]._staID.c_str());
 
   // Combination of Corrections
@@ -648,5 +658,5 @@
 #ifdef USE_COMBINATION
   if (_bncComb) {
-    _bncComb->processCorrLine(staID, line);
+    _bncComb->processClkCorrections(clkCorrections);
   }
 #endif
@@ -677,5 +687,7 @@
   }
 
-  _corrs->insert(coTime, QString(line + " " + staID));
+  for (int ii = 0; ii < clkCorrections.size(); ii++) {
+    _corrs->insert(coTime, clkCorrections[ii]);
+  }
 
   // Dump Corrections
@@ -693,6 +705,6 @@
 ////////////////////////////////////////////////////////////////////////////
 void t_bncCore::dumpCorrs(bncTime minTime, bncTime maxTime) {
-  QStringList allCorrs;
-  QMutableMapIterator<bncTime, QString> it(*_corrs);
+  QList<t_clkCorr> allCorrs;
+  QMutableMapIterator<bncTime, t_clkCorr> it(*_corrs);
   while (it.hasNext()) {
     it.next();
@@ -709,6 +721,6 @@
 ////////////////////////////////////////////////////////////////////////////
 void t_bncCore::dumpCorrs() {
-  QStringList allCorrs;
-  QMutableMapIterator<bncTime, QString> it(*_corrs);
+  QList<t_clkCorr> allCorrs;
+  QMutableMapIterator<bncTime, t_clkCorr> it(*_corrs);
   while (it.hasNext()) {
     allCorrs << it.next().value();
@@ -720,16 +732,15 @@
 // Dump List of Corrections 
 ////////////////////////////////////////////////////////////////////////////
-void t_bncCore::dumpCorrs(const QStringList& allCorrs) {
-  emit newCorrections(allCorrs);
+void t_bncCore::dumpCorrs(const QList<t_clkCorr>& allCorrs) {
+  emit newClkCorrections(allCorrs);
   if (_socketsCorr) {
-    QListIterator<QString> it(allCorrs);
+    QListIterator<t_clkCorr> it(allCorrs);
     while (it.hasNext()) {
-      QString corrLine = it.next() + "\n";
-    
+      const t_clkCorr& corr = it.next();
       QMutableListIterator<QTcpSocket*> is(*_socketsCorr);
       while (is.hasNext()) {
         QTcpSocket* sock = is.next();
         if (sock->state() == QAbstractSocket::ConnectedState) {
-          if (sock->write(corrLine.toAscii()) == -1) {
+          if (sock->write(corr.toString().c_str()) == -1) {
             delete sock;
             is.remove();
Index: /trunk/BNC/src/bnccore.h
===================================================================
--- /trunk/BNC/src/bnccore.h	(revision 6140)
+++ /trunk/BNC/src/bnccore.h	(revision 6141)
@@ -81,5 +81,6 @@
   void slotNewGlonassEph(glonassephemeris* glonasseph, const QString& staID);
   void slotNewGalileoEph(galileoephemeris* galileoeph);
-  void slotNewCorrLine(QString line, QString staID, bncTime coTime);
+  void slotNewOrbCorrections(QList<t_orbCorr> orbCorr);
+  void slotNewClkCorrections(QList<t_clkCorr> clkCorr);
   void slotQuit();
 
@@ -89,5 +90,6 @@
   void newEphGlonass(glonassephemeris glonasseph);
   void newEphGalileo(galileoephemeris galileoeph);
-  void newCorrections(QStringList);
+  void newOrbCorrections(QList<t_orbCorr> orbCorr);
+  void newClkCorrections(QList<t_clkCorr> clkCorr);
   void providerIDChanged(QString);
   void newPosition(QByteArray staID, bncTime time, QVector<double> xx);
@@ -111,5 +113,5 @@
   void dumpCorrs(bncTime minTime, bncTime maxTime);
   void dumpCorrs();
-  void dumpCorrs(const QStringList& allCorrs);
+  void dumpCorrs(const QList<t_clkCorr>& allCorrs);
   void messagePrivate(const QByteArray& msg);
   void checkEphemeris(gpsephemeris* oldEph, gpsephemeris* newEph);
@@ -147,5 +149,5 @@
   QMap<QString, bncTime> _lastCorrDumpTime;
   double              _waitCoTime;
-  QMultiMap<bncTime, QString>* _corrs;
+  QMultiMap<bncTime, t_clkCorr>* _corrs;
   QString             _confFileName;
   QDate               _fileDate;
Index: /trunk/BNC/src/bncephuser.cpp
===================================================================
--- /trunk/BNC/src/bncephuser.cpp	(revision 6140)
+++ /trunk/BNC/src/bncephuser.cpp	(revision 6141)
@@ -186,82 +186,2 @@
 }
 
-// 
-////////////////////////////////////////////////////////////////////////////
-t_irc t_corr::readLine(const QString& line) {
-
-  if (line[0] == '!') {
-    return failure;
-  }
-
-  QTextStream in(line.toAscii());
-
-  in >> messageType;
-
-  if (!relevantMessageType(messageType)) {
-    return failure;
-  }
-
-  int     updateInterval;
-  int     GPSweek;
-  double  GPSweeks;
-  in >> updateInterval >> GPSweek >> GPSweeks >> prn;
-
-  if      ( messageType == COTYPE_GPSCOMBINED    || 
-            messageType == COTYPE_GLONASSCOMBINED ) {
-    rao.ReSize(3);       rao       = 0.0;
-    dotRao.ReSize(3);    dotRao    = 0.0;
-    dClk       = 0.0;
-    dotDClk    = 0.0;
-    dotDotDClk = 0.0;
-    in >> iod 
-       >> dClk       >> rao[0]       >> rao[1]       >> rao[2]
-       >> dotDClk    >> dotRao[0]    >> dotRao[1]    >> dotRao[2]
-       >> dotDotDClk;
-
-    dClk       /= t_CST::c;
-    dotDClk    /= t_CST::c;
-    dotDotDClk /= t_CST::c;
-
-    tClk.set(GPSweek, GPSweeks);
-    tRao.set(GPSweek, GPSweeks);
-  }
-  else if ( messageType == COTYPE_GPSORBIT    || 
-            messageType == COTYPE_GLONASSORBIT ) {
-    rao.ReSize(3);       rao       = 0.0;
-    dotRao.ReSize(3);    dotRao    = 0.0;
-    in >> iod 
-       >> rao[0]       >> rao[1]       >> rao[2]
-       >> dotRao[0]    >> dotRao[1]    >> dotRao[2];
-
-    tRao.set(GPSweek, GPSweeks);
-
-    if (tClk != tRao) {
-      dClk       = 0.0;
-      dotDClk    = 0.0;
-      dotDotDClk = 0.0;
-      tClk.reset();
-    }
-  }
-  else if ( messageType == COTYPE_GPSCLOCK    || 
-            messageType == COTYPE_GLONASSCLOCK ) {
-    dClk       = 0.0;
-    dotDClk    = 0.0;
-    dotDotDClk = 0.0;
-    in >> dClk >> dotDClk >> dotDotDClk;
-    dClk       /= t_CST::c;
-    dotDClk    /= t_CST::c;
-    dotDotDClk /= t_CST::c;
-
-    tClk.set(GPSweek, GPSweeks);
-  }
-  else if ( messageType == COTYPE_GPSHR    ||
-            messageType == COTYPE_GLONASSHR ) {
-    if (tRao.valid() && tClk.valid()) {
-      in >> hrClk;
-      hrClk /= t_CST::c; 
-    }
-  }
-
-  return success;
-}
-
Index: /trunk/BNC/src/bncephuser.h
===================================================================
--- /trunk/BNC/src/bncephuser.h	(revision 6140)
+++ /trunk/BNC/src/bncephuser.h	(revision 6141)
@@ -36,51 +36,4 @@
 #  include "clock_orbit_rtcm.h"
 }
-
-class t_corr {
- public:
-  t_corr() {
-    rao.ReSize(3);       
-    dotRao.ReSize(3);    
-    messageType = 0;
-    iod         = 0;
-    dClk        = 0.0;
-    dotDClk     = 0.0;
-    dotDotDClk  = 0.0;
-    hrClk       = 0.0;
-    rao         = 0.0;
-    dotRao      = 0.0;
-    eph         = 0;
-  }
-  
-  ~t_corr() {}
-
-  bool ready() {return tRao.valid() && tClk.valid();}
-
-  static bool relevantMessageType(int msgType) {
-    return ( msgType == COTYPE_GPSCOMBINED     || 
-             msgType == COTYPE_GLONASSCOMBINED ||
-             msgType == COTYPE_GPSORBIT        ||
-             msgType == COTYPE_GPSCLOCK        ||
-             msgType == COTYPE_GLONASSORBIT    ||
-             msgType == COTYPE_GLONASSCLOCK    ||
-             msgType == COTYPE_GPSHR           ||
-             msgType == COTYPE_GLONASSHR );
-  }
-
-  t_irc readLine(const QString& line);
-
-  int          messageType;
-  QString      prn;
-  bncTime      tClk;
-  bncTime      tRao;
-  int          iod;
-  double       dClk;
-  double       dotDClk;
-  double       dotDotDClk;
-  double       hrClk;
-  ColumnVector rao;
-  ColumnVector dotRao;
-  const t_eph* eph;
-};
 
 class bncEphUser : public QObject {
Index: /trunk/BNC/src/combination/bnccomb.h
===================================================================
--- /trunk/BNC/src/combination/bnccomb.h	(revision 6140)
+++ /trunk/BNC/src/combination/bnccomb.h	(revision 6141)
@@ -6,4 +6,5 @@
 #include <newmat.h>
 #include "bncephuser.h"
+#include "satObs.h"
 
 class bncRtnetDecoder;
@@ -35,5 +36,6 @@
   bncComb();
   virtual ~bncComb();
-  void processCorrLine(const QString& staID, const QString& line);
+  void processOrbCorrections(const QList<t_orbCorr>& orbCorrections);
+  void processClkCorrections(const QList<t_clkCorr>& clkCorrections);
   int  nStreams() const {return _ACs.size();}
 
@@ -62,9 +64,9 @@
   };
 
-  class cmbCorr : public t_corr {
+  class cmbCorr : public t_clkCorr {
    public:
     QString      acName;
     ColumnVector diffRao;
-    QString ID() {return acName + "_" + prn;}
+    QString ID() {return acName + "_" + QString(_prn.toString().c_str());}
   };
 
@@ -83,14 +85,14 @@
   void processEpoch();
   t_irc processEpoch_filter(QTextStream& out,
-                            QMap<QString, t_corr*>& resCorr,
+                            QMap<QString, t_clkCorr*>& resCorr,
                             ColumnVector& dx);
   t_irc processEpoch_singleEpoch(QTextStream& out,
-                                 QMap<QString, t_corr*>& resCorr,
+                                 QMap<QString, t_clkCorr*>& resCorr,
                                  ColumnVector& dx);
   t_irc createAmat(Matrix& AA, ColumnVector& ll, DiagonalMatrix& PP,
-                   const ColumnVector& x0, QMap<QString, t_corr*>& resCorr);
-  void dumpResults(const QMap<QString, t_corr*>& resCorr);
-  void printResults(QTextStream& out, const QMap<QString, t_corr*>& resCorr);
-  void switchToLastEph(const t_eph* lastEph, t_corr* corr);
+                   const ColumnVector& x0, QMap<QString, t_clkCorr*>& resCorr);
+  void dumpResults(const QMap<QString, t_clkCorr*>& resCorr);
+  void printResults(QTextStream& out, const QMap<QString, t_clkCorr*>& resCorr);
+  void switchToLastEph(const t_eph* lastEph, t_clkCorr* corr);
   t_irc checkOrbits(QTextStream& out);
 
Index: /trunk/BNC/src/ephemeris.cpp
===================================================================
--- /trunk/BNC/src/ephemeris.cpp	(revision 6140)
+++ /trunk/BNC/src/ephemeris.cpp	(revision 6141)
@@ -12,4 +12,5 @@
 #include "bnccore.h"
 #include "bncutils.h"
+#include "satObs.h"
 #include "pppInclude.h"
 
@@ -26,14 +27,14 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
-void t_eph::setOrbCorr(const BNC_PPP::t_orbCorr* orbCorr) {
+void t_eph::setOrbCorr(const t_orbCorr* orbCorr) {
   delete _orbCorr; 
-  _orbCorr = new BNC_PPP::t_orbCorr(*orbCorr);
+  _orbCorr = new t_orbCorr(*orbCorr);
 }
 
 // 
 ////////////////////////////////////////////////////////////////////////////
-void t_eph::setClkCorr(const BNC_PPP::t_clkCorr* clkCorr) {
+void t_eph::setClkCorr(const t_clkCorr* clkCorr) {
   delete _clkCorr; 
-  _clkCorr = new BNC_PPP::t_clkCorr(*clkCorr);
+  _clkCorr = new t_clkCorr(*clkCorr);
 }
 
Index: /trunk/BNC/src/ephemeris.h
===================================================================
--- /trunk/BNC/src/ephemeris.h	(revision 6140)
+++ /trunk/BNC/src/ephemeris.h	(revision 6141)
@@ -14,8 +14,6 @@
 }
 
-namespace BNC_PPP {
-  class t_orbCorr;
-  class t_clkCorr;
-}
+class t_orbCorr;
+class t_clkCorr;
 
 class t_eph {
@@ -35,6 +33,6 @@
   t_prn   prn() const {return _prn;}
   t_irc   getCrd(const bncTime& tt, ColumnVector& xc, ColumnVector& vv, bool useCorr) const;
-  void    setOrbCorr(const BNC_PPP::t_orbCorr* orbCorr);
-  void    setClkCorr(const BNC_PPP::t_clkCorr* clkCorr);
+  void    setOrbCorr(const t_orbCorr* orbCorr);
+  void    setClkCorr(const t_clkCorr* clkCorr);
   const QDateTime& receptDateTime() const {return _receptDateTime;}
   static QString rinexDateStr(const bncTime& tt, const t_prn& prn, double version);
@@ -44,10 +42,10 @@
  protected:  
   virtual void position(int GPSweek, double GPSweeks, double* xc, double* vv) const = 0;
-  t_prn               _prn;
-  bncTime             _TOC;
-  QDateTime           _receptDateTime;
-  bool                _ok;
-  BNC_PPP::t_orbCorr* _orbCorr;
-  BNC_PPP::t_clkCorr* _clkCorr;
+  t_prn      _prn;
+  bncTime    _TOC;
+  QDateTime  _receptDateTime;
+  bool       _ok;
+  t_orbCorr* _orbCorr;
+  t_clkCorr* _clkCorr;
 };
 
Index: /trunk/BNC/src/pppInclude.h
===================================================================
--- /trunk/BNC/src/pppInclude.h	(revision 6140)
+++ /trunk/BNC/src/pppInclude.h	(revision 6141)
@@ -35,53 +35,4 @@
   std::string  _log;          
   bool         _error;        
-};
-
-class t_orbCorr {
- public:
-  t_prn          prn() const {return _prn;}
-  unsigned short IOD() const {return _iod;}
-  t_prn          _prn;
-  unsigned short _iod;
-  bncTime        _time;
-  char           _system;
-  double         _xr[3];
-  double         _dotXr[3]; 
-};
-
-class t_clkCorr {
- public:
-  t_prn          prn() const {return _prn;}
-  unsigned short IOD() const {return _iod;}
-  t_prn          _prn;
-  unsigned short _iod;
-  bncTime        _time;
-  double         _dClk;
-  double         _dotDClk;
-  double         _dotDotDClk;
-  double         _clkPartial;
-};
-
-class t_frqBias {
- public:
-  t_frqBias() {
-    _code       = 0.0;          
-    _codeValid  = false;     
-    _phase      = 0.0;         
-    _phaseValid = false;    
-  }
-  std::string _rnxType2ch;
-  double      _code;          
-  bool        _codeValid;     
-  double      _phase;         
-  bool        _phaseValid;    
-};
-
-class t_satBias {
- public:
-  t_prn                  _prn;
-  bncTime                _time;
-  int                    _nx;
-  int                    _jumpCount;
-  std::vector<t_frqBias> _bias;
 };
 
Index: /trunk/BNC/src/pppRun.cpp
===================================================================
--- /trunk/BNC/src/pppRun.cpp	(revision 6140)
+++ /trunk/BNC/src/pppRun.cpp	(revision 6141)
@@ -75,9 +75,4 @@
           BNC_CORE, SIGNAL(newNMEAstr(QByteArray, QByteArray)));
 
-  for (unsigned iPrn = 0; iPrn <= t_prn::MAXPRN; iPrn++) {
-    _lastOrbCorrIOD[iPrn]   = -1;
-    _lastClkCorrValue[iPrn] = 0.0;
-  }
-
   _pppClient = new t_pppClient(_opt);
 
@@ -102,6 +97,9 @@
             this, SLOT(slotNewEphGalileo(galileoephemeris)),conType);
 
-    connect(BNC_CORE, SIGNAL(newCorrections(QStringList)),
-            this, SLOT(slotNewCorrections(QStringList)),conType);
+    connect(BNC_CORE, SIGNAL(newOrbCorrections(QList<t_orbCorr>)),
+            this, SLOT(slotNewOrbCorrections(QList<t_orbCorr>)),conType);
+
+    connect(BNC_CORE, SIGNAL(newClkCorrections(QList<t_clkCorr>)),
+            this, SLOT(slotNewClkCorrections(QList<t_clkCorr>)),conType);
   }
   else {
@@ -230,7 +228,11 @@
   // Process the oldest epochs
   // ------------------------
+  cout << "epoData " << _epoData.size() << endl;
+
   while (_epoData.size() && !waitForCorr(_epoData.front()->_time)) {
 
     const vector<t_satObs*>& satObs = _epoData.front()->_satObs;
+
+    cout << "satObs " << satObs.size() << endl;
 
     t_output output;
@@ -287,113 +289,42 @@
 // 
 ////////////////////////////////////////////////////////////////////////////
-void t_pppRun::slotNewCorrections(QStringList corrList) {
-  QMutexLocker locker(&_mutex);
-
-  // Check the Mountpoint (source of corrections)
-  // --------------------------------------------
+void t_pppRun::slotNewOrbCorrections(QList<t_orbCorr> orbCorr) {
+  if (orbCorr.size() == 0) {
+    return;
+  }
+
   if (_opt->_realTime) {
-    if (_opt->_corrMount.empty()) {
+    if (_opt->_corrMount.empty() || _opt->_corrMount != orbCorr[0]._staID) {
       return;
     }
-    QMutableListIterator<QString> itm(corrList);
-    while (itm.hasNext()) {
-      QStringList hlp = itm.next().split(" ");
-      if (hlp.size() > 0) {
-        QString mountpoint = hlp[hlp.size()-1];
-        if (mountpoint != QString(_opt->_corrMount.c_str())) {
-          itm.remove();     
-        }
-      }
-    }
-  }
-
-  if (corrList.size() == 0) {
+  }
+  vector<t_orbCorr*> corrections;
+  for (int ii = 0; ii < orbCorr.size(); ii++) {
+    corrections.push_back(new t_orbCorr(orbCorr[ii]));
+    _lastClkCorrTime = orbCorr[ii]._time;
+  }
+
+  _pppClient->putOrbCorrections(corrections); 
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void t_pppRun::slotNewClkCorrections(QList<t_clkCorr> clkCorr) {
+  if (clkCorr.size() == 0) {
     return;
   }
 
-  vector<t_orbCorr*> orbCorr;
-  vector<t_clkCorr*> clkCorr;
-  vector<t_satBias*> satBias;
-
-  QListIterator<QString> it(corrList);
-  while (it.hasNext()) {
-    QString line = it.next();
-
-    QTextStream in(&line);
-    int     messageType;
-    int     updateInterval;
-    int     GPSweek;
-    double  GPSweeks;
-    QString prn;
-    in >> messageType >> updateInterval >> GPSweek >> GPSweeks >> prn;
-
-    if ( t_corr::relevantMessageType(messageType) ) {
-      t_corr corr;
-      corr.readLine(line);
-      if      (messageType == COTYPE_GPSCOMBINED || messageType == COTYPE_GLONASSCOMBINED ||
-               messageType == COTYPE_GPSORBIT    || messageType == COTYPE_GLONASSORBIT    ) {
-        t_orbCorr* cc = new t_orbCorr();
-        cc->_prn.set(corr.prn.toAscii().data());
-        cc->_iod       = corr.iod;
-        cc->_time      = corr.tRao;
-        cc->_system    = 'R';
-        cc->_xr[0]     = corr.rao[0]; 
-        cc->_xr[1]     = corr.rao[1]; 
-        cc->_xr[2]     = corr.rao[2]; 
-        cc->_dotXr[0]  = corr.dotRao[0]; 
-        cc->_dotXr[0]  = corr.dotRao[1]; 
-        cc->_dotXr[0]  = corr.dotRao[2]; 
-        orbCorr.push_back(cc);
-
-        _lastOrbCorrIOD[cc->_prn.toInt()] = cc->_iod;
-      }
-      else if (messageType == COTYPE_GPSCOMBINED || messageType == COTYPE_GLONASSCOMBINED ||
-               messageType == COTYPE_GPSCLOCK    || messageType == COTYPE_GLONASSCLOCK    ) {
-        t_clkCorr* cc = new t_clkCorr();
-        cc->_prn.set(corr.prn.toAscii().data());
-        cc->_iod         = corr.iod;
-        cc->_time        = corr.tClk;
-        cc->_dClk        = corr.dClk;
-        cc->_dotDClk     = corr.dotDClk;
-        cc->_dotDotDClk  = corr.dotDotDClk;
-        cc->_clkPartial  = 0.0;
-        if (messageType == COTYPE_GPSCLOCK || messageType == COTYPE_GLONASSCLOCK) {
-          int lastIOD = _lastOrbCorrIOD[cc->_prn.toInt()];
-          if (lastIOD != -1) {
-            cc->_iod = lastIOD;
-          }
-          else {
-            delete cc;
-            cc = 0;
-          }
-        }
-        if (cc) {
-          clkCorr.push_back(cc); 
-          _lastClkCorrValue[cc->_prn.toInt()] = cc->_dClk;
-          if (_lastClkCorrTime.undef() || cc->_time > _lastClkCorrTime) {
-            _lastClkCorrTime = cc->_time;
-          }
-        }
-      }
-    }
-    else if ( messageType == BTYPE_GPS || messageType == BTYPE_GLONASS ) { 
-    }
-  }
-
-  _pppClient->putOrbCorrections(orbCorr); 
-  _pppClient->putClkCorrections(clkCorr); 
-  _pppClient->putBiases(satBias);   
-
-  for (unsigned ii = 0; ii < orbCorr.size(); ii++) {
-    delete orbCorr[ii];
-  }
-  for (unsigned ii = 0; ii < clkCorr.size(); ii++) {
-    delete clkCorr[ii];
-  }
-  for (unsigned ii = 0; ii < satBias.size(); ii++) {
-    delete satBias[ii];
-  }
-}
-
+  if (_opt->_realTime) {
+    if (_opt->_corrMount.empty() || _opt->_corrMount != clkCorr[0]._staID) {
+      return;
+    }
+  }
+  vector<t_clkCorr*> corrections;
+  for (int ii = 0; ii < clkCorr.size(); ii++) {
+    corrections.push_back(new t_clkCorr(clkCorr[ii]));
+  }
+
+  _pppClient->putClkCorrections(corrections); 
+}
 
 // 
Index: /trunk/BNC/src/pppRun.h
===================================================================
--- /trunk/BNC/src/pppRun.h	(revision 6140)
+++ /trunk/BNC/src/pppRun.h	(revision 6141)
@@ -6,4 +6,5 @@
 #include <QtCore>
 
+#include "satObs.h"
 #include "pppOptions.h"
 #include "pppClient.h"
@@ -37,5 +38,6 @@
   void slotNewEphGlonass(glonassephemeris gloeph);
   void slotNewEphGalileo(galileoephemeris galeph);
-  void slotNewCorrections(QStringList corrList);
+  void slotNewOrbCorrections(QList<t_orbCorr> orbCorr);
+  void slotNewClkCorrections(QList<t_clkCorr> clkCorr);
   void slotNewObs(QByteArray staID, QList<t_satObs> obsList);
   void slotSetSpeed(int speed);
@@ -61,6 +63,4 @@
   t_pppClient*           _pppClient;
   std::deque<t_epoData*> _epoData;
-  int                    _lastOrbCorrIOD[t_prn::MAXPRN+1];
-  double                 _lastClkCorrValue[t_prn::MAXPRN+1];
   bncTime                _lastClkCorrTime;
   t_rnxObsFile*          _rnxObsFile;
Index: /trunk/BNC/src/rinex/corrfile.cpp
===================================================================
--- /trunk/BNC/src/rinex/corrfile.cpp	(revision 6140)
+++ /trunk/BNC/src/rinex/corrfile.cpp	(revision 6141)
@@ -71,8 +71,8 @@
   }
 
-  QStringList corrs;
+  QStringList lines;
 
   if (!_lastLine.isEmpty()) {
-    corrs << _lastLine;
+    lines << _lastLine;
   }
 
@@ -85,22 +85,30 @@
 
     if (stopRead(tt)) {
-      if (corrs.size()) {
-
-        QListIterator<QString> it(corrs);
-        while (it.hasNext()) {
-          const QString& cLine = it.next();
-          t_corr* corr = new t_corr();
-          corr->readLine(cLine);
-          if (corr->tRao.valid()) {
-            _corrIODs[corr->prn] = corr->iod;
-          }
+      QList<t_orbCorr> orbCorr;
+      QList<t_clkCorr> clkCorr;
+      QListIterator<QString> it(lines);
+      while (it.hasNext()) {
+        const QString& str = it.next();
+        if      (str[0] == 'C') {
+          t_clkCorr corr(str.toAscii().data());
+          _lastTime = corr._time;
+          clkCorr.push_back(corr);
         }
-
-        emit newCorrections(corrs);
+        else if (str[0] == 'O') {
+          t_orbCorr corr(str.toAscii().data());
+          _lastTime = corr._time;
+          orbCorr.push_back(corr);
+        }
+      }         
+      if (orbCorr.size() > 0) {
+        emit newOrbCorrections(orbCorr);
+      }
+      if (clkCorr.size() > 0) {
+        emit newClkCorrections(clkCorr);
       }
       return;
     }
     else {
-      corrs << _lastLine;
+      lines << _lastLine;
     }
   }
@@ -111,16 +119,9 @@
 bool t_corrFile::stopRead(const bncTime& tt) {
 
-  if (_lastLine.isEmpty()) {
+  if (_lastTime.undef()) {
     return false;
   }
 
-  QTextStream in(_lastLine.toAscii(), QIODevice::ReadOnly);
-  int    messageType, updateInterval, GPSweek;
-  double GPSweeks;
-  in >> messageType >> updateInterval >> GPSweek >> GPSweeks;
-
-  bncTime tNew(GPSweek, GPSweeks);
-
-  if (tNew > tt) {
+  if (_lastTime > tt) {
     return true;
   }    
Index: /trunk/BNC/src/rinex/corrfile.h
===================================================================
--- /trunk/BNC/src/rinex/corrfile.h	(revision 6140)
+++ /trunk/BNC/src/rinex/corrfile.h	(revision 6141)
@@ -29,4 +29,5 @@
 #include "bncconst.h"
 #include "bnctime.h"
+#include "satObs.h"
 
 class t_corrFile : public QObject {
@@ -40,5 +41,6 @@
 
  signals:
-  void newCorrections(QStringList);
+  void newOrbCorrections(QList<t_orbCorr>);
+  void newClkCorrections(QList<t_clkCorr>);
 
  private:
@@ -48,4 +50,5 @@
   QString            _lastLine;
   QMap<QString, int> _corrIODs;
+  bncTime            _lastTime;
 };
 
Index: /trunk/BNC/src/satObs.h
===================================================================
--- /trunk/BNC/src/satObs.h	(revision 6140)
+++ /trunk/BNC/src/satObs.h	(revision 6141)
@@ -59,6 +59,10 @@
 class t_orbCorr {
  public:
+  t_orbCorr();
+  t_orbCorr(const std::string& str);
   t_prn          prn() const {return _prn;}
   unsigned short IOD() const {return _iod;}
+  std::string    toString() const;
+  std::string    _staID;
   t_prn          _prn;
   unsigned short _iod;
@@ -71,6 +75,10 @@
 class t_clkCorr {
  public:
+  t_clkCorr();
+  t_clkCorr(const std::string& str);
   t_prn          prn() const {return _prn;}
   unsigned short IOD() const {return _iod;}
+  std::string    toString() const;
+  std::string    _staID;
   t_prn          _prn;
   unsigned short _iod;
@@ -99,4 +107,5 @@
 class t_satBias {
  public:
+  std::string            _staID;
   t_prn                  _prn;
   bncTime                _time;
Index: /trunk/BNC/src/src.pri
===================================================================
--- /trunk/BNC/src/src.pri	(revision 6140)
+++ /trunk/BNC/src/src.pri	(revision 6141)
@@ -84,5 +84,5 @@
           bncephuser.cpp bncoutf.cpp bncclockrinex.cpp bncsp3.cpp     \
           bncbytescounter.cpp bncsslconfig.cpp reqcdlg.cpp            \
-          ephemeris.cpp t_prn.cpp                                     \
+          ephemeris.cpp t_prn.cpp satObs.cpp                          \
           upload/bncrtnetdecoder.cpp upload/bncuploadcaster.cpp       \
           upload/bncrtnetuploadcaster.cpp upload/bnccustomtrafo.cpp   \
@@ -110,9 +110,9 @@
 QT += network
 
-exists(combination/bnccomb.h) {
-  DEFINES += USE_COMBINATION
-  HEADERS += combination/bnccomb.h
-  SOURCES += combination/bnccomb.cpp
-}
+# exists(combination/bnccomb.h) {
+#   DEFINES += USE_COMBINATION
+#   HEADERS += combination/bnccomb.h
+#   SOURCES += combination/bnccomb.cpp
+# }
 
 exists(PPP) {
