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:
commit
89169f9f2e
@ -51,7 +51,7 @@ IncludeBlocks: Merge
|
||||
IncludeCategories:
|
||||
- Regex: '^.*.h"'
|
||||
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
|
||||
- Regex: '^.*(armadillo|matio|pugixml)'
|
||||
Priority: 2
|
||||
|
12
.clang-tidy
12
.clang-tidy
@ -8,10 +8,14 @@ Checks: '-*,
|
||||
cert-err60-cpp,
|
||||
cert-flp30-c,
|
||||
clang-analyzer-cplusplus*,
|
||||
cppcoreguidelines-pro-type-cstyle-cast,
|
||||
cppcoreguidelines-pro-type-static-cast-downcast,
|
||||
cppcoreguidelines-slicing,
|
||||
cppcoreguidelines-special-member-functions,
|
||||
google-build-namespaces,
|
||||
google-runtime-int,
|
||||
hicpp-exception-baseclass,
|
||||
hicpp-explicit-conversions,
|
||||
misc-misplaced-const,
|
||||
misc-new-delete-overloads,
|
||||
misc-non-copyable-objects,
|
||||
@ -24,14 +28,22 @@ Checks: '-*,
|
||||
modernize-raw-string-literal,
|
||||
modernize-use-auto,
|
||||
modernize-use-bool-literals,
|
||||
modernize-use-emplace,
|
||||
modernize-use-equals-default,
|
||||
modernize-use-equals-delete,
|
||||
modernize-use-noexcept,
|
||||
modernize-use-nullptr,
|
||||
performance-faster-string-find,
|
||||
performance-for-range-copy,
|
||||
performance-implicit-conversion-in-loop,
|
||||
performance-inefficient-algorithm,
|
||||
performance-inefficient-string-concatenation,
|
||||
performance-inefficient-vector-operation,
|
||||
performance-move-const-arg,
|
||||
performance-move-constructor-init,
|
||||
performance-noexcept-move-constructor,
|
||||
performance-type-promotion-in-math-fn,
|
||||
performance-unnecessary-copy-initialization,
|
||||
performance-unnecessary-value-param,
|
||||
readability-container-size-empty,
|
||||
readability-identifier-naming,
|
||||
|
@ -95,6 +95,12 @@ target_include_directories(pvt_libs
|
||||
|
||||
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)
|
||||
target_compile_definitions(pvt_libs
|
||||
PUBLIC
|
||||
|
@ -32,6 +32,9 @@
|
||||
#ifndef 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 <boost/date_time/posix_time/posix_time.hpp>
|
||||
|
@ -41,8 +41,8 @@
|
||||
#include "gps_sdr_signal_processing.h"
|
||||
#include <boost/math/distributions/exponential.hpp>
|
||||
#include <glog/logging.h>
|
||||
#include <algorithm>
|
||||
#include <gsl/gsl>
|
||||
#include <algorithm>
|
||||
|
||||
|
||||
GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
|
||||
|
@ -69,12 +69,13 @@ endif()
|
||||
target_link_libraries(acquisition_gr_blocks
|
||||
PUBLIC
|
||||
algorithms_libs
|
||||
acquisition_libs
|
||||
channel_libs
|
||||
core_system_parameters
|
||||
Armadillo::armadillo
|
||||
Gnuradio::runtime
|
||||
Gnuradio::fft
|
||||
Volk::volk
|
||||
channel_libs
|
||||
acquisition_libs
|
||||
core_system_parameters
|
||||
PRIVATE
|
||||
Gflags::gflags
|
||||
Glog::glog
|
||||
@ -90,6 +91,12 @@ target_include_directories(acquisition_gr_blocks
|
||||
${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)
|
||||
target_link_libraries(acquisition_gr_blocks PUBLIC OpenCL::OpenCL)
|
||||
target_include_directories(acquisition_gr_blocks
|
||||
|
@ -52,6 +52,10 @@
|
||||
#ifndef 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 "channel_fsm.h"
|
||||
#include <armadillo>
|
||||
@ -61,6 +65,7 @@
|
||||
#include <gnuradio/gr_complex.h> // for gr_complex
|
||||
#include <gnuradio/thread/thread.h> // for scoped_lock
|
||||
#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 <complex>
|
||||
#include <cstdint>
|
||||
@ -68,12 +73,6 @@
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#if HAS_SPAN
|
||||
#include <span>
|
||||
namespace gsl = std;
|
||||
#else
|
||||
#include <gsl/gsl>
|
||||
#endif
|
||||
|
||||
class Gnss_Synchro;
|
||||
class pcps_acquisition;
|
||||
|
@ -49,6 +49,10 @@
|
||||
#ifndef 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 "channel_fsm.h"
|
||||
#include "gnss_synchro.h"
|
||||
|
@ -92,23 +92,11 @@ else()
|
||||
target_link_libraries(algorithms_libs PRIVATE Boost::filesystem Boost::system)
|
||||
endif()
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
check_cxx_source_compiles("
|
||||
#include <span>
|
||||
int main()
|
||||
{ std::span<float> sv; }"
|
||||
has_span
|
||||
target_include_directories(algorithms_libs
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/src/algorithms/libs/gsl/include
|
||||
)
|
||||
|
||||
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
|
||||
PUBLIC
|
||||
Armadillo::armadillo
|
||||
@ -130,6 +118,12 @@ if(OPENCL_FOUND)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES Rel)
|
||||
target_compile_definitions(algorithms_libs
|
||||
PUBLIC -DARMA_NO_BOUND_CHECKING=1
|
||||
)
|
||||
endif()
|
||||
|
||||
target_include_directories(algorithms_libs
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/src/core/interfaces
|
||||
|
@ -33,17 +33,10 @@
|
||||
#ifndef GNSS_SDR_BEIDOU_B1I_SDR_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_BEIDOU_B1I_SDR_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
void beidou_b1i_code_gen_int(gsl::span<int32_t> _dest, int32_t _prn, uint32_t _chip_shift);
|
||||
|
||||
|
@ -33,16 +33,10 @@
|
||||
#ifndef GNSS_SDR_BEIDOU_B3I_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_BEIDOU_B3I_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
void beidou_b3i_code_gen_int(gsl::span<int> _dest, int32_t _prn, uint32_t _chip_shift);
|
||||
|
||||
|
@ -32,15 +32,10 @@
|
||||
#ifndef GNSS_SDR_GALILEO_E1_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_GALILEO_E1_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <array>
|
||||
#include <complex>
|
||||
#include <cstdint>
|
||||
#if HAS_SPAN
|
||||
#include <span>
|
||||
namespace gsl = std;
|
||||
#else
|
||||
#include <gsl/gsl>
|
||||
#endif
|
||||
|
||||
|
||||
/*!
|
||||
|
@ -34,16 +34,10 @@
|
||||
#ifndef GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_GALILEO_E5_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <array>
|
||||
#include <complex>
|
||||
#include <cstdint>
|
||||
#if HAS_SPAN
|
||||
#include <span>
|
||||
namespace gsl = std;
|
||||
#else
|
||||
#include <gsl/gsl>
|
||||
#endif
|
||||
|
||||
|
||||
/*!
|
||||
* \brief Generates Galileo E5a code at 1 sample/chip
|
||||
|
@ -32,6 +32,10 @@
|
||||
#ifndef GNSS_SDR_GEOFUNCTIONS_H
|
||||
#define GNSS_SDR_GEOFUNCTIONS_H
|
||||
|
||||
#if ARMA_NO_BOUND_CHECKING
|
||||
#define ARMA_NO_DEBUG 1
|
||||
#endif
|
||||
|
||||
#include <armadillo>
|
||||
|
||||
arma::mat Skew_symmetric(const arma::vec &a); //!< Calculates skew-symmetric matrix
|
||||
|
@ -33,16 +33,10 @@
|
||||
#ifndef GNSS_SDR_GLONASS_SDR_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_GLONASS_SDR_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
void glonass_l1_ca_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _chip_shift);
|
||||
|
||||
|
@ -33,16 +33,10 @@
|
||||
#ifndef GNSS_SDR_GLONASS_L2_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_GLONASS_L2_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
void glonass_l2_ca_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _chip_shift);
|
||||
|
||||
|
@ -35,17 +35,10 @@
|
||||
#ifndef GNSS_SDR_GNSS_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_GNSS_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#include <cstdint>
|
||||
|
||||
#if HAS_SPAN
|
||||
#include <span>
|
||||
namespace gsl = std;
|
||||
#else
|
||||
#include <gsl/gsl>
|
||||
#endif
|
||||
|
||||
|
||||
/*!
|
||||
* \brief This function generates a complex exponential in _dest.
|
||||
*
|
||||
|
@ -33,17 +33,10 @@
|
||||
#ifndef GNSS_SDR_GPS_L2C_SIGNAL_H_
|
||||
#define GNSS_SDR_GPS_L2C_SIGNAL_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
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);
|
||||
|
@ -33,16 +33,10 @@
|
||||
#ifndef GNSS_SDR_GPS_L5_SIGNAL_H_
|
||||
#define GNSS_SDR_GPS_L5_SIGNAL_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
void gps_l5i_code_gen_complex(gsl::span<std::complex<float>> _dest, uint32_t _prn);
|
||||
|
||||
|
@ -33,16 +33,10 @@
|
||||
#ifndef GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_
|
||||
#define GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_
|
||||
|
||||
#include <gsl/gsl>
|
||||
#include <complex>
|
||||
#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
|
||||
void gps_l1_ca_code_gen_int(gsl::span<int32_t> _dest, int32_t _prn, uint32_t _chip_shift);
|
||||
|
||||
|
@ -251,7 +251,7 @@ void signal_generator_c::generate_codes()
|
||||
|
||||
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);
|
||||
|
||||
// Obtain the desired CN0 assuming that Pn = 1.
|
||||
|
@ -550,7 +550,7 @@ int beidou_b1i_telemetry_decoder_gs::general_work(int noutput_items __attribute_
|
||||
flag_SOW_set = true;
|
||||
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
|
||||
<< " 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";
|
||||
|
@ -581,7 +581,7 @@ int beidou_b3i_telemetry_decoder_gs::general_work(
|
||||
flag_SOW_set = true;
|
||||
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
|
||||
<< " 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";
|
||||
|
@ -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};
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -89,6 +89,7 @@ endif()
|
||||
target_link_libraries(tracking_gr_blocks
|
||||
PUBLIC
|
||||
Boost::boost
|
||||
Armadillo::armadillo
|
||||
Gnuradio::blocks
|
||||
Matio::matio
|
||||
Volkgnsssdr::volkgnsssdr
|
||||
@ -108,6 +109,12 @@ if(ENABLE_CUDA AND NOT CMAKE_VERSION VERSION_GREATER 3.11)
|
||||
)
|
||||
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(CLANG_TIDY_EXE)
|
||||
set_target_properties(tracking_gr_blocks
|
||||
|
@ -57,15 +57,15 @@
|
||||
#include <glog/logging.h>
|
||||
#include <gnuradio/io_signature.h> // for io_signature
|
||||
#include <gnuradio/thread/thread.h> // for scoped_lock
|
||||
#include <matio.h> // for Mat_VarCreate
|
||||
#include <pmt/pmt_sugar.h> // for mp
|
||||
#include <gsl/gsl>
|
||||
#include <matio.h> // for Mat_VarCreate
|
||||
#include <pmt/pmt_sugar.h> // for mp
|
||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||
#include <algorithm> // for fill_n
|
||||
#include <array>
|
||||
#include <cmath> // for fmod, round, floor
|
||||
#include <exception> // for exception
|
||||
#include <gsl/gsl>
|
||||
#include <iostream> // for cout, cerr
|
||||
#include <iostream> // for cout, cerr
|
||||
#include <map>
|
||||
#include <numeric>
|
||||
|
||||
|
@ -49,14 +49,14 @@
|
||||
#include <glog/logging.h>
|
||||
#include <gnuradio/io_signature.h> // for io_signature
|
||||
#include <gnuradio/thread/thread.h> // for scoped_lock
|
||||
#include <matio.h> // for Mat_VarCreate
|
||||
#include <pmt/pmt_sugar.h> // for mp
|
||||
#include <gsl/gsl>
|
||||
#include <matio.h> // for Mat_VarCreate
|
||||
#include <pmt/pmt_sugar.h> // for mp
|
||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||
#include <algorithm> // for fill_n
|
||||
#include <cmath> // for fmod, round, floor
|
||||
#include <exception> // for exception
|
||||
#include <gsl/gsl>
|
||||
#include <iostream> // for cout, cerr
|
||||
#include <iostream> // for cout, cerr
|
||||
#include <map>
|
||||
#include <numeric>
|
||||
#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_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)
|
||||
{
|
||||
multicorrelator_fpga->enable_secondary_codes();
|
||||
|
@ -45,12 +45,12 @@
|
||||
#include "tracking_discriminators.h"
|
||||
#include <glog/logging.h>
|
||||
#include <gnuradio/io_signature.h>
|
||||
#include <gsl/gsl>
|
||||
#include <matio.h>
|
||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||
#include <array>
|
||||
#include <cmath>
|
||||
#include <exception>
|
||||
#include <gsl/gsl>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
|
@ -40,6 +40,10 @@
|
||||
#ifndef 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 "cpu_multicorrelator_real_codes.h"
|
||||
#include "gnss_synchro.h"
|
||||
|
@ -134,6 +134,12 @@ if(OS_IS_MACOSX)
|
||||
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(CLANG_TIDY_EXE)
|
||||
set_target_properties(tracking_libs
|
||||
|
@ -45,6 +45,10 @@
|
||||
#ifndef 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 <gnuradio/gr_complex.h>
|
||||
|
||||
|
@ -43,6 +43,10 @@
|
||||
#ifndef 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 <gnuradio/gr_complex.h>
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "tcp_communication.h"
|
||||
#include "tcp_packet_data.h"
|
||||
#include <iostream>
|
||||
#include <stdexcept>
|
||||
#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.
|
||||
if (d_control_id_ != readbuf.data()[0])
|
||||
{
|
||||
throw "Packet error!";
|
||||
throw std::runtime_error("Packet error!");
|
||||
}
|
||||
|
||||
// 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.
|
||||
if (d_control_id_ != readbuf.data()[0])
|
||||
{
|
||||
throw "Packet error!";
|
||||
throw std::runtime_error("Packet error!");
|
||||
}
|
||||
|
||||
// Recover the variables received
|
||||
|
@ -156,6 +156,12 @@ target_link_libraries(core_receiver
|
||||
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
|
||||
if(OS_IS_MACOSX)
|
||||
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (Boost_VERSION_STRING VERSION_LESS 1.70.0))
|
||||
|
@ -32,6 +32,10 @@
|
||||
* -------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#if ARMA_NO_BOUND_CHECKING
|
||||
#define ARMA_NO_DEBUG 1
|
||||
#endif
|
||||
|
||||
#include "control_thread.h"
|
||||
#include "channel_event.h"
|
||||
#include "command_event.h"
|
||||
|
@ -1470,6 +1470,15 @@ void GNSSFlowgraph::perform_hw_reset()
|
||||
{
|
||||
// a stop acquisition command causes the SW to reset the HW
|
||||
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->acquisition()->stop_acquisition();
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
//#define NAVIGATION_SOLUTION_RATE_MS 1000 // this cannot go here
|
||||
//const double GPS_STARTOFFSET_ms = 68.802; //[ms] Initial sign. travel time (this cannot go here)
|
||||
const double GPS_STARTOFFSET_MS = 60.0;
|
||||
const double GPS_STARTOFFSET_MS = 68.802; // [ms] Initial signal travel time (only for old ls_pvt implementation)
|
||||
|
||||
// OBSERVABLE HISTORY DEEP FOR INTERPOLATION
|
||||
const int32_t GPS_L1_CA_HISTORY_DEEP = 100;
|
||||
|
@ -31,14 +31,9 @@
|
||||
|
||||
#include "gnss_signal_processing.h"
|
||||
#include "gps_sdr_signal_processing.h"
|
||||
#include <gsl/gsl>
|
||||
#include <chrono>
|
||||
#include <complex>
|
||||
#if HAS_SPAN
|
||||
#include <span>
|
||||
namespace gsl = std;
|
||||
#else
|
||||
#include <gsl/gsl>
|
||||
#endif
|
||||
|
||||
|
||||
TEST(CodeGenerationTest, CodeGenGPSL1Test)
|
||||
|
@ -32,14 +32,9 @@
|
||||
#include "GPS_L1_CA.h"
|
||||
#include "gnss_signal_processing.h"
|
||||
#include <armadillo>
|
||||
#include <gsl/gsl>
|
||||
#include <chrono>
|
||||
#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");
|
||||
|
||||
|
@ -139,7 +139,7 @@ TEST(CpuMulticorrelatorRealCodesTest, MeasureExecutionTime)
|
||||
//create the concurrent correlator threads
|
||||
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],
|
||||
d_rem_carrier_phase_rad,
|
||||
d_carrier_phase_step_rad,
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <cmath>
|
||||
#include <iostream> // for operator<<
|
||||
#include <map>
|
||||
#include <stdexcept>
|
||||
#include <utility>
|
||||
|
||||
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;
|
||||
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);
|
||||
return mean_Doppler_Hz;
|
||||
}
|
||||
throw(1);
|
||||
throw std::runtime_error("1");
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,7 +65,7 @@ public:
|
||||
* 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
|
||||
|
@ -121,7 +121,6 @@ private:
|
||||
|
||||
public:
|
||||
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()
|
||||
{
|
||||
while (!stop)
|
||||
@ -574,7 +570,7 @@ int main(int argc, char** argv)
|
||||
{
|
||||
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;
|
||||
}
|
||||
@ -623,7 +619,7 @@ int main(int argc, char** argv)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user