From c0ce0584ddd1f9fd2b7f719682307f79018f8145 Mon Sep 17 00:00:00 2001
From: PepMS <jmarti@iri.upc.edu>
Date: Mon, 18 Nov 2019 08:29:05 +0100
Subject: [PATCH] Print and reorganizing

---
 include/gnss_utils/gnss_utils.h   |  8 ----
 include/gnss_utils/observations.h |  2 +
 include/gnss_utils/utils.h        | 23 +++++++++++
 src/CMakeLists.txt                |  4 +-
 src/gnss_utils.cpp                | 59 ---------------------------
 src/observations.cpp              | 12 +++---
 src/utils.cpp                     | 66 +++++++++++++++++++++++++++++++
 7 files changed, 100 insertions(+), 74 deletions(-)
 create mode 100644 include/gnss_utils/utils.h
 create mode 100644 src/utils.cpp

diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
index 197232c..6260309 100644
--- a/include/gnss_utils/gnss_utils.h
+++ b/include/gnss_utils/gnss_utils.h
@@ -18,8 +18,6 @@ extern "C"
     #include "rtklib.h"
 }
 
-#define GNSSUTILS_MSG "--GNSSUtils--"
-
 namespace GNSSUtils
 {
   struct ComputePosOutput{
@@ -45,12 +43,6 @@ namespace GNSSUtils
                                     const prcopt_t & _prcopt);
   
   Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef);
-
-  void print(std::string & _msg);
-  void printArray(std::string _name, int * _array, int size);
-  void printArray(std::string _name, unsigned char * _array, int size);
-  void printArray(std::string _name, double * _array, int size);
-  void printArray(std::string _name, float * _array, int size);
 }
 
 #endif
diff --git a/include/gnss_utils/observations.h b/include/gnss_utils/observations.h
index b1e6ab2..e84820c 100644
--- a/include/gnss_utils/observations.h
+++ b/include/gnss_utils/observations.h
@@ -5,6 +5,8 @@
 #include <iostream>
 #include <memory>
 
+#include "gnss_utils/utils.h"
+
 extern "C"
 {
     #include "rtklib.h"
diff --git a/include/gnss_utils/utils.h b/include/gnss_utils/utils.h
new file mode 100644
index 0000000..4d19e40
--- /dev/null
+++ b/include/gnss_utils/utils.h
@@ -0,0 +1,23 @@
+#ifndef UTILS_H
+#define UTILS_H
+
+#include <vector>
+#include <iostream>
+#include <memory>
+#include <string>
+
+#define ARRAY_SIZE(arr) sizeof(arr)/sizeof(arr[0])
+#define GNSSUTILS_MSG "--GNSSUtils--"
+
+namespace GNSSUtils
+{
+  
+
+  void print(std::string & _msg);
+  void printArray(std::string _name, int * _array, int size);
+  void printArray(std::string _name, unsigned char * _array, int size);
+  void printArray(std::string _name, double * _array, int size);
+  void printArray(std::string _name, float * _array, int size);
+}
+
+#endif
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index de5d77d..bf6f31f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,7 +6,8 @@ SET(RTKLIB_SRC_DIR ${RTKLIB_DIR}/src)
 SET(SOURCES
     gnss_utils.cpp
     observations.cpp
-    navigation.cpp)
+    navigation.cpp
+    utils.cpp)
 
 SET(RTKLIB_SRC
     ${RTKLIB_SRC_DIR}/pntpos.c
@@ -26,6 +27,7 @@ SET(RTKLIB_SRC
 # application header files
 SET(HEADERS
     ../include/gnss_utils/gnss_utils.h
+    ../include/gnss_utils/utils.h
     ../include/gnss_utils/observations.h
     ../include/gnss_utils/navigation.h
   ${RTKLIB_SRC_DIR}/rtklib.h)
diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp
index a976c3b..dcc3f24 100644
--- a/src/gnss_utils.cpp
+++ b/src/gnss_utils.cpp
@@ -61,63 +61,4 @@ namespace GNSSUtils
     return Eigen::Vector3d(pos);
   }
 
-  void print(std::string & _msg) 
-  {
-    std::string msg = GNSSUTILS_MSG + _msg;
-
-    std::cout << msg << "\n";
-     
-  }
-
-  void printArray(std::string _name, int * _array, int size)
-  {  
-    std::cout << _name << ": [";
-    for (int ii=0; ii<size; ++ii)
-    {
-      std::cout << _array[ii];
-      if (ii==size-1) 
-        std::cout << "] \n";
-      else
-        std::cout << ",";
-    }
-  }
-
-  void printArray(std::string _name, unsigned char * _array, int size)
-  {
-    std::cout << _name << ": [";
-    for (int ii=0; ii<size; ++ii)
-    {
-      std::cout << (unsigned)_array[ii];
-      if (ii==size-1) 
-        std::cout << "] \n";
-      else
-        std::cout << ",";
-    }
-  }
-
-  void printArray(std::string _name, double * _array, int size)
-  {   
-    std::cout << _name << ": [";
-    for (int ii=0; ii<size; ++ii)
-    {
-      std::cout << _array[ii];
-      if (ii==size-1) 
-        std::cout << "] \n";
-      else
-        std::cout << ",";
-    }
-  }
-
-  void printArray(std::string _name, float * _array, int size)
-  {   
-    std::cout << _name << ": [";
-    for (int ii=0; ii<size; ++ii)
-    {
-      std::cout << _array[ii];
-      if (ii==size-1) 
-        std::cout << "] \n";
-      else
-        std::cout << ",";
-    }
-  }
 }
