diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.cc b/src/algorithms/PVT/adapters/rtklib_pvt.cc index 7491968a1..3c44c70a5 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.cc +++ b/src/algorithms/PVT/adapters/rtklib_pvt.cc @@ -711,7 +711,7 @@ Rtklib_Pvt::Rtklib_Pvt(ConfigurationInterface* configuration, pvt_output_parameters.udp_port = configuration->property(role + ".monitor_udp_port", 1234); // make PVT object - pvt_ = rtklib_make_pvt_cc(in_streams_, pvt_output_parameters, rtk); + pvt_ = rtklib_make_pvt_gs(in_streams_, pvt_output_parameters, rtk); DLOG(INFO) << "pvt(" << pvt_->unique_id() << ")"; if (out_streams_ > 0) { diff --git a/src/algorithms/PVT/adapters/rtklib_pvt.h b/src/algorithms/PVT/adapters/rtklib_pvt.h index ace356712..fd3fe7737 100644 --- a/src/algorithms/PVT/adapters/rtklib_pvt.h +++ b/src/algorithms/PVT/adapters/rtklib_pvt.h @@ -38,7 +38,7 @@ #include "gps_ephemeris.h" #include "pvt_interface.h" #include "rtklib.h" -#include "rtklib_pvt_cc.h" +#include "rtklib_pvt_gs.h" #include #include @@ -99,7 +99,7 @@ public: time_t* UTC_time) override; private: - rtklib_pvt_cc_sptr pvt_; + rtklib_pvt_gs_sptr pvt_; rtk_t rtk{}; std::string role_; unsigned int in_streams_; diff --git a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt index d59bac863..d6ec638a5 100644 --- a/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/PVT/gnuradio_blocks/CMakeLists.txt @@ -17,11 +17,11 @@ # set(PVT_GR_BLOCKS_SOURCES - rtklib_pvt_cc.cc + rtklib_pvt_gs.cc ) set(PVT_GR_BLOCKS_HEADERS - rtklib_pvt_cc.h + rtklib_pvt_gs.h ) source_group(Headers FILES ${PVT_GR_BLOCKS_HEADERS}) diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc similarity index 99% rename from src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc rename to src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc index c41a1989d..91dc9361e 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.cc +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.cc @@ -1,5 +1,5 @@ /*! - * \file rtklib_pvt_cc.cc + * \file rtklib_pvt_gs.cc * \brief Interface of a Position Velocity and Time computation block * \author Javier Arribas, 2017. jarribas(at)cttc.es * @@ -28,11 +28,11 @@ * ------------------------------------------------------------------------- */ -#include "rtklib_pvt_cc.h" #include "display.h" #include "galileo_almanac_helper.h" #include "gnss_sdr_create_directory.h" #include "pvt_conf.h" +#include "rtklib_pvt_gs.h" #include #include #include @@ -57,19 +57,19 @@ namespace bc = boost::integer; using google::LogMessage; -rtklib_pvt_cc_sptr rtklib_make_pvt_cc(uint32_t nchannels, +rtklib_pvt_gs_sptr rtklib_make_pvt_gs(uint32_t nchannels, const Pvt_Conf& conf_, const rtk_t& rtk) { - return rtklib_pvt_cc_sptr(new rtklib_pvt_cc(nchannels, + return rtklib_pvt_gs_sptr(new rtklib_pvt_gs(nchannels, conf_, rtk)); } -rtklib_pvt_cc::rtklib_pvt_cc(uint32_t nchannels, +rtklib_pvt_gs::rtklib_pvt_gs(uint32_t nchannels, const Pvt_Conf& conf_, - const rtk_t& rtk) : gr::sync_block("rtklib_pvt_cc", + const rtk_t& rtk) : gr::sync_block("rtklib_pvt_gs", gr::io_signature::make(nchannels, nchannels, sizeof(Gnss_Synchro)), gr::io_signature::make(0, 0, 0)) { @@ -118,7 +118,7 @@ rtklib_pvt_cc::rtklib_pvt_cc(uint32_t nchannels, // GPS Ephemeris data message port in this->message_port_register_in(pmt::mp("telemetry")); - this->set_msg_handler(pmt::mp("telemetry"), boost::bind(&rtklib_pvt_cc::msg_handler_telemetry, this, _1)); + this->set_msg_handler(pmt::mp("telemetry"), boost::bind(&rtklib_pvt_gs::msg_handler_telemetry, this, _1)); // initialize kml_printer std::string kml_dump_filename; @@ -336,7 +336,7 @@ rtklib_pvt_cc::rtklib_pvt_cc(uint32_t nchannels, } -rtklib_pvt_cc::~rtklib_pvt_cc() +rtklib_pvt_gs::~rtklib_pvt_gs() { msgctl(sysv_msqid, IPC_RMID, nullptr); try @@ -883,7 +883,7 @@ rtklib_pvt_cc::~rtklib_pvt_cc() } -void rtklib_pvt_cc::msg_handler_telemetry(const pmt::pmt_t& msg) +void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg) { try { @@ -1097,43 +1097,43 @@ void rtklib_pvt_cc::msg_handler_telemetry(const pmt::pmt_t& msg) } -std::map rtklib_pvt_cc::get_gps_ephemeris_map() const +std::map rtklib_pvt_gs::get_gps_ephemeris_map() const { return d_pvt_solver->gps_ephemeris_map; } -std::map rtklib_pvt_cc::get_gps_almanac_map() const +std::map rtklib_pvt_gs::get_gps_almanac_map() const { return d_pvt_solver->gps_almanac_map; } -std::map rtklib_pvt_cc::get_galileo_ephemeris_map() const +std::map rtklib_pvt_gs::get_galileo_ephemeris_map() const { return d_pvt_solver->galileo_ephemeris_map; } -std::map rtklib_pvt_cc::get_galileo_almanac_map() const +std::map rtklib_pvt_gs::get_galileo_almanac_map() const { return d_pvt_solver->galileo_almanac_map; } -std::map rtklib_pvt_cc::get_beidou_dnav_ephemeris_map() const +std::map rtklib_pvt_gs::get_beidou_dnav_ephemeris_map() const { return d_pvt_solver->beidou_dnav_ephemeris_map; } -std::map rtklib_pvt_cc::get_beidou_dnav_almanac_map() const +std::map rtklib_pvt_gs::get_beidou_dnav_almanac_map() const { return d_pvt_solver->beidou_dnav_almanac_map; } -void rtklib_pvt_cc::clear_ephemeris() +void rtklib_pvt_gs::clear_ephemeris() { d_pvt_solver->gps_ephemeris_map.clear(); d_pvt_solver->gps_almanac_map.clear(); @@ -1144,13 +1144,13 @@ void rtklib_pvt_cc::clear_ephemeris() } -bool rtklib_pvt_cc::observables_pairCompare_min(const std::pair& a, const std::pair& b) +bool rtklib_pvt_gs::observables_pairCompare_min(const std::pair& a, const std::pair& b) { return (a.second.Pseudorange_m) < (b.second.Pseudorange_m); } -bool rtklib_pvt_cc::send_sys_v_ttff_msg(ttff_msgbuf ttff) +bool rtklib_pvt_gs::send_sys_v_ttff_msg(ttff_msgbuf ttff) { // Fill Sys V message structures int msgsend_size; @@ -1166,7 +1166,7 @@ bool rtklib_pvt_cc::send_sys_v_ttff_msg(ttff_msgbuf ttff) } -bool rtklib_pvt_cc::save_gnss_synchro_map_xml(const std::string& file_name) +bool rtklib_pvt_gs::save_gnss_synchro_map_xml(const std::string& file_name) { if (gnss_observables_map.empty() == false) { @@ -1191,7 +1191,7 @@ bool rtklib_pvt_cc::save_gnss_synchro_map_xml(const std::string& file_name) } -bool rtklib_pvt_cc::load_gnss_synchro_map_xml(const std::string& file_name) +bool rtklib_pvt_gs::load_gnss_synchro_map_xml(const std::string& file_name) { // load from xml (boost serialize) std::ifstream ifs; @@ -1212,7 +1212,7 @@ bool rtklib_pvt_cc::load_gnss_synchro_map_xml(const std::string& file_name) } -std::vector rtklib_pvt_cc::split_string(const std::string& s, char delim) const +std::vector rtklib_pvt_gs::split_string(const std::string& s, char delim) const { std::vector v; std::stringstream ss(s); @@ -1227,7 +1227,7 @@ std::vector rtklib_pvt_cc::split_string(const std::string& s, char } -bool rtklib_pvt_cc::get_latest_PVT(double* longitude_deg, +bool rtklib_pvt_gs::get_latest_PVT(double* longitude_deg, double* latitude_deg, double* height_m, double* ground_speed_kmh, @@ -1250,7 +1250,7 @@ bool rtklib_pvt_cc::get_latest_PVT(double* longitude_deg, } -int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_items, +int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_items, gr_vector_void_star& output_items __attribute__((unused))) { for (int32_t epoch = 0; epoch < noutput_items; epoch++) diff --git a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.h similarity index 93% rename from src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h rename to src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.h index dbe2fe3eb..951dedacc 100644 --- a/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_cc.h +++ b/src/algorithms/PVT/gnuradio_blocks/rtklib_pvt_gs.h @@ -1,5 +1,5 @@ /*! - * \file rtklib_pvt_cc.h + * \file rtklib_pvt_gs.h * \brief Interface of a Position Velocity and Time computation block * \author Javier Arribas, 2017. jarribas(at)cttc.es * @@ -28,8 +28,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_RTKLIB_PVT_CC_H -#define GNSS_SDR_RTKLIB_PVT_CC_H +#ifndef GNSS_SDR_RTKLIB_PVT_GS_H +#define GNSS_SDR_RTKLIB_PVT_GS_H #include "beidou_dnav_almanac.h" #include "beidou_dnav_ephemeris.h" @@ -63,21 +63,21 @@ #include -class rtklib_pvt_cc; +class rtklib_pvt_gs; -using rtklib_pvt_cc_sptr = boost::shared_ptr; +using rtklib_pvt_gs_sptr = boost::shared_ptr; -rtklib_pvt_cc_sptr rtklib_make_pvt_cc(uint32_t nchannels, +rtklib_pvt_gs_sptr rtklib_make_pvt_gs(uint32_t nchannels, const Pvt_Conf& conf_, const rtk_t& rtk); /*! * \brief This class implements a block that computes the PVT solution using the RTKLIB integrated library */ -class rtklib_pvt_cc : public gr::sync_block +class rtklib_pvt_gs : public gr::sync_block { private: - friend rtklib_pvt_cc_sptr rtklib_make_pvt_cc(uint32_t nchannels, + friend rtklib_pvt_gs_sptr rtklib_make_pvt_gs(uint32_t nchannels, const Pvt_Conf& conf_, const rtk_t& rtk); @@ -158,11 +158,11 @@ private: std::vector split_string(const std::string& s, char delim) const; public: - rtklib_pvt_cc(uint32_t nchannels, + rtklib_pvt_gs(uint32_t nchannels, const Pvt_Conf& conf_, const rtk_t& rtk); - ~rtklib_pvt_cc(); //!< Default destructor + ~rtklib_pvt_gs(); //!< Default destructor /*! * \brief Get latest set of GPS ephemeris from PVT block diff --git a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc index 8595b24ec..d60aee101 100644 --- a/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/adapters/gps_l2_m_pcps_acquisition_fpga.cc @@ -85,6 +85,10 @@ GpsL2MPcpsAcquisitionFpga::GpsL2MPcpsAcquisitionFpga( //acq_parameters.samples_per_ms = static_cast(std::round(static_cast(fs_in_) * 0.001)); acq_parameters.samples_per_code = nsamples_total; + acq_parameters.downsampling_factor = configuration_->property(role + ".downsampling_factor", 1.0); + acq_parameters.total_block_exp = configuration_->property(role + ".total_block_exp", 14); + acq_parameters.excludelimit = static_cast(std::round(static_cast(fs_in_) / GPS_L2_M_CODE_RATE_HZ)); + // compute all the GPS L1 PRN Codes (this is done only once upon the class constructor in order to avoid re-computing the PRN codes every time // a channel is assigned) auto* fft_if = new gr::fft::fft_complex(vector_length, true); // Direct FFT @@ -220,6 +224,7 @@ void GpsL2MPcpsAcquisitionFpga::reset() acquisition_fpga_->set_active(true); } + void GpsL2MPcpsAcquisitionFpga::set_state(int state) { acquisition_fpga_->set_state(state); diff --git a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc index 83b5362c9..9649d5724 100644 --- a/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc +++ b/src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_fpga.cc @@ -63,6 +63,7 @@ pcps_acquisition_fpga::pcps_acquisition_fpga(pcpsconf_fpga_t conf_) : gr::block( d_num_doppler_bins = 0U; d_threshold = 0.0; d_doppler_step = 0U; + d_doppler_index = 0U; d_test_statistics = 0.0; d_channel = 0U; d_gnss_synchro = nullptr; diff --git a/src/algorithms/libs/galileo_e5_signal_processing.cc b/src/algorithms/libs/galileo_e5_signal_processing.cc index dab7e1d77..d02508f50 100644 --- a/src/algorithms/libs/galileo_e5_signal_processing.cc +++ b/src/algorithms/libs/galileo_e5_signal_processing.cc @@ -131,6 +131,12 @@ void galileo_e5_a_code_gen_complex_sampled(std::complex* _dest, char _Sig { _dest[(i + delay) % _samplesPerCode] = _code[i]; } - - delete[] _code; + if (_fs != _codeFreqBasis) + { + free(_code); + } + else + { + delete[] _code; + } } diff --git a/src/algorithms/observables/adapters/hybrid_observables.cc b/src/algorithms/observables/adapters/hybrid_observables.cc index f92c02b48..278f34754 100644 --- a/src/algorithms/observables/adapters/hybrid_observables.cc +++ b/src/algorithms/observables/adapters/hybrid_observables.cc @@ -46,7 +46,7 @@ HybridObservables::HybridObservables(ConfigurationInterface* configuration, dump_mat_ = configuration->property(role + ".dump_mat", true); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); - observables_ = hybrid_make_observables_cc(in_streams_, out_streams_, dump_, dump_mat_, dump_filename_); + observables_ = hybrid_make_observables_gs(in_streams_, out_streams_, dump_, dump_mat_, dump_filename_); DLOG(INFO) << "Observables block ID (" << observables_->unique_id() << ")"; } diff --git a/src/algorithms/observables/adapters/hybrid_observables.h b/src/algorithms/observables/adapters/hybrid_observables.h index 35015b837..dcc1bc006 100644 --- a/src/algorithms/observables/adapters/hybrid_observables.h +++ b/src/algorithms/observables/adapters/hybrid_observables.h @@ -34,7 +34,7 @@ #ifndef GNSS_SDR_HYBRID_OBSERVABLES_H_ #define GNSS_SDR_HYBRID_OBSERVABLES_H_ -#include "hybrid_observables_cc.h" +#include "hybrid_observables_gs.h" #include "observables_interface.h" #include @@ -81,7 +81,7 @@ public: } private: - hybrid_observables_cc_sptr observables_; + hybrid_observables_gs_sptr observables_; bool dump_; bool dump_mat_; std::string dump_filename_; diff --git a/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt b/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt index e50fabfd2..34a2f3c0d 100644 --- a/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/observables/gnuradio_blocks/CMakeLists.txt @@ -17,11 +17,11 @@ # set(OBS_GR_BLOCKS_SOURCES - hybrid_observables_cc.cc + hybrid_observables_gs.cc ) set(OBS_GR_BLOCKS_HEADERS - hybrid_observables_cc.h + hybrid_observables_gs.h ) source_group(Headers FILES ${OBS_GR_BLOCKS_HEADERS}) diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc similarity index 94% rename from src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc rename to src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc index 382414c44..b0350f4d5 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc @@ -1,5 +1,5 @@ /*! - * \file hybrid_observables_cc.cc + * \file hybrid_observables_gs.cc * \brief Implementation of the observables computation block * \author Javier Arribas 2017. jarribas(at)cttc.es * \author Antonio Ramos 2018. antonio.ramos(at)cttc.es @@ -29,10 +29,10 @@ * ------------------------------------------------------------------------- */ -#include "hybrid_observables_cc.h" #include "GPS_L1_CA.h" #include "display.h" #include "gnss_sdr_create_directory.h" +#include "hybrid_observables_gs.h" #include #include #include @@ -49,17 +49,17 @@ using google::LogMessage; -hybrid_observables_cc_sptr hybrid_make_observables_cc(unsigned int nchannels_in, unsigned int nchannels_out, bool dump, bool dump_mat, std::string dump_filename) +hybrid_observables_gs_sptr hybrid_make_observables_gs(unsigned int nchannels_in, unsigned int nchannels_out, bool dump, bool dump_mat, std::string dump_filename) { - return hybrid_observables_cc_sptr(new hybrid_observables_cc(nchannels_in, nchannels_out, dump, dump_mat, std::move(dump_filename))); + return hybrid_observables_gs_sptr(new hybrid_observables_gs(nchannels_in, nchannels_out, dump, dump_mat, std::move(dump_filename))); } -hybrid_observables_cc::hybrid_observables_cc(uint32_t nchannels_in, +hybrid_observables_gs::hybrid_observables_gs(uint32_t nchannels_in, uint32_t nchannels_out, bool dump, bool dump_mat, - std::string dump_filename) : gr::block("hybrid_observables_cc", + std::string dump_filename) : gr::block("hybrid_observables_gs", gr::io_signature::make(nchannels_in, nchannels_in, sizeof(Gnss_Synchro)), gr::io_signature::make(nchannels_out, nchannels_out, sizeof(Gnss_Synchro))) { @@ -120,12 +120,12 @@ hybrid_observables_cc::hybrid_observables_cc(uint32_t nchannels_in, T_rx_TOW_set = false; // rework - d_Rx_clock_buffer.resize(10); // 10*20 ms = 200 ms of data in buffer - d_Rx_clock_buffer.clear(); // Clear all the elements in the buffer + d_Rx_clock_buffer.set_capacity(10); // 10*20 ms = 200 ms of data in buffer + d_Rx_clock_buffer.clear(); // Clear all the elements in the buffer } -hybrid_observables_cc::~hybrid_observables_cc() +hybrid_observables_gs::~hybrid_observables_gs() { delete d_gnss_synchro_history; if (d_dump_file.is_open()) @@ -153,7 +153,7 @@ hybrid_observables_cc::~hybrid_observables_cc() } -int32_t hybrid_observables_cc::save_matfile() +int32_t hybrid_observables_gs::save_matfile() { // READ DUMP FILE std::string dump_filename = d_dump_filename; @@ -342,13 +342,13 @@ int32_t hybrid_observables_cc::save_matfile() } -double hybrid_observables_cc::compute_T_rx_s(const Gnss_Synchro &a) +double hybrid_observables_gs::compute_T_rx_s(const Gnss_Synchro &a) { return ((static_cast(a.Tracking_sample_counter) + a.Code_phase_samples) / static_cast(a.fs)); } -bool hybrid_observables_cc::interp_trk_obs(Gnss_Synchro &interpolated_obs, const uint32_t &ch, const uint64_t &rx_clock) +bool hybrid_observables_gs::interp_trk_obs(Gnss_Synchro &interpolated_obs, const uint32_t &ch, const uint64_t &rx_clock) { int32_t nearest_element = -1; int64_t abs_diff; @@ -427,7 +427,7 @@ bool hybrid_observables_cc::interp_trk_obs(Gnss_Synchro &interpolated_obs, const } -void hybrid_observables_cc::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required) +void hybrid_observables_gs::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required) { for (int32_t n = 0; n < static_cast(d_nchannels_in) - 1; n++) { @@ -438,18 +438,18 @@ void hybrid_observables_cc::forecast(int noutput_items __attribute__((unused)), } -void hybrid_observables_cc::update_TOW(std::vector &data) +void hybrid_observables_gs::update_TOW(const std::vector &data) { //1. Set the TOW using the minimum TOW in the observables. // this will be the receiver time. //2. If the TOW is set, it must be incremented by the desired receiver time step. // the time step must match the observables timer block (connected to the las input channel) - std::vector::iterator it; + std::vector::const_iterator it; // if (!T_rx_TOW_set) // { //uint32_t TOW_ref = std::numeric_limits::max(); uint32_t TOW_ref = 0U; - for (it = data.begin(); it != data.end(); it++) + for (it = data.cbegin(); it != data.cend(); it++) { if (it->Flag_valid_word) { @@ -475,7 +475,7 @@ void hybrid_observables_cc::update_TOW(std::vector &data) } -void hybrid_observables_cc::compute_pranges(std::vector &data) +void hybrid_observables_gs::compute_pranges(std::vector &data) { std::vector::iterator it; for (it = data.begin(); it != data.end(); it++) @@ -498,7 +498,7 @@ void hybrid_observables_cc::compute_pranges(std::vector &data) } -int hybrid_observables_cc::general_work(int noutput_items __attribute__((unused)), +int hybrid_observables_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { @@ -599,12 +599,12 @@ int hybrid_observables_cc::general_work(int noutput_items __attribute__((unused) epoch_data.push_back(interpolated_gnss_synchro); } update_TOW(epoch_data); - //debug code: - // if (T_rx_TOW_ms % 20 != 0) - // { - // std::cout << "Warning: RX TOW is not multiple of 20 ms\n"; - // } - // std::cout << "T_rx_TOW_ms=" << T_rx_TOW_ms << " T_rx_TOW_offset_ms=" << T_rx_TOW_offset_ms << " ->" << T_rx_TOW_ms % 20 << std::endl; + // debug code: + // if (T_rx_TOW_ms % 20 != 0) + // { + // std::cout << "Warning: RX TOW is not multiple of 20 ms\n"; + // } + // std::cout << "T_rx_TOW_ms=" << T_rx_TOW_ms << " T_rx_TOW_offset_ms=" << T_rx_TOW_offset_ms << " ->" << T_rx_TOW_ms % 20 << std::endl; } } diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h similarity index 79% rename from src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h rename to src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h index 8a4d4c56e..5a31674a7 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.h +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h @@ -1,5 +1,5 @@ /*! - * \file hybrid_observables_cc.h + * \file hybrid_observables_gs.h * \brief Interface of the observables computation block * \author Mara Branzanti 2013. mara.branzanti(at)gmail.com * \author Javier Arribas 2013. jarribas(at)cttc.es @@ -7,7 +7,7 @@ * * ------------------------------------------------------------------------- * - * Copyright (C) 2010-2018 (see AUTHORS file for a list of contributors) + * Copyright (C) 2010-2019 (see AUTHORS file for a list of contributors) * * GNSS-SDR is a software defined Global Navigation * Satellite Systems receiver @@ -31,8 +31,8 @@ */ -#ifndef GNSS_SDR_HYBRID_OBSERVABLES_CC_H -#define GNSS_SDR_HYBRID_OBSERVABLES_CC_H +#ifndef GNSS_SDR_HYBRID_OBSERVABLES_GS_H +#define GNSS_SDR_HYBRID_OBSERVABLES_GS_H #include "gnss_circular_deque.h" #include "gnss_synchro.h" @@ -43,33 +43,33 @@ #include -class hybrid_observables_cc; +class hybrid_observables_gs; -using hybrid_observables_cc_sptr = boost::shared_ptr; +using hybrid_observables_gs_sptr = boost::shared_ptr; -hybrid_observables_cc_sptr -hybrid_make_observables_cc(unsigned int nchannels_in, unsigned int nchannels_out, bool dump, bool dump_mat, std::string dump_filename); +hybrid_observables_gs_sptr +hybrid_make_observables_gs(unsigned int nchannels_in, unsigned int nchannels_out, bool dump, bool dump_mat, std::string dump_filename); /*! * \brief This class implements a block that computes observables */ -class hybrid_observables_cc : public gr::block +class hybrid_observables_gs : public gr::block { public: - ~hybrid_observables_cc(); + ~hybrid_observables_gs(); int general_work(int noutput_items, gr_vector_int& ninput_items, gr_vector_const_void_star& input_items, gr_vector_void_star& output_items); void forecast(int noutput_items, gr_vector_int& ninput_items_required); private: - friend hybrid_observables_cc_sptr - hybrid_make_observables_cc(uint32_t nchannels_in, uint32_t nchannels_out, bool dump, bool dump_mat, std::string dump_filename); - hybrid_observables_cc(uint32_t nchannels_in, uint32_t nchannels_out, bool dump, bool dump_mat, std::string dump_filename); + friend hybrid_observables_gs_sptr + hybrid_make_observables_gs(uint32_t nchannels_in, uint32_t nchannels_out, bool dump, bool dump_mat, std::string dump_filename); + hybrid_observables_gs(uint32_t nchannels_in, uint32_t nchannels_out, bool dump, bool dump_mat, std::string dump_filename); bool interpolate_data(Gnss_Synchro& out, const uint32_t& ch, const double& ti); bool interp_trk_obs(Gnss_Synchro& interpolated_obs, const uint32_t& ch, const uint64_t& rx_clock); double compute_T_rx_s(const Gnss_Synchro& a); void compute_pranges(std::vector& data); - void update_TOW(std::vector& data); + void update_TOW(const std::vector& data); int32_t save_matfile(); //time history diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc index a29fdcc01..4c598a0be 100644 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc @@ -54,7 +54,7 @@ BeidouB1iTelemetryDecoder::BeidouB1iTelemetryDecoder(ConfigurationInterface* con dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = beidou_b1i_make_telemetry_decoder_cc(satellite_, dump_); // TODO fix me + telemetry_decoder_ = beidou_b1i_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h index 2deb50c27..1373b867b 100644 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h @@ -34,7 +34,7 @@ #ifndef GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_H_ #define GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_H_ -#include "beidou_b1i_telemetry_decoder_cc.h" +#include "beidou_b1i_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -83,7 +83,7 @@ public: } private: - beidou_b1i_telemetry_decoder_cc_sptr telemetry_decoder_; + beidou_b1i_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc index be7dd59ce..d09c34167 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc @@ -55,7 +55,7 @@ GalileoE1BTelemetryDecoder::GalileoE1BTelemetryDecoder(ConfigurationInterface* c dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = galileo_make_telemetry_decoder_cc(satellite_, 1, dump_); //unified galileo decoder set to INAV (frame_type=1) + telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, 1, dump_); // unified galileo decoder set to INAV (frame_type=1) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h index c277725ce..0e36a8a4c 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h @@ -35,7 +35,7 @@ #define GNSS_SDR_GALILEO_E1B_TELEMETRY_DECODER_H_ -#include "galileo_telemetry_decoder_cc.h" +#include "galileo_telemetry_decoder_gs.h" #include "gnss_satellite.h" #include "telemetry_decoder_interface.h" #include @@ -87,7 +87,7 @@ public: } private: - galileo_telemetry_decoder_cc_sptr telemetry_decoder_; + galileo_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc index 715e5c1cb..73a2deca2 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc @@ -58,7 +58,7 @@ GalileoE5aTelemetryDecoder::GalileoE5aTelemetryDecoder(ConfigurationInterface* c dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = galileo_make_telemetry_decoder_cc(satellite_, 2, dump_); //unified galileo decoder set to FNAV (frame_type=2) + telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, 2, dump_); // unified galileo decoder set to FNAV (frame_type=2) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h index cdb21af2d..8c02818a8 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h @@ -37,7 +37,7 @@ #ifndef GNSS_SDR_GALILEO_E5A_TELEMETRY_DECODER_H_ #define GNSS_SDR_GALILEO_E5A_TELEMETRY_DECODER_H_ -#include "galileo_telemetry_decoder_cc.h" +#include "galileo_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -87,7 +87,7 @@ public: } private: - galileo_telemetry_decoder_cc_sptr telemetry_decoder_; + galileo_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc index c0d88314f..509ff1c73 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc @@ -54,7 +54,7 @@ GlonassL1CaTelemetryDecoder::GlonassL1CaTelemetryDecoder(ConfigurationInterface* dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = glonass_l1_ca_make_telemetry_decoder_cc(satellite_, dump_); + telemetry_decoder_ = glonass_l1_ca_make_telemetry_decoder_gs(satellite_, dump_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h index 33bc3ecbd..cdc78b432 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h @@ -34,7 +34,7 @@ #ifndef GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_H_ #define GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_H_ -#include "glonass_l1_ca_telemetry_decoder_cc.h" +#include "glonass_l1_ca_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -78,7 +78,7 @@ public: } private: - glonass_l1_ca_telemetry_decoder_cc_sptr telemetry_decoder_; + glonass_l1_ca_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc index c96851552..69c6f6605 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc @@ -53,7 +53,7 @@ GlonassL2CaTelemetryDecoder::GlonassL2CaTelemetryDecoder(ConfigurationInterface* dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = glonass_l2_ca_make_telemetry_decoder_cc(satellite_, dump_); + telemetry_decoder_ = glonass_l2_ca_make_telemetry_decoder_gs(satellite_, dump_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h index 83c7c8c4e..1ac52ccbb 100644 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h @@ -33,7 +33,7 @@ #ifndef GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_H_ #define GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_H_ -#include "glonass_l2_ca_telemetry_decoder_cc.h" +#include "glonass_l2_ca_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -77,7 +77,7 @@ public: } private: - glonass_l2_ca_telemetry_decoder_cc_sptr telemetry_decoder_; + glonass_l2_ca_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc index b7a4530b3..af0ca4792 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc @@ -54,7 +54,7 @@ GpsL1CaTelemetryDecoder::GpsL1CaTelemetryDecoder(ConfigurationInterface* configu dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = gps_l1_ca_make_telemetry_decoder_cc(satellite_, dump_); // TODO fix me + telemetry_decoder_ = gps_l1_ca_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h index 9436e8ae5..8596863ed 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h @@ -33,7 +33,7 @@ #ifndef GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_H_ #define GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_H_ -#include "gps_l1_ca_telemetry_decoder_cc.h" +#include "gps_l1_ca_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -82,7 +82,7 @@ public: } private: - gps_l1_ca_telemetry_decoder_cc_sptr telemetry_decoder_; + gps_l1_ca_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc index db451a045..423121ebb 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc @@ -54,7 +54,7 @@ GpsL2CTelemetryDecoder::GpsL2CTelemetryDecoder(ConfigurationInterface* configura dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = gps_l2c_make_telemetry_decoder_cc(satellite_, dump_); // TODO fix me + telemetry_decoder_ = gps_l2c_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h index f7e9fb76b..7a032004a 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h @@ -33,7 +33,7 @@ #ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_H_ #define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_H_ -#include "gps_l2c_telemetry_decoder_cc.h" +#include "gps_l2c_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -81,7 +81,7 @@ public: } private: - gps_l2c_telemetry_decoder_cc_sptr telemetry_decoder_; + gps_l2c_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc index 68fa96d26..bdd0ca778 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc @@ -50,7 +50,7 @@ GpsL5TelemetryDecoder::GpsL5TelemetryDecoder(ConfigurationInterface* configurati dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = gps_l5_make_telemetry_decoder_cc(satellite_, dump_); + telemetry_decoder_ = gps_l5_make_telemetry_decoder_gs(satellite_, dump_); DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; channel_ = 0; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h index c895b3b48..ff2e04437 100644 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h @@ -35,7 +35,7 @@ #include "gnss_satellite.h" -#include "gps_l5_telemetry_decoder_cc.h" +#include "gps_l5_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -84,7 +84,7 @@ public: } private: - gps_l5_telemetry_decoder_cc_sptr telemetry_decoder_; + gps_l5_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc index 2083509e1..597c0e9ad 100644 --- a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc @@ -33,7 +33,7 @@ #include "sbas_l1_telemetry_decoder.h" #include "configuration_interface.h" #include "sbas_ephemeris.h" -#include "sbas_l1_telemetry_decoder_cc.h" +#include "sbas_l1_telemetry_decoder_gs.h" #include #include @@ -52,7 +52,7 @@ SbasL1TelemetryDecoder::SbasL1TelemetryDecoder(ConfigurationInterface* configura dump_ = configuration->property(role + ".dump", false); dump_filename_ = configuration->property(role + ".dump_filename", default_dump_filename); // make telemetry decoder object - telemetry_decoder_ = sbas_l1_make_telemetry_decoder_cc(satellite_, dump_); // TODO fix me + telemetry_decoder_ = sbas_l1_make_telemetry_decoder_gs(satellite_, dump_); // TODO fix me channel_ = 0; DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; if (in_streams_ > 1) diff --git a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h index c7ab0043b..a1408095b 100644 --- a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h +++ b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h @@ -34,7 +34,7 @@ #define GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_H_ -#include "sbas_l1_telemetry_decoder_cc.h" +#include "sbas_l1_telemetry_decoder_gs.h" #include "telemetry_decoder_interface.h" #include @@ -86,7 +86,7 @@ public: } private: - sbas_l1_telemetry_decoder_cc_sptr telemetry_decoder_; + sbas_l1_telemetry_decoder_gs_sptr telemetry_decoder_; Gnss_Satellite satellite_; int channel_; bool dump_; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt b/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt index e56549c50..bf6ad6e76 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/CMakeLists.txt @@ -17,25 +17,25 @@ # set(TELEMETRY_DECODER_GR_BLOCKS_SOURCES - gps_l1_ca_telemetry_decoder_cc.cc - gps_l2c_telemetry_decoder_cc.cc - gps_l5_telemetry_decoder_cc.cc - sbas_l1_telemetry_decoder_cc.cc - glonass_l1_ca_telemetry_decoder_cc.cc - glonass_l2_ca_telemetry_decoder_cc.cc - galileo_telemetry_decoder_cc.cc - beidou_b1i_telemetry_decoder_cc.cc + gps_l1_ca_telemetry_decoder_gs.cc + gps_l2c_telemetry_decoder_gs.cc + gps_l5_telemetry_decoder_gs.cc + sbas_l1_telemetry_decoder_gs.cc + glonass_l1_ca_telemetry_decoder_gs.cc + glonass_l2_ca_telemetry_decoder_gs.cc + galileo_telemetry_decoder_gs.cc + beidou_b1i_telemetry_decoder_gs.cc ) set(TELEMETRY_DECODER_GR_BLOCKS_HEADERS - gps_l1_ca_telemetry_decoder_cc.h - gps_l2c_telemetry_decoder_cc.h - gps_l5_telemetry_decoder_cc.h - sbas_l1_telemetry_decoder_cc.h - glonass_l1_ca_telemetry_decoder_cc.h - glonass_l2_ca_telemetry_decoder_cc.h - galileo_telemetry_decoder_cc.h - beidou_b1i_telemetry_decoder_cc.h + gps_l1_ca_telemetry_decoder_gs.h + gps_l2c_telemetry_decoder_gs.h + gps_l5_telemetry_decoder_gs.h + sbas_l1_telemetry_decoder_gs.h + glonass_l1_ca_telemetry_decoder_gs.h + glonass_l2_ca_telemetry_decoder_gs.h + galileo_telemetry_decoder_gs.h + beidou_b1i_telemetry_decoder_gs.h ) list(SORT TELEMETRY_DECODER_GR_BLOCKS_HEADERS) diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc similarity index 96% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc index 6f50fd1c5..de0819de2 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file beidou_b1i_telemetry_decoder_cc.cc + * \file beidou_b1i_telemetry_decoder_gs.cc * \brief Implementation of an adapter of a BEIDOU BI1 DNAV data decoder block * to a TelemetryDecoderInterface * \note Code added as part of GSoC 2018 program @@ -32,7 +32,7 @@ */ -#include "beidou_b1i_telemetry_decoder_cc.h" +#include "beidou_b1i_telemetry_decoder_gs.h" #include "convolutional.h" #include "display.h" #include "gnss_synchro.h" @@ -47,16 +47,16 @@ using google::LogMessage; -beidou_b1i_telemetry_decoder_cc_sptr -beidou_b1i_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +beidou_b1i_telemetry_decoder_gs_sptr +beidou_b1i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return beidou_b1i_telemetry_decoder_cc_sptr(new beidou_b1i_telemetry_decoder_cc(satellite, dump)); + return beidou_b1i_telemetry_decoder_gs_sptr(new beidou_b1i_telemetry_decoder_gs(satellite, dump)); } -beidou_b1i_telemetry_decoder_cc::beidou_b1i_telemetry_decoder_cc( +beidou_b1i_telemetry_decoder_gs::beidou_b1i_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("beidou_b1i_telemetry_decoder_cc", + bool dump) : gr::block("beidou_b1i_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { @@ -133,7 +133,7 @@ beidou_b1i_telemetry_decoder_cc::beidou_b1i_telemetry_decoder_cc( } -beidou_b1i_telemetry_decoder_cc::~beidou_b1i_telemetry_decoder_cc() +beidou_b1i_telemetry_decoder_gs::~beidou_b1i_telemetry_decoder_gs() { volk_gnsssdr_free(d_preamble_samples); volk_gnsssdr_free(d_secondary_code_symbols); @@ -153,7 +153,7 @@ beidou_b1i_telemetry_decoder_cc::~beidou_b1i_telemetry_decoder_cc() } -void beidou_b1i_telemetry_decoder_cc::decode_bch15_11_01(const int32_t *bits, int32_t *decbits) +void beidou_b1i_telemetry_decoder_gs::decode_bch15_11_01(const int32_t *bits, int32_t *decbits) { int32_t bit, err, reg[4] = {1, 1, 1, 1}; int32_t errind[15] = {14, 13, 10, 12, 6, 9, 4, 11, 0, 5, 7, 8, 1, 3, 2}; @@ -182,7 +182,7 @@ void beidou_b1i_telemetry_decoder_cc::decode_bch15_11_01(const int32_t *bits, in } -void beidou_b1i_telemetry_decoder_cc::decode_word( +void beidou_b1i_telemetry_decoder_gs::decode_word( int32_t word_counter, const double *enc_word_symbols, int32_t *dec_word_symbols) @@ -224,7 +224,7 @@ void beidou_b1i_telemetry_decoder_cc::decode_word( } -void beidou_b1i_telemetry_decoder_cc::decode_subframe(double *frame_symbols) +void beidou_b1i_telemetry_decoder_gs::decode_subframe(double *frame_symbols) { // 1. Transform from symbols to bits std::string data_bits; @@ -252,7 +252,6 @@ void beidou_b1i_telemetry_decoder_cc::decode_subframe(double *frame_symbols) d_nav.d1_subframe_decoder(data_bits); } - // 3. Check operation executed correctly if (d_nav.flag_crc_test == true) { @@ -298,7 +297,7 @@ void beidou_b1i_telemetry_decoder_cc::decode_subframe(double *frame_symbols) } -void beidou_b1i_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void beidou_b1i_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { uint32_t sat_prn = 0; d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); @@ -348,7 +347,7 @@ void beidou_b1i_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satell } -void beidou_b1i_telemetry_decoder_cc::set_channel(int32_t channel) +void beidou_b1i_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; LOG(INFO) << "Navigation channel set to " << channel; @@ -375,7 +374,7 @@ void beidou_b1i_telemetry_decoder_cc::set_channel(int32_t channel) } -int beidou_b1i_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int beidou_b1i_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { int32_t corr_value = 0; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h similarity index 85% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h index ed768795e..0cd2da284 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file beidou_b1i_telemetry_decoder_cc.h + * \file beidou_b1i_telemetry_decoder_gs.h * \brief Implementation of an adapter of a BEIDOU BI1 DNAV data decoder block * to a TelemetryDecoderInterface * \details Code added as part of GSoC 2018 program. However new modifications included to mimic @@ -32,8 +32,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_GS_H #include "Beidou_B1I.h" #include "beidou_dnav_almanac.h" @@ -48,11 +48,11 @@ #include -class beidou_b1i_telemetry_decoder_cc; +class beidou_b1i_telemetry_decoder_gs; -using beidou_b1i_telemetry_decoder_cc_sptr = boost::shared_ptr; +using beidou_b1i_telemetry_decoder_gs_sptr = boost::shared_ptr; -beidou_b1i_telemetry_decoder_cc_sptr beidou_b1i_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +beidou_b1i_telemetry_decoder_gs_sptr beidou_b1i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); //!!!! edit /*! @@ -61,10 +61,10 @@ beidou_b1i_telemetry_decoder_cc_sptr beidou_b1i_make_telemetry_decoder_cc(const * \see GLONASS ICD * */ -class beidou_b1i_telemetry_decoder_cc : public gr::block +class beidou_b1i_telemetry_decoder_gs : public gr::block { public: - ~beidou_b1i_telemetry_decoder_cc(); //!< Class destructor + ~beidou_b1i_telemetry_decoder_gs(); //!< Class destructor void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int channel); //!< Set receiver's channel @@ -75,9 +75,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend beidou_b1i_telemetry_decoder_cc_sptr - beidou_b1i_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); - beidou_b1i_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend beidou_b1i_telemetry_decoder_gs_sptr + beidou_b1i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + beidou_b1i_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); void decode_subframe(double *symbols); void decode_word(int32_t word_counter, const double *enc_word_symbols, int32_t *dec_word_symbols); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc similarity index 97% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc index fd86b993c..86f74e25a 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file galileo_telemetry_decoder_cc.cc + * \file galileo_telemetry_decoder_gs.cc * \brief Implementation of a Galileo unified INAV and FNAV message demodulator block * \author Javier Arribas 2018. jarribas(at)cttc.es * @@ -29,9 +29,9 @@ */ -#include "galileo_telemetry_decoder_cc.h" #include "convolutional.h" #include "display.h" +#include "galileo_telemetry_decoder_gs.h" #include "gnss_synchro.h" #include #include @@ -45,16 +45,16 @@ using google::LogMessage; -galileo_telemetry_decoder_cc_sptr -galileo_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, int frame_type, bool dump) +galileo_telemetry_decoder_gs_sptr +galileo_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, int frame_type, bool dump) { - return galileo_telemetry_decoder_cc_sptr(new galileo_telemetry_decoder_cc(satellite, frame_type, dump)); + return galileo_telemetry_decoder_gs_sptr(new galileo_telemetry_decoder_gs(satellite, frame_type, dump)); } -galileo_telemetry_decoder_cc::galileo_telemetry_decoder_cc( +galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs( const Gnss_Satellite &satellite, int frame_type, - bool dump) : gr::block("galileo_telemetry_decoder_cc", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + bool dump) : gr::block("galileo_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // Ephemeris data port out @@ -213,7 +213,7 @@ galileo_telemetry_decoder_cc::galileo_telemetry_decoder_cc( } -galileo_telemetry_decoder_cc::~galileo_telemetry_decoder_cc() +galileo_telemetry_decoder_gs::~galileo_telemetry_decoder_gs() { volk_gnsssdr_free(d_preamble_samples); if (d_frame_type == 2) @@ -239,14 +239,14 @@ galileo_telemetry_decoder_cc::~galileo_telemetry_decoder_cc() } -void galileo_telemetry_decoder_cc::viterbi_decoder(double *page_part_symbols, int32_t *page_part_bits) +void galileo_telemetry_decoder_gs::viterbi_decoder(double *page_part_symbols, int32_t *page_part_bits) { Viterbi(page_part_bits, out0, state0, out1, state1, page_part_symbols, KK, nn, DataLength); } -void galileo_telemetry_decoder_cc::deinterleaver(int32_t rows, int32_t cols, const double *in, double *out) +void galileo_telemetry_decoder_gs::deinterleaver(int32_t rows, int32_t cols, const double *in, double *out) { for (int32_t r = 0; r < rows; r++) { @@ -258,7 +258,7 @@ void galileo_telemetry_decoder_cc::deinterleaver(int32_t rows, int32_t cols, con } -void galileo_telemetry_decoder_cc::decode_INAV_word(double *page_part_symbols, int32_t frame_length) +void galileo_telemetry_decoder_gs::decode_INAV_word(double *page_part_symbols, int32_t frame_length) { // 1. De-interleave auto *page_part_symbols_deint = static_cast(volk_gnsssdr_malloc(frame_length * sizeof(double), volk_gnsssdr_get_alignment())); @@ -352,7 +352,7 @@ void galileo_telemetry_decoder_cc::decode_INAV_word(double *page_part_symbols, i } -void galileo_telemetry_decoder_cc::decode_FNAV_word(double *page_symbols, int32_t frame_length) +void galileo_telemetry_decoder_gs::decode_FNAV_word(double *page_symbols, int32_t frame_length) { // 1. De-interleave auto *page_symbols_deint = static_cast(volk_gnsssdr_malloc(frame_length * sizeof(double), volk_gnsssdr_get_alignment())); @@ -420,7 +420,7 @@ void galileo_telemetry_decoder_cc::decode_FNAV_word(double *page_symbols, int32_ } -void galileo_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void galileo_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "Setting decoder Finite State Machine to satellite " << d_satellite; @@ -428,7 +428,7 @@ void galileo_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite } -void galileo_telemetry_decoder_cc::set_channel(int32_t channel) +void galileo_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; DLOG(INFO) << "Navigation channel set to " << channel; @@ -455,7 +455,7 @@ void galileo_telemetry_decoder_cc::set_channel(int32_t channel) } -int galileo_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int galileo_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { int32_t corr_value = 0; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h similarity index 85% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h index e678d1d44..83dc8118a 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file galileo_telemetry_decoder_cc.h + * \file galileo_telemetry_decoder_gs.h * \brief Implementation of a Galileo unified INAV and FNAV message demodulator block * \author Javier Arribas 2018. jarribas(at)cttc.es * @@ -29,8 +29,8 @@ */ -#ifndef GNSS_SDR_GALILEO_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_GALILEO_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_GALILEO_TELEMETRY_DECODER_GS_H #include "Galileo_E1.h" @@ -48,19 +48,19 @@ #include #include -class galileo_telemetry_decoder_cc; +class galileo_telemetry_decoder_gs; -using galileo_telemetry_decoder_cc_sptr = boost::shared_ptr; +using galileo_telemetry_decoder_gs_sptr = boost::shared_ptr; -galileo_telemetry_decoder_cc_sptr galileo_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, int frame_type, bool dump); +galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, int frame_type, bool dump); /*! * \brief This class implements a block that decodes the INAV and FNAV data defined in Galileo ICD */ -class galileo_telemetry_decoder_cc : public gr::block +class galileo_telemetry_decoder_gs : public gr::block { public: - ~galileo_telemetry_decoder_cc(); + ~galileo_telemetry_decoder_gs(); void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int32_t channel); //!< Set receiver's channel int32_t flag_even_word_arrived; @@ -72,9 +72,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend galileo_telemetry_decoder_cc_sptr - galileo_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, int frame_type, bool dump); - galileo_telemetry_decoder_cc(const Gnss_Satellite &satellite, int frame_type, bool dump); + friend galileo_telemetry_decoder_gs_sptr + galileo_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, int frame_type, bool dump); + galileo_telemetry_decoder_gs(const Gnss_Satellite &satellite, int frame_type, bool dump); void viterbi_decoder(double *page_part_symbols, int32_t *page_part_bits); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc similarity index 96% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc index 4a7b04cd2..987df062e 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file glonass_l1_ca_telemetry_decoder_cc.cc + * \file glonass_l1_ca_telemetry_decoder_gs.cc * \brief Implementation of an adapter of a GLONASS L1 C/A NAV data decoder block * to a TelemetryDecoderInterface * \note Code added as part of GSoC 2017 program @@ -31,7 +31,7 @@ */ -#include "glonass_l1_ca_telemetry_decoder_cc.h" +#include "glonass_l1_ca_telemetry_decoder_gs.h" #include #include #include @@ -42,16 +42,16 @@ using google::LogMessage; -glonass_l1_ca_telemetry_decoder_cc_sptr -glonass_l1_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +glonass_l1_ca_telemetry_decoder_gs_sptr +glonass_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return glonass_l1_ca_telemetry_decoder_cc_sptr(new glonass_l1_ca_telemetry_decoder_cc(satellite, dump)); + return glonass_l1_ca_telemetry_decoder_gs_sptr(new glonass_l1_ca_telemetry_decoder_gs(satellite, dump)); } -glonass_l1_ca_telemetry_decoder_cc::glonass_l1_ca_telemetry_decoder_cc( +glonass_l1_ca_telemetry_decoder_gs::glonass_l1_ca_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("glonass_l1_ca_telemetry_decoder_cc", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + bool dump) : gr::block("glonass_l1_ca_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // Ephemeris data port out @@ -109,7 +109,7 @@ glonass_l1_ca_telemetry_decoder_cc::glonass_l1_ca_telemetry_decoder_cc( } -glonass_l1_ca_telemetry_decoder_cc::~glonass_l1_ca_telemetry_decoder_cc() +glonass_l1_ca_telemetry_decoder_gs::~glonass_l1_ca_telemetry_decoder_gs() { delete d_preambles_symbols; if (d_dump_file.is_open() == true) @@ -126,7 +126,7 @@ glonass_l1_ca_telemetry_decoder_cc::~glonass_l1_ca_telemetry_decoder_cc() } -void glonass_l1_ca_telemetry_decoder_cc::decode_string(const double *frame_symbols, int32_t frame_length) +void glonass_l1_ca_telemetry_decoder_gs::decode_string(const double *frame_symbols, int32_t frame_length) { double chip_acc = 0.0; int32_t chip_acc_counter = 0; @@ -226,7 +226,7 @@ void glonass_l1_ca_telemetry_decoder_cc::decode_string(const double *frame_symbo } -void glonass_l1_ca_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void glonass_l1_ca_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "Setting decoder Finite State Machine to satellite " << d_satellite; @@ -234,7 +234,7 @@ void glonass_l1_ca_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &sat } -void glonass_l1_ca_telemetry_decoder_cc::set_channel(int32_t channel) +void glonass_l1_ca_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; LOG(INFO) << "Navigation channel set to " << channel; @@ -261,7 +261,7 @@ void glonass_l1_ca_telemetry_decoder_cc::set_channel(int32_t channel) } -int glonass_l1_ca_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int glonass_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { int32_t corr_value = 0; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h similarity index 84% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h index 52583ac94..b8cf5f25a 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file glonass_l1_ca_telemetry_decoder_cc.h + * \file glonass_l1_ca_telemetry_decoder_gs.h * \brief Implementation of an adapter of a GLONASS L1 C/A NAV data decoder block * to a TelemetryDecoderInterface * \note Code added as part of GSoC 2017 program @@ -30,8 +30,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_GS_H #include "GLONASS_L1_L2_CA.h" @@ -47,11 +47,11 @@ #include -class glonass_l1_ca_telemetry_decoder_cc; +class glonass_l1_ca_telemetry_decoder_gs; -using glonass_l1_ca_telemetry_decoder_cc_sptr = boost::shared_ptr; +using glonass_l1_ca_telemetry_decoder_gs_sptr = boost::shared_ptr; -glonass_l1_ca_telemetry_decoder_cc_sptr glonass_l1_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +glonass_l1_ca_telemetry_decoder_gs_sptr glonass_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); /*! * \brief This class implements a block that decodes the GNAV data defined in GLONASS ICD v5.1 @@ -59,10 +59,10 @@ glonass_l1_ca_telemetry_decoder_cc_sptr glonass_l1_ca_make_telemetry_decoder_cc( * \see GLONASS ICD * */ -class glonass_l1_ca_telemetry_decoder_cc : public gr::block +class glonass_l1_ca_telemetry_decoder_gs : public gr::block { public: - ~glonass_l1_ca_telemetry_decoder_cc(); //!< Class destructor + ~glonass_l1_ca_telemetry_decoder_gs(); //!< Class destructor void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int32_t channel); //!< Set receiver's channel @@ -73,9 +73,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend glonass_l1_ca_telemetry_decoder_cc_sptr - glonass_l1_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); - glonass_l1_ca_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend glonass_l1_ca_telemetry_decoder_gs_sptr + glonass_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + glonass_l1_ca_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); void decode_string(const double *symbols, int32_t frame_length); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc similarity index 96% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc index a58a61785..54952102d 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file glonass_l2_ca_telemetry_decoder_cc.cc + * \file glonass_l2_ca_telemetry_decoder_gs.cc * \brief Implementation of an adapter of a GLONASS L1 C/A NAV data decoder block * to a TelemetryDecoderInterface * \author Damian Miralles, 2018. dmiralles2009(at)gmail.com @@ -30,8 +30,8 @@ */ -#include "glonass_l2_ca_telemetry_decoder_cc.h" #include "display.h" +#include "glonass_l2_ca_telemetry_decoder_gs.h" #include #include #include @@ -42,16 +42,16 @@ using google::LogMessage; -glonass_l2_ca_telemetry_decoder_cc_sptr -glonass_l2_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +glonass_l2_ca_telemetry_decoder_gs_sptr +glonass_l2_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return glonass_l2_ca_telemetry_decoder_cc_sptr(new glonass_l2_ca_telemetry_decoder_cc(satellite, dump)); + return glonass_l2_ca_telemetry_decoder_gs_sptr(new glonass_l2_ca_telemetry_decoder_gs(satellite, dump)); } -glonass_l2_ca_telemetry_decoder_cc::glonass_l2_ca_telemetry_decoder_cc( +glonass_l2_ca_telemetry_decoder_gs::glonass_l2_ca_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("glonass_l2_ca_telemetry_decoder_cc", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + bool dump) : gr::block("glonass_l2_ca_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // Ephemeris data port out @@ -109,7 +109,7 @@ glonass_l2_ca_telemetry_decoder_cc::glonass_l2_ca_telemetry_decoder_cc( } -glonass_l2_ca_telemetry_decoder_cc::~glonass_l2_ca_telemetry_decoder_cc() +glonass_l2_ca_telemetry_decoder_gs::~glonass_l2_ca_telemetry_decoder_gs() { delete d_preambles_symbols; if (d_dump_file.is_open() == true) @@ -126,7 +126,7 @@ glonass_l2_ca_telemetry_decoder_cc::~glonass_l2_ca_telemetry_decoder_cc() } -void glonass_l2_ca_telemetry_decoder_cc::decode_string(const double *frame_symbols, int32_t frame_length) +void glonass_l2_ca_telemetry_decoder_gs::decode_string(const double *frame_symbols, int32_t frame_length) { double chip_acc = 0.0; int32_t chip_acc_counter = 0; @@ -226,7 +226,7 @@ void glonass_l2_ca_telemetry_decoder_cc::decode_string(const double *frame_symbo } -void glonass_l2_ca_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void glonass_l2_ca_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "Setting decoder Finite State Machine to satellite " << d_satellite; @@ -234,7 +234,7 @@ void glonass_l2_ca_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &sat } -void glonass_l2_ca_telemetry_decoder_cc::set_channel(int32_t channel) +void glonass_l2_ca_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; LOG(INFO) << "Navigation channel set to " << channel; @@ -261,7 +261,7 @@ void glonass_l2_ca_telemetry_decoder_cc::set_channel(int32_t channel) } -int glonass_l2_ca_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int glonass_l2_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { int32_t corr_value = 0; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h similarity index 84% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h index 566f5c855..13ec3876c 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file glonass_l2_ca_telemetry_decoder_cc.h + * \file glonass_l2_ca_telemetry_decoder_gs.h * \brief Implementation of an adapter of a GLONASS L2 C/A NAV data decoder block * to a TelemetryDecoderInterface * \author Damian Miralles, 2018. dmiralles2009(at)gmail.com @@ -29,8 +29,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_GS_H #include "GLONASS_L1_L2_CA.h" @@ -46,21 +46,21 @@ #include -class glonass_l2_ca_telemetry_decoder_cc; +class glonass_l2_ca_telemetry_decoder_gs; -using glonass_l2_ca_telemetry_decoder_cc_sptr = boost::shared_ptr; +using glonass_l2_ca_telemetry_decoder_gs_sptr = boost::shared_ptr; -glonass_l2_ca_telemetry_decoder_cc_sptr glonass_l2_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); /*! * \brief This class implements a block that decodes the GNAV data defined in GLONASS ICD v5.1 * \see GLONASS ICD * */ -class glonass_l2_ca_telemetry_decoder_cc : public gr::block +class glonass_l2_ca_telemetry_decoder_gs : public gr::block { public: - ~glonass_l2_ca_telemetry_decoder_cc(); //!< Class destructor + ~glonass_l2_ca_telemetry_decoder_gs(); //!< Class destructor void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int32_t channel); //!< Set receiver's channel @@ -71,9 +71,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend glonass_l2_ca_telemetry_decoder_cc_sptr - glonass_l2_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); - glonass_l2_ca_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend glonass_l2_ca_telemetry_decoder_gs_sptr + glonass_l2_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + glonass_l2_ca_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); void decode_string(const double *symbols, int32_t frame_length); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc similarity index 96% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc index c0fcf733b..73cc7e2b4 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file gps_l1_ca_telemetry_decoder_cc.cc + * \file gps_l1_ca_telemetry_decoder_gs.cc * \brief Implementation of a NAV message demodulator block based on * Kay Borre book MATLAB-based GPS receiver * \author Javier Arribas, 2011. jarribas(at)cttc.es @@ -29,7 +29,7 @@ * ------------------------------------------------------------------------- */ -#include "gps_l1_ca_telemetry_decoder_cc.h" +#include "gps_l1_ca_telemetry_decoder_gs.h" #include #include #include @@ -42,16 +42,16 @@ using google::LogMessage; -gps_l1_ca_telemetry_decoder_cc_sptr -gps_l1_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +gps_l1_ca_telemetry_decoder_gs_sptr +gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return gps_l1_ca_telemetry_decoder_cc_sptr(new gps_l1_ca_telemetry_decoder_cc(satellite, dump)); + return gps_l1_ca_telemetry_decoder_gs_sptr(new gps_l1_ca_telemetry_decoder_gs(satellite, dump)); } -gps_l1_ca_telemetry_decoder_cc::gps_l1_ca_telemetry_decoder_cc( +gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("gps_navigation_cc", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + bool dump) : gr::block("gps_navigation_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { // Ephemeris data port out @@ -98,7 +98,7 @@ gps_l1_ca_telemetry_decoder_cc::gps_l1_ca_telemetry_decoder_cc( } -gps_l1_ca_telemetry_decoder_cc::~gps_l1_ca_telemetry_decoder_cc() +gps_l1_ca_telemetry_decoder_gs::~gps_l1_ca_telemetry_decoder_gs() { volk_gnsssdr_free(d_preambles_symbols); d_symbol_history.clear(); @@ -116,7 +116,7 @@ gps_l1_ca_telemetry_decoder_cc::~gps_l1_ca_telemetry_decoder_cc() } -bool gps_l1_ca_telemetry_decoder_cc::gps_word_parityCheck(uint32_t gpsword) +bool gps_l1_ca_telemetry_decoder_gs::gps_word_parityCheck(uint32_t gpsword) { uint32_t d1, d2, d3, d4, d5, d6, d7, t, parity; // XOR as many bits in parallel as possible. The magic constants pick @@ -143,7 +143,7 @@ bool gps_l1_ca_telemetry_decoder_cc::gps_word_parityCheck(uint32_t gpsword) } -void gps_l1_ca_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void gps_l1_ca_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_nav.reset(); d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); @@ -153,7 +153,7 @@ void gps_l1_ca_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satelli } -void gps_l1_ca_telemetry_decoder_cc::set_channel(int32_t channel) +void gps_l1_ca_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; d_nav.i_channel_ID = channel; @@ -182,7 +182,7 @@ void gps_l1_ca_telemetry_decoder_cc::set_channel(int32_t channel) } -bool gps_l1_ca_telemetry_decoder_cc::decode_subframe() +bool gps_l1_ca_telemetry_decoder_gs::decode_subframe() { char subframe[GPS_SUBFRAME_LENGTH]; @@ -234,7 +234,7 @@ bool gps_l1_ca_telemetry_decoder_cc::decode_subframe() { GPS_frame_4bytes ^= 0x3FFFFFC0; // invert the data bits (using XOR) } - if (gps_l1_ca_telemetry_decoder_cc::gps_word_parityCheck(GPS_frame_4bytes)) + if (gps_l1_ca_telemetry_decoder_gs::gps_word_parityCheck(GPS_frame_4bytes)) { subframe_synchro_confirmation = true; } @@ -310,7 +310,7 @@ bool gps_l1_ca_telemetry_decoder_cc::decode_subframe() } -int gps_l1_ca_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { int32_t preamble_diff_ms = 0; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h similarity index 81% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h index f77a98153..38c51af5f 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file gps_l1_ca_telemetry_decoder_cc.h + * \file gps_l1_ca_telemetry_decoder_gs.h * \brief Interface of a NAV message demodulator block based on * Kay Borre book MATLAB-based GPS receiver * \author Javier Arribas, 2011. jarribas(at)cttc.es @@ -28,8 +28,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_GS_H #include "GPS_L1_CA.h" #include "gnss_satellite.h" @@ -40,21 +40,21 @@ #include #include -class gps_l1_ca_telemetry_decoder_cc; +class gps_l1_ca_telemetry_decoder_gs; -using gps_l1_ca_telemetry_decoder_cc_sptr = boost::shared_ptr; +using gps_l1_ca_telemetry_decoder_gs_sptr = boost::shared_ptr; -gps_l1_ca_telemetry_decoder_cc_sptr -gps_l1_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +gps_l1_ca_telemetry_decoder_gs_sptr +gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); /*! * \brief This class implements a block that decodes the NAV data defined in IS-GPS-200E * */ -class gps_l1_ca_telemetry_decoder_cc : public gr::block +class gps_l1_ca_telemetry_decoder_gs : public gr::block { public: - ~gps_l1_ca_telemetry_decoder_cc(); + ~gps_l1_ca_telemetry_decoder_gs(); void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int channel); //!< Set receiver's channel @@ -65,10 +65,10 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend gps_l1_ca_telemetry_decoder_cc_sptr - gps_l1_ca_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend gps_l1_ca_telemetry_decoder_gs_sptr + gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); - gps_l1_ca_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + gps_l1_ca_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); bool gps_word_parityCheck(uint32_t gpsword); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc similarity index 93% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc index 49e5704d6..45a0e92d3 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file gps_l2c_telemetry_decoder_cc.cc + * \file gps_l2c_telemetry_decoder_gs.cc * \brief Implementation of a NAV message demodulator block based on * Kay Borre book MATLAB-based GPS receiver * \author Javier Arribas, 2015. jarribas(at)cttc.es @@ -30,9 +30,9 @@ */ -#include "gps_l2c_telemetry_decoder_cc.h" #include "display.h" #include "gnss_synchro.h" +#include "gps_l2c_telemetry_decoder_gs.h" #include #include #include @@ -43,15 +43,15 @@ using google::LogMessage; -gps_l2c_telemetry_decoder_cc_sptr -gps_l2c_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +gps_l2c_telemetry_decoder_gs_sptr +gps_l2c_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return gps_l2c_telemetry_decoder_cc_sptr(new gps_l2c_telemetry_decoder_cc(satellite, dump)); + return gps_l2c_telemetry_decoder_gs_sptr(new gps_l2c_telemetry_decoder_gs(satellite, dump)); } -gps_l2c_telemetry_decoder_cc::gps_l2c_telemetry_decoder_cc( - const Gnss_Satellite &satellite, bool dump) : gr::block("gps_l2c_telemetry_decoder_cc", +gps_l2c_telemetry_decoder_gs::gps_l2c_telemetry_decoder_gs( + const Gnss_Satellite &satellite, bool dump) : gr::block("gps_l2c_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { @@ -74,7 +74,7 @@ gps_l2c_telemetry_decoder_cc::gps_l2c_telemetry_decoder_cc( } -gps_l2c_telemetry_decoder_cc::~gps_l2c_telemetry_decoder_cc() +gps_l2c_telemetry_decoder_gs::~gps_l2c_telemetry_decoder_gs() { if (d_dump_file.is_open() == true) { @@ -90,14 +90,14 @@ gps_l2c_telemetry_decoder_cc::~gps_l2c_telemetry_decoder_cc() } -void gps_l2c_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void gps_l2c_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "GPS L2C CNAV telemetry decoder in channel " << this->d_channel << " set to satellite " << d_satellite; } -void gps_l2c_telemetry_decoder_cc::set_channel(int channel) +void gps_l2c_telemetry_decoder_gs::set_channel(int channel) { d_channel = channel; LOG(INFO) << "GPS L2C CNAV channel set to " << channel; @@ -125,7 +125,7 @@ void gps_l2c_telemetry_decoder_cc::set_channel(int channel) } -int gps_l2c_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int gps_l2c_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { // get pointers on in- and output gnss-synchro objects diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h similarity index 80% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h index b545679fe..4503753eb 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file gps_l2c_telemetry_decoder_cc.h + * \file gps_l2c_telemetry_decoder_gs.h * \brief Interface of a CNAV message demodulator block based on * Kay Borre book MATLAB-based GPS receiver * \author Javier Arribas, 2015. jarribas(at)cttc.es @@ -28,8 +28,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H #include "GPS_L2C.h" @@ -53,21 +53,21 @@ extern "C" } -class gps_l2c_telemetry_decoder_cc; +class gps_l2c_telemetry_decoder_gs; -using gps_l2c_telemetry_decoder_cc_sptr = boost::shared_ptr; +using gps_l2c_telemetry_decoder_gs_sptr = boost::shared_ptr; -gps_l2c_telemetry_decoder_cc_sptr -gps_l2c_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +gps_l2c_telemetry_decoder_gs_sptr +gps_l2c_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); /*! * \brief This class implements a block that decodes the SBAS integrity and corrections data defined in RTCA MOPS DO-229 * */ -class gps_l2c_telemetry_decoder_cc : public gr::block +class gps_l2c_telemetry_decoder_gs : public gr::block { public: - ~gps_l2c_telemetry_decoder_cc(); + ~gps_l2c_telemetry_decoder_gs(); void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int32_t channel); //!< Set receiver's channel @@ -78,9 +78,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend gps_l2c_telemetry_decoder_cc_sptr - gps_l2c_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); - gps_l2c_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend gps_l2c_telemetry_decoder_gs_sptr + gps_l2c_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + gps_l2c_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); bool d_dump; Gnss_Satellite d_satellite; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc similarity index 94% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc index 48ff89668..13df3d2a0 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file gps_l5_telemetry_decoder_cc.cc + * \file gps_l5_telemetry_decoder_gs.cc * \brief Implementation of a CNAV message demodulator block * \author Antonio Ramos, 2017. antonio.ramos(at)cttc.es * @@ -29,11 +29,11 @@ */ -#include "gps_l5_telemetry_decoder_cc.h" #include "display.h" #include "gnss_synchro.h" #include "gps_cnav_ephemeris.h" #include "gps_cnav_iono.h" +#include "gps_l5_telemetry_decoder_gs.h" #include #include #include @@ -44,15 +44,15 @@ using google::LogMessage; -gps_l5_telemetry_decoder_cc_sptr -gps_l5_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +gps_l5_telemetry_decoder_gs_sptr +gps_l5_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return gps_l5_telemetry_decoder_cc_sptr(new gps_l5_telemetry_decoder_cc(satellite, dump)); + return gps_l5_telemetry_decoder_gs_sptr(new gps_l5_telemetry_decoder_gs(satellite, dump)); } -gps_l5_telemetry_decoder_cc::gps_l5_telemetry_decoder_cc( - const Gnss_Satellite &satellite, bool dump) : gr::block("gps_l5_telemetry_decoder_cc", +gps_l5_telemetry_decoder_gs::gps_l5_telemetry_decoder_gs( + const Gnss_Satellite &satellite, bool dump) : gr::block("gps_l5_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { @@ -86,7 +86,7 @@ gps_l5_telemetry_decoder_cc::gps_l5_telemetry_decoder_cc( } -gps_l5_telemetry_decoder_cc::~gps_l5_telemetry_decoder_cc() +gps_l5_telemetry_decoder_gs::~gps_l5_telemetry_decoder_gs() { if (d_dump_file.is_open() == true) { @@ -102,7 +102,7 @@ gps_l5_telemetry_decoder_cc::~gps_l5_telemetry_decoder_cc() } -void gps_l5_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void gps_l5_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "GPS L5 CNAV telemetry decoder in channel " << this->d_channel << " set to satellite " << d_satellite; @@ -110,7 +110,7 @@ void gps_l5_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) } -void gps_l5_telemetry_decoder_cc::set_channel(int32_t channel) +void gps_l5_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; d_CNAV_Message.reset(); @@ -139,7 +139,7 @@ void gps_l5_telemetry_decoder_cc::set_channel(int32_t channel) } -int gps_l5_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int gps_l5_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { // get pointers on in- and output gnss-synchro objects diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h similarity index 79% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h index 39471b350..c8f55eb8f 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file gps_l5_telemetry_decoder_cc.h + * \file gps_l5_telemetry_decoder_gs.h * \brief Interface of a CNAV message demodulator block * \author Antonio Ramos, 2017. antonio.ramos(at)cttc.es * ------------------------------------------------------------------------- @@ -27,8 +27,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_GPS_L5_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_GPS_L5_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_GPS_L5_TELEMETRY_DECODER_GS_H #include "GPS_L5.h" @@ -51,30 +51,30 @@ extern "C" } -class gps_l5_telemetry_decoder_cc; +class gps_l5_telemetry_decoder_gs; -using gps_l5_telemetry_decoder_cc_sptr = boost::shared_ptr; +using gps_l5_telemetry_decoder_gs_sptr = boost::shared_ptr; -gps_l5_telemetry_decoder_cc_sptr -gps_l5_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +gps_l5_telemetry_decoder_gs_sptr +gps_l5_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); /*! * \brief This class implements a GPS L5 Telemetry decoder * */ -class gps_l5_telemetry_decoder_cc : public gr::block +class gps_l5_telemetry_decoder_gs : public gr::block { public: - ~gps_l5_telemetry_decoder_cc(); + ~gps_l5_telemetry_decoder_gs(); void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int32_t channel); //!< Set receiver's channel int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend gps_l5_telemetry_decoder_cc_sptr - gps_l5_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); - gps_l5_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend gps_l5_telemetry_decoder_gs_sptr + gps_l5_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + gps_l5_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); bool d_dump; Gnss_Satellite d_satellite; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc similarity index 92% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc rename to src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc index 8a3628cbd..5edcf24b2 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc @@ -1,5 +1,5 @@ /*! - * \file sbas_l1_telemetry_decoder_cc.cc + * \file sbas_l1_telemetry_decoder_gs.cc * \brief Implementation of a SBAS telemetry data decoder block * \author Daniel Fehr 2013. daniel.co(at)bluewin.ch * @@ -28,8 +28,8 @@ * ------------------------------------------------------------------------- */ -#include "sbas_l1_telemetry_decoder_cc.h" #include "gnss_synchro.h" +#include "sbas_l1_telemetry_decoder_gs.h" #include #include #include @@ -45,16 +45,16 @@ using google::LogMessage; #define LMORE 5 // -sbas_l1_telemetry_decoder_cc_sptr -sbas_l1_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump) +sbas_l1_telemetry_decoder_gs_sptr +sbas_l1_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump) { - return sbas_l1_telemetry_decoder_cc_sptr(new sbas_l1_telemetry_decoder_cc(satellite, dump)); + return sbas_l1_telemetry_decoder_gs_sptr(new sbas_l1_telemetry_decoder_gs(satellite, dump)); } -sbas_l1_telemetry_decoder_cc::sbas_l1_telemetry_decoder_cc( +sbas_l1_telemetry_decoder_gs::sbas_l1_telemetry_decoder_gs( const Gnss_Satellite &satellite, - bool dump) : gr::block("sbas_l1_telemetry_decoder_cc", + bool dump) : gr::block("sbas_l1_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))) { @@ -70,7 +70,7 @@ sbas_l1_telemetry_decoder_cc::sbas_l1_telemetry_decoder_cc( } -sbas_l1_telemetry_decoder_cc::~sbas_l1_telemetry_decoder_cc() +sbas_l1_telemetry_decoder_gs::~sbas_l1_telemetry_decoder_gs() { if (d_dump_file.is_open() == true) { @@ -86,14 +86,14 @@ sbas_l1_telemetry_decoder_cc::~sbas_l1_telemetry_decoder_cc() } -void sbas_l1_telemetry_decoder_cc::set_satellite(const Gnss_Satellite &satellite) +void sbas_l1_telemetry_decoder_gs::set_satellite(const Gnss_Satellite &satellite) { d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "SBAS telemetry decoder in channel " << this->d_channel << " set to satellite " << d_satellite; } -void sbas_l1_telemetry_decoder_cc::set_channel(int32_t channel) +void sbas_l1_telemetry_decoder_gs::set_channel(int32_t channel) { d_channel = channel; LOG(INFO) << "SBAS channel set to " << channel; @@ -101,7 +101,7 @@ void sbas_l1_telemetry_decoder_cc::set_channel(int32_t channel) // ### helper class for sample alignment ### -sbas_l1_telemetry_decoder_cc::Sample_Aligner::Sample_Aligner() +sbas_l1_telemetry_decoder_gs::Sample_Aligner::Sample_Aligner() { d_n_smpls_in_history = 3; d_iir_par = 0.05; @@ -109,10 +109,10 @@ sbas_l1_telemetry_decoder_cc::Sample_Aligner::Sample_Aligner() } -sbas_l1_telemetry_decoder_cc::Sample_Aligner::~Sample_Aligner() = default; +sbas_l1_telemetry_decoder_gs::Sample_Aligner::~Sample_Aligner() = default; -void sbas_l1_telemetry_decoder_cc::Sample_Aligner::reset() +void sbas_l1_telemetry_decoder_gs::Sample_Aligner::reset() { d_past_sample = 0; d_corr_paired = 0; @@ -124,7 +124,7 @@ void sbas_l1_telemetry_decoder_cc::Sample_Aligner::reset() /* * samples length must be a multiple of two */ -bool sbas_l1_telemetry_decoder_cc::Sample_Aligner::get_symbols(const std::vector &samples, std::vector &symbols) +bool sbas_l1_telemetry_decoder_gs::Sample_Aligner::get_symbols(const std::vector &samples, std::vector &symbols) { double smpls[3] = {}; double corr_diff; @@ -134,12 +134,12 @@ bool sbas_l1_telemetry_decoder_cc::Sample_Aligner::get_symbols(const std::vector VLOG(FLOW) << "get_symbols(): " << "d_past_sample=" << d_past_sample << "\tsamples size=" << samples.size(); - for (uint32_t i_sym = 0; i_sym < samples.size() / sbas_l1_telemetry_decoder_cc::D_SAMPLES_PER_SYMBOL; i_sym++) + for (uint32_t i_sym = 0; i_sym < samples.size() / sbas_l1_telemetry_decoder_gs::D_SAMPLES_PER_SYMBOL; i_sym++) { // get the next samples for (int32_t i = 0; i < d_n_smpls_in_history; i++) { - smpls[i] = static_cast(i_sym) * sbas_l1_telemetry_decoder_cc::D_SAMPLES_PER_SYMBOL + i - 1 == -1 ? d_past_sample : samples[i_sym * sbas_l1_telemetry_decoder_cc::D_SAMPLES_PER_SYMBOL + i - 1]; + smpls[i] = static_cast(i_sym) * sbas_l1_telemetry_decoder_gs::D_SAMPLES_PER_SYMBOL + i - 1 == -1 ? d_past_sample : samples[i_sym * sbas_l1_telemetry_decoder_gs::D_SAMPLES_PER_SYMBOL + i - 1]; } // update the pseudo correlations (IIR method) of the two possible alignments @@ -182,7 +182,7 @@ bool sbas_l1_telemetry_decoder_cc::Sample_Aligner::get_symbols(const std::vector // ### helper class for symbol alignment and viterbi decoding ### -sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::Symbol_Aligner_And_Decoder() +sbas_l1_telemetry_decoder_gs::Symbol_Aligner_And_Decoder::Symbol_Aligner_And_Decoder() { // convolutional code properties d_KK = 7; @@ -197,14 +197,14 @@ sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::Symbol_Aligner_And_Dec } -sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::~Symbol_Aligner_And_Decoder() +sbas_l1_telemetry_decoder_gs::Symbol_Aligner_And_Decoder::~Symbol_Aligner_And_Decoder() { delete d_vd1; delete d_vd2; } -void sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::reset() +void sbas_l1_telemetry_decoder_gs::Symbol_Aligner_And_Decoder::reset() { d_past_symbol = 0; d_vd1->reset(); @@ -212,7 +212,7 @@ void sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::reset() } -bool sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::get_bits(const std::vector &symbols, std::vector &bits) +bool sbas_l1_telemetry_decoder_gs::Symbol_Aligner_And_Decoder::get_bits(const std::vector &symbols, std::vector &bits) { const int32_t traceback_depth = 5 * d_KK; int32_t nbits_requested = symbols.size() / D_SYMBOLS_PER_BIT; @@ -251,13 +251,13 @@ bool sbas_l1_telemetry_decoder_cc::Symbol_Aligner_And_Decoder::get_bits(const st // ### helper class for detecting the preamble and collect the corresponding message candidates ### -void sbas_l1_telemetry_decoder_cc::Frame_Detector::reset() +void sbas_l1_telemetry_decoder_gs::Frame_Detector::reset() { d_buffer.clear(); } -void sbas_l1_telemetry_decoder_cc::Frame_Detector::get_frame_candidates(const std::vector &bits, std::vector>> &msg_candidates) +void sbas_l1_telemetry_decoder_gs::Frame_Detector::get_frame_candidates(const std::vector &bits, std::vector>> &msg_candidates) { std::stringstream ss; uint32_t sbas_msg_length = 250; @@ -321,12 +321,12 @@ void sbas_l1_telemetry_decoder_cc::Frame_Detector::get_frame_candidates(const st // ### helper class for checking the CRC of the message candidates ### -void sbas_l1_telemetry_decoder_cc::Crc_Verifier::reset() +void sbas_l1_telemetry_decoder_gs::Crc_Verifier::reset() { } -void sbas_l1_telemetry_decoder_cc::Crc_Verifier::get_valid_frames(const std::vector &msg_candidates, std::vector &valid_msgs) +void sbas_l1_telemetry_decoder_gs::Crc_Verifier::get_valid_frames(const std::vector &msg_candidates, std::vector &valid_msgs) { std::stringstream ss; VLOG(FLOW) << "get_valid_frames(): " @@ -364,7 +364,7 @@ void sbas_l1_telemetry_decoder_cc::Crc_Verifier::get_valid_frames(const std::vec } -void sbas_l1_telemetry_decoder_cc::Crc_Verifier::zerropad_back_and_convert_to_bytes(const std::vector &msg_candidate, std::vector &bytes) +void sbas_l1_telemetry_decoder_gs::Crc_Verifier::zerropad_back_and_convert_to_bytes(const std::vector &msg_candidate, std::vector &bytes) { std::stringstream ss; const size_t bits_per_byte = 8; @@ -391,7 +391,7 @@ void sbas_l1_telemetry_decoder_cc::Crc_Verifier::zerropad_back_and_convert_to_by } -void sbas_l1_telemetry_decoder_cc::Crc_Verifier::zerropad_front_and_convert_to_bytes(const std::vector &msg_candidate, std::vector &bytes) +void sbas_l1_telemetry_decoder_gs::Crc_Verifier::zerropad_front_and_convert_to_bytes(const std::vector &msg_candidate, std::vector &bytes) { std::stringstream ss; const size_t bits_per_byte = 8; @@ -419,7 +419,7 @@ void sbas_l1_telemetry_decoder_cc::Crc_Verifier::zerropad_front_and_convert_to_b } -int sbas_l1_telemetry_decoder_cc::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), +int sbas_l1_telemetry_decoder_gs::general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)), gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) { VLOG(FLOW) << "general_work(): " diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h similarity index 88% rename from src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h rename to src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h index f1188737b..d0c9a25dc 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_cc.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h @@ -1,5 +1,5 @@ /*! - * \file sbas_l1_telemetry_decoder_cc.h + * \file sbas_l1_telemetry_decoder_gs.h * \brief Interface of a SBAS telemetry data decoder block * \author Daniel Fehr 2013. daniel.co(at)bluewin.ch * @@ -28,8 +28,8 @@ * ------------------------------------------------------------------------- */ -#ifndef GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_CC_H -#define GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_CC_H +#ifndef GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H +#define GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_GS_H #include "gnss_satellite.h" #include "viterbi_decoder.h" @@ -44,21 +44,21 @@ #include -class sbas_l1_telemetry_decoder_cc; +class sbas_l1_telemetry_decoder_gs; -using sbas_l1_telemetry_decoder_cc_sptr = boost::shared_ptr; +using sbas_l1_telemetry_decoder_gs_sptr = boost::shared_ptr; -sbas_l1_telemetry_decoder_cc_sptr -sbas_l1_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); +sbas_l1_telemetry_decoder_gs_sptr +sbas_l1_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); /*! * \brief This class implements a block that decodes the SBAS integrity and corrections data defined in RTCA MOPS DO-229 * */ -class sbas_l1_telemetry_decoder_cc : public gr::block +class sbas_l1_telemetry_decoder_gs : public gr::block { public: - ~sbas_l1_telemetry_decoder_cc(); + ~sbas_l1_telemetry_decoder_gs(); void set_satellite(const Gnss_Satellite &satellite); //!< Set satellite PRN void set_channel(int32_t channel); //!< Set receiver's channel @@ -69,9 +69,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items); private: - friend sbas_l1_telemetry_decoder_cc_sptr - sbas_l1_make_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); - sbas_l1_telemetry_decoder_cc(const Gnss_Satellite &satellite, bool dump); + friend sbas_l1_telemetry_decoder_gs_sptr + sbas_l1_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + sbas_l1_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); void viterbi_decoder(double *page_part_symbols, int32_t *page_part_bits); void align_samples(); diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.cc index e158d493f..d9af5fab2 100644 --- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.cc +++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.cc @@ -39,9 +39,6 @@ using google::LogMessage; -void GalileoE5aDllPllTrackingFpga::stop_tracking() -{ -} GalileoE5aDllPllTrackingFpga::GalileoE5aDllPllTrackingFpga( ConfigurationInterface *configuration, const std::string &role, @@ -186,6 +183,11 @@ void GalileoE5aDllPllTrackingFpga::start_tracking() } +void GalileoE5aDllPllTrackingFpga::stop_tracking() +{ +} + + /* * Set tracking channel unique ID */ diff --git a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.h b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.h index b50f67207..e6d736269 100644 --- a/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.h +++ b/src/algorithms/tracking/adapters/galileo_e5a_dll_pll_tracking_fpga.h @@ -35,6 +35,7 @@ #include "dll_pll_veml_tracking_fpga.h" #include "tracking_interface.h" #include +#include class ConfigurationInterface; @@ -64,7 +65,7 @@ public: inline size_t item_size() override { - return item_size_; + return sizeof(int); } void connect(gr::top_block_sptr top_block) override; @@ -91,13 +92,11 @@ public: private: dll_pll_veml_tracking_fpga_sptr tracking_fpga_sc; - size_t item_size_; uint32_t channel_; std::string role_; uint32_t in_streams_; uint32_t out_streams_; - int32_t* d_ca_codes; int32_t* d_data_codes; bool d_track_pilot; diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.cc index 6db3a0cd6..acf564b00 100644 --- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.cc +++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.cc @@ -47,20 +47,14 @@ using google::LogMessage; -void GpsL2MDllPllTrackingFpga::stop_tracking() -{ -} GpsL2MDllPllTrackingFpga::GpsL2MDllPllTrackingFpga( ConfigurationInterface* configuration, const std::string& role, unsigned int in_streams, unsigned int out_streams) : role_(role), in_streams_(in_streams), out_streams_(out_streams) { - //dllpllconf_t trk_param; Dll_Pll_Conf_Fpga trk_param_fpga = Dll_Pll_Conf_Fpga(); DLOG(INFO) << "role " << role; //################# CONFIGURATION PARAMETERS ######################## - //std::string default_item_type = "gr_complex"; - //std::string item_type = configuration->property(role + ".item_type", default_item_type); int fs_in_deprecated = configuration->property("GNSS-SDR.internal_fs_hz", 2048000); int fs_in = configuration->property("GNSS-SDR.internal_fs_sps", fs_in_deprecated); trk_param_fpga.fs_in = fs_in; @@ -123,15 +117,12 @@ GpsL2MDllPllTrackingFpga::GpsL2MDllPllTrackingFpga( //unsigned int multicorr_type = configuration->property(role + ".multicorr_type", 0); trk_param_fpga.multicorr_type = 0; //multicorr_type : 0 -> 3 correlators, 1 -> 5 correlators - //d_tracking_code = static_cast(volk_gnsssdr_malloc(2 * static_cast(GPS_L2_M_CODE_LENGTH_CHIPS) * sizeof(float), volk_gnsssdr_get_alignment())); - d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L2_M_CODE_LENGTH_CHIPS) * NUM_PRNs * sizeof(int), volk_gnsssdr_get_alignment())); auto* ca_codes_f = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L2_M_CODE_LENGTH_CHIPS) * sizeof(float), volk_gnsssdr_get_alignment())); //################# PRE-COMPUTE ALL THE CODES ################# d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(GPS_L2_M_CODE_LENGTH_CHIPS * NUM_PRNs) * sizeof(int), volk_gnsssdr_get_alignment())); for (unsigned int PRN = 1; PRN <= NUM_PRNs; PRN++) { - //gps_l1_ca_code_gen_int(&d_ca_codes[(int(GPS_L1_CA_CODE_LENGTH_CHIPS)) * (PRN - 1)], PRN, 0); gps_l2c_m_code_gen_float(ca_codes_f, PRN); for (unsigned int s = 0; s < 2 * static_cast(GPS_L2_M_CODE_LENGTH_CHIPS); s++) { @@ -139,27 +130,13 @@ GpsL2MDllPllTrackingFpga::GpsL2MDllPllTrackingFpga( } } - delete[] ca_codes_f; + volk_gnsssdr_free(ca_codes_f); trk_param_fpga.ca_codes = d_ca_codes; trk_param_fpga.code_length_chips = GPS_L2_M_CODE_LENGTH_CHIPS; trk_param_fpga.code_samples_per_chip = 1; // 1 sample per chip - //################# MAKE TRACKING GNURadio object ################### - - // //################# MAKE TRACKING GNURadio object ################### - // if (item_type.compare("gr_complex") == 0) - // { - // item_size_ = sizeof(gr_complex); - // tracking_ = dll_pll_veml_make_tracking(trk_param); - // } - // else - // { - // item_size_ = sizeof(gr_complex); - // LOG(WARNING) << item_type << " unknown tracking item type."; - // } - - //################# MAKE TRACKING GNURadio object ################### + //################# MAKE TRACKING GNU Radio object ################### tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); channel_ = 0; @@ -167,30 +144,35 @@ GpsL2MDllPllTrackingFpga::GpsL2MDllPllTrackingFpga( } -GpsL2MDllPllTrackingFpga::~GpsL2MDllPllTrackingFpga() = default; +GpsL2MDllPllTrackingFpga::~GpsL2MDllPllTrackingFpga() +{ + volk_gnsssdr_free(d_ca_codes); +} void GpsL2MDllPllTrackingFpga::start_tracking() { - //tracking_->start_tracking(); tracking_fpga_sc->start_tracking(); } +void GpsL2MDllPllTrackingFpga::stop_tracking() +{ +} + + /* * Set tracking channel unique ID */ void GpsL2MDllPllTrackingFpga::set_channel(unsigned int channel) { channel_ = channel; - //tracking_->set_channel(channel); tracking_fpga_sc->set_channel(channel); } void GpsL2MDllPllTrackingFpga::set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) { - //tracking_->set_gnss_synchro(p_gnss_synchro); tracking_fpga_sc->set_gnss_synchro(p_gnss_synchro); } @@ -200,7 +182,7 @@ void GpsL2MDllPllTrackingFpga::connect(gr::top_block_sptr top_block) if (top_block) { /* top_block is not null */ }; - //nothing to connect, now the tracking uses gr_sync_decimator + // nothing to connect } @@ -209,19 +191,17 @@ void GpsL2MDllPllTrackingFpga::disconnect(gr::top_block_sptr top_block) if (top_block) { /* top_block is not null */ }; - //nothing to disconnect, now the tracking uses gr_sync_decimator + // nothing to disconnect } gr::basic_block_sptr GpsL2MDllPllTrackingFpga::get_left_block() { - //return tracking_; return tracking_fpga_sc; } gr::basic_block_sptr GpsL2MDllPllTrackingFpga::get_right_block() { - //return tracking_; return tracking_fpga_sc; } diff --git a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.h b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.h index e734dea58..77ab71f0d 100644 --- a/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.h +++ b/src/algorithms/tracking/adapters/gps_l2_m_dll_pll_tracking_fpga.h @@ -70,7 +70,7 @@ public: inline size_t item_size() override { - return item_size_; + return sizeof(int); } void connect(gr::top_block_sptr top_block) override; @@ -98,7 +98,6 @@ public: private: //dll_pll_veml_tracking_sptr tracking_; dll_pll_veml_tracking_fpga_sptr tracking_fpga_sc; - size_t item_size_; unsigned int channel_; std::string role_; unsigned int in_streams_; diff --git a/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking_fpga.cc b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking_fpga.cc index 19099270a..b77a280a8 100644 --- a/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking_fpga.cc +++ b/src/algorithms/tracking/adapters/gps_l5_dll_pll_tracking_fpga.cc @@ -150,6 +150,7 @@ GpsL5DllPllTrackingFpga::GpsL5DllPllTrackingFpga( d_ca_codes = static_cast(volk_gnsssdr_malloc(static_cast(code_length_chips * NUM_PRNs) * sizeof(int32_t), volk_gnsssdr_get_alignment())); + d_data_codes = nullptr; if (track_pilot) { d_data_codes = static_cast(volk_gnsssdr_malloc((static_cast(code_length_chips)) * NUM_PRNs * sizeof(int32_t), volk_gnsssdr_get_alignment())); @@ -195,10 +196,10 @@ GpsL5DllPllTrackingFpga::GpsL5DllPllTrackingFpga( GpsL5DllPllTrackingFpga::~GpsL5DllPllTrackingFpga() { - delete[] d_ca_codes; + volk_gnsssdr_free(d_ca_codes); if (d_track_pilot) { - delete[] d_data_codes; + volk_gnsssdr_free(d_data_codes); } } diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc index 4c7f05109..7cff59814 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.cc @@ -421,6 +421,7 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(const Dll_Pll_Conf_Fpga & uint32_t multicorr_type = trk_parameters.multicorr_type; multicorrelator_fpga = std::make_shared(d_n_correlator_taps, device_name, device_base, ca_codes, data_codes, d_code_length_chips, trk_parameters.track_pilot, multicorr_type, d_code_samples_per_chip); multicorrelator_fpga->set_output_vectors(d_correlator_outs, d_Prompt_Data); + d_sample_counter_next = 0ULL; } diff --git a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h index 9fe6cbbbc..227939ded 100644 --- a/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h +++ b/src/algorithms/tracking/gnuradio_blocks/dll_pll_veml_tracking_fpga.h @@ -119,8 +119,6 @@ private: int32_t d_correlation_length_ms; int32_t d_n_correlator_taps; - float *d_tracking_code; - float *d_data_code; float *d_local_code_shift_chips; float *d_prompt_data_shift; std::shared_ptr multicorrelator_fpga; diff --git a/src/algorithms/tracking/libs/fpga_multicorrelator.cc b/src/algorithms/tracking/libs/fpga_multicorrelator.cc index 741705303..cd85c98d5 100644 --- a/src/algorithms/tracking/libs/fpga_multicorrelator.cc +++ b/src/algorithms/tracking/libs/fpga_multicorrelator.cc @@ -248,7 +248,7 @@ void Fpga_Multicorrelator_8sc::set_channel(uint32_t channel) int32_t numdevice = d_device_base + d_channel; devicebasetemp << numdevice; mergedname = d_device_name + devicebasetemp.str(); - strcpy(device_io_name, mergedname.c_str()); + strcpy(device_io_name, mergedname.substr(0, MAX_LENGTH_DEVICEIO_NAME).c_str()); std::cout << "trk device_io_name = " << device_io_name << std::endl; @@ -351,8 +351,7 @@ void Fpga_Multicorrelator_8sc::fpga_compute_code_shift_parameters(void) temp_calculation = temp_calculation + (d_code_length_chips * d_code_samples_per_chip); // % operator does not work as in Matlab with negative numbers } d_initial_index[i] = static_cast((static_cast(temp_calculation)) % (d_code_length_chips * d_code_samples_per_chip)); - temp_calculation = fmod(d_shifts_chips[i] - d_rem_code_phase_chips, - 1.0); + temp_calculation = fmod(d_shifts_chips[i] - d_rem_code_phase_chips, 1.0); if (temp_calculation < 0) { temp_calculation = temp_calculation + 1.0; // fmod operator does not work as in Matlab with negative numbers @@ -362,16 +361,14 @@ void Fpga_Multicorrelator_8sc::fpga_compute_code_shift_parameters(void) } if (d_track_pilot) { - temp_calculation = floor( - d_prompt_data_shift[0] - d_rem_code_phase_chips); + temp_calculation = floor(d_prompt_data_shift[0] - d_rem_code_phase_chips); if (temp_calculation < 0) { temp_calculation = temp_calculation + (d_code_length_chips * d_code_samples_per_chip); // % operator does not work as in Matlab with negative numbers } d_initial_index[d_n_correlators] = static_cast((static_cast(temp_calculation)) % (d_code_length_chips * d_code_samples_per_chip)); - temp_calculation = fmod(d_prompt_data_shift[0] - d_rem_code_phase_chips, - 1.0); + temp_calculation = fmod(d_prompt_data_shift[0] - d_rem_code_phase_chips, 1.0); if (temp_calculation < 0) { temp_calculation = temp_calculation + 1.0; // fmod operator does not work as in Matlab with negative numbers @@ -421,14 +418,12 @@ void Fpga_Multicorrelator_8sc::fpga_compute_signal_parameters_in_fpga(void) { d_rem_carrier_phase_in_rad_temp = d_rem_carrier_phase_in_rad; } - d_rem_carr_phase_rad_int = static_cast(roundf( - (fabs(d_rem_carrier_phase_in_rad_temp) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); + d_rem_carr_phase_rad_int = static_cast(roundf((fabs(d_rem_carrier_phase_in_rad_temp) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); if (d_rem_carrier_phase_in_rad_temp < 0) { d_rem_carr_phase_rad_int = -d_rem_carr_phase_rad_int; } - d_phase_step_rad_int = static_cast(roundf( - (fabs(d_phase_step_rad) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); // the FPGA accepts a range for the phase step between -pi and +pi + d_phase_step_rad_int = static_cast(roundf((fabs(d_phase_step_rad) / M_PI) * pow(2, PHASE_CARR_NBITS_FRAC))); // the FPGA accepts a range for the phase step between -pi and +pi if (d_phase_step_rad < 0) { diff --git a/src/core/system_parameters/galileo_navigation_message.cc b/src/core/system_parameters/galileo_navigation_message.cc index aec3cdd0d..263294057 100644 --- a/src/core/system_parameters/galileo_navigation_message.cc +++ b/src/core/system_parameters/galileo_navigation_message.cc @@ -627,7 +627,7 @@ int32_t Galileo_Navigation_Message::page_jk_decoder(const char* data_jk) std::bitset data_jk_bits(data_jk_string); page_number = static_cast(read_navigation_unsigned(data_jk_bits, PAGE_TYPE_BIT)); - LOG(INFO) << "Page number = " << page_number; + DLOG(INFO) << "Page number = " << page_number; switch (page_number) {