GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches

Namespaces

namespace  std
 STL namespace.

Classes

class  byte_x2_to_complex_byte
 This class adapts two signed char streams into a std::complex<signed char> stream. More...
class  complex_byte_to_float_x2
 This class adapts a std::complex<signed char> stream into two 16-bits (short) streams. More...
class  complex_float_to_complex_byte
 This class adapts a gr_complex stream into a std::complex<signed char> stream. More...
class  conjugate_cc
 This class adapts a std::complex<short> stream into two 32-bits (float) streams. More...
class  conjugate_ic
 This class adapts a std::complex<short> stream into two 32-bits (float) streams. More...
class  conjugate_sc
 This class adapts a std::complex<short> stream into two 32-bits (float) streams. More...
class  cshort_to_float_x2
 This class adapts a std::complex<short> stream into two 32-bits (float) streams. More...
class  Gnss_circular_deque< T >
class  Pass_Through
 This class implements a block that connects input and output (does nothing). More...
struct  SensorDataSample< DataType >
class  SensorDataAggregator
class  SensorDataFile
class  SensorDataSource
struct  SensorDataFileConfiguration
struct  SensorDataConfiguration
class  SensorDataSourceConfiguration
struct  SensorDataType
struct  SensorIdentifier
class  short_x2_to_cshort
 This class adapts two short streams into a std::complex<short> stream. More...
class  TrackingCmd

Typedefs

using byte_x2_to_complex_byte_sptr = gnss_shared_ptr<byte_x2_to_complex_byte>
using complex_byte_to_float_x2_sptr = gnss_shared_ptr<complex_byte_to_float_x2>
using complex_float_to_complex_byte_sptr = gnss_shared_ptr<complex_float_to_complex_byte>
using conjugate_cc_sptr = gnss_shared_ptr<conjugate_cc>
using conjugate_ic_sptr = gnss_shared_ptr<conjugate_ic>
using conjugate_sc_sptr = gnss_shared_ptr<conjugate_sc>
using cshort_to_float_x2_sptr = gnss_shared_ptr<cshort_to_float_x2>
using item_type_converter_t = std::function<void(void *, const void *, uint32_t)>
using short_x2_to_cshort_sptr = gnss_shared_ptr<short_x2_to_cshort>

Functions

void beidou_b1i_code_gen_int (own::span< int32_t > dest, int32_t prn, uint32_t chip_shift)
 Generates int32_t GPS L1 C/A code for the desired SV ID and code shift.
void beidou_b1i_code_gen_float (own::span< float > dest, int32_t prn, uint32_t chip_shift)
 Generates float GPS L1 C/A code for the desired SV ID and code shift.
void beidou_b1i_code_gen_complex (own::span< std::complex< float > > dest, int32_t prn, uint32_t chip_shift)
 Generates complex GPS L1 C/A code for the desired SV ID and code shift.
void beidou_b1i_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
 Generates complex GPS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.
void beidou_b3i_code_gen_int (own::span< int > dest, int32_t prn, uint32_t chip_shift)
 Generates int BeiDou B3I code for the desired SV ID and code shift.
void beidou_b3i_code_gen_float (own::span< float > dest, int32_t prn, uint32_t chip_shift)
 Generates float BeiDou B3I code for the desired SV ID and code shift.
void beidou_b3i_code_gen_complex (own::span< std::complex< float > > dest, int32_t prn, uint32_t chip_shift)
 Generates complex BeiDou B3I code for the desired SV ID and code shift.
void beidou_b3i_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int sampling_freq, uint32_t chip_shift)
 Generates complex BeiDou B3I code for the desired SV ID and code shift, and sampled to specific sampling frequency.
byte_x2_to_complex_byte_sptr make_byte_x2_to_complex_byte ()
complex_byte_to_float_x2_sptr make_complex_byte_to_float_x2 ()
complex_float_to_complex_byte_sptr make_complex_float_to_complex_byte ()
conjugate_cc_sptr make_conjugate_cc ()
conjugate_ic_sptr make_conjugate_ic ()
conjugate_sc_sptr make_conjugate_sc ()
cshort_to_float_x2_sptr make_cshort_to_float_x2 ()
void galileo_e1_code_gen_sinboc11_float (own::span< float > dest, const std::array< char, 3 > &signal_id, uint32_t prn)
 This function generates Galileo E1 code (can select E1B or E1C sinboc).
void galileo_e1_code_gen_float_sampled (own::span< float > dest, const std::array< char, 3 > &signal_id, bool cboc, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift, bool secondary_flag)
 This function generates Galileo E1 code (can select E1B or E1C, cboc or sinboc and the sample frequency sampling_freq).
