-
Pep Martí Saumell authoredPep Martí Saumell authored
utils.cpp 5.19 KiB
#include "gnss_utils/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 << (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 << ",";
}
}
bool equalTime(const gtime_t& time1, const gtime_t& time2)
{
return (difftime(time1.time, time2.time) == 0.0 && time1.sec == time2.sec);
}
bool equalObservations(const obsd_t& obs1, const obsd_t& obs2)
{
if (!equalTime(obs1.time, obs2.time))
return false;
if (!equalTime(obs1.eventime, obs2.eventime))
return false;
if (obs1.timevalid != obs2.timevalid)
return false;
if (obs1.sat != obs2.sat)
return false;
if (obs1.rcv != obs2.rcv)
return false;
if (memcmp(obs1.SNR, obs2.SNR, sizeof(obs1.SNR)) != 0)
return false;
if (memcmp(obs1.LLI, obs2.LLI, sizeof(obs1.LLI)) != 0)
return false;
if (memcmp(obs1.code, obs2.code, sizeof(obs1.code)) != 0)
return false;
if (memcmp(obs1.qualL, obs2.qualL, sizeof(obs1.qualL)) != 0)
return false;
if (memcmp(obs1.qualP, obs2.qualP, sizeof(obs1.qualP)) != 0)
return false;
if (obs1.freq != obs2.freq)
return false;
if (!equalArray<double>(obs1.L, obs2.L, ARRAY_SIZE(obs1.L), ARRAY_SIZE(obs2.L)))
return false;
if (!equalArray<double>(obs1.P, obs2.P, ARRAY_SIZE(obs1.P), ARRAY_SIZE(obs2.P)))
return false;
if (!equalArray<float>(obs1.D, obs2.D, ARRAY_SIZE(obs1.D), ARRAY_SIZE(obs2.D)))
return false;
return true;
}
bool equalObservations(const obs_t& obs1, const obs_t& obs2)
{
if (obs1.n != obs2.n)
return false;
if (obs1.nmax != obs2.nmax)
return false;
if (obs1.flag != obs2.flag)
return false;
if (obs1.rcvcount != obs2.rcvcount)
return false;
if (obs1.tmcount != obs2.tmcount)
return false;
if (!equalObservations(*(obs1.data), *(obs2.data)))
return false;
return true;
}
bool equalNavigation(const nav_t& nav1, const nav_t& nav2)
{
if (nav1.n != nav2.n)
return false;
if (nav1.nmax != nav2.nmax)
return false;
if (nav1.ng != nav2.ng)
return false;
if (nav1.ngmax != nav2.ngmax)
return false;
if (nav1.ns != nav2.ns)
return false;
if (nav1.nsmax != nav2.nsmax)
return false;
if (nav1.ne != nav2.ne)
return false;
if (nav1.nemax != nav2.nemax)
return false;
if (nav1.nc != nav2.nc)
return false;
if (nav1.ncmax != nav2.ncmax)
return false;
if (nav1.na != nav2.na)
return false;
if (nav1.namax != nav2.namax)
return false;
if (nav1.nt != nav2.nt)
return false;
if (nav1.ntmax != nav2.ntmax)
return false;
if (nav1.nf != nav2.nf)
return false;
if (nav1.nfmax != nav2.nfmax)
return false;
// eph
// geph
// seph
// peph
// pclk
// alm
// tec
// fcb
// erp
if (!equalArray<double>(nav1.utc_gps, nav2.utc_gps, ARRAY_SIZE(nav1.utc_gps), ARRAY_SIZE(nav2.utc_gps)))
return false;
if (!equalArray<double>(nav1.utc_glo, nav2.utc_glo, ARRAY_SIZE(nav1.utc_glo), ARRAY_SIZE(nav2.utc_glo)))
return false;
if (!equalArray<double>(nav1.utc_gal, nav2.utc_gal, ARRAY_SIZE(nav1.utc_gal), ARRAY_SIZE(nav2.utc_gal)))
return false;
if (!equalArray<double>(nav1.utc_qzs, nav2.utc_qzs, ARRAY_SIZE(nav1.utc_qzs), ARRAY_SIZE(nav2.utc_qzs)))
return false;
if (!equalArray<double>(nav1.utc_cmp, nav2.utc_cmp, ARRAY_SIZE(nav1.utc_cmp), ARRAY_SIZE(nav2.utc_cmp)))
return false;
if (!equalArray<double>(nav1.utc_irn, nav2.utc_irn, ARRAY_SIZE(nav1.utc_irn), ARRAY_SIZE(nav2.utc_irn)))
return false;
if (!equalArray<double>(nav1.utc_sbs, nav2.utc_sbs, ARRAY_SIZE(nav1.utc_sbs), ARRAY_SIZE(nav2.utc_sbs)))
return false;
if (!equalArray<double>(nav1.ion_gps, nav2.ion_gps, ARRAY_SIZE(nav1.ion_gps), ARRAY_SIZE(nav2.ion_gps)))
return false;
if (!equalArray<double>(nav1.ion_gal, nav2.ion_gal, ARRAY_SIZE(nav1.ion_gal), ARRAY_SIZE(nav2.ion_gal)))
return false;
if (!equalArray<double>(nav1.ion_qzs, nav2.ion_qzs, ARRAY_SIZE(nav1.ion_qzs), ARRAY_SIZE(nav2.ion_qzs)))
return false;
if (!equalArray<double>(nav1.ion_cmp, nav2.ion_cmp, ARRAY_SIZE(nav1.ion_cmp), ARRAY_SIZE(nav2.ion_cmp)))
return false;
if (!equalArray<double>(nav1.ion_irn, nav2.ion_irn, ARRAY_SIZE(nav1.ion_irn), ARRAY_SIZE(nav2.ion_irn)))
return false;
if (nav1.leaps != nav2.leaps)
return false;
}
} // namespace GnssUtils