From cc71d0e1a8c0532d3cda7f74883a2d7224376b68 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 17 Oct 2018 19:17:37 +0200 Subject: [PATCH] Add reading of CNAV ephemeris (L2C and L5 signals) --- src/core/receiver/control_thread.cc | 18 ++++++++++++++++-- src/core/receiver/control_thread.h | 2 ++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/core/receiver/control_thread.cc b/src/core/receiver/control_thread.cc index cab08ccb7..32a816e5e 100644 --- a/src/core/receiver/control_thread.cc +++ b/src/core/receiver/control_thread.cc @@ -203,6 +203,8 @@ bool ControlThread::read_assistance_from_XML() std::string iono_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_iono_xml", iono_default_xml_filename); std::string ref_time_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ref_time_xml", ref_time_default_xml_filename); std::string ref_location_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_ref_location_xml", ref_location_default_xml_filename); + std::string eph_gal_xml_filename = configuration_->property("GNSS-SDR.SUPL_gal_ephemeris_xml", eph_gal_default_xml_filename); + std::string eph_cnav_xml_filename = configuration_->property("GNSS-SDR.SUPL_gps_cnav_ephemeris_xml", eph_cnav_default_xml_filename); std::cout << "SUPL: Try read GNSS ephemeris from XML file " << eph_xml_filename << std::endl; if (supl_client_ephemeris_.load_ephemeris_xml(eph_xml_filename) == true) @@ -218,7 +220,7 @@ bool ControlThread::read_assistance_from_XML() } ret = true; } - else if (supl_client_ephemeris_.load_ephemeris_xml(eph_xml_filename) == true) + else if (supl_client_ephemeris_.load_gal_ephemeris_xml(eph_gal_xml_filename) == true) { std::map::const_iterator gal_eph_iter; for (gal_eph_iter = supl_client_ephemeris_.gal_ephemeris_map.cbegin(); @@ -231,7 +233,19 @@ bool ControlThread::read_assistance_from_XML() } ret = true; } - + else if (supl_client_ephemeris_.load_cnav_ephemeris_xml(eph_cnav_xml_filename) == true) + { + std::map::const_iterator gps_cnav_eph_iter; + for (gps_cnav_eph_iter = supl_client_ephemeris_.gps_cnav_ephemeris_map.cbegin(); + gps_cnav_eph_iter != supl_client_ephemeris_.gps_cnav_ephemeris_map.cend(); + gps_cnav_eph_iter++) + { + std::cout << "SUPL: Read XML CNAV Ephemeris for GPS SV " << gps_cnav_eph_iter->first << std::endl; + std::shared_ptr tmp_obj = std::make_shared(gps_cnav_eph_iter->second); + flowgraph_->send_telemetry_msg(pmt::make_any(tmp_obj)); + } + ret = true; + } else { std::cout << "ERROR: SUPL client error reading XML" << std::endl; diff --git a/src/core/receiver/control_thread.h b/src/core/receiver/control_thread.h index c49ddba53..d4f1dccf3 100644 --- a/src/core/receiver/control_thread.h +++ b/src/core/receiver/control_thread.h @@ -167,6 +167,8 @@ private: const std::string iono_default_xml_filename = "./gps_iono.xml"; const std::string ref_time_default_xml_filename = "./gps_ref_time.xml"; const std::string ref_location_default_xml_filename = "./gps_ref_location.xml"; + const std::string eph_gal_default_xml_filename = "./gal_ephemeris.xml"; + const std::string eph_cnav_default_xml_filename = "./gps_cnav_ephemeris.xml"; }; #endif /*GNSS_SDR_CONTROL_THREAD_H_*/