void galileo_e1_code_gen_float_sampled (own::span< float > dest, const std::array< char, 3 > &signal_id, bool cboc, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
 This function generates Galileo E1 code (can select E1B or E1C, cboc or sinboc and the sample frequency sampling_freq).
void galileo_e1_code_gen_complex_sampled (own::span< std::complex< float > > dest, const std::array< char, 3 > &signal_id, bool cboc, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift, bool secondary_flag)
 This function generates Galileo E1 code (can select E1B or E1C, cboc or sinboc and the sample frequency sampling_freq).
void galileo_e1_code_gen_complex_sampled (own::span< std::complex< float > > dest, const std::array< char, 3 > &signal_id, bool cboc, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
 galileo_e1_code_gen_complex_sampled without secondary_flag for backward compatibility.
void galileo_e5_a_code_gen_complex_primary (own::span< std::complex< float > > dest, int32_t prn, const std::array< char, 3 > &signal_id)
 Generates Galileo E5a code at 1 sample/chip.
void galileo_e5_a_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, const std::array< char, 3 > &signal_id, int32_t sampling_freq, uint32_t chip_shift)
 Generates Galileo E5a complex code, shifted to the desired chip and sampled at a frequency sampling_freq.
void galileo_e5_b_code_gen_complex_primary (own::span< std::complex< float > > dest, int32_t prn, const std::array< char, 3 > &signal_id)
 Generates Galileo E5b code at 1 sample/chip.
void galileo_e5_b_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, const std::array< char, 3 > &signal_id, int32_t sampling_freq, uint32_t chip_shift)
 Generates Galileo E5b complex code, shifted to the desired chip and sampled at a frequency sampling_freq.
void galileo_e6_b_code_gen_complex_primary (own::span< std::complex< float > > dest, int32_t prn)
 Generates Galileo E6B code at 1 sample/chip.
void galileo_e6_b_code_gen_float_primary (own::span< float > dest, int32_t prn)
 Generates Galileo E6B code at 1 sample/chip.
void galileo_e6_b_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
 Generates Galileo E6B complex code, shifted to the desired chip and sampled at a frequency sampling_freq.
void galileo_e6_c_code_gen_complex_primary (own::span< std::complex< float > > dest, int32_t prn)
 Generates Galileo E6C codes at 1 sample/chip.
void galileo_e6_c_code_gen_float_primary (own::span< float > dest, int32_t prn)
 Generates Galileo E6C codes at 1 sample/chip.
void galileo_e6_c_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
 Generates Galileo E6C complex codes, shifted to the desired chip and sampled at a frequency sampling_freq.
void galileo_e6_c_secondary_code_gen_complex (own::span< std::complex< float > > dest, int32_t prn)
 Generates Galileo E6C secondary codes at 1 sample/chip.
void galileo_e6_c_secondary_code_gen_float (own::span< float > dest, int32_t prn)
 Generates Galileo E6C secondary codes at 1 sample/chip.
std::string galileo_e6_c_secondary_code (int32_t prn)
 Generates a string with Galileo E6C secondary codes at 1 sample/chip.
arma::mat Skew_symmetric (const arma::vec &a)
 Calculates skew-symmetric matrix.
double WGS84_g0 (double Lat_rad)
double WGS84_geocentric_radius (double Lat_geodetic_rad)
int topocent (double *Az, double *El, double *D, const arma::vec &x, const arma::vec &dx)
 Transformation of vector dx into topocentric coordinate system with origin at x Inputs: x - vector origin coordinates (in ECEF system [X; Y; Z;]) dx - vector ([dX; dY; dZ;]).
int togeod (double *dphi, double *dlambda, double *h, double a, double finv, double X, double Y, double Z)
 Subroutine to calculate geodetic coordinates latitude, longitude, height given Cartesian coordinates X,Y,Z, and reference ellipsoid values semi-major axis (a) and the inverse of flattening (finv).
arma::vec Gravity_ECEF (const arma::vec &r_eb_e)
 Calculates acceleration due to gravity resolved about ECEF-frame.
arma::vec cart2geo (const arma::vec &XYZ, int elipsoid_selection)
 Conversion of Cartesian coordinates (X,Y,Z) to geographical coordinates (latitude, longitude, h) on a selected reference ellipsoid.
arma::vec LLH_to_deg (const arma::vec &LLH)
double degtorad (double angleInDegrees)
double radtodeg (double angleInRadians)
double mstoknotsh (double MetersPerSeconds)
double mstokph (double MetersPerSeconds)
arma::vec CTM_to_Euler (const arma::mat &C)
arma::mat Euler_to_CTM (const arma::vec &eul)
void ECEF_to_Geo (const arma::vec &r_eb_e, const arma::vec &v_eb_e, const arma::mat &C_b_e, arma::vec &LLH, arma::vec &v_eb_n, arma::mat &C_b_n)
void Geo_to_ECEF (const arma::vec &LLH, const arma::vec &v_eb_n, const arma::mat &C_b_n, arma::vec &r_eb_e, arma::vec &v_eb_e, arma::mat &C_b_e)
 From Geographic to ECEF coordinates.
void pv_Geo_to_ECEF (double L_b, double lambda_b, double h_b, const arma::vec &v_eb_n, arma::vec &r_eb_e, arma::vec &v_eb_e)
 Converts curvilinear to Cartesian position and velocity resolving axes from NED to ECEF This function created 11/4/2012 by Paul Groves.
double great_circle_distance (double lat1, double lon1, double lat2, double lon2)
 The Haversine formula determines the great-circle distance between two points on a sphere given their longitudes and latitudes.
void cart2utm (const arma::vec &r_eb_e, int zone, arma::vec &r_enu)
 Transformation of ECEF (X,Y,Z) to (E,N,U) in UTM, zone 'zone'.
int findUtmZone (double latitude_deg, double longitude_deg)
 Function finds the UTM zone number for given longitude and latitude.
double clsin (const arma::colvec &ar, int degree, double argument)
 Clenshaw summation of sinus of argument.
void clksin (const arma::colvec &ar, int degree, double arg_real, double arg_imag, double *re, double *im)
 Clenshaw summation of sinus with complex argument.
