1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-06-23 13:33:15 +00:00

Merge branch 'rinex-triple' into next

This commit is contained in:
Carles Fernandez 2019-09-13 17:52:10 +02:00
commit a4593a86bb
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
2 changed files with 68 additions and 0 deletions

View File

@ -383,6 +383,14 @@ Rtklib_Pvt::Rtklib_Pvt(ConfigurationInterface* configuration,
{
pvt_output_parameters.type_of_receiver = 603; // Beidou B3I + GPS L2C + GLONASS L2 C/A
}
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) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0))
{
pvt_output_parameters.type_of_receiver = 1000; // GPS L1 + GPS L2C + GPS L5
}
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) && (glo_1G_count == 0) && (glo_2G_count == 0) && (bds_B1_count == 0) && (bds_B3_count == 0))
{
pvt_output_parameters.type_of_receiver = 1001; // GPS L1 + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a
}
// RTKLIB PVT solver options
// Settings 1

View File

@ -1111,6 +1111,12 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
case 33: // L1+E1+E5a
rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph);
break;
case 1000: // L1+L2+L5
rp->log_rinex_nav(rp->navFile, new_eph);
break;
case 1001: // L1+E1+L2+L5+E5a
rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph);
break;
default:
break;
}
@ -1301,6 +1307,9 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
case 33: // L1+E1+E5a
rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph);
break;
case 1001: // L1+E1+L2+L5+E5a
rp->log_rinex_nav(rp->navMixFile, new_eph, new_gal_eph);
break;
default:
break;
}
@ -2239,6 +2248,8 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
* 608 | BeiDou B3I + GPS L1 C/A + Galileo E1B + BeiDou B1I
* 609 | BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A
* 610 | BeiDou B3I + GPS L1 C/A + Galileo E1B + GLONASS L1 C/A + BeiDou B1I
* 1000 | GPS L1 C/A + GPS L2C + GPS L5
* 1001 | GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a
*/
// ####################### RINEX FILES #################
@ -2633,6 +2644,28 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
}
break;
case 1000: // GPS L1 C/A + GPS L2C + GPS L5
if ((gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()) and
(gps_cnav_ephemeris_iter != d_user_pvt_solver->gps_cnav_ephemeris_map.cend()))
{
std::string gps_signal("1C 2S L5");
rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, d_rx_time, gps_signal);
rp->rinex_nav_header(rp->navFile, d_user_pvt_solver->gps_iono, d_user_pvt_solver->gps_utc_model, gps_ephemeris_iter->second);
b_rinex_header_written = true; // do not write header anymore
}
break;
case 1001: // GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a
if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()) and
(gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()) and
(gps_cnav_ephemeris_iter != d_user_pvt_solver->gps_cnav_ephemeris_map.cend()))
{
std::string gal_signal("1B 5X");
std::string gps_signal("1C 2S L5");
rp->rinex_obs_header(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gps_signal, gal_signal);
rp->rinex_nav_header(rp->navMixFile, d_user_pvt_solver->gps_iono, d_user_pvt_solver->gps_utc_model, gps_ephemeris_iter->second, d_user_pvt_solver->galileo_iono, d_user_pvt_solver->galileo_utc_model);
b_rinex_header_written = true; // do not write header anymore
}
break;
default:
break;
}
@ -2954,6 +2987,33 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
b_rinex_header_updated = true;
}
break;
case 1000: // GPS L1 C/A + GPS L2C + GPS L5
if ((gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()) and
(gps_cnav_ephemeris_iter != d_user_pvt_solver->gps_cnav_ephemeris_map.cend()))
{
rp->log_rinex_obs(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, d_rx_time, gnss_observables_map);
}
if (!b_rinex_header_updated and (d_user_pvt_solver->gps_utc_model.d_A0 != 0))
{
rp->update_obs_header(rp->obsFile, d_user_pvt_solver->gps_utc_model);
rp->update_nav_header(rp->navFile, d_user_pvt_solver->gps_utc_model, d_user_pvt_solver->gps_iono, gps_ephemeris_iter->second);
b_rinex_header_updated = true;
}
break;
case 1001: // GPS L1 C/A + Galileo E1B + GPS L2C + GPS L5 + Galileo E5a
if ((galileo_ephemeris_iter != d_user_pvt_solver->galileo_ephemeris_map.cend()) and
(gps_ephemeris_iter != d_user_pvt_solver->gps_ephemeris_map.cend()) and
(gps_cnav_ephemeris_iter != d_user_pvt_solver->gps_cnav_ephemeris_map.cend()))
{
rp->log_rinex_obs(rp->obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, d_rx_time, gnss_observables_map);
}
if (!b_rinex_header_updated and (d_user_pvt_solver->gps_utc_model.d_A0 != 0) and (d_user_pvt_solver->galileo_utc_model.A0_6 != 0))
{
rp->update_obs_header(rp->obsFile, d_user_pvt_solver->gps_utc_model);
rp->update_nav_header(rp->navMixFile, d_user_pvt_solver->gps_iono, d_user_pvt_solver->gps_utc_model, gps_ephemeris_iter->second, d_user_pvt_solver->galileo_iono, d_user_pvt_solver->galileo_utc_model);
b_rinex_header_updated = true;
}
break;
default:
break;
}