Index: /trunk/BNC/bncpppclient.cpp
===================================================================
--- /trunk/BNC/bncpppclient.cpp	(revision 2273)
+++ /trunk/BNC/bncpppclient.cpp	(revision 2274)
@@ -97,4 +97,9 @@
     delete ic.value();
   }
+  QMapIterator<QString, t_bias*> ib(_bias);
+  while (ib.hasNext()) {
+    ib.next();
+    delete ib.value();
+  }
 }
 
@@ -111,4 +116,36 @@
 
   t_satData* satData = new t_satData();
+
+  // Satellite Number
+  // ----------------
+  if      (obs->satSys == 'G') {
+    QString prn = QString("G%1").arg(obs->satNum, 2, 10, QChar('0'));
+    satData->prn = prn;
+  }
+  else if (obs->satSys == 'R') {
+    QString prn = QString("R%1").arg(obs->satNum, 2, 10, QChar('0'));
+    satData->prn = prn;
+  }
+
+  // Handle Code Biases
+  // ------------------
+  t_bias* bb = 0;
+  if (_bias.contains(satData->prn)) {
+    bb = _bias.value(satData->prn); 
+  }
+
+  ////// beg test
+  //cout << satData->prn.toAscii().data();
+  //if (bb) {
+  //  cout.setf(ios::fixed);
+  //  cout << setprecision(3) << bb->c1 << " " 
+  //       << setprecision(3) << bb->p1 << " " 
+  //       << setprecision(3) << bb->c2 << " " 
+  //       << setprecision(3) << bb->p2 << endl;
+  //}
+  //else {
+  //  cout << " no bias\n";
+  //}
+  //// end test
 
   // Set Code Observations
@@ -183,12 +220,8 @@
 
   if      (obs->satSys == 'G') {
-    QString prn = QString("G%1").arg(obs->satNum, 2, 10, QChar('0'));
-    satData->prn = prn;
-    _epoData->satDataGPS[prn] = satData;
+    _epoData->satDataGPS[satData->prn] = satData;
   }
   else if (obs->satSys == 'R') {
-    QString prn = QString("R%1").arg(obs->satNum, 2, 10, QChar('0'));
-    satData->prn = prn;
-    _epoData->satDataGlo[prn] = satData;
+    _epoData->satDataGlo[satData->prn] = satData;
   }
 
@@ -308,4 +341,38 @@
       }
     }
+    else if ( messageType == BTYPE_GPS     || 
+              messageType == BTYPE_GLONASS ) {
+
+      t_bias* bb = 0;
+      if (_bias.contains(prn)) {
+        bb = _bias.value(prn); 
+      }
+      else {
+        bb = new t_bias();
+        _bias[prn] = bb;
+      }
+
+      bb->tt.set(GPSweek, GPSweeks);
+
+      int numBiases;
+      in >> numBiases;
+      for (int ii = 0; ii < numBiases; ++ii) {
+        int    bType;
+        double bValue;
+	in >> bType >> bValue;
+        if      (bType == 0) {
+          bb->c1 = bValue;
+	}
+        else if (bType >= 1 && bType <= 4) {
+          bb->p1 = bValue;
+	}
+        else if (bType == 5) {
+          bb->c2 = bValue;
+	}
+        else if (bType >= 6 && bType <= 13) {
+          bb->p2 = bValue;
+	}
+      }
+    }
   }
 
Index: /trunk/BNC/bncpppclient.h
===================================================================
--- /trunk/BNC/bncpppclient.h	(revision 2273)
+++ /trunk/BNC/bncpppclient.h	(revision 2274)
@@ -96,4 +96,19 @@
 };
 
+class t_bias {
+ public:
+  t_bias() {
+    c1 = 0.0;
+    p1 = 0.0;
+    c2 = 0.0;
+    p2 = 0.0;
+  }
+  bncTime tt;
+  double  c1;
+  double  p1;
+  double  c2;
+  double  p2;
+};
+
 class bncPPPclient : public QObject {
  Q_OBJECT
@@ -124,4 +139,5 @@
   QMap<QString, t_eph*>  _eph;
   QMap<QString, t_corr*> _corr;
+  QMap<QString, t_bias*> _bias;
   t_epoData*             _epoData;
   bncModel*              _model;