void glonass_l1_ca_code_gen_complex (own::span< std::complex< float > > dest, uint32_t chip_shift)
 Generates complex GLONASS L1 C/A code for the desired SV ID and code shift.
void glonass_l1_ca_code_gen_float (own::span< float > dest, uint32_t chip_shift)
 Generates float GLONASS L1 C/A code for the desired SV ID and code shift.
void glonass_l1_ca_code_gen_complex_sampled (own::span< std::complex< float > > dest, int32_t sampling_freq, uint32_t chip_shift)
 Generates complex GLONASS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.
void glonass_l2_ca_code_gen_complex (own::span< std::complex< float > > dest, uint32_t chip_shift)
 Generates complex GLONASS L2 C/A code for the desired SV ID and code shift.
void glonass_l2_ca_code_gen_float (own::span< float > dest, uint32_t chip_shift)
 Generates float GLONASS L2 C/A code for the desired SV ID and code shift.
void glonass_l2_ca_code_gen_complex_sampled (own::span< std::complex< float > > dest, int32_t sampling_freq, uint32_t chip_shift)
 Generates complex GLONASS L2 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.
bool gnss_sdr_create_directory (const std::string &foldername)
void complex_exp_gen (own::span< std::complex< float > > dest, double freq, double sampling_freq)
 This function generates a complex exponential in dest.
void complex_exp_gen_conj (own::span< std::complex< float > > dest, double freq, double sampling_freq)
 This function generates a conjugate complex exponential in dest.
void hex_to_binary_converter (own::span< int32_t > dest, char from)
 This function makes a conversion from hex (the input is a char) to binary (the output are 4 ints with +1 or -1 values).
std::string hex_to_binary_string (char from)
 This function makes a conversion from hex (the input is a char) to binary (the output is a string of 4 char with 0 or 1 values).
void resampler (const own::span< float > from, own::span< float > dest, float fs_in, float fs_out)
 This function resamples a sequence of float values.
void resampler (own::span< const std::complex< float > > from, own::span< std::complex< float > > dest, float fs_in, float fs_out)
 This function resamples a sequence of complex values.
void gps_l2c_m_code_gen_complex (own::span< std::complex< float > > dest, uint32_t prn)
 Generates complex GPS L2C M code for the desired SV ID.
void gps_l2c_m_code_gen_float (own::span< float > dest, uint32_t prn)
 Generates float GPS L2C M code for the desired SV ID.
void gps_l2c_m_code_gen_float_cl_zeroed (own::span< float > dest, uint32_t prn)
 Generates float GPS L2C M code with double chip rate and L component zeroed for the desired SV ID.
void gps_l2c_m_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq)
 Generates complex GPS L2C M code for the desired SV ID, and sampled to specific sampling frequency.
void gps_l2c_m_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq, bool cl_zeroed)
 Generates complex GPS L2C M code for the desired SV ID, and sampled to specific sampling frequency, optionally zeroing CL slots.
void gps_l5i_code_gen_complex (own::span< std::complex< float > > dest, uint32_t prn)
 Generates complex GPS L5I code for the desired SV ID.
void gps_l5i_code_gen_float (own::span< float > dest, uint32_t prn)
 Generates real GPS L5I code for the desired SV ID.
void gps_l5q_code_gen_complex (own::span< std::complex< float > > dest, uint32_t prn)
 Generates complex GPS L5Q code for the desired SV ID.
void gps_l5q_code_gen_float (own::span< float > dest, uint32_t prn)
 Generates real GPS L5Q code for the desired SV ID.
void gps_l5i_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq)
 Generates complex GPS L5I code for the desired SV ID, and sampled to specific sampling frequency.
void gps_l5q_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq)
 Generates complex GPS L5Q code for the desired SV ID, and sampled to specific sampling frequency.
void gps_l1_ca_code_gen_int (own::span< int32_t > dest, int32_t prn, uint32_t chip_shift)
 Generates int GPS L1 C/A code for the desired SV ID and code shift.
void gps_l1_ca_code_gen_float (own::span< float > dest, int32_t prn, uint32_t chip_shift)
 Generates float GPS L1 C/A code for the desired SV ID and code shift.
void gps_l1_ca_code_gen_complex (own::span< std::complex< float > > dest, int32_t prn, uint32_t chip_shift)
 Generates complex GPS L1 C/A code for the desired SV ID and code shift.
void gps_l1_ca_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq, uint32_t chip_shift)
 Generates complex GPS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.
bool item_type_valid (const std::string &item_type)
 Check if a string is a valid item type.
size_t item_type_size (const std::string &item_type)
 Return the size of the given item type, or zero if unknown.
bool item_type_is_complex (const std::string &item_type)
 Determine if an item_type is complex.
item_type_converter_t make_vector_converter (const std::string &input_type, const std::string &output_type)
 Create a function to convert an array of input_type to an array of output_type.
void qzss_l1_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq)
 Generates complex QZSS L1 C/A code for the desired SV ID, and sampled to specific sampling frequency.
void qzss_l1_code_gen_float (own::span< float > dest, uint32_t prn)
 Generates real QZSS L1 C/A code for the desired SV ID.
void qzss_l5i_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq)
 Generates complex QZSS L5I code for the desired SV ID, and sampled to specific sampling frequency.
