diff --git a/src/processor/processor_tracker_gnss.cpp b/src/processor/processor_tracker_gnss.cpp index 69fb91758619b63385c26c23a2db38527232fc7c..daccffb3da9ee05f3b83d5aa54c52e6ba1cd26e6 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);