mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-11-04 01:03:04 +00:00 
			
		
		
		
	Merge branch 'next' of https://github.com/carlesfernandez/gnss-sdr into next
This commit is contained in:
		@@ -199,14 +199,14 @@ void BeidouB1iPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void BeidouB1iPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    beidou_b1i_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
    beidou_b1i_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < num_codes_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -200,14 +200,14 @@ void BeidouB3iPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void BeidouB3iPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    beidou_b3i_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
    beidou_b3i_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < num_codes_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -210,19 +210,19 @@ void GalileoE1Pcps8msAmbiguousAcquisition::set_local_code()
 | 
			
		||||
            bool cboc = configuration_->property(
 | 
			
		||||
                "Acquisition" + std::to_string(channel_) + ".cboc", false);
 | 
			
		||||
 | 
			
		||||
            std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
            std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
            std::array<char, 3> Signal_{};
 | 
			
		||||
            Signal_[0] = gnss_synchro_->Signal[0];
 | 
			
		||||
            Signal_[1] = gnss_synchro_->Signal[1];
 | 
			
		||||
            Signal_[2] = '\0';
 | 
			
		||||
 | 
			
		||||
            galileo_e1_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), Signal_,
 | 
			
		||||
            galileo_e1_code_gen_complex_sampled(code, Signal_,
 | 
			
		||||
                cboc, gnss_synchro_->PRN, fs_in_, 0, false);
 | 
			
		||||
 | 
			
		||||
            gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
            for (unsigned int i = 0; i < sampled_ms_ / 4; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                    std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            acquisition_cc_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -245,8 +245,7 @@ void GalileoE1PcpsAmbiguousAcquisition::set_local_code()
 | 
			
		||||
    bool cboc = configuration_->property(
 | 
			
		||||
        "Acquisition" + std::to_string(channel_) + ".cboc", false);
 | 
			
		||||
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    gsl::span<std::complex<float>> code_span(code.get(), code_length_);
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    if (acquire_pilot_ == true)
 | 
			
		||||
        {
 | 
			
		||||
@@ -254,12 +253,12 @@ void GalileoE1PcpsAmbiguousAcquisition::set_local_code()
 | 
			
		||||
            std::array<char, 3> pilot_signal = {{'1', 'C', '\0'}};
 | 
			
		||||
            if (acq_parameters_.use_automatic_resampler)
 | 
			
		||||
                {
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code_span, pilot_signal,
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code, pilot_signal,
 | 
			
		||||
                        cboc, gnss_synchro_->PRN, acq_parameters_.resampled_fs, 0, false);
 | 
			
		||||
                }
 | 
			
		||||
            else
 | 
			
		||||
                {
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code_span, pilot_signal,
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code, pilot_signal,
 | 
			
		||||
                        cboc, gnss_synchro_->PRN, fs_in_, 0, false);
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
@@ -271,12 +270,12 @@ void GalileoE1PcpsAmbiguousAcquisition::set_local_code()
 | 
			
		||||
            Signal_[2] = '\0';
 | 
			
		||||
            if (acq_parameters_.use_automatic_resampler)
 | 
			
		||||
                {
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code_span, Signal_,
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code, Signal_,
 | 
			
		||||
                        cboc, gnss_synchro_->PRN, acq_parameters_.resampled_fs, 0, false);
 | 
			
		||||
                }
 | 
			
		||||
            else
 | 
			
		||||
                {
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code_span, Signal_,
 | 
			
		||||
                    galileo_e1_code_gen_complex_sampled(code, Signal_,
 | 
			
		||||
                        cboc, gnss_synchro_->PRN, fs_in_, 0, false);
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
@@ -284,7 +283,7 @@ void GalileoE1PcpsAmbiguousAcquisition::set_local_code()
 | 
			
		||||
    gsl::span<gr_complex> code__span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < sampled_ms_ / 4; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code__span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code__span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -244,19 +244,19 @@ void GalileoE1PcpsQuickSyncAmbiguousAcquisition::set_local_code()
 | 
			
		||||
            bool cboc = configuration_->property(
 | 
			
		||||
                "Acquisition" + std::to_string(channel_) + ".cboc", false);
 | 
			
		||||
 | 
			
		||||
            std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
            std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
            std::array<char, 3> Signal_{};
 | 
			
		||||
            Signal_[0] = gnss_synchro_->Signal[0];
 | 
			
		||||
            Signal_[1] = gnss_synchro_->Signal[1];
 | 
			
		||||
            Signal_[2] = '\0';
 | 
			
		||||
 | 
			
		||||
            galileo_e1_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.get(), code_length_), Signal_,
 | 
			
		||||
            galileo_e1_code_gen_complex_sampled(code, Signal_,
 | 
			
		||||
                cboc, gnss_synchro_->PRN, fs_in_, 0, false);
 | 
			
		||||
 | 
			
		||||
            gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
            for (unsigned int i = 0; i < (sampled_ms_ / (folding_factor_ * 4)); i++)
 | 
			
		||||
                {
 | 
			
		||||
                    std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                    std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            acquisition_cc_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -214,18 +214,18 @@ void GalileoE1PcpsTongAmbiguousAcquisition::set_local_code()
 | 
			
		||||
            bool cboc = configuration_->property(
 | 
			
		||||
                "Acquisition" + std::to_string(channel_) + ".cboc", false);
 | 
			
		||||
 | 
			
		||||
            std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
            std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
            std::array<char, 3> Signal_{};
 | 
			
		||||
            Signal_[0] = gnss_synchro_->Signal[0];
 | 
			
		||||
            Signal_[1] = gnss_synchro_->Signal[1];
 | 
			
		||||
            Signal_[2] = '\0';
 | 
			
		||||
            galileo_e1_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.get(), code_length_), Signal_,
 | 
			
		||||
            galileo_e1_code_gen_complex_sampled(code, Signal_,
 | 
			
		||||
                cboc, gnss_synchro_->PRN, fs_in_, 0, false);
 | 
			
		||||
 | 
			
		||||
            gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
            for (unsigned int i = 0; i < sampled_ms_ / 4; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                    std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            acquisition_cc_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -209,6 +209,7 @@ void GalileoE5aPcpsAcquisition::set_doppler_step(unsigned int doppler_step)
 | 
			
		||||
    acquisition_->set_doppler_step(doppler_step_);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void GalileoE5aPcpsAcquisition::set_doppler_center(int doppler_center)
 | 
			
		||||
{
 | 
			
		||||
    doppler_center_ = doppler_center;
 | 
			
		||||
@@ -216,6 +217,7 @@ void GalileoE5aPcpsAcquisition::set_doppler_center(int doppler_center)
 | 
			
		||||
    acquisition_->set_doppler_center(doppler_center_);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void GalileoE5aPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 | 
			
		||||
{
 | 
			
		||||
    gnss_synchro_ = gnss_synchro;
 | 
			
		||||
@@ -237,7 +239,7 @@ void GalileoE5aPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void GalileoE5aPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
    std::array<char, 3> signal_{};
 | 
			
		||||
    signal_[0] = '5';
 | 
			
		||||
    signal_[2] = '\0';
 | 
			
		||||
@@ -257,16 +259,16 @@ void GalileoE5aPcpsAcquisition::set_local_code()
 | 
			
		||||
 | 
			
		||||
    if (acq_parameters_.use_automatic_resampler)
 | 
			
		||||
        {
 | 
			
		||||
            galileo_e5_a_code_gen_complex_sampled(gsl::span<gr_complex>(code.get(), code_length_), signal_, gnss_synchro_->PRN, acq_parameters_.resampled_fs, 0);
 | 
			
		||||
            galileo_e5_a_code_gen_complex_sampled(code, signal_, gnss_synchro_->PRN, acq_parameters_.resampled_fs, 0);
 | 
			
		||||
        }
 | 
			
		||||
    else
 | 
			
		||||
        {
 | 
			
		||||
            galileo_e5_a_code_gen_complex_sampled(gsl::span<gr_complex>(code.get(), code_length_), signal_, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
            galileo_e5_a_code_gen_complex_sampled(code, signal_, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
        }
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < sampled_ms_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -202,14 +202,14 @@ void GlonassL1CaPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void GlonassL1CaPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    glonass_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), /* gnss_synchro_->PRN,*/ fs_in_, 0);
 | 
			
		||||
    glonass_l1_ca_code_gen_complex_sampled(code, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < sampled_ms_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -201,14 +201,14 @@ void GlonassL2CaPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void GlonassL2CaPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    glonass_l2_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), /* gnss_synchro_->PRN,*/ fs_in_, 0);
 | 
			
		||||
    glonass_l2_ca_code_gen_complex_sampled(code, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < sampled_ms_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -201,6 +201,7 @@ void GpsL1CaPcpsAcquisition::set_doppler_step(unsigned int doppler_step)
 | 
			
		||||
    acquisition_->set_doppler_step(doppler_step_);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void GpsL1CaPcpsAcquisition::set_doppler_center(int doppler_center)
 | 
			
		||||
{
 | 
			
		||||
    doppler_center_ = doppler_center;
 | 
			
		||||
@@ -208,6 +209,7 @@ void GpsL1CaPcpsAcquisition::set_doppler_center(int doppler_center)
 | 
			
		||||
    acquisition_->set_doppler_center(doppler_center_);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void GpsL1CaPcpsAcquisition::set_gnss_synchro(Gnss_Synchro* gnss_synchro)
 | 
			
		||||
{
 | 
			
		||||
    gnss_synchro_ = gnss_synchro;
 | 
			
		||||
@@ -230,20 +232,20 @@ void GpsL1CaPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void GpsL1CaPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    if (acq_parameters_.use_automatic_resampler)
 | 
			
		||||
        {
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, acq_parameters_.resampled_fs, 0);
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, acq_parameters_.resampled_fs, 0);
 | 
			
		||||
        }
 | 
			
		||||
    else
 | 
			
		||||
        {
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
        }
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < sampled_ms_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
@@ -264,7 +266,7 @@ void GpsL1CaPcpsAcquisition::set_state(int state)
 | 
			
		||||
 | 
			
		||||
float GpsL1CaPcpsAcquisition::calculate_threshold(float pfa)
 | 
			
		||||
{
 | 
			
		||||
    //Calculate the threshold
 | 
			
		||||
    // Calculate the threshold
 | 
			
		||||
    unsigned int frequency_bins = 0;
 | 
			
		||||
    for (int doppler = static_cast<int>(-doppler_max_); doppler <= static_cast<int>(doppler_max_); doppler += doppler_step_)
 | 
			
		||||
        {
 | 
			
		||||
@@ -355,6 +357,7 @@ gr::basic_block_sptr GpsL1CaPcpsAcquisition::get_right_block()
 | 
			
		||||
    return acquisition_;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void GpsL1CaPcpsAcquisition::set_resampler_latency(uint32_t latency_samples)
 | 
			
		||||
{
 | 
			
		||||
    acquisition_->set_resampler_latency(latency_samples);
 | 
			
		||||
 
 | 
			
		||||
@@ -206,14 +206,14 @@ void GpsL1CaPcpsOpenClAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    if (item_type_ == "gr_complex")
 | 
			
		||||
        {
 | 
			
		||||
            std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
            std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
            gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
            for (unsigned int i = 0; i < sampled_ms_; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                    std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            acquisition_cc_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -232,14 +232,14 @@ void GpsL1CaPcpsQuickSyncAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    if (item_type_ == "gr_complex")
 | 
			
		||||
        {
 | 
			
		||||
            std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
            std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
            gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
            for (unsigned int i = 0; i < (sampled_ms_ / folding_factor_); i++)
 | 
			
		||||
                {
 | 
			
		||||
                    std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                    std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            acquisition_cc_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -194,14 +194,14 @@ void GpsL1CaPcpsTongAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    if (item_type_ == "gr_complex")
 | 
			
		||||
        {
 | 
			
		||||
            std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
            std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(gsl::span<std::complex<float>>(code, code_length_), gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
            gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
 | 
			
		||||
 | 
			
		||||
            gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
            for (unsigned int i = 0; i < sampled_ms_; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                    std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            acquisition_cc_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -241,21 +241,21 @@ void GpsL2MPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void GpsL2MPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    if (acq_parameters_.use_automatic_resampler)
 | 
			
		||||
        {
 | 
			
		||||
            gps_l2c_m_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.get(), code_length_), gnss_synchro_->PRN, acq_parameters_.resampled_fs);
 | 
			
		||||
            gps_l2c_m_code_gen_complex_sampled(code, gnss_synchro_->PRN, acq_parameters_.resampled_fs);
 | 
			
		||||
        }
 | 
			
		||||
    else
 | 
			
		||||
        {
 | 
			
		||||
            gps_l2c_m_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.get(), code_length_), gnss_synchro_->PRN, fs_in_);
 | 
			
		||||
            gps_l2c_m_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < num_codes_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
@@ -235,21 +235,21 @@ void GpsL5iPcpsAcquisition::init()
 | 
			
		||||
 | 
			
		||||
void GpsL5iPcpsAcquisition::set_local_code()
 | 
			
		||||
{
 | 
			
		||||
    std::unique_ptr<std::complex<float>> code{new std::complex<float>[code_length_]};
 | 
			
		||||
    std::vector<std::complex<float>> code(code_length_);
 | 
			
		||||
 | 
			
		||||
    if (acq_parameters_.use_automatic_resampler)
 | 
			
		||||
        {
 | 
			
		||||
            gps_l5i_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.get(), code_length_), gnss_synchro_->PRN, acq_parameters_.resampled_fs);
 | 
			
		||||
            gps_l5i_code_gen_complex_sampled(code, gnss_synchro_->PRN, acq_parameters_.resampled_fs);
 | 
			
		||||
        }
 | 
			
		||||
    else
 | 
			
		||||
        {
 | 
			
		||||
            gps_l5i_code_gen_complex_sampled(gsl::span<std::complex<float>>(code.get(), code_length_), gnss_synchro_->PRN, fs_in_);
 | 
			
		||||
            gps_l5i_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    gsl::span<gr_complex> code_span(code_.data(), vector_length_);
 | 
			
		||||
    for (unsigned int i = 0; i < num_codes_; i++)
 | 
			
		||||
        {
 | 
			
		||||
            std::copy_n(code.get(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
            std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    acquisition_->set_local_code(code_.data());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user