void qzss_l5i_code_gen_float (own::span< float > dest, uint32_t prn)
 Generates real QZSS L5I code for the desired SV ID.
void qzss_l5q_code_gen_complex_sampled (own::span< std::complex< float > > dest, uint32_t prn, int32_t sampling_freq)
 Generates complex QZSS L5Q code for the desired SV ID, and sampled to specific sampling frequency.
void qzss_l5q_code_gen_float (own::span< float > dest, uint32_t prn)
 Generates real QZSS L5I code for the desired SV ID.
std::vector< gr::tag_t > resample_sensor_data_tags (const std::vector< gr::tag_t > &tags, double freq_in, double freq_out)
 Updates timestamp within sensor data tags. To be used in resampler blocks.
short_x2_to_cshort_sptr make_short_x2_to_cshort ()
 Gnss_circular_deque< T >::Gnss_circular_deque ()
 Default constructor.
 Gnss_circular_deque< T >::Gnss_circular_deque (unsigned int max_size, unsigned int nchann)
 nchann = number of channels; max_size = channel capacity
unsigned int Gnss_circular_deque< T >::size (unsigned int ch) const
 Returns the number of available elements in a channel.
T & Gnss_circular_deque< T >::back (unsigned int ch)
 Returns a reference to the last element in the deque.
T & Gnss_circular_deque< T >::front (unsigned int ch)
 Returns a reference to the first element in the deque.
T & Gnss_circular_deque< T >::at (unsigned int ch, unsigned int pos)
 Returns a reference to an element with bound checking.
const T & Gnss_circular_deque< T >::get (unsigned int ch, unsigned int pos) const
 Returns a const reference to an element without bound checking.
void Gnss_circular_deque< T >::clear (unsigned int ch)
 Removes all the elements of the deque (Sets size to 0). Capacity is not modified.
void Gnss_circular_deque< T >::reset (unsigned int max_size, unsigned int nchann)
 Removes all the elements in all the channels. Re-sets the number of channels and their capacity.
void Gnss_circular_deque< T >::reset ()
 Removes all the channels (Sets nchann to 0).
void Gnss_circular_deque< T >::pop_front (unsigned int ch)
 Removes the first element of the deque.
void Gnss_circular_deque< T >::push_back (unsigned int ch, const T &new_data)
 Inserts an element at the end of the deque.

Detailed Description

Common utilities for GNSS algorithms.

Typedef Documentation

◆ byte_x2_to_complex_byte_sptr

using byte_x2_to_complex_byte_sptr = gnss_shared_ptr<byte_x2_to_complex_byte>

Definition at line 33 of file byte_x2_to_complex_byte.h.

◆ complex_byte_to_float_x2_sptr

using complex_byte_to_float_x2_sptr = gnss_shared_ptr<complex_byte_to_float_x2>

Definition at line 33 of file complex_byte_to_float_x2.h.

◆ complex_float_to_complex_byte_sptr

using complex_float_to_complex_byte_sptr = gnss_shared_ptr<complex_float_to_complex_byte>

Definition at line 33 of file complex_float_to_complex_byte.h.

◆ conjugate_cc_sptr

using conjugate_cc_sptr = gnss_shared_ptr<conjugate_cc>

Definition at line 33 of file conjugate_cc.h.

◆ conjugate_ic_sptr

using conjugate_ic_sptr = gnss_shared_ptr<conjugate_ic>

Definition at line 33 of file conjugate_ic.h.

◆ conjugate_sc_sptr

using conjugate_sc_sptr = gnss_shared_ptr<conjugate_sc>

Definition at line 33 of file conjugate_sc.h.

◆ cshort_to_float_x2_sptr

using cshort_to_float_x2_sptr = gnss_shared_ptr<cshort_to_float_x2>

Definition at line 33 of file cshort_to_float_x2.h.

◆ item_type_converter_t

using item_type_converter_t = std::function<void(void *, const void *, uint32_t)>

Definition at line 34 of file item_type_helpers.h.

◆ short_x2_to_cshort_sptr

using short_x2_to_cshort_sptr = gnss_shared_ptr<short_x2_to_cshort>

Definition at line 33 of file short_x2_to_cshort.h.

Function Documentation

◆ at()

template<class T>
T & Gnss_circular_deque< T >::at ( unsigned int ch,
unsigned int pos )

Returns a reference to an element with bound checking.

Definition at line 88 of file gnss_circular_deque.h.

◆ back()

template<class T>
T & Gnss_circular_deque< T >::back ( unsigned int ch)

Returns a reference to the last element in the deque.

Definition at line 74 of file gnss_circular_deque.h.

◆ beidou_b1i_code_gen_complex()

void beidou_b1i_code_gen_complex ( own::span< std::complex< float > > dest,
int32_t prn,
uint32_t chip_shift )

Generates complex GPS L1 C/A code for the desired SV ID and code shift.

◆ beidou_b1i_code_gen_complex_sampled()

void beidou_b1i_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift )

Generates complex GPS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.

◆ beidou_b1i_code_gen_float()

void beidou_b1i_code_gen_float ( own::span< float > dest,
int32_t prn,
uint32_t chip_shift )

Generates float GPS L1 C/A code for the desired SV ID and code shift.

◆ beidou_b1i_code_gen_int()

void beidou_b1i_code_gen_int ( own::span< int32_t > dest,
int32_t prn,
uint32_t chip_shift )