diff --git a/src/observations.cpp b/src/observations.cpp
index 9892903..4ef5448 100644
--- a/src/observations.cpp
+++ b/src/observations.cpp
@@ -40,12 +40,12 @@ void Observations::print(obsd_t & _obs)
   std::string msg = "Observation of satellite #" + std::to_string(_obs.sat);
   GNSSUtils::print(msg);
   std::cout << "Time [s]: " << _obs.time.time << "\n";
-  printArray("SNR: ", _obs.SNR, sizeof(_obs.SNR) / sizeof(_obs.SNR[0]));
-  printArray("LLI: ", _obs.LLI, sizeof(_obs.LLI) / sizeof(_obs.LLI[0]));
-  printArray("code: ", _obs.code, sizeof(_obs.code) / sizeof(_obs.code[0]));
-  printArray("L: ", _obs.L, sizeof(_obs.L) / sizeof(_obs.L));
-  printArray("P: ", _obs.P, sizeof(_obs.P) / sizeof(_obs.P));
-  printArray("D: ", _obs.D, sizeof(_obs.D) / sizeof(_obs.D));
+  printArray("SNR: ", _obs.SNR, ARRAY_SIZE(_obs.SNR));
+  printArray("LLI: ", _obs.LLI, ARRAY_SIZE(_obs.LLI));
+  printArray("code: ", _obs.code, ARRAY_SIZE(_obs.code));
+  printArray("L: ", _obs.L, ARRAY_SIZE(_obs.L));
+  printArray("P: ", _obs.P, ARRAY_SIZE(_obs.P));
+  printArray("D: ", _obs.D, ARRAY_SIZE(_obs.D));
 }
 
 void Observations::print(int _obs_idx)
diff --git a/src/utils.cpp b/src/utils.cpp
new file mode 100644
index 0000000..3e41a0e
--- /dev/null
+++ b/src/utils.cpp
@@ -0,0 +1,66 @@
+#include "gnss_utils/utils.h"
+
+
+namespace GNSSUtils
+{
+void print(std::string & _msg) 
+  {
+    std::string msg = GNSSUTILS_MSG + _msg;
+
+    std::cout << msg << "\n";
+     
+  }
+
+  void printArray(std::string _name, int * _array, int size)
+  {  
+    std::cout << _name << ": [";
+    for (int ii=0; ii<size; ++ii)
+    {
+      std::cout << _array[ii];
+      if (ii==size-1) 
+        std::cout << "] \n";
+      else
+        std::cout << ",";
+    }
+  }
+
+  void printArray(std::string _name, unsigned char * _array, int size)
+  {
+    std::cout << _name << ": [";
+    for (int ii=0; ii<size; ++ii)
+    {
+      std::cout << (unsigned)_array[ii];
+      if (ii==size-1) 
+        std::cout << "] \n";
+      else
+        std::cout << ",";
+    }
+  }
+
+  void printArray(std::string _name, double * _array, int size)
+  {   
+    std::cout << _name << ": [";
+    for (int ii=0; ii<size; ++ii)
+    {
+      std::cout << _array[ii];
+      if (ii==size-1) 
+        std::cout << "] \n";
+      else
+        std::cout << ",";
+    }
+  }
+
+  void printArray(std::string _name, float * _array, int size)
+  {   
+    std::cout << _name << ": [";
+    for (int ii=0; ii<size; ++ii)
+    {
+      std::cout << _array[ii];
+      if (ii==size-1) 
+        std::cout << "] \n";
+      else
+        std::cout << ",";
+    }
+  }
+
+}
\ No newline at end of file
-- 
GitLab