From e6fb46fa0e656502ef9f48145ae5477cb804312f Mon Sep 17 00:00:00 2001
From: joanvallve <jvallve@iri.upc.edu>
Date: Thu, 26 Mar 2020 12:31:55 +0100
Subject: [PATCH] bug in initialization of arrays and debugs couts removed

---
 src/gnss_utils.cpp |  2 +-
 src/navigation.cpp | 29 ++++++++++++++++++++++++++++-
 src/ublox_raw.cpp  | 15 ++++++++-------
 3 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp
index 743ef28..9912535 100644
--- a/src/gnss_utils.cpp
+++ b/src/gnss_utils.cpp
@@ -24,7 +24,7 @@ namespace GNSSUtils
     
     if (output.pos_stat == 0)
     {
-      std::cout << "Bad computing: "  << msg << "\n";
+      std::cout << "computePos: error in computing positioning, message: "  << msg << "\n";
     }
 
     output.time = sol.time.time;
diff --git a/src/navigation.cpp b/src/navigation.cpp
index 3cfecdc..a3e3dac 100644
--- a/src/navigation.cpp
+++ b/src/navigation.cpp
@@ -4,12 +4,32 @@ using namespace GNSSUtils;
 
 Navigation::Navigation()
 {
-    // initialization
+    // array initialization
+    nav_.n = nav_.nmax = nav_.ng = nav_.ngmax = nav_.ns = nav_.nsmax = nav_.ne = nav_.nemax = nav_.nc = nav_.ncmax = nav_.na = nav_.namax = nav_.nt = nav_.ntmax = nav_.nf = nav_.nfmax = 0;
+    nav_.eph = NULL;
+    nav_.geph = NULL;
+    nav_.seph = NULL;
+    nav_.peph = NULL;
+    nav_.pclk = NULL;
+    nav_.alm = NULL;
+    nav_.tec = NULL;
+    nav_.fcb = NULL;
     clearNavigation();
 }
 
 Navigation::Navigation(const Navigation& nav)
 {
+    // array initialization
+    nav_.n = nav_.nmax = nav_.ng = nav_.ngmax = nav_.ns = nav_.nsmax = nav_.ne = nav_.nemax = nav_.nc = nav_.ncmax = nav_.na = nav_.namax = nav_.nt = nav_.ntmax = nav_.nf = nav_.nfmax = 0;
+    nav_.eph = NULL;
+    nav_.geph = NULL;
+    nav_.seph = NULL;
+    nav_.peph = NULL;
+    nav_.pclk = NULL;
+    nav_.alm = NULL;
+    nav_.tec = NULL;
+    nav_.fcb = NULL;
+    clearNavigation();
     setNavigation(nav.getNavigation());
 }
 
@@ -225,12 +245,19 @@ void Navigation::freeNavigationArrays()
 {
     // RTKLIB "freenav(&nav_,255)" doesn't check if is NULL before freeing
     freeEphemeris();
+    //std::cout << "freeing glonass ephemeris...\n";
     freeGlonassEphemeris();
+    //std::cout << "freeing sbas ephemeris...\n";
     freeSbasEphemeris();
+    //std::cout << "freeing precise ephemeris...\n";
     freePreciseEphemeris();
+    //std::cout << "freeing precise clock...\n";
     freePreciseClock();
+    //std::cout << "freeing almanac...\n";
     freeAlmanac();
+    //std::cout << "freeing tec...\n";
     freeTecData();
+    //std::cout << "freeing fcb...\n";
     freeFcbData();
 }
 
diff --git a/src/ublox_raw.cpp b/src/ublox_raw.cpp
index 8ce73d0..8fdc8cb 100644
--- a/src/ublox_raw.cpp
+++ b/src/ublox_raw.cpp
@@ -27,34 +27,35 @@ RawDataType UBloxRaw::addDataStream(const std::vector<u_int8_t>& data_stream)
         switch (raw_data_type_)
         {
             case NO: //
+                //std::cout << "0 received!\n";
                 break;
 
             case OBS: // Observations
-                std::cout << "Observations received!\n";
+                //std::cout << "Observations received!\n";
                 updateObservations();
-                std::cout << "Observations updated!\n";
+                //std::cout << "Observations updated!\n";
                 break;
 
             case NAV_EPH: // Ephemeris
                 std::cout << "Ephemeris received!\n";
                 nav_.copyEphemeris(raw_data_.nav);
-                std::cout << "Ephemeris copied!\n";
+                //std::cout << "Ephemeris copied!\n";
                 break;
 
             case NAV_SBAS: // SBAS
                 std::cout << "SBAS received!\n";
                 nav_.addSbasMessage(raw_data_.sbsmsg);
-                std::cout << "SBAS added!\n";
+                //std::cout << "SBAS added!\n";
                 break;
 
             case NAV_ALM: // Almanac and ion/utc parameters
                 std::cout << "Almanac and ion/utc parameters received!\n";
                 nav_.freeAlmanac();
-                std::cout << "Almanac freed!\n";
+                //std::cout << "Almanac freed!\n";
                 nav_.copyAlmanac(raw_data_.nav);
-                std::cout << "Almanac copied!\n";
+                //std::cout << "Almanac copied!\n";
                 nav_.copyIonUtc(raw_data_.nav);
-                std::cout << "ION UTC copied!\n";
+                //std::cout << "ION UTC copied!\n";
                 break;
 
             // Not handled messages
-- 
GitLab