Generates int32_t GPS L1 C/A code for the desired SV ID and code shift.

◆ beidou_b3i_code_gen_complex()

void beidou_b3i_code_gen_complex ( own::span< std::complex< float > > dest,
int32_t prn,
uint32_t chip_shift )

Generates complex BeiDou B3I code for the desired SV ID and code shift.

◆ beidou_b3i_code_gen_complex_sampled()

void beidou_b3i_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int sampling_freq,
uint32_t chip_shift )

Generates complex BeiDou B3I code for the desired SV ID and code shift, and sampled to specific sampling frequency.

◆ beidou_b3i_code_gen_float()

void beidou_b3i_code_gen_float ( own::span< float > dest,
int32_t prn,
uint32_t chip_shift )

Generates float BeiDou B3I code for the desired SV ID and code shift.

◆ beidou_b3i_code_gen_int()

void beidou_b3i_code_gen_int ( own::span< int > dest,
int32_t prn,
uint32_t chip_shift )

Generates int BeiDou B3I code for the desired SV ID and code shift.

◆ cart2geo()

arma::vec cart2geo ( const arma::vec & XYZ,
int elipsoid_selection )

Conversion of Cartesian coordinates (X,Y,Z) to geographical coordinates (latitude, longitude, h) on a selected reference ellipsoid.

Choices of Reference Ellipsoid for Geographical Coordinates

  1. International Ellipsoid 1924
  2. International Ellipsoid 1967
  3. World Geodetic System 1972
  4. Geodetic Reference System 1980
  5. World Geodetic System 1984

◆ cart2utm()

void cart2utm ( const arma::vec & r_eb_e,
int zone,
arma::vec & r_enu )

Transformation of ECEF (X,Y,Z) to (E,N,U) in UTM, zone 'zone'.

◆ clear()

template<class T>
void Gnss_circular_deque< T >::clear ( unsigned int ch)

Removes all the elements of the deque (Sets size to 0). Capacity is not modified.

Definition at line 102 of file gnss_circular_deque.h.

◆ clksin()

void clksin ( const arma::colvec & ar,
int degree,
double arg_real,
double arg_imag,
double * re,
double * im )

Clenshaw summation of sinus with complex argument.

◆ clsin()

double clsin ( const arma::colvec & ar,
int degree,
double argument )

Clenshaw summation of sinus of argument.

◆ complex_exp_gen()

void complex_exp_gen ( own::span< std::complex< float > > dest,
double freq,
double sampling_freq )

This function generates a complex exponential in dest.

◆ complex_exp_gen_conj()

void complex_exp_gen_conj ( own::span< std::complex< float > > dest,
double freq,
double sampling_freq )

This function generates a conjugate complex exponential in dest.

◆ findUtmZone()

int findUtmZone ( double latitude_deg,
double longitude_deg )

Function finds the UTM zone number for given longitude and latitude.

◆ front()

template<class T>
T & Gnss_circular_deque< T >::front ( unsigned int ch)

Returns a reference to the first element in the deque.

Definition at line 81 of file gnss_circular_deque.h.

◆ galileo_e1_code_gen_complex_sampled() [1/2]

void galileo_e1_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
const std::array< char, 3 > & signal_id,
bool cboc,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift )

galileo_e1_code_gen_complex_sampled without secondary_flag for backward compatibility.

◆ galileo_e1_code_gen_complex_sampled() [2/2]

void galileo_e1_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
const std::array< char, 3 > & signal_id,
bool cboc,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift,
bool secondary_flag )

This function generates Galileo E1 code (can select E1B or E1C, cboc or sinboc and the sample frequency sampling_freq).

◆ galileo_e1_code_gen_float_sampled() [1/2]

void galileo_e1_code_gen_float_sampled ( own::span< float > dest,
const std::array< char, 3 > & signal_id,
bool cboc,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift )

This function generates Galileo E1 code (can select E1B or E1C, cboc or sinboc and the sample frequency sampling_freq).

◆ galileo_e1_code_gen_float_sampled() [2/2]

void galileo_e1_code_gen_float_sampled ( own::span< float > dest,
const std::array< char, 3 > & signal_id,
bool cboc,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift,
bool secondary_flag )

This function generates Galileo E1 code (can select E1B or E1C, cboc or sinboc and the sample frequency sampling_freq).

◆ galileo_e1_code_gen_sinboc11_float()

void galileo_e1_code_gen_sinboc11_float ( own::span< float > dest,
const std::array< char, 3 > & signal_id,
uint32_t prn )

This function generates Galileo E1 code (can select E1B or E1C sinboc).

◆ galileo_e5_a_code_gen_complex_primary()

void galileo_e5_a_code_gen_complex_primary ( own::span< std::complex< float > > dest,
int32_t prn,
const std::array< char, 3 > & signal_id )

Generates Galileo E5a code at 1 sample/chip.

◆ galileo_e5_a_code_gen_complex_sampled()

void galileo_e5_a_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
const std::array< char, 3 > & signal_id,
int32_t sampling_freq,
uint32_t chip_shift )

Generates Galileo E5a complex code, shifted to the desired chip and sampled at a frequency sampling_freq.

◆ galileo_e5_b_code_gen_complex_primary()

void galileo_e5_b_code_gen_complex_primary ( own::span< std::complex< float > > dest,
int32_t prn,
const std::array< char, 3 > & signal_id )

Generates Galileo E5b code at 1 sample/chip.

