1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-10-02 17:00:50 +00:00

Merge branch 'next' into ssr

This commit is contained in:
Carles Fernandez 2021-10-18 18:19:14 +02:00
commit c93fb481bc
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
38 changed files with 576 additions and 576 deletions

View File

@ -60,30 +60,30 @@ double prange(const obsd_t *obs, const nav_t *nav, const double *azel,
int iter, const prcopt_t *opt, double *var); int iter, const prcopt_t *opt, double *var);
/* ionospheric correction ------------------------------------------------------ /* ionospheric correction ------------------------------------------------------
* compute ionospheric correction * compute ionospheric correction
* args : gtime_t time I time * args : gtime_t time I time
* nav_t *nav I navigation data * nav_t *nav I navigation data
* int sat I satellite number * int sat I satellite number
* double *pos I receiver position {lat,lon,h} (rad|m) * double *pos I receiver position {lat,lon,h} (rad|m)
* double *azel I azimuth/elevation angle {az,el} (rad) * double *azel I azimuth/elevation angle {az,el} (rad)
* int ionoopt I ionospheric correction option (IONOOPT_???) * int ionoopt I ionospheric correction option (IONOOPT_???)
* double *ion O ionospheric delay (L1) (m) * double *ion O ionospheric delay (L1) (m)
* double *var O ionospheric delay (L1) variance (m^2) * double *var O ionospheric delay (L1) variance (m^2)
* return : status(1:ok,0:error) * return : status(1:ok,0:error)
*-----------------------------------------------------------------------------*/ *-----------------------------------------------------------------------------*/
int ionocorr(gtime_t time, const nav_t *nav, int sat, const double *pos, int ionocorr(gtime_t time, const nav_t *nav, int sat, const double *pos,
const double *azel, int ionoopt, double *ion, double *var); const double *azel, int ionoopt, double *ion, double *var);
/* tropospheric correction ----------------------------------------------------- /* tropospheric correction -----------------------------------------------------
* compute tropospheric correction * compute tropospheric correction
* args : gtime_t time I time * args : gtime_t time I time
* nav_t *nav I navigation data * nav_t *nav I navigation data
* double *pos I receiver position {lat,lon,h} (rad|m) * double *pos I receiver position {lat,lon,h} (rad|m)
* double *azel I azimuth/elevation angle {az,el} (rad) * double *azel I azimuth/elevation angle {az,el} (rad)
* int tropopt I tropospheric correction option (TROPOPT_???) * int tropopt I tropospheric correction option (TROPOPT_???)
* double *trp O tropospheric delay (m) * double *trp O tropospheric delay (m)
* double *var O tropospheric delay variance (m^2) * double *var O tropospheric delay variance (m^2)
* return : status(1:ok,0:error) * return : status(1:ok,0:error)
*-----------------------------------------------------------------------------*/ *-----------------------------------------------------------------------------*/
int tropcorr(gtime_t time, const nav_t *nav, const double *pos, int tropcorr(gtime_t time, const nav_t *nav, const double *pos,
const double *azel, int tropopt, double *trp, double *var); const double *azel, int tropopt, double *trp, double *var);
@ -122,22 +122,22 @@ void estvel(const obsd_t *obs, int n, const double *rs, const double *dts,
const double *azel, const int *vsat); const double *azel, const int *vsat);
/*! /*!
* \brief single-point positioning * \brief single-point positioning
* compute receiver position, velocity, clock bias by single-point positioning * compute receiver position, velocity, clock bias by single-point positioning
* with pseudorange and doppler observables * with pseudorange and doppler observables
* args : obsd_t *obs I observation data * args : obsd_t *obs I observation data
* int n I number of observation data * int n I number of observation data
* nav_t *nav I navigation data * nav_t *nav I navigation data
* prcopt_t *opt I processing options * prcopt_t *opt I processing options
* sol_t *sol IO solution * sol_t *sol IO solution
* double *azel IO azimuth/elevation angle (rad) (NULL: no output) * double *azel IO azimuth/elevation angle (rad) (NULL: no output)
* ssat_t *ssat IO satellite status (NULL: no output) * ssat_t *ssat IO satellite status (NULL: no output)
* char *msg O error message for error exit * char *msg O error message for error exit
* return : status(1:ok,0:error) * return : status(1:ok,0:error)
* notes : assuming sbas-gps, galileo-gps, qzss-gps, compass-gps time offset and * notes : assuming sbas-gps, galileo-gps, qzss-gps, compass-gps time offset and
* receiver bias are negligible (only involving glonass-gps time offset * receiver bias are negligible (only involving glonass-gps time offset
* and receiver bias) * and receiver bias)
*/ */
int pntpos(const obsd_t *obs, int n, const nav_t *nav, int pntpos(const obsd_t *obs, int n, const nav_t *nav,
const prcopt_t *opt, sol_t *sol, double *azel, ssat_t *ssat, const prcopt_t *opt, sol_t *sol, double *azel, ssat_t *ssat,
char *msg); char *msg);

