diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc index 32d94a2f6..08e388299 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.cc +++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc @@ -173,6 +173,8 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration, * 15 | Galileo E1B + Galileo E5b * 16 | GPS L2C + GPS L5 * 17 | GPS L2C + Galileo E5a + * 18 | GPS L2C + Galileo E5b + * 19 | Galileo E5a + Galileo E5b * 20 | GPS L5 + Galileo E5b * 21 | GPS L1 C/A + Galileo E1B + GPS L2C * 22 | GPS L1 C/A + Galileo E1B + GPS L5 @@ -302,10 +304,16 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration, } if ((gps_1C_count == 0) && (gps_2S_count != 0) && (gps_L5_count == 0) && (gal_1B_count == 0) && (gal_E5a_count == 0) && (gal_E5b_count != 0) && (gal_E6_count == 0) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0)) { - pvt_output_parameters.type_of_receiver = 18; + pvt_output_parameters.type_of_receiver = 18; // GPS L2C + Galileo E5b + } + if ((gps_1C_count == 0) && (gps_2S_count == 0) && (gps_L5_count == 0) && (gal_1B_count == 0) && (gal_E5a_count != 0) && (gal_E5b_count != 0) && (gal_E6_count == 0) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0)) + { + pvt_output_parameters.type_of_receiver = 19; // Galileo E5a + Galileo E5b + } + if ((gps_1C_count == 0) && (gps_2S_count == 0) && (gps_L5_count != 0) && (gal_1B_count == 0) && (gal_E5a_count == 0) && (gal_E5b_count != 0) && (gal_E6_count == 0) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0)) + { + pvt_output_parameters.type_of_receiver = 20; // GPS L5 + Galileo E5b } - // if( (gps_1C_count == 0) && (gps_2S_count == 0) && (gps_L5_count == 0) && (gal_1B_count == 0) && (gal_E5a_count == 0) && (gal_E5b_count == 0) && (gal_E6_count == 0)) pvt_output_parameters.type_of_receiver = 19; - // if( (gps_1C_count == 0) && (gps_2S_count == 0) && (gps_L5_count == 0) && (gal_1B_count == 0) && (gal_E5a_count == 0) && (gal_E5b_count == 0) && (gal_E6_count == 0)) pvt_output_parameters.type_of_receiver = 20; if ((gps_1C_count != 0) && (gps_2S_count != 0) && (gps_L5_count == 0) && (gal_1B_count != 0) && (gal_E5a_count == 0) && (gal_E5b_count == 0) && (gal_E6_count == 0) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0)) { pvt_output_parameters.type_of_receiver = 21; // GPS L1 C/A + Galileo E1B + GPS L2C diff --git a/src/algorithms/PVT/libs/rinex_printer.cc b/src/algorithms/PVT/libs/rinex_printer.cc index 4a5e8c20c..8aaa838e2 100644 --- a/src/algorithms/PVT/libs/rinex_printer.cc +++ b/src/algorithms/PVT/libs/rinex_printer.cc @@ -470,6 +470,17 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons d_rinex_header_written = true; // do not write header anymore } break; + case 19: // Galileo E5a + Galileo E5b + if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())) + { + const std::string gal_signal("5X 7X"); + rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, gal_signal); + rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); + output_navfilename.push_back(navGalfilename); + log_rinex_nav(navGalFile, pvt_solver->galileo_ephemeris_map); + d_rinex_header_written = true; // do not write header anymore + } + break; case 23: // GLONASS L1 C/A only if (glonass_gnav_ephemeris_iter != pvt_solver->glonass_gnav_ephemeris_map.cend()) { @@ -949,6 +960,18 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons d_rinex_header_updated = true; } break; + case 19: // Galileo E5a + Galileo E5b + if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) + { + log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "5X 7X"); + } + if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0)) + { + update_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); + update_obs_header(obsFile, pvt_solver->galileo_utc_model); + d_rinex_header_updated = true; + } + break; case 23: // GLONASS L1 C/A only if (glonass_gnav_ephemeris_iter != pvt_solver->glonass_gnav_ephemeris_map.cend()) { @@ -1333,6 +1356,9 @@ void Rinex_Printer::log_rinex_nav_gal_nav(int type_of_rx, const std::map