diff --git a/include/gnss_utils/utils/utils.h b/include/gnss_utils/utils/utils.h index 06eba1b1861a2b9a82ee7272fc7743f7810a234c..a107051641c6063ebfd6383e0682a741d8d6b605 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 8e5864c644b561b3d328262f25a89fe2999f068d..0ca80fd9e9612ec569a9e295375a40cbb3e76748 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 49a7f38dcc83cf51ce95897a1d0ba89a29918d27..ce565b86ceed99855aefb54358ec006b38a41c90 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)