◆ galileo_e5_b_code_gen_complex_sampled()

void galileo_e5_b_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
const std::array< char, 3 > & signal_id,
int32_t sampling_freq,
uint32_t chip_shift )

Generates Galileo E5b complex code, shifted to the desired chip and sampled at a frequency sampling_freq.

◆ galileo_e6_b_code_gen_complex_primary()

void galileo_e6_b_code_gen_complex_primary ( own::span< std::complex< float > > dest,
int32_t prn )

Generates Galileo E6B code at 1 sample/chip.

◆ galileo_e6_b_code_gen_complex_sampled()

void galileo_e6_b_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift )

Generates Galileo E6B complex code, shifted to the desired chip and sampled at a frequency sampling_freq.

◆ galileo_e6_b_code_gen_float_primary()

void galileo_e6_b_code_gen_float_primary ( own::span< float > dest,
int32_t prn )

Generates Galileo E6B code at 1 sample/chip.

◆ galileo_e6_c_code_gen_complex_primary()

void galileo_e6_c_code_gen_complex_primary ( own::span< std::complex< float > > dest,
int32_t prn )

Generates Galileo E6C codes at 1 sample/chip.

◆ galileo_e6_c_code_gen_complex_sampled()

void galileo_e6_c_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift )

Generates Galileo E6C complex codes, shifted to the desired chip and sampled at a frequency sampling_freq.

◆ galileo_e6_c_code_gen_float_primary()

void galileo_e6_c_code_gen_float_primary ( own::span< float > dest,
int32_t prn )

Generates Galileo E6C codes at 1 sample/chip.

◆ galileo_e6_c_secondary_code()

std::string galileo_e6_c_secondary_code ( int32_t prn)

Generates a string with Galileo E6C secondary codes at 1 sample/chip.

◆ galileo_e6_c_secondary_code_gen_complex()

void galileo_e6_c_secondary_code_gen_complex ( own::span< std::complex< float > > dest,
int32_t prn )

Generates Galileo E6C secondary codes at 1 sample/chip.

◆ galileo_e6_c_secondary_code_gen_float()

void galileo_e6_c_secondary_code_gen_float ( own::span< float > dest,
int32_t prn )

Generates Galileo E6C secondary codes at 1 sample/chip.

◆ Geo_to_ECEF()

void Geo_to_ECEF ( const arma::vec & LLH,
const arma::vec & v_eb_n,
const arma::mat & C_b_n,
arma::vec & r_eb_e,
arma::vec & v_eb_e,
arma::mat & C_b_e )

From Geographic to ECEF coordinates.

Inputs: LLH latitude (rad), longitude (rad), height (m) v_eb_n velocity of body frame w.r.t. ECEF frame, resolved along north, east, and down (m/s) C_b_n body-to-NED coordinate transformation matrix

Outputs: r_eb_e Cartesian position of body frame w.r.t. ECEF frame, resolved along ECEF-frame axes (m) v_eb_e velocity of body frame w.r.t. ECEF frame, resolved along ECEF-frame axes (m/s) C_b_e body-to-ECEF-frame coordinate transformation matrix

◆ get()

template<class T>
const T & Gnss_circular_deque< T >::get ( unsigned int ch,
unsigned int pos ) const

Returns a const reference to an element without bound checking.

Definition at line 95 of file gnss_circular_deque.h.

◆ glonass_l1_ca_code_gen_complex()

void glonass_l1_ca_code_gen_complex ( own::span< std::complex< float > > dest,
uint32_t chip_shift )

Generates complex GLONASS L1 C/A code for the desired SV ID and code shift.

◆ glonass_l1_ca_code_gen_complex_sampled()

void glonass_l1_ca_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
int32_t sampling_freq,
uint32_t chip_shift )

Generates complex GLONASS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.

◆ glonass_l1_ca_code_gen_float()

void glonass_l1_ca_code_gen_float ( own::span< float > dest,
uint32_t chip_shift )

Generates float GLONASS L1 C/A code for the desired SV ID and code shift.

◆ glonass_l2_ca_code_gen_complex()

void glonass_l2_ca_code_gen_complex ( own::span< std::complex< float > > dest,
uint32_t chip_shift )

Generates complex GLONASS L2 C/A code for the desired SV ID and code shift.

◆ glonass_l2_ca_code_gen_complex_sampled()

void glonass_l2_ca_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
int32_t sampling_freq,
uint32_t chip_shift )

Generates complex GLONASS L2 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.

◆ glonass_l2_ca_code_gen_float()

void glonass_l2_ca_code_gen_float ( own::span< float > dest,
uint32_t chip_shift )

Generates float GLONASS L2 C/A code for the desired SV ID and code shift.

◆ Gnss_circular_deque() [1/2]

template<class T>
Gnss_circular_deque< T >::Gnss_circular_deque ( )

Default constructor.

Definition at line 53 of file gnss_circular_deque.h.

References reset().

◆ Gnss_circular_deque() [2/2]

template<class T>
Gnss_circular_deque< T >::Gnss_circular_deque ( unsigned int max_size,
unsigned int nchann )

nchann = number of channels; max_size = channel capacity

Definition at line 60 of file gnss_circular_deque.h.

References reset().

◆ gps_l1_ca_code_gen_complex()

void gps_l1_ca_code_gen_complex ( own::span< std::complex< float > > dest,
int32_t prn,
uint32_t chip_shift )

