Give more natural, consistent names to ephemeris / iono / utc parameters exposed outside the receiver via XML files

Create a base class for GPS, Galileo and BeiDou ephemeris, allowing to remove some duplicated code

Use BOOST_SERIALIZATION_NVP macro, less error prone than boost::serialization::make_nvp

Update .xsd files
This commit is contained in:
Carles Fernandez
2021-02-21 00:01:56 +01:00
parent c0796f416d
commit 7971565a0d
68 changed files with 3012 additions and 3764 deletions
@@ -143,7 +143,7 @@ TEST_F(RinexPrinterTest, GalileoObsHeader)
{
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
auto eph = Galileo_Ephemeris();
eph.i_satellite_PRN = 1;
eph.PRN = 1;
pvt_solution->galileo_ephemeris_map[1] = eph;
std::map<int, Gnss_Synchro> gnss_observables_map;
@@ -229,7 +229,7 @@ TEST_F(RinexPrinterTest, GlonassObsHeader)
{
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
auto eph = Glonass_Gnav_Ephemeris();
eph.i_satellite_PRN = 1;
eph.PRN = 1;
pvt_solution->glonass_gnav_ephemeris_map[1] = eph;
std::map<int, Gnss_Synchro> gnss_observables_map;
@@ -285,8 +285,8 @@ TEST_F(RinexPrinterTest, MixedObsHeader)
bool no_more_finds = false;
auto eph_gal = Galileo_Ephemeris();
auto eph_gps = Gps_Ephemeris();
eph_gal.i_satellite_PRN = 1;
eph_gps.i_satellite_PRN = 1;
eph_gal.PRN = 1;
eph_gps.PRN = 1;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->galileo_ephemeris_map[1] = eph_gal;
@@ -355,8 +355,8 @@ TEST_F(RinexPrinterTest, MixedObsHeaderGpsGlo)
bool no_more_finds = false;
auto eph_glo = Glonass_Gnav_Ephemeris();
auto eph_gps = Gps_Ephemeris();
eph_glo.i_satellite_PRN = 1;
eph_gps.i_satellite_PRN = 1;
eph_glo.PRN = 1;
eph_gps.PRN = 1;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->glonass_gnav_ephemeris_map[1] = eph_glo;
@@ -423,7 +423,7 @@ TEST_F(RinexPrinterTest, GalileoObsLog)
std::string line_str;
bool no_more_finds = false;
auto eph = Galileo_Ephemeris();
eph.i_satellite_PRN = 1;
eph.PRN = 1;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->galileo_ephemeris_map[1] = eph;
std::map<int, Gnss_Synchro> gnss_observables_map;
@@ -503,7 +503,7 @@ TEST_F(RinexPrinterTest, GlonassObsLog)
std::string line_str;
bool no_more_finds = false;
auto eph = Glonass_Gnav_Ephemeris();
eph.i_satellite_PRN = 22;
eph.PRN = 22;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->glonass_gnav_ephemeris_map[1] = eph;
std::map<int, Gnss_Synchro> gnss_observables_map;
@@ -584,8 +584,8 @@ TEST_F(RinexPrinterTest, GpsObsLogDualBand)
bool no_more_finds = false;
auto eph = Gps_Ephemeris();
auto eph_cnav = Gps_CNAV_Ephemeris();
eph.i_satellite_PRN = 1;
eph_cnav.i_satellite_PRN = 1;
eph.PRN = 1;
eph_cnav.PRN = 1;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->gps_ephemeris_map[1] = eph;
pvt_solution->gps_cnav_ephemeris_map[1] = eph_cnav;
@@ -676,7 +676,7 @@ TEST_F(RinexPrinterTest, GalileoObsLogDualBand)
{
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
auto eph = Galileo_Ephemeris();
eph.i_satellite_PRN = 1;
eph.PRN = 1;
pvt_solution->galileo_ephemeris_map[1] = eph;
std::map<int, Gnss_Synchro> gnss_observables_map;
@@ -772,8 +772,8 @@ TEST_F(RinexPrinterTest, MixedObsLog)
bool no_more_finds = false;
auto eph_gps = Gps_Ephemeris();
auto eph_gal = Galileo_Ephemeris();
eph_gps.i_satellite_PRN = 1;
eph_gal.i_satellite_PRN = 1;
eph_gps.PRN = 1;
eph_gal.PRN = 1;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->gps_ephemeris_map[1] = eph_gps;
pvt_solution->galileo_ephemeris_map[1] = eph_gal;
@@ -896,8 +896,8 @@ TEST_F(RinexPrinterTest, MixedObsLogGpsGlo)
bool no_more_finds = false;
auto eph_gps = Gps_Ephemeris();
auto eph_glo = Glonass_Gnav_Ephemeris();
eph_gps.i_satellite_PRN = 1;
eph_glo.i_satellite_PRN = 1;
eph_gps.PRN = 1;
eph_glo.PRN = 1;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, 12, "filename", false, false);
pvt_solution->gps_ephemeris_map[1] = eph_gps;
pvt_solution->glonass_gnav_ephemeris_map[1] = eph_glo;
@@ -247,16 +247,16 @@ TEST(RtcmTest, MT1019)
Gps_Ephemeris gps_eph = Gps_Ephemeris();
Gps_Ephemeris gps_eph_read = Gps_Ephemeris();
gps_eph.i_satellite_PRN = 3;
gps_eph.d_IODC = 4;
gps_eph.d_e_eccentricity = 2.0 * ECCENTRICITY_LSB;
gps_eph.PRN = 3;
gps_eph.IODC = 4;
gps_eph.ecc = 2.0 * ECCENTRICITY_LSB;
gps_eph.b_fit_interval_flag = true;
std::string tx_msg = rtcm->print_MT1019(gps_eph);
EXPECT_EQ(0, rtcm->read_MT1019(tx_msg, gps_eph_read));
EXPECT_EQ(static_cast<unsigned int>(3), gps_eph_read.i_satellite_PRN);
EXPECT_DOUBLE_EQ(4, gps_eph_read.d_IODC);
EXPECT_DOUBLE_EQ(2.0 * ECCENTRICITY_LSB, gps_eph_read.d_e_eccentricity);
EXPECT_EQ(static_cast<unsigned int>(3), gps_eph_read.PRN);
EXPECT_DOUBLE_EQ(4, gps_eph_read.IODC);
EXPECT_DOUBLE_EQ(2.0 * ECCENTRICITY_LSB, gps_eph_read.ecc);
EXPECT_EQ(expected_true, gps_eph_read.b_fit_interval_flag);
EXPECT_EQ(1, rtcm->read_MT1019(rtcm->bin_to_binary_data(rtcm->hex_to_bin("FFFFFFFFFFF")), gps_eph_read));
}
@@ -322,16 +322,16 @@ TEST(RtcmTest, MT1045)
Galileo_Ephemeris gal_eph = Galileo_Ephemeris();
Galileo_Ephemeris gal_eph_read = Galileo_Ephemeris();
gal_eph.i_satellite_PRN = 5;
gal_eph.OMEGA_dot_3 = 53.0 * OMEGA_DOT_3_LSB;
gal_eph.PRN = 5;
gal_eph.OMEGAdot = 53.0 * OMEGA_DOT_3_LSB;
gal_eph.E5a_DVS = true;
std::string tx_msg = rtcm->print_MT1045(gal_eph);
EXPECT_EQ(0, rtcm->read_MT1045(tx_msg, gal_eph_read));
EXPECT_EQ(expected_true, gal_eph_read.E5a_DVS);
EXPECT_DOUBLE_EQ(53.0 * OMEGA_DOT_3_LSB, gal_eph_read.OMEGA_dot_3);
EXPECT_EQ(static_cast<unsigned int>(5), gal_eph_read.i_satellite_PRN);
EXPECT_DOUBLE_EQ(53.0 * OMEGA_DOT_3_LSB, gal_eph_read.OMEGAdot);
EXPECT_EQ(static_cast<unsigned int>(5), gal_eph_read.PRN);
EXPECT_EQ(1, rtcm->read_MT1045(rtcm->bin_to_binary_data(rtcm->hex_to_bin("FFFFFFFFFFF")), gal_eph_read));
}
@@ -402,9 +402,9 @@ TEST(RtcmTest, MSMCell)
bool more_messages = false;
double obs_time = 25.0;
gps_eph.i_satellite_PRN = gnss_synchro2.PRN;
gal_eph.i_satellite_PRN = gnss_synchro.PRN;
// glo_gnav_eph.i_satellite_PRN = gnss_synchro.PRN;
gps_eph.PRN = gnss_synchro2.PRN;
gal_eph.PRN = gnss_synchro.PRN;
// glo_gnav_eph.PRN = gnss_synchro.PRN;
std::string MSM1 = rtcm->print_MSM_1(gps_eph,
{},
@@ -529,7 +529,7 @@ TEST(RtcmTest, MSM1)
bool more_messages = false;
double obs_time = 25.0;
gps_eph.i_satellite_PRN = gnss_synchro.PRN;
gps_eph.PRN = gnss_synchro.PRN;
std::string MSM1 = rtcm->print_MSM_1(gps_eph,
{}, {}, {},