mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-02-23 14:30:08 +00:00
Generate RINEX and HAS outputs for GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B receiver
This commit is contained in:
parent
fe3d704c9d
commit
f0c6a7184a
@ -412,6 +412,10 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
|
|||||||
{
|
{
|
||||||
pvt_output_parameters.type_of_receiver = 107; // GPS L1 C/A + Galileo E6B
|
pvt_output_parameters.type_of_receiver = 107; // GPS L1 C/A + Galileo E6B
|
||||||
}
|
}
|
||||||
|
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 = 108; // GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
|
}
|
||||||
// BeiDou B1I Receiver
|
// BeiDou B1I Receiver
|
||||||
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))
|
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))
|
||||||
{
|
{
|
||||||
|
@ -434,7 +434,7 @@ rtklib_pvt_gs::rtklib_pvt_gs(uint32_t nchannels,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Initialize HAS simple printer
|
// Initialize HAS simple printer
|
||||||
d_enable_has_messages = (((d_type_of_rx >= 100) && (d_type_of_rx < 107)) && (conf_.output_enabled));
|
d_enable_has_messages = (((d_type_of_rx >= 100) && (d_type_of_rx < 109)) && (conf_.output_enabled));
|
||||||
if (d_enable_has_messages)
|
if (d_enable_has_messages)
|
||||||
{
|
{
|
||||||
d_has_simple_printer = std::make_unique<Has_Simple_Printer>();
|
d_has_simple_printer = std::make_unique<Has_Simple_Printer>();
|
||||||
|
@ -724,6 +724,20 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
|
|||||||
d_rinex_header_written = true; // do not write header anymore
|
d_rinex_header_written = true; // do not write header anymore
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 108: // GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
|
if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) and
|
||||||
|
(gps_ephemeris_iter != pvt_solver->gps_ephemeris_map.cend()) and
|
||||||
|
(gps_cnav_ephemeris_iter != pvt_solver->gps_cnav_ephemeris_map.cend()))
|
||||||
|
{
|
||||||
|
const std::string gal_signal("1B 5X E6");
|
||||||
|
const std::string gps_signal("1C L5");
|
||||||
|
rinex_obs_header(obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, rx_time, gps_signal, gal_signal);
|
||||||
|
rinex_nav_header(navMixFile, pvt_solver->gps_iono, pvt_solver->gps_utc_model, gps_ephemeris_iter->second, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
|
||||||
|
output_navfilename.push_back(navMixfilename);
|
||||||
|
log_rinex_nav(navMixFile, pvt_solver->gps_ephemeris_map, pvt_solver->galileo_ephemeris_map);
|
||||||
|
d_rinex_header_written = true; // do not write header anymore
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 500: // BDS B1I only
|
case 500: // BDS B1I only
|
||||||
if (beidou_dnav_ephemeris_iter != pvt_solver->beidou_dnav_ephemeris_map.cend())
|
if (beidou_dnav_ephemeris_iter != pvt_solver->beidou_dnav_ephemeris_map.cend())
|
||||||
{
|
{
|
||||||
@ -1237,7 +1251,33 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 108: // GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
|
if (gps_ephemeris_iter != pvt_solver->gps_ephemeris_map.cend())
|
||||||
|
{
|
||||||
|
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
|
||||||
|
{
|
||||||
|
// we have Galileo ephemeris, maybe from assistance
|
||||||
|
log_rinex_obs(obsFile, gps_ephemeris_iter->second, galileo_ephemeris_iter->second, rx_time, gnss_observables_map);
|
||||||
|
if (!d_rinex_header_updated && (pvt_solver->gps_utc_model.A0 != 0))
|
||||||
|
{
|
||||||
|
update_obs_header(obsFile, pvt_solver->gps_utc_model);
|
||||||
|
update_nav_header(navMixFile, pvt_solver->gps_iono, pvt_solver->gps_utc_model, gps_ephemeris_iter->second, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
|
||||||
|
d_rinex_header_updated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// we do not have galileo ephemeris, print only GPS data
|
||||||
|
log_rinex_obs(obsFile, gps_ephemeris_iter->second, rx_time, gnss_observables_map);
|
||||||
|
if (!d_rinex_header_updated && (pvt_solver->gps_utc_model.A0 != 0))
|
||||||
|
{
|
||||||
|
update_obs_header(obsFile, pvt_solver->gps_utc_model);
|
||||||
|
update_nav_header(navFile, pvt_solver->gps_utc_model, pvt_solver->gps_iono, gps_ephemeris_iter->second);
|
||||||
|
d_rinex_header_updated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 500: // BDS B1I only
|
case 500: // BDS B1I only
|
||||||
if (beidou_dnav_ephemeris_iter != pvt_solver->beidou_dnav_ephemeris_map.cend())
|
if (beidou_dnav_ephemeris_iter != pvt_solver->beidou_dnav_ephemeris_map.cend())
|
||||||
@ -1374,6 +1414,16 @@ void Rinex_Printer::log_rinex_nav_gps_nav(int type_of_rx, const std::map<int32_t
|
|||||||
log_rinex_nav(navFile, new_eph);
|
log_rinex_nav(navFile, new_eph);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 108: // GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
|
if (navMixFile.tellp() != 0)
|
||||||
|
{
|
||||||
|
log_rinex_nav(navMixFile, new_eph, new_gal_eph);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_rinex_nav(navFile, new_eph);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 1000: // L1+L2+L5
|
case 1000: // L1+L2+L5
|
||||||
log_rinex_nav(navFile, new_eph);
|
log_rinex_nav(navFile, new_eph);
|
||||||
break;
|
break;
|
||||||
@ -1437,6 +1487,12 @@ void Rinex_Printer::log_rinex_nav_gal_nav(int type_of_rx, const std::map<int32_t
|
|||||||
log_rinex_nav(navMixFile, new_eph, new_gal_eph);
|
log_rinex_nav(navMixFile, new_eph, new_gal_eph);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 108: // GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
|
if (navMixFile.tellp() != 0)
|
||||||
|
{
|
||||||
|
log_rinex_nav(navMixFile, new_eph, new_gal_eph);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 1001: // L1+E1+L2+L5+E5a
|
case 1001: // L1+E1+L2+L5+E5a
|
||||||
log_rinex_nav(navMixFile, new_eph, new_gal_eph);
|
log_rinex_nav(navMixFile, new_eph, new_gal_eph);
|
||||||
break;
|
break;
|
||||||
|
@ -144,6 +144,7 @@ public:
|
|||||||
* 105 | Galileo E1B + Galileo E5b + Galileo E6B
|
* 105 | Galileo E1B + Galileo E5b + Galileo E6B
|
||||||
* 106 | GPS L1 C/A + Galileo E1B + Galileo E6B
|
* 106 | GPS L1 C/A + Galileo E1B + Galileo E6B
|
||||||
* 107 | GPS L1 C/A + Galileo E6B
|
* 107 | GPS L1 C/A + Galileo E6B
|
||||||
|
* 108 | GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
* 500 | BeiDou B1I
|
* 500 | BeiDou B1I
|
||||||
* 501 | BeiDou B1I + GPS L1 C/A
|
* 501 | BeiDou B1I + GPS L1 C/A
|
||||||
* 502 | BeiDou B1I + Galileo E1B
|
* 502 | BeiDou B1I + Galileo E1B
|
||||||
|
@ -128,6 +128,10 @@ Rtklib_Solver::Rtklib_Solver(const rtk_t &rtk,
|
|||||||
d_rtklib_band_index["E6"] = 1;
|
d_rtklib_band_index["E6"] = 1;
|
||||||
d_rtklib_freq_index[1] = 3;
|
d_rtklib_freq_index[1] = 3;
|
||||||
break;
|
break;
|
||||||
|
case 108: // GPS L1 C/A + Galileo E1B + GPS L5 + Galileo E5a + Galileo E6B
|
||||||
|
d_rtklib_band_index["E6"] = 2;
|
||||||
|
d_rtklib_freq_index[2] = 3;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
// auto empty_map = std::map < int, HAS_obs_corrections >> ();
|
// auto empty_map = std::map < int, HAS_obs_corrections >> ();
|
||||||
// d_has_obs_corr_map["L1 C/A"] = empty_map;
|
// d_has_obs_corr_map["L1 C/A"] = empty_map;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user