1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-15 04:30:33 +00:00

Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into raspi

This commit is contained in:
Carles Fernandez 2019-08-01 19:05:34 +02:00
commit 89169f9f2e
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
43 changed files with 135 additions and 141 deletions

View File

@ -51,7 +51,7 @@ IncludeBlocks: Merge
IncludeCategories: IncludeCategories:
- Regex: '^.*.h"' - Regex: '^.*.h"'
Priority: 1 Priority: 1
- Regex: '^.*(boost|gflags|glog|gnsssdr|gpstk|gtest|gnuradio|pmt|uhd|volk)/' - Regex: '^.*(boost|gflags|glog|gnsssdr|gnuradio|gpstk|gsl|gtest|pmt|uhd|volk)/'
Priority: 2 Priority: 2
- Regex: '^.*(armadillo|matio|pugixml)' - Regex: '^.*(armadillo|matio|pugixml)'
Priority: 2 Priority: 2

View File

@ -8,10 +8,14 @@ Checks: '-*,
cert-err60-cpp, cert-err60-cpp,
cert-flp30-c, cert-flp30-c,
clang-analyzer-cplusplus*, clang-analyzer-cplusplus*,
cppcoreguidelines-pro-type-cstyle-cast,
cppcoreguidelines-pro-type-static-cast-downcast, cppcoreguidelines-pro-type-static-cast-downcast,
cppcoreguidelines-slicing, cppcoreguidelines-slicing,
cppcoreguidelines-special-member-functions,
google-build-namespaces, google-build-namespaces,
google-runtime-int, google-runtime-int,
hicpp-exception-baseclass,
hicpp-explicit-conversions,
misc-misplaced-const, misc-misplaced-const,
misc-new-delete-overloads, misc-new-delete-overloads,
misc-non-copyable-objects, misc-non-copyable-objects,
@ -24,14 +28,22 @@ Checks: '-*,
modernize-raw-string-literal, modernize-raw-string-literal,
modernize-use-auto, modernize-use-auto,
modernize-use-bool-literals, modernize-use-bool-literals,
modernize-use-emplace,
modernize-use-equals-default, modernize-use-equals-default,
modernize-use-equals-delete, modernize-use-equals-delete,
modernize-use-noexcept, modernize-use-noexcept,
modernize-use-nullptr, modernize-use-nullptr,
performance-faster-string-find, performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm, performance-inefficient-algorithm,
performance-inefficient-string-concatenation,
performance-inefficient-vector-operation,
performance-move-const-arg, performance-move-const-arg,
performance-move-constructor-init,
performance-noexcept-move-constructor,
performance-type-promotion-in-math-fn, performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
performance-unnecessary-value-param, performance-unnecessary-value-param,
readability-container-size-empty, readability-container-size-empty,
readability-identifier-naming, readability-identifier-naming,

View File

