Index: /trunk/BNC/src/PPP/pppSatObs.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppSatObs.cpp	(revision 6026)
+++ /trunk/BNC/src/PPP/pppSatObs.cpp	(revision 6027)
@@ -209,8 +209,18 @@
 ////////////////////////////////////////////////////////////////////////////
 bool t_pppSatObs::isValid(t_lc::type tLC) const {
+  bool valid = true;
+  obsValue(tLC, &valid);
+  return valid;
+}
+// 
+////////////////////////////////////////////////////////////////////////////
+double t_pppSatObs::obsValue(t_lc::type tLC, bool* valid) const {
 
   map<t_frequency::type, double> codeCoeff;
   map<t_frequency::type, double> phaseCoeff;
   lcCoeff(tLC, codeCoeff, phaseCoeff);
+
+  double retVal = 0.0;
+  if (valid) *valid = true;
 
   map<t_frequency::type, double>::const_iterator it;
@@ -218,5 +228,9 @@
     t_frequency::type tFreq = it->first;
     if (_obs[tFreq] == 0) {
-      return false;
+      if (valid) *valid = false;
+      return 0.0;
+    }
+    else {
+      retVal += _obs[tFreq]->_code * it->second;
     }
   }
@@ -224,20 +238,13 @@
     t_frequency::type tFreq = it->first;
     if (_obs[tFreq] == 0) {
-      return false;
-    }
-  }
-  
-  return true;  
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-double t_pppSatObs::obsValue(t_lc::type tLC) const {
-
-  if (!_validObs2 && t_lc::need2ndFreq(tLC)) {
-    return 0.0;
-  }
-
-  return this->lc(tLC, _rawL1, _rawL2, _rawC1, _rawC2);
+      if (valid) *valid = false;
+      return 0.0;
+    }
+    else {
+      retVal += _obs[tFreq]->_phase * it->second;
+    }
+  }
+
+  return retVal;
 }
 
Index: /trunk/BNC/src/PPP/pppSatObs.h
===================================================================
--- /trunk/BNC/src/PPP/pppSatObs.h	(revision 6026)
+++ /trunk/BNC/src/PPP/pppSatObs.h	(revision 6027)
@@ -22,5 +22,5 @@
   const bncTime&      time() const {return _time;}
   t_irc               cmpModel(const t_pppStation* station);
-  double              obsValue(t_lc::type tLC) const;
+  double              obsValue(t_lc::type tLC, bool* valid = 0) const;
   double              cmpValue(t_lc::type tLC) const;
   double              cmpValueForBanc(t_lc::type tLC) const;