Generates complex GPS L1 C/A code for the desired SV ID and code shift.

◆ gps_l1_ca_code_gen_complex_sampled()

void gps_l1_ca_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq,
uint32_t chip_shift )

Generates complex GPS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency.

◆ gps_l1_ca_code_gen_float()

void gps_l1_ca_code_gen_float ( own::span< float > dest,
int32_t prn,
uint32_t chip_shift )

Generates float GPS L1 C/A code for the desired SV ID and code shift.

◆ gps_l1_ca_code_gen_int()

void gps_l1_ca_code_gen_int ( own::span< int32_t > dest,
int32_t prn,
uint32_t chip_shift )

Generates int GPS L1 C/A code for the desired SV ID and code shift.

◆ gps_l2c_m_code_gen_complex()

void gps_l2c_m_code_gen_complex ( own::span< std::complex< float > > dest,
uint32_t prn )

Generates complex GPS L2C M code for the desired SV ID.

◆ gps_l2c_m_code_gen_complex_sampled() [1/2]

void gps_l2c_m_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq )

Generates complex GPS L2C M code for the desired SV ID, and sampled to specific sampling frequency.

◆ gps_l2c_m_code_gen_complex_sampled() [2/2]

void gps_l2c_m_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq,
bool cl_zeroed )

Generates complex GPS L2C M code for the desired SV ID, and sampled to specific sampling frequency, optionally zeroing CL slots.

◆ gps_l2c_m_code_gen_float()

void gps_l2c_m_code_gen_float ( own::span< float > dest,
uint32_t prn )

Generates float GPS L2C M code for the desired SV ID.

◆ gps_l2c_m_code_gen_float_cl_zeroed()

void gps_l2c_m_code_gen_float_cl_zeroed ( own::span< float > dest,
uint32_t prn )

Generates float GPS L2C M code with double chip rate and L component zeroed for the desired SV ID.

◆ gps_l5i_code_gen_complex()

void gps_l5i_code_gen_complex ( own::span< std::complex< float > > dest,
uint32_t prn )

Generates complex GPS L5I code for the desired SV ID.

◆ gps_l5i_code_gen_complex_sampled()

void gps_l5i_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq )

Generates complex GPS L5I code for the desired SV ID, and sampled to specific sampling frequency.

◆ gps_l5i_code_gen_float()

void gps_l5i_code_gen_float ( own::span< float > dest,
uint32_t prn )

Generates real GPS L5I code for the desired SV ID.

◆ gps_l5q_code_gen_complex()

void gps_l5q_code_gen_complex ( own::span< std::complex< float > > dest,
uint32_t prn )

Generates complex GPS L5Q code for the desired SV ID.

◆ gps_l5q_code_gen_complex_sampled()

void gps_l5q_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq )

Generates complex GPS L5Q code for the desired SV ID, and sampled to specific sampling frequency.

◆ gps_l5q_code_gen_float()

void gps_l5q_code_gen_float ( own::span< float > dest,
uint32_t prn )

Generates real GPS L5Q code for the desired SV ID.

◆ Gravity_ECEF()

arma::vec Gravity_ECEF ( const arma::vec & r_eb_e)

Calculates acceleration due to gravity resolved about ECEF-frame.

◆ great_circle_distance()

double great_circle_distance ( double lat1,
double lon1,
double lat2,
double lon2 )

The Haversine formula determines the great-circle distance between two points on a sphere given their longitudes and latitudes.

◆ hex_to_binary_converter()

void hex_to_binary_converter ( own::span< int32_t > dest,
char from )

This function makes a conversion from hex (the input is a char) to binary (the output are 4 ints with +1 or -1 values).

◆ hex_to_binary_string()

std::string hex_to_binary_string ( char from)

This function makes a conversion from hex (the input is a char) to binary (the output is a string of 4 char with 0 or 1 values).

◆ item_type_is_complex()

bool item_type_is_complex ( const std::string & item_type)

Determine if an item_type is complex.

◆ item_type_size()

size_t item_type_size ( const std::string & item_type)

Return the size of the given item type, or zero if unknown.

◆ item_type_valid()

bool item_type_valid ( const std::string & item_type)

Check if a string is a valid item type.

\description Valid item types include: "byte", "short", "float", "ibyte", "ishort", "cbyte", "cshort", "gr_complex"

◆ make_vector_converter()

item_type_converter_t make_vector_converter ( const std::string & input_type,
const std::string & output_type )

Create a function to convert an array of input_type to an array of output_type.

\description Provides a generic interface to generate conversion functions for mapping arrays of items.

Parameters
input_type- String representation of the input item type
output_type- String representation of the output item type

The item types accepted are:

  1. "byte" for 8 bit integers
  2. "cbyte" for complex (interleaved) 8 bit integers
  3. "ibyte" for complex (interleaved) 8 bit integers
  1. "short" for 16 bit integers
  2. "cshort" for complex (interleaved) 16 bit integers
  3. "ishort" for complex (interleaved) 16 bit integers
  4. "float" for 32 bit floating point values
  5. "gr_complex" for complex (interleaved) 32 bit floating point values
Returns
A function object with the following prototype: void convert_fun( void *dest, void *src, int num_items );

◆ pop_front()

template<class T>
void Gnss_circular_deque< T >::pop_front ( unsigned int ch)

Removes the first element of the deque.