View File

@ -95,9 +95,9 @@ size_t volk_gnsssdr_load_preferences(volk_gnsssdr_arch_pref_t **prefs_res)
// get the config path // get the config path
volk_gnsssdr_get_config_path(path, true); volk_gnsssdr_get_config_path(path, true);
if (!path[0]) return n_arch_prefs; //no prefs found if (!path[0]) return n_arch_prefs; // no prefs found
config_file = fopen(path, "r"); config_file = fopen(path, "r");
if (!config_file) return n_arch_prefs; //no prefs found if (!config_file) return n_arch_prefs; // no prefs found
// reset the file pointer and write the prefs into volk_gnsssdr_arch_prefs // reset the file pointer and write the prefs into volk_gnsssdr_arch_prefs
while (fgets(line, sizeof(line), config_file) != NULL) while (fgets(line, sizeof(line), config_file) != NULL)

View File

@ -32,7 +32,7 @@ int volk_gnsssdr_get_index(
// TODO return -1; // TODO return -1;
// something terrible should happen here // something terrible should happen here
fprintf(stderr, "VOLK_GNSSSDR warning: no arch found, returning generic impl\n"); fprintf(stderr, "VOLK_GNSSSDR warning: no arch found, returning generic impl\n");
return volk_gnsssdr_get_index(impl_names, n_impls, "generic"); //but we'll fake it for now return volk_gnsssdr_get_index(impl_names, n_impls, "generic"); // but we'll fake it for now
} }
@ -66,7 +66,7 @@ int volk_gnsssdr_rank_archs(
// now look for the function name in the prefs list // now look for the function name in the prefs list
for (i = 0; i < n_arch_prefs; i++) for (i = 0; i < n_arch_prefs; i++)
{ {
if (!strncmp(kern_name, volk_gnsssdr_arch_prefs[i].name, sizeof(volk_gnsssdr_arch_prefs[i].name))) //found it if (!strncmp(kern_name, volk_gnsssdr_arch_prefs[i].name, sizeof(volk_gnsssdr_arch_prefs[i].name))) // found it
{ {
const char *impl_name = align ? volk_gnsssdr_arch_prefs[i].impl_a : volk_gnsssdr_arch_prefs[i].impl_u; const char *impl_name = align ? volk_gnsssdr_arch_prefs[i].impl_a : volk_gnsssdr_arch_prefs[i].impl_u;
return volk_gnsssdr_get_index(impl_names, n_impls, impl_name); return volk_gnsssdr_get_index(impl_names, n_impls, impl_name);

View File

@ -47,7 +47,7 @@ struct volk_gnsssdr_machine *get_machine(void)
} }
} }
machine = max_machine; machine = max_machine;
//printf("Using Volk machine: %s\n", machine->name); // printf("Using Volk machine: %s\n", machine->name);
__alignment = machine->alignment; __alignment = machine->alignment;
__alignment_mask = (intptr_t)(__alignment - 1); __alignment_mask = (intptr_t)(__alignment - 1);
return machine; return machine;
@ -101,7 +101,7 @@ const char *volk_gnsssdr_get_machine(void)
size_t volk_gnsssdr_get_alignment(void) size_t volk_gnsssdr_get_alignment(void)
{ {
get_machine(); //ensures alignment is set get_machine(); // ensures alignment is set
return __alignment; return __alignment;
} }

View File

@ -22,7 +22,7 @@ struct VOLK_CPU volk_gnsssdr_cpu;
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
//implement get cpuid for gcc compilers using a system or local copy of cpuid.h // implement get cpuid for gcc compilers using a system or local copy of cpuid.h
#if defined(__GNUC__) #if defined(__GNUC__)
#include <cpuid.h> #include <cpuid.h>
#define cpuid_x86(op, r) __get_cpuid(op, (unsigned int *)r + 0, (unsigned int *)r + 1, (unsigned int *)r + 2, (unsigned int *)r + 3) #define cpuid_x86(op, r) __get_cpuid(op, (unsigned int *)r + 0, (unsigned int *)r + 1, (unsigned int *)r + 2, (unsigned int *)r + 3)
@ -46,7 +46,7 @@ static inline unsigned long long _xgetbv(unsigned int index)
#define __xgetbv() 0 #define __xgetbv() 0
#endif #endif
//implement get cpuid for MSVC compilers using __cpuid intrinsic // implement get cpuid for MSVC compilers using __cpuid intrinsic
#elif defined(_MSC_VER) && defined(HAVE_INTRIN_H) #elif defined(_MSC_VER) && defined(HAVE_INTRIN_H)
#include <intrin.h> #include <intrin.h>
#define cpuid_x86(op, r) __cpuid(((int *)r), op) #define cpuid_x86(op, r) __cpuid(((int *)r), op)
@ -60,9 +60,9 @@ static inline unsigned long long _xgetbv(unsigned int index)
#else #else
#error "A get cpuid for volk_gnsssdr is not available on this compiler..." #error "A get cpuid for volk_gnsssdr is not available on this compiler..."
#endif //defined(__GNUC__) #endif // defined(__GNUC__)
#endif //defined(VOLK_CPU_x86) #endif // defined(VOLK_CPU_x86)
static inline unsigned int cpuid_count_x86_bit(unsigned int level, unsigned int count, unsigned int reg, unsigned int bit) static inline unsigned int cpuid_count_x86_bit(unsigned int level, unsigned int count, unsigned int reg, unsigned int bit)
{ {
@ -120,13 +120,13 @@ static inline unsigned int get_avx2_enabled(void)
static inline unsigned int get_avx512_enabled(void) static inline unsigned int get_avx512_enabled(void)
{ {
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
return __xgetbv() & 0xE6; //check for zmm, xmm and ymm regs return __xgetbv() & 0xE6; // check for zmm, xmm and ymm regs
#else #else
return 0; return 0;
#endif #endif
} }
//neon detection is linux specific // neon detection is linux specific
#if defined(__arm__) && defined(__linux__) #if defined(__arm__) && defined(__linux__)
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <linux/auxvec.h> #include <linux/auxvec.h>
@ -144,8 +144,8 @@ static int has_neonv7(void)
if (!auxvec_f) return 0; if (!auxvec_f) return 0;
size_t r = 1; size_t r = 1;
//so auxv is basically 32b of ID and 32b of value // so auxv is basically 32b of ID and 32b of value
//so it goes like this // so it goes like this
while (!found_neon && r) while (!found_neon && r)
{ {
r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f); r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f);
@ -161,7 +161,7 @@ static int has_neonv7(void)
} }
//\todo: Fix this to really check for neon on aarch64 //\todo: Fix this to really check for neon on aarch64
//neon detection is linux specific // neon detection is linux specific
#if defined(__aarch64__) && defined(__linux__) #if defined(__aarch64__) && defined(__linux__)
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <linux/auxvec.h> #include <linux/auxvec.h>
@ -179,8 +179,8 @@ static int has_neonv8(void)
if (!auxvec_f) return 0; if (!auxvec_f) return 0;
size_t r = 1; size_t r = 1;
//so auxv is basically 32b of ID and 32b of value // so auxv is basically 32b of ID and 32b of value
//so it goes like this // so it goes like this
while (!found_neon && r) while (!found_neon && r)
{ {
r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f); r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f);
@ -225,7 +225,7 @@ static int i_can_has_${arch.name} (void) {
} }
#else #else
static inline void set_float_rounding(void){ static inline void set_float_rounding(void){
//do nothing // do nothing
} }
#endif #endif
#elif defined(_MSC_VER) #elif defined(_MSC_VER)
@ -237,7 +237,7 @@ static int i_can_has_${arch.name} (void) {
} }
#else #else
static inline void set_float_rounding(void){ static inline void set_float_rounding(void){
//do nothing // do nothing
} }
#endif #endif