@ -95,6 +95,12 @@ target_include_directories(pvt_libs
target_compile_definitions(pvt_libs PRIVATE -DGNSS_SDR_VERSION="${VERSION}") target_compile_definitions(pvt_libs PRIVATE -DGNSS_SDR_VERSION="${VERSION}")
if(CMAKE_BUILD_TYPE MATCHES Rel)
target_compile_definitions(pvt_libs
PUBLIC -DARMA_NO_BOUND_CHECKING=1
)
endif()
if(Boost_VERSION_STRING VERSION_GREATER 1.65.99) if(Boost_VERSION_STRING VERSION_GREATER 1.65.99)
target_compile_definitions(pvt_libs target_compile_definitions(pvt_libs
PUBLIC PUBLIC

View File

@ -32,6 +32,9 @@
#ifndef GNSS_SDR_PVT_SOLUTION_H_ #ifndef GNSS_SDR_PVT_SOLUTION_H_
#define GNSS_SDR_PVT_SOLUTION_H_ #define GNSS_SDR_PVT_SOLUTION_H_
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include <armadillo> #include <armadillo>
#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/posix_time.hpp>

View File

@ -41,8 +41,8 @@
#include "gps_sdr_signal_processing.h" #include "gps_sdr_signal_processing.h"
#include <boost/math/distributions/exponential.hpp> #include <boost/math/distributions/exponential.hpp>
#include <glog/logging.h> #include <glog/logging.h>
#include <algorithm>
#include <gsl/gsl> #include <gsl/gsl>
#include <algorithm>
GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition( GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(

View File

@ -69,12 +69,13 @@ endif()
target_link_libraries(acquisition_gr_blocks target_link_libraries(acquisition_gr_blocks
PUBLIC PUBLIC
algorithms_libs algorithms_libs
acquisition_libs
channel_libs
core_system_parameters
Armadillo::armadillo
Gnuradio::runtime Gnuradio::runtime
Gnuradio::fft Gnuradio::fft
Volk::volk Volk::volk
channel_libs
acquisition_libs
core_system_parameters
PRIVATE PRIVATE
Gflags::gflags Gflags::gflags
Glog::glog Glog::glog
@ -90,6 +91,12 @@ target_include_directories(acquisition_gr_blocks
${CMAKE_SOURCE_DIR}/src/core/receiver ${CMAKE_SOURCE_DIR}/src/core/receiver
) )
if(CMAKE_BUILD_TYPE MATCHES Rel)
target_compile_definitions(acquisition_gr_blocks
PUBLIC -DARMA_NO_BOUND_CHECKING=1
)
endif()
if(OPENCL_FOUND) if(OPENCL_FOUND)
target_link_libraries(acquisition_gr_blocks PUBLIC OpenCL::OpenCL) target_link_libraries(acquisition_gr_blocks PUBLIC OpenCL::OpenCL)
target_include_directories(acquisition_gr_blocks target_include_directories(acquisition_gr_blocks

View File

@ -52,6 +52,10 @@
#ifndef GNSS_SDR_PCPS_ACQUISITION_H_ #ifndef GNSS_SDR_PCPS_ACQUISITION_H_
#define GNSS_SDR_PCPS_ACQUISITION_H_ #define GNSS_SDR_PCPS_ACQUISITION_H_
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include "acq_conf.h" #include "acq_conf.h"
#include "channel_fsm.h" #include "channel_fsm.h"
#include <armadillo> #include <armadillo>
@ -61,6 +65,7 @@
#include <gnuradio/gr_complex.h> // for gr_complex #include <gnuradio/gr_complex.h> // for gr_complex
#include <gnuradio/thread/thread.h> // for scoped_lock #include <gnuradio/thread/thread.h> // for scoped_lock
#include <gnuradio/types.h> // for gr_vector_const_void_star #include <gnuradio/types.h> // for gr_vector_const_void_star
#include <gsl/gsl> // for Guidelines Support Library
#include <volk/volk_complex.h> // for lv_16sc_t #include <volk/volk_complex.h> // for lv_16sc_t
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
@ -68,12 +73,6 @@
#include <string> #include <string>
#include <utility> #include <utility>
#include <vector> #include <vector>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
class Gnss_Synchro; class Gnss_Synchro;
class pcps_acquisition; class pcps_acquisition;

View File

@ -49,6 +49,10 @@
#ifndef GNSS_SDR_PCPS_ACQUISITION_FINE_DOPPLER_CC_H_ #ifndef GNSS_SDR_PCPS_ACQUISITION_FINE_DOPPLER_CC_H_
#define GNSS_SDR_PCPS_ACQUISITION_FINE_DOPPLER_CC_H_ #define GNSS_SDR_PCPS_ACQUISITION_FINE_DOPPLER_CC_H_
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include "acq_conf.h" #include "acq_conf.h"
#include "channel_fsm.h" #include "channel_fsm.h"
#include "gnss_synchro.h" #include "gnss_synchro.h"

View File

@ -92,23 +92,11 @@ else()
target_link_libraries(algorithms_libs PRIVATE Boost::filesystem Boost::system) target_link_libraries(algorithms_libs PRIVATE Boost::filesystem Boost::system)
endif() endif()
include(CheckCXXSourceCompiles) target_include_directories(algorithms_libs
check_cxx_source_compiles(" PUBLIC
#include <span> ${CMAKE_SOURCE_DIR}/src/algorithms/libs/gsl/include
int main()
{ std::span<float> sv; }"
has_span
) )
if(${has_span})
target_compile_definitions(algorithms_libs PUBLIC -DHAS_SPAN=1)
else()
target_include_directories(algorithms_libs
PUBLIC
${CMAKE_SOURCE_DIR}/src/algorithms/libs/gsl/include
)
endif()
target_link_libraries(algorithms_libs target_link_libraries(algorithms_libs
PUBLIC PUBLIC
Armadillo::armadillo Armadillo::armadillo
@ -130,6 +118,12 @@ if(OPENCL_FOUND)
) )
endif() endif()
if(CMAKE_BUILD_TYPE MATCHES Rel)
target_compile_definitions(algorithms_libs
PUBLIC -DARMA_NO_BOUND_CHECKING=1
)
endif()
target_include_directories(algorithms_libs target_include_directories(algorithms_libs
PUBLIC PUBLIC
${CMAKE_SOURCE_DIR}/src/core/interfaces ${CMAKE_SOURCE_DIR}/src/core/interfaces

View File

@ -33,17 +33,10 @@
#ifndef GNSS_SDR_BEIDOU_B1I_SDR_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_BEIDOU_B1I_SDR_SIGNAL_PROCESSING_H_
#define GNSS_SDR_BEIDOU_B1I_SDR_SIGNAL_PROCESSING_H_ #define GNSS_SDR_BEIDOU_B1I_SDR_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates int32_t GPS L1 C/A code for the desired SV ID and code shift //! Generates int32_t GPS L1 C/A code for the desired SV ID and code shift
void beidou_b1i_code_gen_int(gsl::span<int32_t> _dest, int32_t _prn, uint32_t _chip_shift); void beidou_b1i_code_gen_int(gsl::span<int32_t> _dest, int32_t _prn, uint32_t _chip_shift);

View File

@ -33,16 +33,10 @@
#ifndef GNSS_SDR_BEIDOU_B3I_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_BEIDOU_B3I_SIGNAL_PROCESSING_H_
#define GNSS_SDR_BEIDOU_B3I_SIGNAL_PROCESSING_H_ #define GNSS_SDR_BEIDOU_B3I_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates int BeiDou B3I code for the desired SV ID and code shift //! Generates int BeiDou B3I code for the desired SV ID and code shift
void beidou_b3i_code_gen_int(gsl::span<int> _dest, int32_t _prn, uint32_t _chip_shift); void beidou_b3i_code_gen_int(gsl::span<int> _dest, int32_t _prn, uint32_t _chip_shift);

View File

@ -32,15 +32,10 @@
#ifndef GNSS_SDR_GALILEO_E1_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_GALILEO_E1_SIGNAL_PROCESSING_H_
#define GNSS_SDR_GALILEO_E1_SIGNAL_PROCESSING_H_ #define GNSS_SDR_GALILEO_E1_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <array> #include <array>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
/*! /*!

View File

@ -34,16 +34,10 @@
#ifndef GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H_
#define GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H_ #define GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <array> #include <array>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
/*! /*!
* \brief Generates Galileo E5a code at 1 sample/chip * \brief Generates Galileo E5a code at 1 sample/chip

View File

@ -32,6 +32,10 @@
#ifndef GNSS_SDR_GEOFUNCTIONS_H #ifndef GNSS_SDR_GEOFUNCTIONS_H
#define GNSS_SDR_GEOFUNCTIONS_H #define GNSS_SDR_GEOFUNCTIONS_H
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include <armadillo> #include <armadillo>
arma::mat Skew_symmetric(const arma::vec &a); //!< Calculates skew-symmetric matrix arma::mat Skew_symmetric(const arma::vec &a); //!< Calculates skew-symmetric matrix

View File

@ -33,16 +33,10 @@
#ifndef GNSS_SDR_GLONASS_SDR_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_GLONASS_SDR_SIGNAL_PROCESSING_H_
#define GNSS_SDR_GLONASS_SDR_SIGNAL_PROCESSING_H_ #define GNSS_SDR_GLONASS_SDR_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates complex GLONASS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency //! Generates complex GLONASS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency
void glonass_l1_ca_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _chip_shift); void glonass_l1_ca_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _chip_shift);

View File

@ -33,16 +33,10 @@
#ifndef GNSS_SDR_GLONASS_L2_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_GLONASS_L2_SIGNAL_PROCESSING_H_
#define GNSS_SDR_GLONASS_L2_SIGNAL_PROCESSING_H_ #define GNSS_SDR_GLONASS_L2_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates complex GLONASS L2 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency //! Generates complex GLONASS L2 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency
void glonass_l2_ca_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _chip_shift); void glonass_l2_ca_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _chip_shift);

View File

@ -35,17 +35,10 @@
#ifndef GNSS_SDR_GNSS_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_GNSS_SIGNAL_PROCESSING_H_
#define GNSS_SDR_GNSS_SIGNAL_PROCESSING_H_ #define GNSS_SDR_GNSS_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
/*! /*!
* \brief This function generates a complex exponential in _dest. * \brief This function generates a complex exponential in _dest.
* *

View File

@ -33,17 +33,10 @@
#ifndef GNSS_SDR_GPS_L2C_SIGNAL_H_ #ifndef GNSS_SDR_GPS_L2C_SIGNAL_H_
#define GNSS_SDR_GPS_L2C_SIGNAL_H_ #define GNSS_SDR_GPS_L2C_SIGNAL_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates complex GPS L2C M code for the desired SV ID //! Generates complex GPS L2C M code for the desired SV ID
void gps_l2c_m_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _prn); void gps_l2c_m_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _prn);
void gps_l2c_m_code_gen_float(gsl::span<float> _dest, uint32_t _prn); void gps_l2c_m_code_gen_float(gsl::span<float> _dest, uint32_t _prn);

View File

@ -33,16 +33,10 @@
#ifndef GNSS_SDR_GPS_L5_SIGNAL_H_ #ifndef GNSS_SDR_GPS_L5_SIGNAL_H_
#define GNSS_SDR_GPS_L5_SIGNAL_H_ #define GNSS_SDR_GPS_L5_SIGNAL_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates complex GPS L5I code for the desired SV ID //! Generates complex GPS L5I code for the desired SV ID
void gps_l5i_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _prn); void gps_l5i_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _prn);

View File

@ -33,16 +33,10 @@
#ifndef GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_ #ifndef GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_
#define GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_ #define GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_
#include <gsl/gsl>
#include <complex> #include <complex>
#include <cstdint> #include <cstdint>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
//! Generates int GPS L1 C/A code for the desired SV ID and code shift //! Generates int GPS L1 C/A code for the desired SV ID and code shift
void gps_l1_ca_code_gen_int(gsl::span<int32_t> _dest, int32_t _prn, uint32_t _chip_shift); void gps_l1_ca_code_gen_int(gsl::span<int32_t> _dest, int32_t _prn, uint32_t _chip_shift);

View File

@ -251,7 +251,7 @@ void signal_generator_c::generate_codes()
std::array<char, 3> signal_1C = {{'1', 'C', '\0'}}; std::array<char, 3> signal_1C = {{'1', 'C', '\0'}};
galileo_e1_code_gen_complex_sampled(gsl::span<gr_complex>(sampled_code_pilot_[sat].data(), vector_length_), signal_1C, cboc, PRN_[sat], fs_in_, galileo_e1_code_gen_complex_sampled(sampled_code_pilot_[sat], signal_1C, cboc, PRN_[sat], fs_in_,
static_cast<int>(GALILEO_E1_B_CODE_LENGTH_CHIPS) - delay_chips_[sat], true); static_cast<int>(GALILEO_E1_B_CODE_LENGTH_CHIPS) - delay_chips_[sat], true);
// Obtain the desired CN0 assuming that Pn = 1. // Obtain the desired CN0 assuming that Pn = 1.

View File

@ -550,7 +550,7 @@ int beidou_b1i_telemetry_decoder_gs::general_work(int noutput_items __attribute_
flag_SOW_set = true; flag_SOW_set = true;
d_nav.flag_new_SOW_available = false; d_nav.flag_new_SOW_available = false;
if (last_d_TOW_at_current_symbol_ms != 0 and abs(static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms)) > d_symbol_duration_ms) if (last_d_TOW_at_current_symbol_ms != 0 and abs(static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms)) > static_cast<int64_t>(d_symbol_duration_ms))
{ {
LOG(INFO) << "Warning: BEIDOU B1I TOW update in ch " << d_channel LOG(INFO) << "Warning: BEIDOU B1I TOW update in ch " << d_channel
<< " does not match the TLM TOW counter " << static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms) << " ms \n"; << " does not match the TLM TOW counter " << static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms) << " ms \n";

View File

@ -581,7 +581,7 @@ int beidou_b3i_telemetry_decoder_gs::general_work(
flag_SOW_set = true; flag_SOW_set = true;
d_nav.flag_new_SOW_available = false; d_nav.flag_new_SOW_available = false;
if (last_d_TOW_at_current_symbol_ms != 0 and abs(static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms)) > d_symbol_duration_ms) if (last_d_TOW_at_current_symbol_ms != 0 and abs(static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms)) > static_cast<int64_t>(d_symbol_duration_ms))
{ {
LOG(INFO) << "Warning: BEIDOU B3I TOW update in ch " << d_channel LOG(INFO) << "Warning: BEIDOU B3I TOW update in ch " << d_channel
<< " does not match the TLM TOW counter " << static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms) << " ms \n"; << " does not match the TLM TOW counter " << static_cast<int64_t>(d_TOW_at_current_symbol_ms) - int64_t(last_d_TOW_at_current_symbol_ms) << " ms \n";

View File

@ -193,7 +193,7 @@ sbas_l1_telemetry_decoder_gs::Symbol_Aligner_And_Decoder::Symbol_Aligner_And_Dec
std::array<int32_t, nn> g_encoder{121, 91}; std::array<int32_t, nn> g_encoder{121, 91};
d_vd1 = std::make_shared<Viterbi_Decoder>(g_encoder.data(), d_KK, nn); d_vd1 = std::make_shared<Viterbi_Decoder>(g_encoder.data(), d_KK, nn);
d_vd1 = std::make_shared<Viterbi_Decoder>(g_encoder.data(), d_KK, nn); d_vd2 = std::make_shared<Viterbi_Decoder>(g_encoder.data(), d_KK, nn);
d_past_symbol = 0; d_past_symbol = 0;
} }

View File

@ -89,6 +89,7 @@ endif()
target_link_libraries(tracking_gr_blocks target_link_libraries(tracking_gr_blocks
PUBLIC PUBLIC
Boost::boost Boost::boost
Armadillo::armadillo
Gnuradio::blocks Gnuradio::blocks
Matio::matio Matio::matio
Volkgnsssdr::volkgnsssdr Volkgnsssdr::volkgnsssdr
@ -108,6 +109,12 @@ if(ENABLE_CUDA AND NOT CMAKE_VERSION VERSION_GREATER 3.11)
) )
endif() endif()
if(CMAKE_BUILD_TYPE MATCHES Rel)
target_compile_definitions(tracking_gr_blocks
PUBLIC -DARMA_NO_BOUND_CHECKING=1
)
endif()
if(ENABLE_CLANG_TIDY) if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE) if(CLANG_TIDY_EXE)
set_target_properties(tracking_gr_blocks set_target_properties(tracking_gr_blocks

View File

@ -57,15 +57,15 @@
#include <glog/logging.h> #include <glog/logging.h>
#include <gnuradio/io_signature.h> // for io_signature #include <gnuradio/io_signature.h> // for io_signature
#include <gnuradio/thread/thread.h> // for scoped_lock #include <gnuradio/thread/thread.h> // for scoped_lock
#include <matio.h> // for Mat_VarCreate #include <gsl/gsl>
#include <pmt/pmt_sugar.h> // for mp #include <matio.h> // for Mat_VarCreate
#include <pmt/pmt_sugar.h> // for mp
#include <volk_gnsssdr/volk_gnsssdr.h> #include <volk_gnsssdr/volk_gnsssdr.h>
#include <algorithm> // for fill_n #include <algorithm> // for fill_n
#include <array> #include <array>
#include <cmath> // for fmod, round, floor #include <cmath> // for fmod, round, floor
#include <exception> // for exception #include <exception> // for exception
#include <gsl/gsl> #include <iostream> // for cout, cerr
#include <iostream> // for cout, cerr
#include <map> #include <map>
#include <numeric> #include <numeric>

View File

@ -49,14 +49,14 @@
#include <glog/logging.h> #include <glog/logging.h>
#include <gnuradio/io_signature.h> // for io_signature #include <gnuradio/io_signature.h> // for io_signature
#include <gnuradio/thread/thread.h> // for scoped_lock #include <gnuradio/thread/thread.h> // for scoped_lock
#include <matio.h> // for Mat_VarCreate #include <gsl/gsl>
#include <pmt/pmt_sugar.h> // for mp #include <matio.h> // for Mat_VarCreate
#include <pmt/pmt_sugar.h> // for mp
#include <volk_gnsssdr/volk_gnsssdr.h> #include <volk_gnsssdr/volk_gnsssdr.h>
#include <algorithm> // for fill_n #include <algorithm> // for fill_n
#include <cmath> // for fmod, round, floor #include <cmath> // for fmod, round, floor
#include <exception> // for exception #include <exception> // for exception
#include <gsl/gsl> #include <iostream> // for cout, cerr
#include <iostream> // for cout, cerr
#include <map> #include <map>
#include <numeric> #include <numeric>
#include <vector> #include <vector>
@ -1680,9 +1680,6 @@ int dll_pll_veml_tracking_fpga::general_work(int noutput_items __attribute__((un
d_current_fpga_integration_period = d_fpga_integration_period; d_current_fpga_integration_period = d_fpga_integration_period;
d_current_extended_correlation_in_fpga = true; d_current_extended_correlation_in_fpga = true;
d_P_accu_old.real(d_P_accu_old.real() * d_fpga_integration_period);
d_P_accu_old.imag(d_P_accu_old.imag() * d_fpga_integration_period);
if (d_sc_demodulate_enabled) if (d_sc_demodulate_enabled)
{ {
multicorrelator_fpga->enable_secondary_codes(); multicorrelator_fpga->enable_secondary_codes();

View File

@ -45,12 +45,12 @@
#include "tracking_discriminators.h" #include "tracking_discriminators.h"
#include <glog/logging.h> #include <glog/logging.h>
#include <gnuradio/io_signature.h> #include <gnuradio/io_signature.h>
#include <gsl/gsl>
#include <matio.h> #include <matio.h>
#include <volk_gnsssdr/volk_gnsssdr.h> #include <volk_gnsssdr/volk_gnsssdr.h>
#include <array> #include <array>
#include <cmath> #include <cmath>
#include <exception> #include <exception>
#include <gsl/gsl>
#include <iostream> #include <iostream>
#include <memory> #include <memory>
#include <sstream> #include <sstream>

View File

@ -40,6 +40,10 @@
#ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H #ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H
#define GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H #define GNSS_SDR_GPS_L1_CA_KF_TRACKING_CC_H
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include "bayesian_estimation.h" #include "bayesian_estimation.h"
#include "cpu_multicorrelator_real_codes.h" #include "cpu_multicorrelator_real_codes.h"
#include "gnss_synchro.h" #include "gnss_synchro.h"

View File

@ -134,6 +134,12 @@ if(OS_IS_MACOSX)
endif() endif()
endif() endif()
if(CMAKE_BUILD_TYPE MATCHES Rel)
target_compile_definitions(tracking_libs
PUBLIC -DARMA_NO_BOUND_CHECKING=1
)
endif()
if(ENABLE_CLANG_TIDY) if(ENABLE_CLANG_TIDY)
if(CLANG_TIDY_EXE) if(CLANG_TIDY_EXE)
set_target_properties(tracking_libs set_target_properties(tracking_libs

View File

@ -45,6 +45,10 @@
#ifndef GNSS_SDR_BAYESIAN_ESTIMATION_H_ #ifndef GNSS_SDR_BAYESIAN_ESTIMATION_H_
#define GNSS_SDR_BAYESIAN_ESTIMATION_H_ #define GNSS_SDR_BAYESIAN_ESTIMATION_H_
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include <armadillo> #include <armadillo>
#include <gnuradio/gr_complex.h> #include <gnuradio/gr_complex.h>

View File

@ -43,6 +43,10 @@
#ifndef GNSS_SDR_NONLINEAR_TRACKING_H_ #ifndef GNSS_SDR_NONLINEAR_TRACKING_H_
#define GNSS_SDR_NONLINEAR_TRACKING_H_ #define GNSS_SDR_NONLINEAR_TRACKING_H_
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include <armadillo> #include <armadillo>
#include <gnuradio/gr_complex.h> #include <gnuradio/gr_complex.h>

View File

@ -32,6 +32,7 @@
#include "tcp_communication.h" #include "tcp_communication.h"
#include "tcp_packet_data.h" #include "tcp_packet_data.h"
#include <iostream> #include <iostream>
#include <stdexcept>
#include <string> #include <string>
@ -87,7 +88,7 @@ void Tcp_Communication::send_receive_tcp_packet_galileo_e1(boost::array<float, N
//! Control. The GNSS-SDR program ends if an error in a TCP packet is detected. //! Control. The GNSS-SDR program ends if an error in a TCP packet is detected.
if (d_control_id_ != readbuf.data()[0]) if (d_control_id_ != readbuf.data()[0])
{ {
throw "Packet error!"; throw std::runtime_error("Packet error!");
} }
// Recover the variables received // Recover the variables received
@ -122,7 +123,7 @@ void Tcp_Communication::send_receive_tcp_packet_gps_l1_ca(boost::array<float, NU
//! Control. The GNSS-SDR program ends if an error in a TCP packet is detected. //! Control. The GNSS-SDR program ends if an error in a TCP packet is detected.
if (d_control_id_ != readbuf.data()[0]) if (d_control_id_ != readbuf.data()[0])
{ {
throw "Packet error!"; throw std::runtime_error("Packet error!");
} }
// Recover the variables received // Recover the variables received

View File

@ -156,6 +156,12 @@ target_link_libraries(core_receiver
Armadillo::armadillo Armadillo::armadillo
) )
if(CMAKE_BUILD_TYPE MATCHES Rel)
target_compile_definitions(core_receiver
PRIVATE -DARMA_NO_BOUND_CHECKING=1
)
endif()
# Fix for Boost Asio < 1.70 # Fix for Boost Asio < 1.70
if(OS_IS_MACOSX) if(OS_IS_MACOSX)
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (Boost_VERSION_STRING VERSION_LESS 1.70.0)) if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (Boost_VERSION_STRING VERSION_LESS 1.70.0))

View File

@ -32,6 +32,10 @@
* ------------------------------------------------------------------------- * -------------------------------------------------------------------------
*/ */
#if ARMA_NO_BOUND_CHECKING
#define ARMA_NO_DEBUG 1
#endif
#include "control_thread.h" #include "control_thread.h"
#include "channel_event.h" #include "channel_event.h"
#include "command_event.h" #include "command_event.h"

View File

@ -1470,6 +1470,15 @@ void GNSSFlowgraph::perform_hw_reset()
{ {
// a stop acquisition command causes the SW to reset the HW // a stop acquisition command causes the SW to reset the HW
std::shared_ptr<Channel> channel_ptr; std::shared_ptr<Channel> channel_ptr;
for (uint32_t i = 0; i < channels_count_; i++)
{
channel_ptr = std::dynamic_pointer_cast<Channel>(channels_.at(i));
channel_ptr->tracking()->stop_tracking();
}
std::this_thread::sleep_for(std::chrono::milliseconds(500));
channel_ptr = std::dynamic_pointer_cast<Channel>(channels_.at(0)); channel_ptr = std::dynamic_pointer_cast<Channel>(channels_.at(0));
channel_ptr->acquisition()->stop_acquisition(); channel_ptr->acquisition()->stop_acquisition();
} }

View File

@ -71,9 +71,7 @@ const uint32_t GPS_L1_CA_OPT_ACQ_FS_HZ = 2000000; //!< Sampling frequency that
*/ */
const double MAX_TOA_DELAY_MS = 20; const double MAX_TOA_DELAY_MS = 20;
//#define NAVIGATION_SOLUTION_RATE_MS 1000 // this cannot go here const double GPS_STARTOFFSET_MS = 68.802; // [ms] Initial signal travel time (only for old ls_pvt implementation)
//const double GPS_STARTOFFSET_ms = 68.802; //[ms] Initial sign. travel time (this cannot go here)
const double GPS_STARTOFFSET_MS = 60.0;
// OBSERVABLE HISTORY DEEP FOR INTERPOLATION // OBSERVABLE HISTORY DEEP FOR INTERPOLATION
const int32_t GPS_L1_CA_HISTORY_DEEP = 100; const int32_t GPS_L1_CA_HISTORY_DEEP = 100;

View File

@ -31,14 +31,9 @@
#include "gnss_signal_processing.h" #include "gnss_signal_processing.h"
#include "gps_sdr_signal_processing.h" #include "gps_sdr_signal_processing.h"
#include <gsl/gsl>
#include <chrono> #include <chrono>
#include <complex> #include <complex>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
TEST(CodeGenerationTest, CodeGenGPSL1Test) TEST(CodeGenerationTest, CodeGenGPSL1Test)

View File

@ -32,14 +32,9 @@
#include "GPS_L1_CA.h" #include "GPS_L1_CA.h"
#include "gnss_signal_processing.h" #include "gnss_signal_processing.h"
#include <armadillo> #include <armadillo>
#include <gsl/gsl>
#include <chrono> #include <chrono>
#include <complex> #include <complex>
#if HAS_SPAN
#include <span>
namespace gsl = std;
#else
#include <gsl/gsl>
#endif
DEFINE_int32(size_carrier_test, 100000, "Size of the arrays used for complex carrier testing"); DEFINE_int32(size_carrier_test, 100000, "Size of the arrays used for complex carrier testing");

View File

@ -139,7 +139,7 @@ TEST(CpuMulticorrelatorRealCodesTest, MeasureExecutionTime)
//create the concurrent correlator threads //create the concurrent correlator threads
for (int current_thread = 0; current_thread < current_max_threads; current_thread++) for (int current_thread = 0; current_thread < current_max_threads; current_thread++)
{ {
thread_pool.push_back(std::thread(run_correlator_cpu_real_codes, thread_pool.emplace_back(std::thread(run_correlator_cpu_real_codes,
correlator_pool[current_thread], correlator_pool[current_thread],
d_rem_carrier_phase_rad, d_rem_carrier_phase_rad,
d_carrier_phase_step_rad, d_carrier_phase_step_rad,

View File

@ -45,6 +45,7 @@
#include <cmath> #include <cmath>
#include <iostream> // for operator<< #include <iostream> // for operator<<
#include <map> #include <map>
#include <stdexcept>
#include <utility> #include <utility>
extern Concurrent_Map<Gps_Ephemeris> global_gps_ephemeris_map; extern Concurrent_Map<Gps_Ephemeris> global_gps_ephemeris_map;
@ -303,7 +304,7 @@ arma::vec FrontEndCal::geodetic2ecef(double phi, double lambda, double h, const
} }
double FrontEndCal::estimate_doppler_from_eph(unsigned int PRN, double TOW, double lat, double lon, double height) double FrontEndCal::estimate_doppler_from_eph(unsigned int PRN, double TOW, double lat, double lon, double height) noexcept(false)
{ {
int num_secs = 10; int num_secs = 10;
double step_secs = 0.5; double step_secs = 0.5;
@ -359,7 +360,7 @@ double FrontEndCal::estimate_doppler_from_eph(unsigned int PRN, double TOW, doub
mean_Doppler_Hz = arma::mean(Doppler_Hz); mean_Doppler_Hz = arma::mean(Doppler_Hz);
return mean_Doppler_Hz; return mean_Doppler_Hz;
} }
throw(1); throw std::runtime_error("1");
} }

View File

@ -65,7 +65,7 @@ public:
* 3- Approximate receiver Latitude and Longitude (WGS-84) * 3- Approximate receiver Latitude and Longitude (WGS-84)
* *
*/ */
double estimate_doppler_from_eph(unsigned int PRN, double TOW, double lat, double lon, double height); double estimate_doppler_from_eph(unsigned int PRN, double TOW, double lat, double lon, double height) noexcept(false);
/*! /*!
* \brief This function models the Elonics E4000 + RTL2832 front-end * \brief This function models the Elonics E4000 + RTL2832 front-end

View File

@ -121,7 +121,6 @@ private:
public: public:
int rx_message; int rx_message;
~FrontEndCal_msg_rx() override; //!< Default destructor
}; };
@ -155,9 +154,6 @@ FrontEndCal_msg_rx::FrontEndCal_msg_rx() : gr::block("FrontEndCal_msg_rx", gr::i
} }
FrontEndCal_msg_rx::~FrontEndCal_msg_rx() = default;
void wait_message() void wait_message()
{ {
while (!stop) while (!stop)
@ -574,7 +570,7 @@ int main(int argc, char** argv)
{ {
std::cout << "Exception caught while reading ephemeris" << std::endl; std::cout << "Exception caught while reading ephemeris" << std::endl;
} }
catch (int ex) catch (const std::exception& ex)
{ {
std::cout << " " << it.first << " " << it.second << " (Eph not found)" << std::endl; std::cout << " " << it.first << " " << it.second << " (Eph not found)" << std::endl;
} }
@ -623,7 +619,7 @@ int main(int argc, char** argv)
{ {
std::cout << "Exception caught while reading ephemeris" << std::endl; std::cout << "Exception caught while reading ephemeris" << std::endl;
} }
catch (int ex) catch (const std::exception& ex)
{ {
std::cout << " " << it.first << " " << it.second - mean_f_if_Hz << " (Eph not found)" << std::endl; std::cout << " " << it.first << " " << it.second - mean_f_if_Hz << " (Eph not found)" << std::endl;
} }