Definition at line 130 of file gnss_circular_deque.h.

◆ push_back()

template<class T>
void Gnss_circular_deque< T >::push_back ( unsigned int ch,
const T & new_data )

Inserts an element at the end of the deque.

Definition at line 137 of file gnss_circular_deque.h.

◆ pv_Geo_to_ECEF()

void pv_Geo_to_ECEF ( double L_b,
double lambda_b,
double h_b,
const arma::vec & v_eb_n,
arma::vec & r_eb_e,
arma::vec & v_eb_e )

Converts curvilinear to Cartesian position and velocity resolving axes from NED to ECEF This function created 11/4/2012 by Paul Groves.

Inputs: L_b latitude (rad) lambda_b longitude (rad) h_b height (m) v_eb_n velocity of body frame w.r.t. ECEF frame, resolved along north, east, and down (m/s)

Outputs: r_eb_e Cartesian position of body frame w.r.t. ECEF frame, resolved along ECEF-frame axes (m) v_eb_e velocity of body frame w.r.t. ECEF frame, resolved along ECEF-frame axes (m/s)

◆ qzss_l1_code_gen_complex_sampled()

void qzss_l1_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq )

Generates complex QZSS L1 C/A code for the desired SV ID, and sampled to specific sampling frequency.

◆ qzss_l1_code_gen_float()

void qzss_l1_code_gen_float ( own::span< float > dest,
uint32_t prn )

Generates real QZSS L1 C/A code for the desired SV ID.

◆ qzss_l5i_code_gen_complex_sampled()

void qzss_l5i_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq )

Generates complex QZSS L5I code for the desired SV ID, and sampled to specific sampling frequency.

◆ qzss_l5i_code_gen_float()

void qzss_l5i_code_gen_float ( own::span< float > dest,
uint32_t prn )

Generates real QZSS L5I code for the desired SV ID.

◆ qzss_l5q_code_gen_complex_sampled()

void qzss_l5q_code_gen_complex_sampled ( own::span< std::complex< float > > dest,
uint32_t prn,
int32_t sampling_freq )

Generates complex QZSS L5Q code for the desired SV ID, and sampled to specific sampling frequency.

◆ qzss_l5q_code_gen_float()

void qzss_l5q_code_gen_float ( own::span< float > dest,
uint32_t prn )

Generates real QZSS L5I code for the desired SV ID.

◆ resample_sensor_data_tags()

std::vector< gr::tag_t > resample_sensor_data_tags ( const std::vector< gr::tag_t > & tags,
double freq_in,
double freq_out )

Updates timestamp within sensor data tags. To be used in resampler blocks.

Parameters
tagsStream tags as retrieved by get_tags_in_window or get_tags_in_range.
freq_inInput RF sample rate.
freq_outOutput RF sample rate.
Returns
Stream tags to be added with add_item_tag.

◆ resampler() [1/2]

void resampler ( const own::span< float > from,
own::span< float > dest,
float fs_in,
float fs_out )

This function resamples a sequence of float values.

◆ resampler() [2/2]

void resampler ( own::span< const std::complex< float > > from,
own::span< std::complex< float > > dest,
float fs_in,
float fs_out )

This function resamples a sequence of complex values.

◆ reset() [1/2]

template<class T>
void Gnss_circular_deque< T >::reset ( )

Removes all the channels (Sets nchann to 0).

Definition at line 123 of file gnss_circular_deque.h.

◆ reset() [2/2]

template<class T>
void Gnss_circular_deque< T >::reset ( unsigned int max_size,
unsigned int nchann )

Removes all the elements in all the channels. Re-sets the number of channels and their capacity.

Definition at line 109 of file gnss_circular_deque.h.

Referenced by Gnss_circular_deque(), and Gnss_circular_deque().

◆ size()

template<class T>
unsigned int Gnss_circular_deque< T >::size ( unsigned int ch) const

Returns the number of available elements in a channel.

Definition at line 67 of file gnss_circular_deque.h.

◆ Skew_symmetric()

arma::mat Skew_symmetric ( const arma::vec & a)

Calculates skew-symmetric matrix.

◆ togeod()

int togeod ( double * dphi,
double * dlambda,
double * h,
double a,
double finv,
double X,
double Y,
double Z )

Subroutine to calculate geodetic coordinates latitude, longitude, height given Cartesian coordinates X,Y,Z, and reference ellipsoid values semi-major axis (a) and the inverse of flattening (finv).

The output units of angular quantities will be in decimal degrees (15.5 degrees not 15 deg 30 min). The output units of h will be the same as the units of X,Y,Z,a.

  Inputs:
      a           - semi-major axis of the reference ellipsoid
      finv        - inverse of flattening of the reference ellipsoid
      X,Y,Z       - Cartesian coordinates

  Outputs:
      dphi        - latitude
      dlambda     - longitude
      h           - height above reference ellipsoid

      Based in a Matlab function by Kai Borre

◆ topocent()

int topocent ( double * Az,
double * El,
double * D,
const arma::vec & x,
const arma::vec & dx )

Transformation of vector dx into topocentric coordinate system with origin at x Inputs: x - vector origin coordinates (in ECEF system [X; Y; Z;]) dx - vector ([dX; dY; dZ;]).

Outputs: D - vector length. Units like the input Az - azimuth from north positive clockwise, degrees El - elevation angle, degrees

Based on a Matlab function by Kai Borre