mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into release_0010
This commit is contained in:
		| @@ -32,12 +32,11 @@ | |||||||
| #ifndef GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_ | #ifndef GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_ | #define GNSS_SDR_GALILEO_E1_PCPS_8MS_AMBIGUOUS_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "galileo_pcps_8ms_acquisition_cc.h" | #include "galileo_pcps_8ms_acquisition_cc.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -123,6 +122,7 @@ public: | |||||||
|      * \brief Restart acquisition algorithm |      * \brief Restart acquisition algorithm | ||||||
|      */ |      */ | ||||||
|     void reset() override; |     void reset() override; | ||||||
|  |     void set_state(int state __attribute__((unused))) override{}; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -130,7 +130,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -32,12 +32,11 @@ | |||||||
| #ifndef GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_ | #ifndef GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_ | #define GNSS_SDR_GALILEO_E1_PCPS_CCCWSR_AMBIGUOUS_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_cccwsr_acquisition_cc.h" | #include "pcps_cccwsr_acquisition_cc.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -124,7 +123,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -32,11 +32,11 @@ | |||||||
| #ifndef GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_ | #ifndef GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_ | #define GNSS_SDR_GALILEO_E1_PCPS_QUICKSYNC_AMBIGUOUS_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_quicksync_acquisition_cc.h" | #include "pcps_quicksync_acquisition_cc.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
| @@ -127,7 +127,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -32,12 +32,11 @@ | |||||||
| #ifndef GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_ | #ifndef GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_ | #define GNSS_SDR_GALILEO_E1_PCPS_TONG_AMBIGUOUS_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_tong_acquisition_cc.h" | #include "pcps_tong_acquisition_cc.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -127,7 +126,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -38,10 +38,10 @@ | |||||||
| #ifndef GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_ | #ifndef GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_ | ||||||
| #define GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_ | #define GALILEO_E5A_NONCOHERENT_IQ_ACQUISITION_CAF_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "galileo_e5a_noncoherent_iq_acquisition_caf_cc.h" | #include "galileo_e5a_noncoherent_iq_acquisition_caf_cc.h" | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -129,7 +129,7 @@ public: | |||||||
|      * first available sample. |      * first available sample. | ||||||
|      * \param state - int=1 forces start of acquisition |      * \param state - int=1 forces start of acquisition | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -121,7 +121,7 @@ public: | |||||||
|      * first available sample. |      * first available sample. | ||||||
|      * \param state - int=1 forces start of acquisition |      * \param state - int=1 forces start of acquisition | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     float calculate_threshold(float pfa); |     float calculate_threshold(float pfa); | ||||||
|   | |||||||
| @@ -130,7 +130,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -129,7 +129,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -134,7 +134,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -33,12 +33,12 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "gps_l1_ca_pcps_acquisition_fine_doppler.h" | #include "gps_l1_ca_pcps_acquisition_fine_doppler.h" | ||||||
| #include <glog/logging.h> |  | ||||||
| #include "gps_sdr_signal_processing.h" | #include "gps_sdr_signal_processing.h" | ||||||
| #include "GPS_L1_CA.h" | #include "GPS_L1_CA.h" | ||||||
| #include "configuration_interface.h" | #include "configuration_interface.h" | ||||||
| #include "gnss_sdr_flags.h" | #include "gnss_sdr_flags.h" | ||||||
| #include "acq_conf.h" | #include "acq_conf.h" | ||||||
|  | #include <glog/logging.h> | ||||||
|  |  | ||||||
| using google::LogMessage; | using google::LogMessage; | ||||||
|  |  | ||||||
| @@ -168,6 +168,12 @@ void GpsL1CaPcpsAcquisitionFineDoppler::reset() | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | void GpsL1CaPcpsAcquisitionFineDoppler::set_state(int state) | ||||||
|  | { | ||||||
|  |     acquisition_cc_->set_state(state); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
| void GpsL1CaPcpsAcquisitionFineDoppler::connect(boost::shared_ptr<gr::top_block> top_block) | void GpsL1CaPcpsAcquisitionFineDoppler::connect(boost::shared_ptr<gr::top_block> top_block) | ||||||
| { | { | ||||||
|     if (top_block) |     if (top_block) | ||||||
|   | |||||||
| @@ -34,11 +34,10 @@ | |||||||
| #ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_ | #ifndef GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_ | ||||||
| #define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_ | #define GNSS_SDR_GPS_L1_CA_PCPS_ACQUISITION_FINE_DOPPLER_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_acquisition_fine_doppler_cc.h" | #include "pcps_acquisition_fine_doppler_cc.h" | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -122,6 +121,11 @@ public: | |||||||
|      */ |      */ | ||||||
|     void reset() override; |     void reset() override; | ||||||
|  |  | ||||||
|  |     /*! | ||||||
|  |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|  |      */ | ||||||
|  |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     pcps_acquisition_fine_doppler_cc_sptr acquisition_cc_; |     pcps_acquisition_fine_doppler_cc_sptr acquisition_cc_; | ||||||
|     size_t item_size_; |     size_t item_size_; | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -34,11 +34,10 @@ | |||||||
| #ifndef GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_ | #ifndef GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_ | #define GNSS_SDR_GPS_L1_CA_PCPS_ASSISTED_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_assisted_acquisition_cc.h" | #include "pcps_assisted_acquisition_cc.h" | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -121,6 +120,7 @@ public: | |||||||
|      * \brief Restart acquisition algorithm |      * \brief Restart acquisition algorithm | ||||||
|      */ |      */ | ||||||
|     void reset() override; |     void reset() override; | ||||||
|  |     void set_state(int state __attribute__((unused))) override{}; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     pcps_assisted_acquisition_cc_sptr acquisition_cc_; |     pcps_assisted_acquisition_cc_sptr acquisition_cc_; | ||||||
|   | |||||||
| @@ -32,12 +32,11 @@ | |||||||
| #ifndef GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_ | #ifndef GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_ | #define GNSS_SDR_GPS_L1_CA_PCPS_OPENCL_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_opencl_acquisition_cc.h" | #include "pcps_opencl_acquisition_cc.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -123,6 +122,7 @@ public: | |||||||
|      * \brief Restart acquisition algorithm |      * \brief Restart acquisition algorithm | ||||||
|      */ |      */ | ||||||
|     void reset() override; |     void reset() override; | ||||||
|  |     void set_state(int state __attribute__((unused))) override{}; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -33,13 +33,12 @@ | |||||||
| #ifndef GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_ | #ifndef GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_ | #define GNSS_SDR_GPS_L1_CA_PCPS_QUICKSYNC_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_quicksync_acquisition_cc.h" | #include "pcps_quicksync_acquisition_cc.h" | ||||||
| #include "configuration_interface.h" | #include "configuration_interface.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -129,7 +128,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -32,12 +32,12 @@ | |||||||
| #ifndef GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_ | #ifndef GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_ | ||||||
| #define GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_ | #define GNSS_SDR_GPS_L1_CA_TONG_ACQUISITION_H_ | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
| #include <gnuradio/blocks/stream_to_vector.h> |  | ||||||
| #include "gnss_synchro.h" | #include "gnss_synchro.h" | ||||||
| #include "acquisition_interface.h" | #include "acquisition_interface.h" | ||||||
| #include "pcps_tong_acquisition_cc.h" | #include "pcps_tong_acquisition_cc.h" | ||||||
| #include "configuration_interface.h" | #include "configuration_interface.h" | ||||||
|  | #include <gnuradio/blocks/stream_to_vector.h> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
| class ConfigurationInterface; | class ConfigurationInterface; | ||||||
|  |  | ||||||
| @@ -127,7 +127,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ public: | |||||||
|     /*! |     /*! | ||||||
|      * \brief If state = 1, it forces the block to start acquiring from the first sample |      * \brief If state = 1, it forces the block to start acquiring from the first sample | ||||||
|      */ |      */ | ||||||
|     void set_state(int state); |     void set_state(int state) override; | ||||||
|  |  | ||||||
| private: | private: | ||||||
|     ConfigurationInterface* configuration_; |     ConfigurationInterface* configuration_; | ||||||
|   | |||||||
| @@ -400,7 +400,7 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler() | |||||||
|  |  | ||||||
|     //case even |     //case even | ||||||
|     int counter = 0; |     int counter = 0; | ||||||
|     float* fftFreqBins= new float[fft_size_extended]; |     float *fftFreqBins = new float[fft_size_extended]; | ||||||
|  |  | ||||||
|     std::fill_n(fftFreqBins, fft_size_extended, 0.0); |     std::fill_n(fftFreqBins, fft_size_extended, 0.0); | ||||||
|  |  | ||||||
| @@ -414,7 +414,6 @@ int pcps_acquisition_fine_doppler_cc::estimate_Doppler() | |||||||
|         { |         { | ||||||
|             fftFreqBins[counter] = ((-static_cast<float>(d_fs_in) / 2.0) * static_cast<float>(k)) / (static_cast<float>(fft_size_extended) / 2.0); |             fftFreqBins[counter] = ((-static_cast<float>(d_fs_in) / 2.0) * static_cast<float>(k)) / (static_cast<float>(fft_size_extended) / 2.0); | ||||||
|             counter++; |             counter++; | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     // 5. Update the Doppler estimation in Hz |     // 5. Update the Doppler estimation in Hz | ||||||
| @@ -493,7 +492,6 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items, | |||||||
|     switch (d_state) |     switch (d_state) | ||||||
|         { |         { | ||||||
|         case 0:  // S0. StandBy |         case 0:  // S0. StandBy | ||||||
|             std::cout << "S0."; |  | ||||||
|             if (d_active == true) |             if (d_active == true) | ||||||
|                 { |                 { | ||||||
|                     reset_grid(); |                     reset_grid(); | ||||||
| @@ -506,7 +504,6 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items, | |||||||
|                 } |                 } | ||||||
|             break; |             break; | ||||||
|         case 1:  // S1. ComputeGrid |         case 1:  // S1. ComputeGrid | ||||||
|             std::cout << "S1."; |  | ||||||
|             compute_and_accumulate_grid(input_items); |             compute_and_accumulate_grid(input_items); | ||||||
|             d_well_count++; |             d_well_count++; | ||||||
|             if (d_well_count >= d_max_dwells) |             if (d_well_count >= d_max_dwells) | ||||||
| @@ -527,11 +524,6 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items, | |||||||
|                     d_state = 5;  //negative acquisition |                     d_state = 5;  //negative acquisition | ||||||
|                 } |                 } | ||||||
|             d_n_samples_in_buffer = 0; |             d_n_samples_in_buffer = 0; | ||||||
|             // Record results to file if required |  | ||||||
|             //if (d_dump and d_channel == d_dump_channel) |  | ||||||
|             //    { |  | ||||||
|             //        dump_results(d_fft_size); |  | ||||||
|             //    } |  | ||||||
|             d_sample_counter += d_fft_size;  // sample counter |             d_sample_counter += d_fft_size;  // sample counter | ||||||
|             consume_each(d_fft_size); |             consume_each(d_fft_size); | ||||||
|             break; |             break; | ||||||
| @@ -564,6 +556,11 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items, | |||||||
|             DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz; |             DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz; | ||||||
|             d_positive_acq = 1; |             d_positive_acq = 1; | ||||||
|             d_active = false; |             d_active = false; | ||||||
|  |             // Record results to file if required | ||||||
|  |             if (d_dump and d_channel == d_dump_channel) | ||||||
|  |                 { | ||||||
|  |                     dump_results(d_fft_size); | ||||||
|  |                 } | ||||||
|             // Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL |             // Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL | ||||||
|             this->message_port_pub(pmt::mp("events"), pmt::from_long(1)); |             this->message_port_pub(pmt::mp("events"), pmt::from_long(1)); | ||||||
|             d_state = 0; |             d_state = 0; | ||||||
| @@ -583,6 +580,11 @@ int pcps_acquisition_fine_doppler_cc::general_work(int noutput_items, | |||||||
|             DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz; |             DLOG(INFO) << "doppler " << d_gnss_synchro->Acq_doppler_hz; | ||||||
|             d_positive_acq = 0; |             d_positive_acq = 0; | ||||||
|             d_active = false; |             d_active = false; | ||||||
|  |             // Record results to file if required | ||||||
|  |             if (d_dump and d_channel == d_dump_channel) | ||||||
|  |                 { | ||||||
|  |                     dump_results(d_fft_size); | ||||||
|  |                 } | ||||||
|             // Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL |             // Send message to channel port //0=STOP_CHANNEL 1=ACQ_SUCCEES 2=ACQ_FAIL | ||||||
|             this->message_port_pub(pmt::mp("events"), pmt::from_long(2)); |             this->message_port_pub(pmt::mp("events"), pmt::from_long(2)); | ||||||
|             d_state = 0; |             d_state = 0; | ||||||
|   | |||||||
| @@ -61,6 +61,7 @@ public: | |||||||
|     virtual void set_doppler_step(unsigned int doppler_step) = 0; |     virtual void set_doppler_step(unsigned int doppler_step) = 0; | ||||||
|     virtual void init() = 0; |     virtual void init() = 0; | ||||||
|     virtual void set_local_code() = 0; |     virtual void set_local_code() = 0; | ||||||
|  |     virtual void set_state(int state) = 0; | ||||||
|     virtual signed int mag() = 0; |     virtual signed int mag() = 0; | ||||||
|     virtual void reset() = 0; |     virtual void reset() = 0; | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -33,6 +33,8 @@ | |||||||
| #include "signal_generator_flags.h" | #include "signal_generator_flags.h" | ||||||
| #include "tracking_true_obs_reader.h" | #include "tracking_true_obs_reader.h" | ||||||
| #include "true_observables_reader.h" | #include "true_observables_reader.h" | ||||||
|  | #include "gps_l1_ca_pcps_acquisition.h" | ||||||
|  | #include "gps_l1_ca_pcps_acquisition_fine_doppler.h" | ||||||
| #include "display.h" | #include "display.h" | ||||||
| #include "gnuplot_i.h" | #include "gnuplot_i.h" | ||||||
| #include <boost/filesystem.hpp> | #include <boost/filesystem.hpp> | ||||||
| @@ -42,6 +44,7 @@ | |||||||
|  |  | ||||||
| DEFINE_string(config_file_ptest, std::string(""), "File containing alternative configuration parameters for the acquisition performance test."); | DEFINE_string(config_file_ptest, std::string(""), "File containing alternative configuration parameters for the acquisition performance test."); | ||||||
| DEFINE_string(acq_test_input_file, std::string(""), "File containing raw signal data, must be in int8_t format. The signal generator will not be used."); | DEFINE_string(acq_test_input_file, std::string(""), "File containing raw signal data, must be in int8_t format. The signal generator will not be used."); | ||||||
|  | DEFINE_string(acq_test_implementation, std::string("GPS_L1_CA_PCPS_Acquisition"), "Acquisition block implementation under test. Alternative: GPS_L1_CA_PCPS_Acquisition_Fine_Doppler"); | ||||||
|  |  | ||||||
| DEFINE_int32(acq_test_doppler_max, 5000, "Maximum Doppler, in Hz"); | DEFINE_int32(acq_test_doppler_max, 5000, "Maximum Doppler, in Hz"); | ||||||
| DEFINE_int32(acq_test_doppler_step, 125, "Doppler step, in Hz."); | DEFINE_int32(acq_test_doppler_step, 125, "Doppler step, in Hz."); | ||||||
| @@ -200,7 +203,6 @@ protected: | |||||||
|     { |     { | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     std::vector<double> cn0_vector; |     std::vector<double> cn0_vector; | ||||||
|     std::vector<float> pfa_vector; |     std::vector<float> pfa_vector; | ||||||
|  |  | ||||||
| @@ -223,7 +225,7 @@ protected: | |||||||
|  |  | ||||||
|     gr::msg_queue::sptr queue; |     gr::msg_queue::sptr queue; | ||||||
|     gr::top_block_sptr top_block; |     gr::top_block_sptr top_block; | ||||||
|     std::shared_ptr<GpsL1CaPcpsAcquisition> acquisition; |     std::shared_ptr<AcquisitionInterface> acquisition; | ||||||
|     std::shared_ptr<InMemoryConfiguration> config; |     std::shared_ptr<InMemoryConfiguration> config; | ||||||
|     std::shared_ptr<FileConfiguration> config_f; |     std::shared_ptr<FileConfiguration> config_f; | ||||||
|     Gnss_Synchro gnss_synchro; |     Gnss_Synchro gnss_synchro; | ||||||
| @@ -235,7 +237,7 @@ protected: | |||||||
|     int message; |     int message; | ||||||
|     boost::thread ch_thread; |     boost::thread ch_thread; | ||||||
|  |  | ||||||
|     std::string implementation = "GPS_L1_CA_PCPS_Acquisition"; |     std::string implementation = FLAGS_acq_test_implementation; | ||||||
|  |  | ||||||
|     const double baseband_sampling_freq = static_cast<double>(FLAGS_fs_gen_sps); |     const double baseband_sampling_freq = static_cast<double>(FLAGS_fs_gen_sps); | ||||||
|     const int coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms; |     const int coherent_integration_time_ms = FLAGS_acq_test_coherent_time_ms; | ||||||
| @@ -379,6 +381,7 @@ int AcquisitionPerformanceTest::configure_receiver(double cn0, float pfa, unsign | |||||||
|             config->set_property("Acquisition_1C.implementation", implementation); |             config->set_property("Acquisition_1C.implementation", implementation); | ||||||
|             config->set_property("Acquisition_1C.item_type", "gr_complex"); |             config->set_property("Acquisition_1C.item_type", "gr_complex"); | ||||||
|             config->set_property("Acquisition_1C.doppler_max", std::to_string(doppler_max)); |             config->set_property("Acquisition_1C.doppler_max", std::to_string(doppler_max)); | ||||||
|  |             config->set_property("Acquisition_1C.doppler_min", std::to_string(-doppler_max)); | ||||||
|             config->set_property("Acquisition_1C.doppler_step", std::to_string(doppler_step)); |             config->set_property("Acquisition_1C.doppler_step", std::to_string(doppler_step)); | ||||||
|  |  | ||||||
|             config->set_property("Acquisition_1C.threshold", std::to_string(pfa)); |             config->set_property("Acquisition_1C.threshold", std::to_string(pfa)); | ||||||
| @@ -457,23 +460,39 @@ int AcquisitionPerformanceTest::run_receiver() | |||||||
|  |  | ||||||
|     int nsamples = floor(config->property("GNSS-SDR.internal_fs_sps", 2000000) * generated_signal_duration_s); |     int nsamples = floor(config->property("GNSS-SDR.internal_fs_sps", 2000000) * generated_signal_duration_s); | ||||||
|     boost::shared_ptr<gr::block> valve = gnss_sdr_make_valve(sizeof(gr_complex), nsamples, queue); |     boost::shared_ptr<gr::block> valve = gnss_sdr_make_valve(sizeof(gr_complex), nsamples, queue); | ||||||
|  |     if (implementation.compare("GPS_L1_CA_PCPS_Acquisition") == 0) | ||||||
|  |         { | ||||||
|             acquisition = std::make_shared<GpsL1CaPcpsAcquisition>(config.get(), "Acquisition_1C", 1, 0); |             acquisition = std::make_shared<GpsL1CaPcpsAcquisition>(config.get(), "Acquisition_1C", 1, 0); | ||||||
|  |         } | ||||||
|  |     else | ||||||
|  |         { | ||||||
|  |             if (implementation.compare("GPS_L1_CA_PCPS_Acquisition_Fine_Doppler") == 0) | ||||||
|  |                 { | ||||||
|  |                     acquisition = std::make_shared<GpsL1CaPcpsAcquisitionFineDoppler>(config.get(), "Acquisition_1C", 1, 0); | ||||||
|  |                 } | ||||||
|  |             else | ||||||
|  |                 { | ||||||
|  |                     bool aux = false; | ||||||
|  |                     EXPECT_EQ(true, aux); | ||||||
|  |                 } | ||||||
|  |         } | ||||||
|  |  | ||||||
|     acquisition->set_gnss_synchro(&gnss_synchro); |     acquisition->set_gnss_synchro(&gnss_synchro); | ||||||
|     acquisition->set_channel(0); |     acquisition->set_channel(0); | ||||||
|     acquisition->set_local_code(); |  | ||||||
|     acquisition->set_doppler_max(config->property("Acquisition_1C.doppler_max", 10000)); |     acquisition->set_doppler_max(config->property("Acquisition_1C.doppler_max", 10000)); | ||||||
|     acquisition->set_doppler_step(config->property("Acquisition_1C.doppler_step", 500)); |     acquisition->set_doppler_step(config->property("Acquisition_1C.doppler_step", 500)); | ||||||
|     acquisition->set_threshold(config->property("Acquisition_1C.threshold", 0.0)); |     acquisition->set_threshold(config->property("Acquisition_1C.threshold", 0.0)); | ||||||
|  |     acquisition->init(); | ||||||
|  |     acquisition->set_local_code(); | ||||||
|  |  | ||||||
|     acquisition->set_state(1);  // Ensure that acquisition starts at the first sample |     acquisition->set_state(1);  // Ensure that acquisition starts at the first sample | ||||||
|     acquisition->connect(top_block); |     acquisition->connect(top_block); | ||||||
|     top_block->msg_connect(acquisition->get_right_block(), pmt::mp("events"), msg_rx, pmt::mp("events")); |  | ||||||
|  |  | ||||||
|     acquisition->init(); |  | ||||||
|  |  | ||||||
|  |     acquisition->reset(); | ||||||
|     top_block->connect(file_source, 0, gr_interleaved_char_to_complex, 0); |     top_block->connect(file_source, 0, gr_interleaved_char_to_complex, 0); | ||||||
|     top_block->connect(gr_interleaved_char_to_complex, 0, valve, 0); |     top_block->connect(gr_interleaved_char_to_complex, 0, valve, 0); | ||||||
|     top_block->connect(valve, 0, acquisition->get_left_block(), 0); |     top_block->connect(valve, 0, acquisition->get_left_block(), 0); | ||||||
|  |     top_block->msg_connect(acquisition->get_right_block(), pmt::mp("events"), msg_rx, pmt::mp("events")); | ||||||
|  |  | ||||||
|     start_queue(); |     start_queue(); | ||||||
|  |  | ||||||
| @@ -534,6 +553,14 @@ void AcquisitionPerformanceTest::plot_results() | |||||||
|                             Gnuplot::set_GNUPlotPath(gnuplot_path); |                             Gnuplot::set_GNUPlotPath(gnuplot_path); | ||||||
|  |  | ||||||
|                             Gnuplot g1("linespoints"); |                             Gnuplot g1("linespoints"); | ||||||
|  |                             if (FLAGS_show_plots) | ||||||
|  |                                 { | ||||||
|  |                                     g1.showonscreen();  // window output | ||||||
|  |                                 } | ||||||
|  |                             else | ||||||
|  |                                 { | ||||||
|  |                                     g1.disablescreen(); | ||||||
|  |                                 } | ||||||
|                             g1.cmd("set font \"Times,18\""); |                             g1.cmd("set font \"Times,18\""); | ||||||
|                             g1.set_title("Receiver Operating Characteristic for GPS L1 C/A acquisition"); |                             g1.set_title("Receiver Operating Characteristic for GPS L1 C/A acquisition"); | ||||||
|                             g1.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen 0.12, 0.83 font \"Times,16\""); |                             g1.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen 0.12, 0.83 font \"Times,16\""); | ||||||
| @@ -560,9 +587,16 @@ void AcquisitionPerformanceTest::plot_results() | |||||||
|                             g1.set_legend(); |                             g1.set_legend(); | ||||||
|                             g1.savetops("ROC"); |                             g1.savetops("ROC"); | ||||||
|                             g1.savetopdf("ROC", 18); |                             g1.savetopdf("ROC", 18); | ||||||
|                             if (FLAGS_show_plots) g1.showonscreen();  // window output |  | ||||||
|  |  | ||||||
|                             Gnuplot g2("linespoints"); |                             Gnuplot g2("linespoints"); | ||||||
|  |                             if (FLAGS_show_plots) | ||||||
|  |                                 { | ||||||
|  |                                     g2.showonscreen();  // window output | ||||||
|  |                                 } | ||||||
|  |                             else | ||||||
|  |                                 { | ||||||
|  |                                     g2.disablescreen(); | ||||||
|  |                                 } | ||||||
|                             g2.cmd("set font \"Times,18\""); |                             g2.cmd("set font \"Times,18\""); | ||||||
|                             g2.set_title("Receiver Operating Characteristic for GPS L1 C/A valid acquisition"); |                             g2.set_title("Receiver Operating Characteristic for GPS L1 C/A valid acquisition"); | ||||||
|                             g2.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen  0.12, 0.83 font \"Times,16\""); |                             g2.cmd("set label 1 \"" + std::string("Coherent integration time: ") + std::to_string(config->property("Acquisition_1C.coherent_integration_time_ms", 1)) + " ms, Non-coherent integrations: " + std::to_string(config->property("Acquisition_1C.max_dwells", 1)) + " \" at screen  0.12, 0.83 font \"Times,16\""); | ||||||
| @@ -589,7 +623,6 @@ void AcquisitionPerformanceTest::plot_results() | |||||||
|                             g2.set_legend(); |                             g2.set_legend(); | ||||||
|                             g2.savetops("ROC-valid-detection"); |                             g2.savetops("ROC-valid-detection"); | ||||||
|                             g2.savetopdf("ROC-valid-detection", 18); |                             g2.savetopdf("ROC-valid-detection", 18); | ||||||
|                             if (FLAGS_show_plots) g2.showonscreen();  // window output |  | ||||||
|                         } |                         } | ||||||
|                     catch (const GnuplotException& ge) |                     catch (const GnuplotException& ge) | ||||||
|                         { |                         { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez