Index: trunk/BNC/src/PPP/pppSatObs.cpp
===================================================================
--- trunk/BNC/src/PPP/pppSatObs.cpp	(revision 5829)
+++ trunk/BNC/src/PPP/pppSatObs.cpp	(revision 5830)
@@ -63,7 +63,5 @@
   _outlier    = false;
   for (unsigned ii = 0; ii < pppSatObs._obs.size(); ii++) {
-    const t_frqObs* obs = pppSatObs._obs[ii];
-    t_obsType obsType = string(obs->_rnxType2ch).substr(0,2);
-    _allObs[obsType] = new t_frqObs(*obs);
+    _allObs.push_back(new t_frqObs(*pppSatObs._obs[ii]));
   }
   prepareObs();
@@ -73,7 +71,6 @@
 ////////////////////////////////////////////////////////////////////////////
 t_pppSatObs::~t_pppSatObs() {
-  map<t_obsType, t_frqObs*>::const_iterator it;
-  for (it = _allObs.begin(); it != _allObs.end(); it++) {
-    delete it->second;
+  for (unsigned ii = 0; ii < _allObs.size(); ii++) {
+    delete _allObs[ii];
   }
 }
@@ -93,19 +90,21 @@
   const string preferredAttrib = "CWP";
   for (unsigned iPref = 0; iPref < preferredAttrib.length(); iPref++) {
-    t_obsType obsType1 = "1?";
-    obsType1[1] = preferredAttrib[iPref];
-    if (_validObs1 == 0 && _allObs.find(obsType1) != _allObs.end()) {
-      t_frqObs* obs = _allObs[obsType1];
-      if (obs->_codeValid && obs->_phaseValid) {
-        _validObs1 = obs;
+    string obsType1 = "1?"; obsType1[1] = preferredAttrib[iPref];
+    if (_validObs1 == 0) {
+      for (unsigned ii = 0; ii < _allObs.size(); ii++) {
+        t_frqObs* obs = _allObs[ii];
+        if (obs->_rnxType2ch == obsType1 && obs->_codeValid && obs->_phaseValid) {
+          _validObs1 = obs;
+        }
       }
     }
     if (dualFreq) {
-      t_obsType obsType2 = "2?";
-      obsType2[1] = preferredAttrib[iPref];
-      if (_validObs2 == 0 && _allObs.find(obsType2) != _allObs.end()) {
-        t_frqObs* obs = _allObs[obsType2];
-        if (obs->_codeValid && obs->_phaseValid) {
-          _validObs2 = obs;
+      string obsType2 = "2?"; obsType2[1] = preferredAttrib[iPref];
+      if (_validObs2 == 0) {
+        for (unsigned ii = 0; ii < _allObs.size(); ii++) {
+          t_frqObs* obs = _allObs[ii];
+          if (obs->_rnxType2ch == obsType2 && obs->_codeValid && obs->_phaseValid) {
+            _validObs2 = obs;
+          }
         }
       }
Index: trunk/BNC/src/PPP/pppSatObs.h
===================================================================
--- trunk/BNC/src/PPP/pppSatObs.h	(revision 5829)
+++ trunk/BNC/src/PPP/pppSatObs.h	(revision 5830)
@@ -9,6 +9,4 @@
 
 namespace BNC_PPP {
-
-typedef std::string t_obsType;
 
 class t_pppStation;
@@ -44,7 +42,6 @@
 
   bool slip() const {
-    std::map<t_obsType, t_frqObs*>::const_iterator it;
-    for (it = _allObs.begin(); it != _allObs.end(); it++) {
-      if (it->second->_slip) {
+    for (unsigned ii = 0; ii < _allObs.size(); ii++) {
+      if (_allObs[ii]->_slip) {
         return true;
       }
@@ -55,8 +52,7 @@
   int slipCounter() const {
     int cnt = -1;
-    std::map<t_obsType, t_frqObs*>::const_iterator it;
-    for (it = _allObs.begin(); it != _allObs.end(); it++) {
-      if (it->second->_slipCounter > cnt) {
-        cnt = it->second->_slipCounter;
+    for (unsigned ii = 0; ii < _allObs.size(); ii++) {
+      if (_allObs[ii]->_slipCounter > cnt) {
+        cnt = _allObs[ii]->_slipCounter;
       }
     }
@@ -66,8 +62,7 @@
   int biasJumpCounter() const {
     int jmp = -1;
-    std::map<t_obsType, t_frqObs*>::const_iterator it;
-    for (it = _allObs.begin(); it != _allObs.end(); it++) {
-      if (it->second->_biasJumpCounter > jmp) {
-        jmp = it->second->_biasJumpCounter;
+    for (unsigned ii = 0; ii < _allObs.size(); ii++) {
+      if (_allObs[ii]->_biasJumpCounter > jmp) {
+        jmp = _allObs[ii]->_biasJumpCounter;
       }
     }
@@ -118,22 +113,22 @@
   };
 
-  t_prn                          _prn;
-  bncTime                        _time;
-  int                            _channel;
-  std::map<t_obsType, t_frqObs*> _allObs;
-  bool                           _valid;
-  t_frqObs*                      _validObs1;
-  t_frqObs*                      _validObs2;
-  double                         _f1;
-  double                         _f2;
-  double                         _rawC1;
-  double                         _rawC2;
-  double                         _rawL1;
-  double                         _rawL2;
-  ColumnVector                   _xcSat;
-  ColumnVector                   _vvSat;
-  t_model                        _model;
-  bool                           _outlier;
-  std::map<t_lc::type, double>   _res;
+  t_prn                        _prn;
+  bncTime                      _time;
+  int                          _channel;
+  std::vector<t_frqObs*>       _allObs;
+  bool                         _valid;
+  t_frqObs*                    _validObs1;
+  t_frqObs*                    _validObs2;
+  double                       _f1;
+  double                       _f2;
+  double                       _rawC1;
+  double                       _rawC2;
+  double                       _rawL1;
+  double                       _rawL2;
+  ColumnVector                 _xcSat;
+  ColumnVector                 _vvSat;
+  t_model                      _model;
+  bool                         _outlier;
+  std::map<t_lc::type, double> _res;
 };
 
