1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-10-25 12:37:40 +00:00

Fix for using std::span when available, and gsl::span as a fallback

This commit is contained in:
Carles Fernandez
2020-05-07 23:11:11 +02:00
parent eaee82280a
commit 1d703b4b48
47 changed files with 174 additions and 149 deletions

View File

@@ -32,9 +32,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
@@ -147,7 +148,7 @@ void BeidouB1iPcpsAcquisition::set_local_code()
beidou_b1i_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < num_codes_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
using google::LogMessage;
@@ -144,7 +145,7 @@ void BeidouB3iPcpsAcquisition::set_local_code()
beidou_b3i_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < num_codes_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GalileoE1Pcps8msAmbiguousAcquisition::GalileoE1Pcps8msAmbiguousAcquisition(
@@ -214,7 +215,7 @@ void GalileoE1Pcps8msAmbiguousAcquisition::set_local_code()
galileo_e1_code_gen_complex_sampled(code, Signal_,
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_ / 4; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -30,9 +30,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GalileoE1PcpsAmbiguousAcquisition::GalileoE1PcpsAmbiguousAcquisition(
@@ -188,7 +189,7 @@ void GalileoE1PcpsAmbiguousAcquisition::set_local_code()
}
}
std::span<gr_complex> code__span(code_.data(), vector_length_);
own::span<gr_complex> code__span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_ / 4; i++)
{
std::copy_n(code.data(), code_length_, code__span.subspan(i * code_length_, code_length_).data());

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GalileoE1PcpsQuickSyncAmbiguousAcquisition::GalileoE1PcpsQuickSyncAmbiguousAcquisition(
@@ -248,7 +249,7 @@ void GalileoE1PcpsQuickSyncAmbiguousAcquisition::set_local_code()
galileo_e1_code_gen_complex_sampled(code, Signal_,
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::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.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GalileoE1PcpsTongAmbiguousAcquisition::GalileoE1PcpsTongAmbiguousAcquisition(
@@ -217,7 +218,7 @@ void GalileoE1PcpsTongAmbiguousAcquisition::set_local_code()
galileo_e1_code_gen_complex_sampled(code, Signal_,
cboc, gnss_synchro_->PRN, fs_in_, 0, false);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_ / 4; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -35,9 +35,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GalileoE5aNoncoherentIQAcquisitionCaf::GalileoE5aNoncoherentIQAcquisitionCaf(
@@ -232,8 +233,8 @@ void GalileoE5aNoncoherentIQAcquisitionCaf::set_local_code()
}
// WARNING: 3ms are coherently integrated. Secondary sequence (1,1,1)
// is generated, and modulated in the 'block'.
std::span<gr_complex> codeQ_span(codeQ_.data(), vector_length_);
std::span<gr_complex> codeI_span(codeI_.data(), vector_length_);
own::span<gr_complex> codeQ_span(codeQ_.data(), vector_length_);
own::span<gr_complex> codeI_span(codeI_.data(), vector_length_);
if (Zero_padding == 0) // if no zero_padding
{
for (unsigned int i = 0; i < sampled_ms_; i++)

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GalileoE5aPcpsAcquisition::GalileoE5aPcpsAcquisition(ConfigurationInterface* configuration,
@@ -172,7 +173,7 @@ void GalileoE5aPcpsAcquisition::set_local_code()
{
galileo_e5_a_code_gen_complex_sampled(code, signal_, gnss_synchro_->PRN, fs_in_, 0);
}
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -31,9 +31,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GlonassL1CaPcpsAcquisition::GlonassL1CaPcpsAcquisition(
@@ -148,7 +149,7 @@ void GlonassL1CaPcpsAcquisition::set_local_code()
glonass_l1_ca_code_gen_complex_sampled(code, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -30,9 +30,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GlonassL2CaPcpsAcquisition::GlonassL2CaPcpsAcquisition(
@@ -147,7 +148,7 @@ void GlonassL2CaPcpsAcquisition::set_local_code()
glonass_l2_ca_code_gen_complex_sampled(code, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -33,12 +33,12 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
ConfigurationInterface* configuration,
const std::string& role,
@@ -163,7 +163,7 @@ void GpsL1CaPcpsAcquisition::set_local_code()
{
gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, acq_parameters_.fs_in, 0);
}
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GpsL1CaPcpsOpenClAcquisition::GpsL1CaPcpsOpenClAcquisition(
@@ -204,7 +205,7 @@ void GpsL1CaPcpsOpenClAcquisition::set_local_code()
gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -30,9 +30,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
@@ -230,7 +231,7 @@ void GpsL1CaPcpsQuickSyncAcquisition::set_local_code()
gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < (sampled_ms_ / folding_factor_); i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -29,9 +29,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GpsL1CaPcpsTongAcquisition::GpsL1CaPcpsTongAcquisition(
@@ -192,7 +193,7 @@ void GpsL1CaPcpsTongAcquisition::set_local_code()
gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < sampled_ms_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -31,9 +31,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
@@ -162,7 +163,7 @@ void GpsL2MPcpsAcquisition::set_local_code()
gps_l2c_m_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_);
}
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < num_codes_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -28,12 +28,12 @@
#include "gps_l5_signal.h"
#include <glog/logging.h>
#include <algorithm>
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
GpsL5iPcpsAcquisition::GpsL5iPcpsAcquisition(
@@ -164,7 +164,7 @@ void GpsL5iPcpsAcquisition::set_local_code()
gps_l5i_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_);
}
std::span<gr_complex> code_span(code_.data(), vector_length_);
own::span<gr_complex> code_span(code_.data(), vector_length_);
for (unsigned int i = 0; i < num_codes_; i++)
{
std::copy_n(code.data(), code_length_, code_span.subspan(i * code_length_, code_length_).data());

View File

@@ -252,7 +252,7 @@ bool pcps_acquisition::is_fdma()
}
void pcps_acquisition::update_local_carrier(std::span<gr_complex> carrier_vector, float freq)
void pcps_acquisition::update_local_carrier(own::span<gr_complex> carrier_vector, float freq)
{
float phase_step_rad;
if (acq_parameters.use_automatic_resampler)

View File

@@ -64,9 +64,10 @@
#if HAS_STD_SPAN
#include <span>
namespace own = std;
#else
#include <gsl/gsl>
using std::span = gsl::span;
namespace own = gsl;
#endif
#if GNURADIO_USES_STD_POINTERS
@@ -262,7 +263,7 @@ private:
Gnss_Synchro* d_gnss_synchro;
arma::fmat grid_;
arma::fmat narrow_grid_;
void update_local_carrier(std::span<gr_complex> carrier_vector, float freq);
void update_local_carrier(own::span<gr_complex> carrier_vector, float freq);
void update_grid_doppler_wipeoffs();
void update_grid_doppler_wipeoffs_step2();
void acquisition_core(uint64_t samp_count);