mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-19 05:33:02 +00:00
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next
This commit is contained in:
commit
250c0080b1
@ -123,7 +123,8 @@ bool Gpx_Printer::print_position(const std::shared_ptr<rtklib_solver>& position,
|
|||||||
double vdop = position_->get_vdop();
|
double vdop = position_->get_vdop();
|
||||||
double pdop = position_->get_pdop();
|
double pdop = position_->get_pdop();
|
||||||
std::string utc_time = to_iso_extended_string(position_->get_position_UTC_time());
|
std::string utc_time = to_iso_extended_string(position_->get_position_UTC_time());
|
||||||
utc_time.resize(23); // time up to ms
|
if (utc_time.length() < 23) utc_time += ".";
|
||||||
|
utc_time.resize(23, '0'); // time up to ms
|
||||||
utc_time.append("Z"); // UTC time zone
|
utc_time.append("Z"); // UTC time zone
|
||||||
|
|
||||||
if (print_average_values == false)
|
if (print_average_values == false)
|
||||||
|
@ -71,7 +71,6 @@
|
|||||||
#define socket_t int
|
#define socket_t int
|
||||||
#define closesocket close
|
#define closesocket close
|
||||||
#define lock_t pthread_mutex_t
|
#define lock_t pthread_mutex_t
|
||||||
#define thread_t pthread_t
|
|
||||||
#define initlock(f) pthread_mutex_init(f, NULL)
|
#define initlock(f) pthread_mutex_init(f, NULL)
|
||||||
#define rtk_lock(f) pthread_mutex_lock(f)
|
#define rtk_lock(f) pthread_mutex_lock(f)
|
||||||
#define rtk_unlock(f) pthread_mutex_unlock(f)
|
#define rtk_unlock(f) pthread_mutex_unlock(f)
|
||||||
@ -1211,7 +1210,7 @@ typedef struct
|
|||||||
char local[1024]; /* local file path */
|
char local[1024]; /* local file path */
|
||||||
int topts[4]; /* time options {poff,tint,toff,tretry} (s) */
|
int topts[4]; /* time options {poff,tint,toff,tretry} (s) */
|
||||||
gtime_t tnext; /* next retry time (gpst) */
|
gtime_t tnext; /* next retry time (gpst) */
|
||||||
thread_t thread; /* download thread */
|
pthread_t thread; /* download thread */
|
||||||
} ftp_t;
|
} ftp_t;
|
||||||
|
|
||||||
|
|
||||||
@ -1284,7 +1283,7 @@ typedef struct
|
|||||||
stream_t stream[8]; /* streams {rov,base,corr,sol1,sol2,logr,logb,logc} */
|
stream_t stream[8]; /* streams {rov,base,corr,sol1,sol2,logr,logb,logc} */
|
||||||
stream_t *moni; /* monitor stream */
|
stream_t *moni; /* monitor stream */
|
||||||
unsigned int tick; /* start tick */
|
unsigned int tick; /* start tick */
|
||||||
thread_t thread; /* server thread */
|
pthread_t thread; /* server thread */
|
||||||
int cputime; /* CPU time (ms) for a processing cycle */
|
int cputime; /* CPU time (ms) for a processing cycle */
|
||||||
int prcout; /* missing observation data count */
|
int prcout; /* missing observation data count */
|
||||||
lock_t lock; /* lock flag */
|
lock_t lock; /* lock flag */
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*!
|
/*!
|
||||||
* \file volk_gnsssdr_32f_fast_resamplerxnpuppet_32f.h
|
* \file volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f.h
|
||||||
* \brief VOLK_GNSSSDR puppet for the multiple 32-bit float vector fast resampler kernel.
|
* \brief VOLK_GNSSSDR puppet for the multiple 32-bit float vector high dynamics resampler kernel.
|
||||||
* \authors <ul>
|
* \authors <ul>
|
||||||
* <li> Cillian O'Driscoll 2017 cillian.odriscoll at gmail dot com
|
* <li> Cillian O'Driscoll 2017 cillian.odriscoll at gmail dot com
|
||||||
* <li> Javier Arribas, 2018. javiarribas(at)gmail.com
|
* <li> Javier Arribas, 2018. javiarribas(at)gmail.com
|
||||||
@ -33,10 +33,10 @@
|
|||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_H
|
#ifndef INCLUDED_volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_H
|
||||||
#define INCLUDED_volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_H
|
#define INCLUDED_volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_H
|
||||||
|
|
||||||
#include "volk_gnsssdr/volk_gnsssdr_32f_xn_fast_resampler_32f_xn.h"
|
#include "volk_gnsssdr/volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn.h"
|
||||||
#include <volk_gnsssdr/volk_gnsssdr_malloc.h>
|
#include <volk_gnsssdr/volk_gnsssdr_malloc.h>
|
||||||
#include <volk_gnsssdr/volk_gnsssdr_complex.h>
|
#include <volk_gnsssdr/volk_gnsssdr_complex.h>
|
||||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_GENERIC
|
#ifdef LV_HAVE_GENERIC
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_generic(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_generic(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -60,7 +60,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_generic(float* re
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_generic(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_generic(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_generic(float* re
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_SSE3
|
#ifdef LV_HAVE_SSE3
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_sse3(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_a_sse3(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -91,7 +91,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_sse3(float* res
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_sse3(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_a_sse3(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_sse3(float* res
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_SSE3
|
#ifdef LV_HAVE_SSE3
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_sse3(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_u_sse3(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -122,7 +122,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_sse3(float* res
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_sse3(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_u_sse3(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_sse3(float* res
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_SSE4_1
|
#ifdef LV_HAVE_SSE4_1
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_sse4_1(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_u_sse4_1(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -153,7 +153,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_sse4_1(float* r
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_sse4_1(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_u_sse4_1(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -168,7 +168,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_sse4_1(float* r
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_SSE4_1
|
#ifdef LV_HAVE_SSE4_1
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_sse4_1(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_a_sse4_1(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -184,7 +184,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_sse4_1(float* r
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_sse4_1(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_a_sse4_1(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_sse4_1(float* r
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_AVX
|
#ifdef LV_HAVE_AVX
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_avx(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_a_avx(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -215,7 +215,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_avx(float* resu
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_avx(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_a_avx(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_a_avx(float* resu
|
|||||||
|
|
||||||
|
|
||||||
#ifdef LV_HAVE_AVX
|
#ifdef LV_HAVE_AVX
|
||||||
static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_avx(float* result, const float* local_code, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f_u_avx(float* result, const float* local_code, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int code_length_chips = 2046;
|
int code_length_chips = 2046;
|
||||||
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
float code_phase_step_chips = ((float)(code_length_chips) + 0.1) / ((float)num_points);
|
||||||
@ -245,7 +245,7 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_avx(float* resu
|
|||||||
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
result_aux[n] = (float*)volk_gnsssdr_malloc(sizeof(float) * num_points, volk_gnsssdr_get_alignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_avx(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_u_avx(result_aux, local_code, rem_code_phase_chips, code_phase_step_chips, code_phase_rate_step_chips, shifts_chips, code_length_chips, num_out_vectors, num_points);
|
||||||
|
|
||||||
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
memcpy((float*)result, (float*)result_aux[0], sizeof(float) * num_points);
|
||||||
|
|
||||||
@ -285,4 +285,4 @@ static inline void volk_gnsssdr_32f_fast_resamplerxnpuppet_32f_u_avx(float* resu
|
|||||||
//}
|
//}
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
#endif // INCLUDED_volk_gnsssdr_32f_fast_resamplerpuppet_32f_H
|
#endif // INCLUDED_volk_gnsssdr_32f_high_dynamics_resamplerpuppet_32f_H
|
@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* \file volk_gnsssdr_32f_xn_fast_resampler_32f_xn.h
|
* \file volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn.h
|
||||||
* \brief VOLK_GNSSSDR kernel: Resamples 1 complex 32-bit float vectors using zero hold resample algorithm
|
* \brief VOLK_GNSSSDR kernel: Resamples 1 complex 32-bit float vectors using zero hold resample algorithm
|
||||||
* and produces the delayed replicas by copying and rotating the resulting resampled signal.
|
* and produces the delayed replicas by copying and rotating the resulting resampled signal.
|
||||||
* \authors <ul>
|
* \authors <ul>
|
||||||
@ -38,7 +38,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \page volk_gnsssdr_32f_xn_fast_resampler_32f_xn
|
* \page volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn
|
||||||
*
|
*
|
||||||
* \b Overview
|
* \b Overview
|
||||||
*
|
*
|
||||||
@ -46,7 +46,7 @@
|
|||||||
*
|
*
|
||||||
* <b>Dispatcher Prototype</b>
|
* <b>Dispatcher Prototype</b>
|
||||||
* \code
|
* \code
|
||||||
* void volk_gnsssdr_32f_xn_fast_resampler_32f_xn(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
* void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
* \endcode
|
* \endcode
|
||||||
*
|
*
|
||||||
* \b Inputs
|
* \b Inputs
|
||||||
@ -64,8 +64,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef INCLUDED_volk_gnsssdr_32f_xn_fast_resampler_32f_xn_H
|
#ifndef INCLUDED_volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_H
|
||||||
#define INCLUDED_volk_gnsssdr_32f_xn_fast_resampler_32f_xn_H
|
#define INCLUDED_volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_H
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
#ifdef LV_HAVE_GENERIC
|
#ifdef LV_HAVE_GENERIC
|
||||||
|
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_generic(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_generic(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
int local_code_chip_index;
|
int local_code_chip_index;
|
||||||
int current_correlator_tap;
|
int current_correlator_tap;
|
||||||
@ -109,7 +109,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_generic(float** res
|
|||||||
|
|
||||||
#ifdef LV_HAVE_SSE3
|
#ifdef LV_HAVE_SSE3
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_sse3(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_a_sse3(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
float** _result = result;
|
float** _result = result;
|
||||||
const unsigned int quarterPoints = num_points / 4;
|
const unsigned int quarterPoints = num_points / 4;
|
||||||
@ -194,7 +194,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_sse3(float** resu
|
|||||||
|
|
||||||
#ifdef LV_HAVE_SSE3
|
#ifdef LV_HAVE_SSE3
|
||||||
#include <pmmintrin.h>
|
#include <pmmintrin.h>
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_sse3(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_u_sse3(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
float** _result = result;
|
float** _result = result;
|
||||||
const unsigned int quarterPoints = num_points / 4;
|
const unsigned int quarterPoints = num_points / 4;
|
||||||
@ -280,7 +280,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_sse3(float** resu
|
|||||||
|
|
||||||
#ifdef LV_HAVE_SSE4_1
|
#ifdef LV_HAVE_SSE4_1
|
||||||
#include <smmintrin.h>
|
#include <smmintrin.h>
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_sse4_1(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_a_sse4_1(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
float** _result = result;
|
float** _result = result;
|
||||||
const unsigned int quarterPoints = num_points / 4;
|
const unsigned int quarterPoints = num_points / 4;
|
||||||
@ -362,7 +362,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_sse4_1(float** re
|
|||||||
|
|
||||||
#ifdef LV_HAVE_SSE4_1
|
#ifdef LV_HAVE_SSE4_1
|
||||||
#include <smmintrin.h>
|
#include <smmintrin.h>
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_sse4_1(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_u_sse4_1(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
float** _result = result;
|
float** _result = result;
|
||||||
const unsigned int quarterPoints = num_points / 4;
|
const unsigned int quarterPoints = num_points / 4;
|
||||||
@ -444,7 +444,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_sse4_1(float** re
|
|||||||
|
|
||||||
#ifdef LV_HAVE_AVX
|
#ifdef LV_HAVE_AVX
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_avx(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_a_avx(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
float** _result = result;
|
float** _result = result;
|
||||||
const unsigned int avx_iters = num_points / 8;
|
const unsigned int avx_iters = num_points / 8;
|
||||||
@ -532,7 +532,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_a_avx(float** resul
|
|||||||
|
|
||||||
#ifdef LV_HAVE_AVX
|
#ifdef LV_HAVE_AVX
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_avx(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_u_avx(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
{
|
{
|
||||||
float** _result = result;
|
float** _result = result;
|
||||||
const unsigned int avx_iters = num_points / 8;
|
const unsigned int avx_iters = num_points / 8;
|
||||||
@ -621,7 +621,7 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_avx(float** resul
|
|||||||
//#ifdef LV_HAVE_NEONV7
|
//#ifdef LV_HAVE_NEONV7
|
||||||
//#include <arm_neon.h>
|
//#include <arm_neon.h>
|
||||||
//
|
//
|
||||||
//static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_neon(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
//static inline void volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_neon(float** result, const float* local_code, float rem_code_phase_chips, float code_phase_step_chips, float* shifts_chips, unsigned int code_length_chips, int num_out_vectors, unsigned int num_points)
|
||||||
//{
|
//{
|
||||||
// float** _result = result;
|
// float** _result = result;
|
||||||
// const unsigned int neon_iters = num_points / 4;
|
// const unsigned int neon_iters = num_points / 4;
|
||||||
@ -704,4 +704,4 @@ static inline void volk_gnsssdr_32f_xn_fast_resampler_32f_xn_u_avx(float** resul
|
|||||||
//
|
//
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
#endif /*INCLUDED_volk_gnsssdr_32f_xn_fast_resampler_32f_xn_H*/
|
#endif /*INCLUDED_volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn_H*/
|
@ -93,7 +93,7 @@ std::vector<volk_gnsssdr_test_case_t> init_test_list(volk_gnsssdr_test_params_t
|
|||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_16i_resamplerxnpuppet_16i, volk_gnsssdr_16i_xn_resampler_16i_xn, test_params))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_16i_resamplerxnpuppet_16i, volk_gnsssdr_16i_xn_resampler_16i_xn, test_params))
|
||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_32fc_resamplerxnpuppet_32fc, volk_gnsssdr_32fc_xn_resampler_32fc_xn, test_params))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_32fc_resamplerxnpuppet_32fc, volk_gnsssdr_32fc_xn_resampler_32fc_xn, test_params))
|
||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_32f_resamplerxnpuppet_32f, volk_gnsssdr_32f_xn_resampler_32f_xn, test_params))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_32f_resamplerxnpuppet_32f, volk_gnsssdr_32f_xn_resampler_32f_xn, test_params))
|
||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_32f_fast_resamplerxnpuppet_32f, volk_gnsssdr_32f_xn_fast_resampler_32f_xn, test_params))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_32f_high_dynamics_resamplerxnpuppet_32f, volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn, test_params))
|
||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic, volk_gnsssdr_16ic_x2_dot_prod_16ic_xn, test_params))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_16ic_x2_dotprodxnpuppet_16ic, volk_gnsssdr_16ic_x2_dot_prod_16ic_xn, test_params))
|
||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic, volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn, test_params_int16))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_16ic_x2_rotator_dotprodxnpuppet_16ic, volk_gnsssdr_16ic_x2_rotator_dot_prod_16ic_xn, test_params_int16))
|
||||||
QA(VOLK_INIT_PUPP(volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn, test_params_int16))
|
QA(VOLK_INIT_PUPP(volk_gnsssdr_16ic_16i_rotator_dotprodxnpuppet_16ic, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn, test_params_int16))
|
||||||
|
@ -362,7 +362,7 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --- Initializations ---
|
// --- Initializations ---
|
||||||
multicorrelator_cpu.set_fast_resampler(trk_parameters.use_fast_resampler);
|
multicorrelator_cpu.set_high_dynamics_resampler(trk_parameters.use_high_dynamics_resampler);
|
||||||
// Initial code frequency basis of NCO
|
// Initial code frequency basis of NCO
|
||||||
d_code_freq_chips = d_code_chip_rate;
|
d_code_freq_chips = d_code_chip_rate;
|
||||||
// Residual code phase (in chips)
|
// Residual code phase (in chips)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*!
|
/*!
|
||||||
* \file cpu_multicorrelator_real_codes.cc
|
* \file cpu_multicorrelator_real_codes.cc
|
||||||
* \brief High optimized CPU vector multiTAP correlator class with real-valued local codes
|
* \brief Highly optimized CPU vector multiTAP correlator class with real-valued local codes
|
||||||
* \authors <ul>
|
* \authors <ul>
|
||||||
* <li> Javier Arribas, 2015. jarribas(at)cttc.es
|
* <li> Javier Arribas, 2015. jarribas(at)cttc.es
|
||||||
* <li> Cillian O'Driscoll, 2017. cillian.odriscoll(at)gmail.com
|
* <li> Cillian O'Driscoll, 2017. cillian.odriscoll(at)gmail.com
|
||||||
@ -46,7 +46,7 @@ cpu_multicorrelator_real_codes::cpu_multicorrelator_real_codes()
|
|||||||
d_local_codes_resampled = nullptr;
|
d_local_codes_resampled = nullptr;
|
||||||
d_code_length_chips = 0;
|
d_code_length_chips = 0;
|
||||||
d_n_correlators = 0;
|
d_n_correlators = 0;
|
||||||
d_use_fast_resampler = true;
|
d_use_high_dynamics_resampler = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -100,9 +100,9 @@ bool cpu_multicorrelator_real_codes::set_input_output_vectors(std::complex<float
|
|||||||
|
|
||||||
void cpu_multicorrelator_real_codes::update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips)
|
void cpu_multicorrelator_real_codes::update_local_code(int correlator_length_samples, float rem_code_phase_chips, float code_phase_step_chips, float code_phase_rate_step_chips)
|
||||||
{
|
{
|
||||||
if (d_use_fast_resampler)
|
if (d_use_high_dynamics_resampler)
|
||||||
{
|
{
|
||||||
volk_gnsssdr_32f_xn_fast_resampler_32f_xn(d_local_codes_resampled,
|
volk_gnsssdr_32f_xn_high_dynamics_resampler_32f_xn(d_local_codes_resampled,
|
||||||
d_local_code_in,
|
d_local_code_in,
|
||||||
rem_code_phase_chips,
|
rem_code_phase_chips,
|
||||||
code_phase_step_chips,
|
code_phase_step_chips,
|
||||||
@ -159,8 +159,9 @@ bool cpu_multicorrelator_real_codes::free()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cpu_multicorrelator_real_codes::set_fast_resampler(
|
|
||||||
bool use_fast_resampler)
|
void cpu_multicorrelator_real_codes::set_high_dynamics_resampler(
|
||||||
|
bool use_high_dynamics_resampler)
|
||||||
{
|
{
|
||||||
d_use_fast_resampler = use_fast_resampler;
|
d_use_high_dynamics_resampler = use_high_dynamics_resampler;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*!
|
/*!
|
||||||
* \file cpu_multicorrelator_real_codes.h
|
* \file cpu_multicorrelator_real_codes.h
|
||||||
* \brief High optimized CPU vector multiTAP correlator class using real-valued local codes
|
* \brief Highly optimized CPU vector multiTAP correlator class using real-valued local codes
|
||||||
* \authors <ul>
|
* \authors <ul>
|
||||||
* <li> Javier Arribas, 2015. jarribas(at)cttc.es
|
* <li> Javier Arribas, 2015. jarribas(at)cttc.es
|
||||||
* <li> Cillian O'Driscoll, 2017, cillian.odriscoll(at)gmail.com
|
* <li> Cillian O'Driscoll, 2017, cillian.odriscoll(at)gmail.com
|
||||||
@ -46,7 +46,7 @@ class cpu_multicorrelator_real_codes
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
cpu_multicorrelator_real_codes();
|
cpu_multicorrelator_real_codes();
|
||||||
void set_fast_resampler(bool use_fast_resampler);
|
void set_high_dynamics_resampler(bool use_high_dynamics_resampler);
|
||||||
~cpu_multicorrelator_real_codes();
|
~cpu_multicorrelator_real_codes();
|
||||||
bool init(int max_signal_length_samples, int n_correlators);
|
bool init(int max_signal_length_samples, int n_correlators);
|
||||||
bool set_local_code_and_taps(int code_length_chips, const float *local_code_in, float *shifts_chips);
|
bool set_local_code_and_taps(int code_length_chips, const float *local_code_in, float *shifts_chips);
|
||||||
@ -62,7 +62,7 @@ private:
|
|||||||
const float *d_local_code_in;
|
const float *d_local_code_in;
|
||||||
std::complex<float> *d_corr_out;
|
std::complex<float> *d_corr_out;
|
||||||
float *d_shifts_chips;
|
float *d_shifts_chips;
|
||||||
bool d_use_fast_resampler;
|
bool d_use_high_dynamics_resampler;
|
||||||
int d_code_length_chips;
|
int d_code_length_chips;
|
||||||
int d_n_correlators;
|
int d_n_correlators;
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
Dll_Pll_Conf::Dll_Pll_Conf()
|
Dll_Pll_Conf::Dll_Pll_Conf()
|
||||||
{
|
{
|
||||||
/* DLL/PLL tracking configuration */
|
/* DLL/PLL tracking configuration */
|
||||||
use_fast_resampler = true;
|
use_high_dynamics_resampler = true;
|
||||||
fs_in = 0.0;
|
fs_in = 0.0;
|
||||||
vector_length = 0U;
|
vector_length = 0U;
|
||||||
dump = false;
|
dump = false;
|
||||||
|
@ -56,7 +56,7 @@ public:
|
|||||||
float early_late_space_narrow_chips;
|
float early_late_space_narrow_chips;
|
||||||
float very_early_late_space_narrow_chips;
|
float very_early_late_space_narrow_chips;
|
||||||
int32_t extend_correlation_symbols;
|
int32_t extend_correlation_symbols;
|
||||||
bool use_fast_resampler;
|
bool use_high_dynamics_resampler;
|
||||||
int32_t cn0_samples;
|
int32_t cn0_samples;
|
||||||
int32_t carrier_lock_det_mav_samples;
|
int32_t carrier_lock_det_mav_samples;
|
||||||
int32_t cn0_min;
|
int32_t cn0_min;
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
/*!
|
/*!
|
||||||
* \file gnss_synchro_monitor.cc
|
* \file gnss_synchro_monitor.cc
|
||||||
* \brief Interface of a Position Velocity and Time computation block
|
* \brief Implementation of a receiver monitoring block which allows sending
|
||||||
|
* a data stream with the receiver internal parameters (Gnss_Synchro objects)
|
||||||
|
* to local or remote clients over UDP.
|
||||||
|
*
|
||||||
* \author Álvaro Cebrián Juan, 2018. acebrianjuan(at)gmail.com
|
* \author Álvaro Cebrián Juan, 2018. acebrianjuan(at)gmail.com
|
||||||
*
|
*
|
||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
@ -61,6 +64,8 @@ gnss_synchro_monitor::gnss_synchro_monitor(unsigned int n_channels,
|
|||||||
d_nchannels = n_channels;
|
d_nchannels = n_channels;
|
||||||
|
|
||||||
udp_sink_ptr = std::unique_ptr<Gnss_Synchro_Udp_Sink>(new Gnss_Synchro_Udp_Sink(udp_addresses, udp_port));
|
udp_sink_ptr = std::unique_ptr<Gnss_Synchro_Udp_Sink>(new Gnss_Synchro_Udp_Sink(udp_addresses, udp_port));
|
||||||
|
|
||||||
|
count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -75,18 +80,17 @@ int gnss_synchro_monitor::work(int noutput_items, gr_vector_const_void_star& inp
|
|||||||
const Gnss_Synchro** in = reinterpret_cast<const Gnss_Synchro**>(&input_items[0]); // Get the input buffer pointer
|
const Gnss_Synchro** in = reinterpret_cast<const Gnss_Synchro**>(&input_items[0]); // Get the input buffer pointer
|
||||||
for (int epoch = 0; epoch < noutput_items; epoch++)
|
for (int epoch = 0; epoch < noutput_items; epoch++)
|
||||||
{
|
{
|
||||||
// ############ 1. READ PSEUDORANGES ####
|
count++;
|
||||||
|
if (count >= d_output_rate_ms)
|
||||||
|
{
|
||||||
for (unsigned int i = 0; i < d_nchannels; i++)
|
for (unsigned int i = 0; i < d_nchannels; i++)
|
||||||
{
|
{
|
||||||
//if (in[i][epoch].Flag_valid_pseudorange)
|
|
||||||
// {
|
|
||||||
// }
|
|
||||||
//todo: send the gnss_synchro objects
|
|
||||||
|
|
||||||
std::vector<Gnss_Synchro> stocks;
|
std::vector<Gnss_Synchro> stocks;
|
||||||
stocks.push_back(in[i][epoch]);
|
stocks.push_back(in[i][epoch]);
|
||||||
udp_sink_ptr->write_gnss_synchro(stocks);
|
udp_sink_ptr->write_gnss_synchro(stocks);
|
||||||
}
|
}
|
||||||
|
count = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return noutput_items;
|
return noutput_items;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
/*!
|
/*!
|
||||||
* \file gnss_synchro_monitor.h
|
* \file gnss_synchro_monitor.h
|
||||||
* \brief Interface of a Position Velocity and Time computation block
|
* \brief Interface of a receiver monitoring block which allows sending
|
||||||
|
* a data stream with the receiver internal parameters (Gnss_Synchro objects)
|
||||||
|
* to local or remote clients over UDP.
|
||||||
|
*
|
||||||
* \author Álvaro Cebrián Juan, 2018. acebrianjuan(at)gmail.com
|
* \author Álvaro Cebrián Juan, 2018. acebrianjuan(at)gmail.com
|
||||||
*
|
*
|
||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
@ -65,6 +68,8 @@ private:
|
|||||||
|
|
||||||
std::unique_ptr<Gnss_Synchro_Udp_Sink> udp_sink_ptr;
|
std::unique_ptr<Gnss_Synchro_Udp_Sink> udp_sink_ptr;
|
||||||
|
|
||||||
|
int count;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
gnss_synchro_monitor(unsigned int nchannels,
|
gnss_synchro_monitor(unsigned int nchannels,
|
||||||
|
@ -1157,11 +1157,10 @@ void GNSSFlowgraph::init()
|
|||||||
*/
|
*/
|
||||||
enable_monitor_ = configuration_->property("Monitor.enable_monitor", false);
|
enable_monitor_ = configuration_->property("Monitor.enable_monitor", false);
|
||||||
|
|
||||||
std::vector<std::string> udp_addr_vec;
|
|
||||||
|
|
||||||
std::string address_string = configuration_->property("Monitor.client_addresses", std::string("127.0.0.1"));
|
std::string address_string = configuration_->property("Monitor.client_addresses", std::string("127.0.0.1"));
|
||||||
//todo: split the string in substrings using the separator and fill the address vector.
|
std::vector<std::string> udp_addr_vec = split_string(address_string, '_');
|
||||||
udp_addr_vec.push_back(address_string);
|
std::sort(udp_addr_vec.begin(), udp_addr_vec.end());
|
||||||
|
udp_addr_vec.erase(std::unique(udp_addr_vec.begin(), udp_addr_vec.end()), udp_addr_vec.end());
|
||||||
|
|
||||||
if (enable_monitor_)
|
if (enable_monitor_)
|
||||||
{
|
{
|
||||||
@ -1599,3 +1598,17 @@ Gnss_Signal GNSSFlowgraph::search_next_signal(std::string searched_signal, bool
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> GNSSFlowgraph::split_string(const std::string &s, char delim)
|
||||||
|
{
|
||||||
|
std::vector<std::string> v;
|
||||||
|
std::stringstream ss(s);
|
||||||
|
std::string item;
|
||||||
|
|
||||||
|
while (std::getline(ss, item, delim))
|
||||||
|
{
|
||||||
|
*(std::back_inserter(v)++) = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
@ -186,6 +186,7 @@ private:
|
|||||||
|
|
||||||
bool enable_monitor_;
|
bool enable_monitor_;
|
||||||
gr::basic_block_sptr GnssSynchroMonitor_;
|
gr::basic_block_sptr GnssSynchroMonitor_;
|
||||||
|
std::vector<std::string> split_string(const std::string &s, char delim);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*GNSS_SDR_GNSS_FLOWGRAPH_H_*/
|
#endif /*GNSS_SDR_GNSS_FLOWGRAPH_H_*/
|
||||||
|
Loading…
Reference in New Issue
Block a user