From 2dc541dccf3d8aa83ec0fd019741d74ecf9ae8f4 Mon Sep 17 00:00:00 2001 From: PepMS <jmarti@iri.upc.edu> Date: Sat, 2 May 2020 10:27:10 +0200 Subject: [PATCH] [improvement] Added template for printing arrays --- include/gnss_utils/utils/utils.h | 18 ++++++++--- src/observations.cpp | 16 +++++----- src/utils/utils.cpp | 52 -------------------------------- 3 files changed, 22 insertions(+), 64 deletions(-) diff --git a/include/gnss_utils/utils/utils.h b/include/gnss_utils/utils/utils.h index 06eba1b..a107051 100644 --- a/include/gnss_utils/utils/utils.h +++ b/include/gnss_utils/utils/utils.h @@ -17,10 +17,20 @@ 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); + +template <typename T, size_t size> +void printArray(std::string name, T (&array)[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 << ","; + } +} template <typename T> inline bool addToArray(const T& new_element, T*& array, int& n, int& nmax) diff --git a/src/observations.cpp b/src/observations.cpp index 8e5864c..0ca80fd 100644 --- a/src/observations.cpp +++ b/src/observations.cpp @@ -163,15 +163,15 @@ static void Observations::print(obsd_t& _obs) GnssUtils::print(msg); std::cout << "Time [s]: " << _obs.time.time << " + " << _obs.time.sec << "\n"; std::cout << "Time valid: " << _obs.timevalid << std::endl; - 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("code: ", _obs.qualL, ARRAY_SIZE(_obs.qualL)); - printArray("code: ", _obs.qualP, ARRAY_SIZE(_obs.qualP)); + printArray<unsigned char, ARRAY_SIZE(_obs.SNR)>("SNR: ", _obs.SNR); + printArray<unsigned char, ARRAY_SIZE(_obs.LLI)>("LLI: ", _obs.LLI); + printArray<unsigned char, ARRAY_SIZE(_obs.code)>("code: ", _obs.code); + printArray<unsigned char, ARRAY_SIZE(_obs.qualL)>("code: ", _obs.qualL); + printArray<unsigned char, ARRAY_SIZE(_obs.qualP)>("code: ", _obs.qualP); printf("Freq. channel: %uc \n", _obs.freq); - printArray("L: ", _obs.L, ARRAY_SIZE(_obs.L)); - printArray("P: ", _obs.P, ARRAY_SIZE(_obs.P)); - printArray("D: ", _obs.D, ARRAY_SIZE(_obs.D)); + printArray<double, ARRAY_SIZE(_obs.L)>("L: ", _obs.L); + printArray<double, ARRAY_SIZE(_obs.P)>("P: ", _obs.P); + printArray<float, ARRAY_SIZE(_obs.D)>("D: ", _obs.D); } void Observations::printBySat(const int& _sat_number) diff --git a/src/utils/utils.cpp b/src/utils/utils.cpp index 49a7f38..ce565b8 100644 --- a/src/utils/utils.cpp +++ b/src/utils/utils.cpp @@ -9,58 +9,6 @@ void print(std::string& _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 << (int)(_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 << ","; - } -} - } // namespace GnssUtils bool operator==(const gtime_t& time1, const gtime_t& time2) -- GitLab