Write HAS data file at PVT.output_path

This commit is contained in:
Carles Fernandez 2023-11-09 08:53:29 +01:00
parent f0c6a7184a
commit fcfc851aa5
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
4 changed files with 13 additions and 24 deletions

View File

@ -861,6 +861,7 @@ Rtklib_Pvt::Rtklib_Pvt(const ConfigurationInterface* configuration,
pvt_output_parameters.xml_output_path = configuration->property(role + ".xml_output_path", default_output_path);
pvt_output_parameters.nmea_output_file_path = configuration->property(role + ".nmea_output_file_path", default_output_path);
pvt_output_parameters.rtcm_output_file_path = configuration->property(role + ".rtcm_output_file_path", default_output_path);
pvt_output_parameters.has_output_file_path = configuration->property(role + ".has_output_file_path", default_output_path);
// Read PVT MONITOR Configuration
pvt_output_parameters.monitor_enabled = configuration->property(role + ".enable_monitor", false);

View File

@ -437,7 +437,7 @@ rtklib_pvt_gs::rtklib_pvt_gs(uint32_t nchannels,
d_enable_has_messages = (((d_type_of_rx >= 100) && (d_type_of_rx < 109)) && (conf_.output_enabled));
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>(conf_.has_output_file_path);
}
else
{

View File

@ -46,6 +46,7 @@ public:
std::string kml_output_path = std::string(".");
std::string xml_output_path = std::string(".");
std::string rtcm_output_file_path = std::string(".");
std::string has_output_file_path = std::string(".");
std::string udp_addresses;
std::string udp_eph_addresses;
std::string log_source_timetag_file;

View File

@ -1253,30 +1253,17 @@ 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()) and
(gps_ephemeris_iter != pvt_solver->gps_ephemeris_map.cend()) and
(gps_cnav_ephemeris_iter != pvt_solver->gps_cnav_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;
}
}
log_rinex_obs(obsFile, gps_ephemeris_iter->second, gps_cnav_ephemeris_iter->second, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, true);
}
if (!d_rinex_header_updated && (pvt_solver->gps_utc_model.A0 != 0) && (pvt_solver->galileo_utc_model.A0 != 0) && (gps_ephemeris_iter != pvt_solver->gps_ephemeris_map.cend()))
{
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;
}
break;
case 500: // BDS B1I only