From 9a303ed8ef4fbc6f5b9c822713b03dd66dda9191 Mon Sep 17 00:00:00 2001
From: joanvallve <jvallve@iri.upc.edu>
Date: Mon, 19 Oct 2020 23:11:12 +0200
Subject: [PATCH] SBAS3/4 implementation

---
 src/processor/processor_tracker_gnss.cpp | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/processor/processor_tracker_gnss.cpp b/src/processor/processor_tracker_gnss.cpp
index 69fb91758..daccffb3d 100644
--- a/src/processor/processor_tracker_gnss.cpp
+++ b/src/processor/processor_tracker_gnss.cpp
@@ -120,7 +120,7 @@ void ProcessorTrackerGnss::preProcess()
      *     eph:  EPHOPT_SBAS3 or EPHOPT_SBAS4
      *     iono: IONOOPT_SBAS3 or IONOOPT_SBAS4
      */
-    if (inc_snapshot->getObservations()->size() < params_tracker_gnss_->min_sbas_sats and
+    if (inc_snapshot->getRanges().size() < params_tracker_gnss_->min_sbas_sats and
         (eph_sbas34 or iono_sbas34))
     {
         WOLF_DEBUG("ProcessorTrackerGnss::preProcess: with SBAS3/SBAS4, not enough ranges: ", inc_snapshot->getObservations()->size(), " Computing with SBAS2/BRDC");
@@ -156,14 +156,22 @@ void ProcessorTrackerGnss::preProcess()
                                     fix_incoming_.lat_lon,
                                     copy_opt);
 
-        WOLF_DEBUG("ProcessorTrackerGnss::preProcess: with SBAS2/BRDC, obtained ranges: ", inc_snapshot->getObservations()->size());
+        WOLF_DEBUG("ProcessorTrackerGnss::preProcess: with SBAS2/BRDC, obtained ranges: ", inc_snapshot->getRanges().size());
     }
 
     // create features pseudorange
     for (auto obs_sat : inc_snapshot->getObservations()->getObservations())
     {
-        assert(inc_snapshot->getSatellites().count(obs_sat.sat) != 0 && "satellite not found");
-        assert(inc_snapshot->getRanges().count(obs_sat.sat) != 0 && "pseudorange not found");
+        if(inc_snapshot->getSatellites().count(obs_sat.sat) == 0)
+        {
+            WOLF_WARN("ProcessorTrackerGnss::preProcess(): Creating features of obs_sat ", obs_sat.sat , " satellite not found");
+            continue;
+        }
+        if (inc_snapshot->getRanges().count(obs_sat.sat) == 0)
+        {
+            WOLF_WARN("ProcessorTrackerGnss::preProcess(): Creating features of obs_sat ", obs_sat.sat , " pseudorange not found");
+            continue;
+        }
 
         auto feat = FeatureBase::emplace<FeatureGnssSatellite>(incoming_ptr_, obs_sat, inc_snapshot->getSatellites().at(obs_sat.sat), inc_snapshot->getRanges().at(obs_sat.sat));
         assert(untracked_incoming_features_.count(feat->satNumber()) == 0);
-- 
GitLab