View File

@ -33,9 +33,9 @@
class ConfigurationInterface; class ConfigurationInterface;
/*! /*!
* \brief This class generates synthesized GNSS signal. * \brief This class generates synthesized GNSS signal.
* *
*/ */
class SignalGenerator : public GNSSBlockInterface class SignalGenerator : public GNSSBlockInterface
{ {
public: public:

View File

@ -35,9 +35,9 @@
/* /*
* Create a new instance of signal_generator_c and return * Create a new instance of signal_generator_c and return
* a boost shared_ptr. This is effectively the public constructor. * a boost shared_ptr. This is effectively the public constructor.
*/ */
signal_generator_c_sptr signal_generator_c_sptr
signal_make_generator_c(const std::vector<std::string> &signal1, const std::vector<std::string> &system, const std::vector<unsigned int> &PRN, signal_make_generator_c(const std::vector<std::string> &signal1, const std::vector<std::string> &system, const std::vector<unsigned int> &PRN,
const std::vector<float> &CN0_dB, const std::vector<float> &doppler_Hz, const std::vector<float> &CN0_dB, const std::vector<float> &doppler_Hz,
@ -50,8 +50,8 @@ signal_make_generator_c(const std::vector<std::string> &signal1, const std::vect
/* /*
* The private constructor * The private constructor
*/ */
signal_generator_c::signal_generator_c(std::vector<std::string> signal1, signal_generator_c::signal_generator_c(std::vector<std::string> signal1,
std::vector<std::string> system, std::vector<std::string> system,
const std::vector<unsigned int> &PRN, const std::vector<unsigned int> &PRN,

View File

@ -29,12 +29,12 @@ class signal_generator_c;
using signal_generator_c_sptr = gnss_shared_ptr<signal_generator_c>; using signal_generator_c_sptr = gnss_shared_ptr<signal_generator_c>;
/*! /*!
* \brief Return a shared_ptr to a new instance of gen_source. * \brief Return a shared_ptr to a new instance of gen_source.
* *
* To avoid accidental use of raw pointers, gen_source's * To avoid accidental use of raw pointers, gen_source's
* constructor is private. signal_make_generator_c is the public * constructor is private. signal_make_generator_c is the public
* interface for creating new instances. * interface for creating new instances.
*/ */
signal_generator_c_sptr signal_make_generator_c( signal_generator_c_sptr signal_make_generator_c(
const std::vector<std::string> &signal1, const std::vector<std::string> &signal1,
const std::vector<std::string> &system, const std::vector<std::string> &system,
@ -50,11 +50,11 @@ signal_generator_c_sptr signal_make_generator_c(
float BW_BB); float BW_BB);
/*! /*!
* \brief This class generates synthesized GNSS signal. * \brief This class generates synthesized GNSS signal.
* \ingroup block * \ingroup block
* *
* \sa gen_source for a version that subclasses gr_block. * \sa gen_source for a version that subclasses gr_block.
*/ */
class signal_generator_c : public gr::block class signal_generator_c : public gr::block
{ {
public: public:

View File

@ -50,10 +50,10 @@ glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs(
const Tlm_Conf &conf); const Tlm_Conf &conf);
/*! /*!
* \brief This class implements a block that decodes the GNAV data defined in GLONASS ICD v5.1 * \brief This class implements a block that decodes the GNAV data defined in GLONASS ICD v5.1
* \see <a href="http://russianspacesystems.ru/wp-content/uploads/2016/08/ICD_GLONASS_eng_v5.1.pdf">GLONASS ICD</a> * \see <a href="http://russianspacesystems.ru/wp-content/uploads/2016/08/ICD_GLONASS_eng_v5.1.pdf">GLONASS ICD</a>
* *
*/ */
class glonass_l2_ca_telemetry_decoder_gs : public gr::block class glonass_l2_ca_telemetry_decoder_gs : public gr::block
{ {
public: public:

View File

@ -1,22 +1,22 @@
/*! /*!
* \file gps_l1_ca_telemetry_decoder_gs.cc * \file gps_l1_ca_telemetry_decoder_gs.cc
* \brief Implementation of a NAV message demodulator block based on * \brief Implementation of a NAV message demodulator block based on
* Kay Borre book MATLAB-based GPS receiver * Kay Borre book MATLAB-based GPS receiver
* \author Javier Arribas, 2011. jarribas(at)cttc.es * \author Javier Arribas, 2011. jarribas(at)cttc.es
* *
* ----------------------------------------------------------------------------- * -----------------------------------------------------------------------------
* *
* Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors) * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
* *
* GNSS-SDR is a software defined Global Navigation * GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver * Satellite Systems receiver
* *
* This file is part of GNSS-SDR. * This file is part of GNSS-SDR.
* *
* SPDX-License-Identifier: GPL-3.0-or-later * SPDX-License-Identifier: GPL-3.0-or-later
* *
* ----------------------------------------------------------------------------- * -----------------------------------------------------------------------------
*/ */
#include "gps_l1_ca_telemetry_decoder_gs.h" #include "gps_l1_ca_telemetry_decoder_gs.h"
#include "gnss_sdr_make_unique.h" // for std::make_unique in C++11 #include "gnss_sdr_make_unique.h" // for std::make_unique in C++11

View File

@ -473,17 +473,17 @@ static int pdu_make_ulp_pos_init(supl_ctx_t *ctx, supl_ulp_t *pdu)
(void)asn_long2INTEGER(&ulp->message.choice.msSUPLPOSINIT.sETCapabilities.prefMethod, PrefMethod_agpsSETBasedPreferred); (void)asn_long2INTEGER(&ulp->message.choice.msSUPLPOSINIT.sETCapabilities.prefMethod, PrefMethod_agpsSETBasedPreferred);
ulp->message.choice.msSUPLPOSINIT.sETCapabilities.posProtocol.rrlp = 1; ulp->message.choice.msSUPLPOSINIT.sETCapabilities.posProtocol.rrlp = 1;
//GNSS-SDR mod // GNSS-SDR mod
// Use ctx->p.request to switch between a pre-defined set of assistance data request // Use ctx->p.request to switch between a pre-defined set of assistance data request
// reason: Some SUPL servers do not respond to Acquisition assistance depending on the status of other assistance flags // reason: Some SUPL servers do not respond to Acquisition assistance depending on the status of other assistance flags
switch (ctx->p.request) switch (ctx->p.request)
{ {
case 0: //request almanac, time, and cell positions case 0: // request almanac, time, and cell positions
req_adata->acquisitionAssistanceRequested = 0; // 1 req_adata->acquisitionAssistanceRequested = 0; // 1
req_adata->navigationModelRequested = 0; // 1 req_adata->navigationModelRequested = 0; // 1
req_adata->referenceTimeRequested = 1; req_adata->referenceTimeRequested = 1;
req_adata->utcModelRequested = 1; //1 req_adata->utcModelRequested = 1; // 1
req_adata->ionosphericModelRequested = 1; // 1 req_adata->ionosphericModelRequested = 1; // 1
req_adata->referenceLocationRequested = 1; req_adata->referenceLocationRequested = 1;
req_adata->almanacRequested = 1; req_adata->almanacRequested = 1;
@ -493,17 +493,17 @@ static int pdu_make_ulp_pos_init(supl_ctx_t *ctx, supl_ulp_t *pdu)
req_adata->acquisitionAssistanceRequested = 0; // 1 req_adata->acquisitionAssistanceRequested = 0; // 1
req_adata->navigationModelRequested = 1; // 1 req_adata->navigationModelRequested = 1; // 1
req_adata->referenceTimeRequested = 1; req_adata->referenceTimeRequested = 1;
req_adata->utcModelRequested = 0; //1 req_adata->utcModelRequested = 0; // 1
req_adata->ionosphericModelRequested = 0; // 1 req_adata->ionosphericModelRequested = 0; // 1
req_adata->referenceLocationRequested = 0; req_adata->referenceLocationRequested = 0;
req_adata->almanacRequested = 0; req_adata->almanacRequested = 0;
req_adata->realTimeIntegrityRequested = 0; // 1 req_adata->realTimeIntegrityRequested = 0; // 1
break; break;
case 2: //request Acquisition assistance (Doppler assistance) case 2: // request Acquisition assistance (Doppler assistance)
req_adata->acquisitionAssistanceRequested = 1; // 1 req_adata->acquisitionAssistanceRequested = 1; // 1
req_adata->navigationModelRequested = 0; // 1 req_adata->navigationModelRequested = 0; // 1
req_adata->referenceTimeRequested = 1; req_adata->referenceTimeRequested = 1;
req_adata->utcModelRequested = 1; //1 req_adata->utcModelRequested = 1; // 1
req_adata->ionosphericModelRequested = 1; // 1 req_adata->ionosphericModelRequested = 1; // 1
req_adata->referenceLocationRequested = 1; req_adata->referenceLocationRequested = 1;
req_adata->almanacRequested = 1; req_adata->almanacRequested = 1;
@ -513,7 +513,7 @@ static int pdu_make_ulp_pos_init(supl_ctx_t *ctx, supl_ulp_t *pdu)
req_adata->acquisitionAssistanceRequested = 0; // 1 req_adata->acquisitionAssistanceRequested = 0; // 1
req_adata->navigationModelRequested = 0; // 1 req_adata->navigationModelRequested = 0; // 1
req_adata->referenceTimeRequested = 1; req_adata->referenceTimeRequested = 1;
req_adata->utcModelRequested = 1; //1 req_adata->utcModelRequested = 1; // 1
req_adata->ionosphericModelRequested = 1; // 1 req_adata->ionosphericModelRequested = 1; // 1
req_adata->referenceLocationRequested = 1; req_adata->referenceLocationRequested = 1;
req_adata->almanacRequested = 1; req_adata->almanacRequested = 1;
@ -858,7 +858,7 @@ int EXPORT supl_collect_rrlp(supl_assist_t *assist, PDU_t *rrlp, struct timeval
assist->iono.a0 = hdr->ionosphericModel->alfa0; assist->iono.a0 = hdr->ionosphericModel->alfa0;
assist->iono.a1 = hdr->ionosphericModel->alfa1; assist->iono.a1 = hdr->ionosphericModel->alfa1;
assist->iono.a2 = hdr->ionosphericModel->alfa2; assist->iono.a2 = hdr->ionosphericModel->alfa2;
assist->iono.a3 = hdr->ionosphericModel->alfa3; //missed in original supl client assist->iono.a3 = hdr->ionosphericModel->alfa3; // missed in original supl client
assist->iono.b0 = hdr->ionosphericModel->beta0; assist->iono.b0 = hdr->ionosphericModel->beta0;
assist->iono.b1 = hdr->ionosphericModel->beta1; assist->iono.b1 = hdr->ionosphericModel->beta1;
assist->iono.b2 = hdr->ionosphericModel->beta2; assist->iono.b2 = hdr->ionosphericModel->beta2;

View File

@ -55,9 +55,9 @@ using namespace google;
#endif #endif
/* /*
* Concurrent queues that communicates the Telemetry Decoder * Concurrent queues that communicates the Telemetry Decoder
* to the Observables modules * to the Observables modules
*/ */
// For GPS NAVIGATION (L1) // For GPS NAVIGATION (L1)
Concurrent_Queue<Gps_Acq_Assist> global_gps_acq_assist_queue; Concurrent_Queue<Gps_Acq_Assist> global_gps_acq_assist_queue;