Index: /trunk/BNC/src/PPP_SSR_I/pppClient.cpp
===================================================================
--- /trunk/BNC/src/PPP_SSR_I/pppClient.cpp	(revision 6973)
+++ /trunk/BNC/src/PPP_SSR_I/pppClient.cpp	(revision 6974)
@@ -92,7 +92,9 @@
     satData->P2       = 0.0;
     satData->P5       = 0.0;
+    satData->P7       = 0.0;
     satData->L1       = 0.0;
     satData->L2       = 0.0;
     satData->L5       = 0.0;
+    satData->L7       = 0.0;
     for (unsigned ifrq = 0; ifrq < obs->_obs.size(); ifrq++) {
       t_frqObs* frqObs = obs->_obs[ifrq];
@@ -112,4 +114,9 @@
         if (frqObs->_slip)       satData->slipFlag = true;
       }
+      else if (frqObs->_rnxType2ch[0] == '7') {
+              if (frqObs->_codeValid)  satData->P7       = frqObs->_code;
+              if (frqObs->_phaseValid) satData->L7       = frqObs->_phase;
+              if (frqObs->_slip)       satData->slipFlag = true;
+            }
     }
     putNewObs(satData);
@@ -245,4 +252,27 @@
     }
   }
+
+  // Set Observations BDS
+  // ---------------------
+  else if (satData->system() == 'C' && _opt->useSystem('C')) {
+    if (satData->P2 != 0.0 && satData->P7 != 0.0 &&
+        satData->L2 != 0.0 && satData->L7 != 0.0 ) {
+      double f2 = t_CST::freq(t_frequency::C2, 0);
+      double f7 = t_CST::freq(t_frequency::C7, 0);
+      double a2 =   f2 * f2 / (f2 * f2 - f7 * f7);
+      double a7 = - f7 * f7 / (f2 * f2 - f7 * f7);
+      satData->L2      = satData->L2 * t_CST::c / f2;
+      satData->L7      = satData->L7 * t_CST::c / f7;
+      satData->P3      = a2 * satData->P2 + a7 * satData->P7;
+      satData->L3      = a2 * satData->L2 + a7 * satData->L7;
+      satData->lambda3 = a2 * t_CST::c / f2 + a7 * t_CST::c / f7;
+      satData->lkA     = a2;
+      satData->lkB     = a7;
+      _epoData->satData[satData->prn] = satData;
+    }
+    else {
+      delete satData;
+    }
+  }
 }
 
Index: /trunk/BNC/src/PPP_SSR_I/pppFilter.cpp
===================================================================
--- /trunk/BNC/src/PPP_SSR_I/pppFilter.cpp	(revision 6973)
+++ /trunk/BNC/src/PPP_SSR_I/pppFilter.cpp	(revision 6974)
@@ -233,8 +233,8 @@
   if (OPT->useSystem('E')) {
     _params.push_back(new t_pppParam(t_pppParam::GALILEO_OFFSET, ++nextPar, ""));
-  }/*
+  }
   if (OPT->useSystem('C')) {
     _params.push_back(new t_pppParam(t_pppParam::BDS_OFFSET, ++nextPar, ""));
-  }*/
+  }
 
   _QQ.ReSize(_params.size()); 
@@ -528,6 +528,8 @@
       }
 
+      // BDS Offset
+      // ----------
       else if (pp->type == t_pppParam::BDS_OFFSET) {
-        _QQ(iPar,iPar) += 0.1 * 0.1;//TODO
+       _QQ(iPar,iPar) += 0.1 * 0.1; //TODO 
       }
     }
@@ -726,14 +728,14 @@
   if      (iPhase == 1) {
     if      (maxResGlo > 2.98 * OPT->_maxResL1) { 
-      LOG << "Outlier Phase " << prnGlo.toAscii().data() << ' ' << maxResGlo << endl;
+      LOG << "Outlier Phase " << prnGlo.mid(0,3).toAscii().data() << ' ' << maxResGlo << endl;
       return prnGlo;
     }
     else if (maxResGPS > 2.98 * OPT->_maxResL1) { 
-      LOG << "Outlier Phase " << prnGPS.toAscii().data() << ' ' << maxResGPS << endl;
+      LOG << "Outlier Phase " << prnGPS.mid(0,3).toAscii().data() << ' ' << maxResGPS << endl;
       return prnGPS;
     }
   }
   else if (iPhase == 0 && maxResGPS > 2.98 * OPT->_maxResC1) {
-    LOG << "Outlier Code  " << prnGPS.toAscii().data() << ' ' << maxResGPS << endl;
+    LOG << "Outlier Code  " << prnGPS.mid(0,3).toAscii().data() << ' ' << maxResGPS << endl;
     return prnGPS;
   }
Index: /trunk/BNC/src/PPP_SSR_I/pppFilter.h
===================================================================
--- /trunk/BNC/src/PPP_SSR_I/pppFilter.h	(revision 6973)
+++ /trunk/BNC/src/PPP_SSR_I/pppFilter.h	(revision 6974)
@@ -64,8 +64,10 @@
   double       P2;
   double       P5;
+  double       P7;
   double       P3;
   double       L1;
   double       L2;
   double       L5;
+  double       L7;
   double       L3;
   ColumnVector xx;
