improving documentation

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@335 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
Carles Fernandez 2013-01-28 23:50:09 +00:00
parent b7802d99ef
commit ae1cb212de
24 changed files with 108 additions and 56 deletions

View File

@ -38,6 +38,7 @@ Official GLONASS webpage: <a href="http://www.glonass-ianc.rsa.ru/en/" target="_
\subsection galileo Galileo
Check the <a href="http://ec.europa.eu/enterprise/policies/satnav/galileo/index_en.htm" target="_blank">Galileo website of the European Commission</a> and the
<a href="http://www.esa.int/Our_Activities/Navigation/The_future_-_Galileo/What_is_Galileo" target="_blank">Galileo website of the European Space Agency</a>.
There is a website with <a href="http://igs.org/mgex/Status_GAL.htm" target="_blank">Galileo constellation status information</a> from the International GNSS Service.
\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. <a href="http://ec.europa.eu/enterprise/policies/satnav/galileo/files/galileo-os-sis-icd-issue1-revision1_en.pdf" target="_blank"><b>Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.1</b></a>, European Commission, Sept. 2010.

View File

@ -8,7 +8,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2011 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@ -43,13 +43,11 @@
class ConfigurationInterface;
/*!
* \brief This class implements a PVT interface for GPS L1 C/A
* \brief This class implements a PvtInterface for GPS L1 C/A
*/
class GpsL1CaPvt : public PvtInterface
{
public:
GpsL1CaPvt(ConfigurationInterface* configuration,
std::string role,
unsigned int in_streams,
@ -62,6 +60,8 @@ public:
{
return role_;
}
//! return "GPS_L1_CA_PVT"
std::string implementation()
{
return "GPS_L1_CA_PVT";
@ -75,15 +75,15 @@ public:
void reset()
{
return;
};
// all blocks must have an intem_size() function implementation
}
//! All blocks must have an item_size() function implementation
size_t item_size()
{
return sizeof(gr_complex);
}
private:
gps_l1_ca_pvt_cc_sptr pvt_;
bool dump_;
unsigned int fs_in_;

View File

@ -122,8 +122,8 @@ galileo_e1_gen(std::complex<float>* _dest, int* _prn, char _Signal[3])
const float alpha = sqrt(10.0 / 11.0);
const float beta = sqrt(1.0 / 11.0);
std::complex<float> sinboc_11[_codeLength];
std::complex<float> sinboc_61[_codeLength];
std::complex<float> sinboc_11[49152]; // 12*4096 (_codeLength not accepted by Clang )
std::complex<float> sinboc_61[49152];
galileo_e1_sinboc_11_gen(sinboc_11, _prn, _codeLength); //generate sinboc(1,1) 12 samples per chip
galileo_e1_sinboc_61_gen(sinboc_61, _prn, _codeLength); //generate sinboc(6,1) 12 samples per chip
@ -156,7 +156,7 @@ galileo_e1_code_gen_complex_sampled(std::complex<float>* _dest, char _Signal[3],
unsigned int _samplesPerCode;
const unsigned int _codeFreqBasis = Galileo_E1_CODE_CHIP_RATE_HZ; //Hz
unsigned int _codeLength = Galileo_E1_B_CODE_LENGTH_CHIPS;
int primary_code_E1_chips[_codeLength];
int primary_code_E1_chips[4096];
_samplesPerCode = round(_fs / (_codeFreqBasis / _codeLength));
galileo_e1_code_gen_int(primary_code_E1_chips, _Signal, _prn, 0); //generate Galileo E1 code, 1 sample per chip
@ -166,7 +166,7 @@ galileo_e1_code_gen_complex_sampled(std::complex<float>* _dest, char _Signal[3],
_codeLength = 12 * Galileo_E1_B_CODE_LENGTH_CHIPS;
if (_fs != 12 * _codeFreqBasis)
{
std::complex<float> _signal_E1[_codeLength];
std::complex<float> _signal_E1[4096];
galileo_e1_gen(_signal_E1, primary_code_E1_chips, _Signal); //generate cboc 12 samples per chip
resampler(_signal_E1, _dest, 12 * _codeFreqBasis, _fs,
_codeLength, _samplesPerCode); //resamples code to fs
@ -182,7 +182,7 @@ galileo_e1_code_gen_complex_sampled(std::complex<float>* _dest, char _Signal[3],
_codeLength = 2 * Galileo_E1_B_CODE_LENGTH_CHIPS;
if (_fs != 2 * _codeFreqBasis)
{
std::complex<float> _signal_E1[_codeLength];
std::complex<float> _signal_E1[8192];
galileo_e1_sinboc_11_gen(_signal_E1, primary_code_E1_chips,
_codeLength); //generate sinboc(1,1) 2 samples per chip
resampler(_signal_E1, _dest, 2 * _codeFreqBasis, _fs,

View File

@ -99,7 +99,7 @@ void gps_l1_ca_code_gen_complex(std::complex<float>* _dest, signed int _prn, uns
/*
* code_gen_complex_sampled, generate GPS L1 C/A code complex for the desired SV ID and sampled to specific sampling frequency
* Generates complex GPS L1 C/A code for the desired SV ID and sampled to specific sampling frequency
*/
void gps_l1_ca_code_gen_complex_sampled(std::complex<float>* _dest, unsigned int _prn, signed int _fs, unsigned int _chip_shift)
{

View File

@ -37,8 +37,10 @@
#include <iostream>
#include "GPS_L1_CA.h"
//!Generates complex GPS L1 C/A code for the desired SV ID and code shift, and sampled to specific sampling frequency
void gps_l1_ca_code_gen_complex(std::complex<float>* _dest, signed int _prn, unsigned int _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(std::complex<float>* _dest, unsigned int _prn, signed int _fs, unsigned int _chip_shift);
#endif /* GNSS_SDR_GPS_SDR_SIGNAL_PROCESSING_H_ */

View File

@ -43,7 +43,7 @@
#include <cmath>
/*!
* \brief Implements a conjugate complex exponential vector in std::complex<float> *d_carr_sign
* \brief Implements a complex conjugate exponential vector in std::complex<float> *d_carr_sign
* containing int n_samples, with the starting phase float start_phase_rad and the pase step between vector elements
* float phase_step_rad. This function uses a SSE CORDIC implementation.
*
@ -51,7 +51,7 @@
void sse_nco(std::complex<float> *dest, int n_samples,float start_phase_rad, float phase_step_rad);
/*!
* \brief Implements a conjugate complex exponential vector in std::complex<float> *d_carr_sign
* \brief Implements a complex conjugate exponential vector in std::complex<float> *d_carr_sign
* containing int n_samples, with the starting phase float start_phase_rad and the pase step between vector elements
* float phase_step_rad. This function uses the GNU Radio fixed point CORDIC implementation.
*
@ -59,7 +59,7 @@ void sse_nco(std::complex<float> *dest, int n_samples,float start_phase_rad, flo
void fxp_nco(std::complex<float> *dest, int n_samples,float start_phase_rad, float phase_step_rad);
/*!
* \brief Implements a conjugate complex exponential vector in std::complex<float> *d_carr_sign
* \brief Implements a complex conjugate exponential vector in std::complex<float> *d_carr_sign
* containing int n_samples, with the starting phase float start_phase_rad and the pase step between vector elements
* float phase_step_rad. This function uses the stdlib sin() and cos() implementation.
*
@ -68,7 +68,7 @@ void fxp_nco(std::complex<float> *dest, int n_samples,float start_phase_rad, flo
void std_nco(std::complex<float> *dest, int n_samples,float start_phase_rad, float phase_step_rad);
/*!
* \brief Implements a conjugate complex exponential vector in std::complex<float> *d_carr_sign
* \brief Implements a complex conjugate exponential vector in std::complex<float> *d_carr_sign
* containing int n_samples, with the starting phase float start_phase_rad and the pase step between vector elements
* float phase_step_rad. This function uses the GNU Radio fixed point CORDIC implementation.
*
@ -78,7 +78,7 @@ void fxp_nco_cpyref(std::complex<float> *dest, int n_samples,float start_phase_r
/*!
* \brief Implements a conjugate complex exponential vector in two separated float arrays (In-phase and Quadrature)
* \brief Implements a complex conjugate exponential vector in two separated float arrays (In-phase and Quadrature)
* containing int n_samples, with the starting phase float start_phase_rad and the pase step between vector elements
* float phase_step_rad. This function uses the GNU Radio fixed point CORDIC implementation.
*

View File

@ -40,6 +40,9 @@
class ConfigurationInterface;
/*!
* \brief This class implements a block that connects input and output (does nothing)
*/
class Pass_Through : public GNSSBlockInterface
{
public:
@ -53,6 +56,7 @@ public:
{
return role_;
}
//! returns "Pass_Through"
std::string implementation()
{
return "Pass_Through";

View File

@ -1,3 +1,13 @@
/*!
* \file sse_mathfun.h
* \brief SIMD (SSE1+MMX or SSE2) implementation of sin, cos, exp and log
*
* The default is to use the SSE1 version. If you define USE_SSE2 the
* SSE2 intrinsics will be used in place of the MMX intrinsics. Do
* not expect any significant performance improvement with SSE2.
* Copyright (C) 2007 Julien Pommier
*/
/* SIMD (SSE1+MMX or SSE2) implementation of sin, cos, exp and log
Inspired by Intel Approximate Math library, and based on the

View File

@ -39,6 +39,9 @@
class ConfigurationInterface;
/*!
* \brief This class implements an ObservablesInterface for GPS L1 C/A
*/
class GpsL1CaObservables : public ObservablesInterface
{
public:
@ -52,6 +55,8 @@ public:
{
return role_;
}
//! return "GPS_L1_CA_Observables"
std::string implementation()
{
return "GPS_L1_CA_Observables";
@ -63,8 +68,9 @@ public:
void reset()
{
return;
};
//!< All blocks must have an item_size() function implementation
}
//! All blocks must have an item_size() function implementation
size_t item_size()
{
return sizeof(gr_complex);

View File

@ -38,6 +38,10 @@
class ConfigurationInterface;
/*!
* \brief Interface of an adapter of a direct resampler conditioner block
* to a SignalConditionerInterface
*/
class DirectResamplerConditioner: public GNSSBlockInterface
{
public:
@ -50,6 +54,7 @@ public:
{
return role_;
}
//! returns "Direct_Resampler"
std::string implementation()
{
return "Direct_Resampler";

View File

@ -38,6 +38,9 @@
class ConfigurationInterface;
/*!
* \brief This class reads samples from a GN3S USB dongle, a RF front-end signal sampler
*/
class Gn3sSignalSource: public GNSSBlockInterface
{
public:

View File

@ -1,7 +1,7 @@
/*!
* \file gps_l1_ca_tcp_connector_tracking.h
* \file galileo_e1_tcp_connector_tracking.h
* \brief Interface of an adapter of a TCP connector block based on code DLL + carrier PLL
* for GPS L1 C/A to a TrackingInterface
* for Galileo E1 to a TrackingInterface
* \author David Pubill, 2012. dpubill(at)cttc.es
* Luis Esteve, 2012. luis(at)epsilon-formacion.com
* Javier Arribas, 2011. jarribas(at)cttc.es
@ -9,11 +9,11 @@
* Code DLL + carrier PLL according to the algorithms described in:
* K.Borre, D.M.Akos, N.Bertelsen, P.Rinder, and S.H.Jensen,
* A Software-Defined GPS and Galileo Receiver. A Single-Frequency
* Approach, Birkha user, 2007
* Approach, Birkhauser, 2007
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2012-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@ -65,6 +65,7 @@ public:
{
return role_;
}
//! returns "Galileo_E1_TCP_CONNECTOR_Tracking"
std::string implementation()
{
return "Galileo_E1_TCP_CONNECTOR_Tracking";

View File

@ -1,9 +1,9 @@
/*!
* \file gps_l1_ca_tcp_connector_tracking_cc.h
* \file galileo_e1_tcp_connector_tracking_cc.h
* \brief Interface of a TCP connector block based on code DLL + carrier PLL VEML (Very Early
* Minus Late) tracking block for Galileo E1 signals
* \author David Pubill, 2012. dpubill(at)cttc.es
* Luis Esteve, 2012. luis(at)epsilon-formacion.com
* Luis Esteve, 2012. luis(at)epsilon-formacion.com
* Javier Arribas, 2011. jarribas(at)cttc.es
*
* Code DLL + carrier PLL according to the algorithms described in:
@ -13,7 +13,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver

View File

@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@ -40,17 +40,19 @@
#define NUM_TX_VARIABLES_GPS_L1_CA 9
#define NUM_RX_VARIABLES 4
/*!
* \brief TCP communication class
*/
class tcp_communication
{
public:
tcp_communication();
~tcp_communication();
int listen_tcp_connection(size_t d_port_, size_t d_port_ch0_);
void send_receive_tcp_packet_galileo_e1(boost::array<float, NUM_TX_VARIABLES_GALILEO_E1> buf, tcp_packet_data *tcp_data_);
void send_receive_tcp_packet_gps_l1_ca(boost::array<float, NUM_TX_VARIABLES_GPS_L1_CA> buf, tcp_packet_data *tcp_data_);
void close_tcp_connection(size_t d_port_);
int listen_tcp_connection(size_t d_port_, size_t d_port_ch0_);
void send_receive_tcp_packet_galileo_e1(boost::array<float, NUM_TX_VARIABLES_GALILEO_E1> buf, tcp_packet_data *tcp_data_);
void send_receive_tcp_packet_gps_l1_ca(boost::array<float, NUM_TX_VARIABLES_GPS_L1_CA> buf, tcp_packet_data *tcp_data_);
void close_tcp_connection(size_t d_port_);
private:
boost::asio::io_service io_service_;

View File

@ -1,6 +1,6 @@
/*!
* \file tcp_packet_data.h
* \brief Interface of the TCP packet data class
* \brief Interface of the TCP data packet class
* \author David Pubill, 2011. dpubill(at)cttc.es
*
*
@ -32,6 +32,9 @@
#ifndef GNSS_SDR_TCP_PACKET_DATA_H_
#define GNSS_SDR_TCP_PACKET_DATA_H_
/*!
* \brief Class that implements a TCP data packet
*/
class tcp_packet_data
{
public:

View File

@ -1,5 +1,5 @@
/*!
* \file pseudorange_interface.h
* \file observables_interface.h
* \brief This class represents an interface to an Observables block.
* \author Javier Arribas, 2011. jarribas(at)cttc.es
*
@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver

View File

@ -1,5 +1,5 @@
/*!
* \file navigation_interface.h
* \file telemetry_decoder_interface.h
* \brief This class represents an interface to a telemetry decoder block.
* \author Javier Arribas, 2011. jarribas(at)cttc.es
*
@ -10,7 +10,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver

View File

@ -51,25 +51,24 @@
#include <map>
#include <string>
// Read an INI file into easy-to-access name/value pairs. (Note that I've gone
// for simplicity here rather than speed, but it should be pretty decent.)
/*!
* \brief Read an INI file into easy-to-access name/value pairs. (Note that I've gone
* for simplicity here rather than speed, but it should be pretty decent.)
*/
class INIReader
{
public:
// Construct INIReader and parse given filename. See ini.h for more info
// about the parsing.
//! Construct INIReader and parse given filename. See ini.h for more info about the parsing.
INIReader(std::string filename);
// Return the result of ini_parse(), i.e., 0 on success, line number of
// first error on parse error, or -1 on file open error.
//! Return the result of ini_parse(), i.e., 0 on success, line number of first error on parse error, or -1 on file open error.
int ParseError();
// Get a string value from INI file, returning default_value if not found.
//! Get a string value from INI file, returning default_value if not found.
std::string Get(std::string section, std::string name,
std::string default_value);
// Get an integer (long) value from INI file, returning default_value if
// not found.
//! Get an integer (long) value from INI file, returning default_value if not found.
long GetInteger(std::string section, std::string name, long default_value);
private:

View File

@ -6,7 +6,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@ -35,6 +35,10 @@
#include <string>
/*!
* \brief Class that interprets the contents of a string
* and converts it into different types.
*/
class StringConverter
{
public:

View File

@ -35,6 +35,7 @@
#include <gnuradio/gr_message.h>
//! Message described by who sent it and what it says
typedef struct ControlMessage_
{
unsigned int who;

View File

@ -43,6 +43,9 @@
class ConfigurationInterface;
class GNSSBlockInterface;
/*!
* \brief Class that produces all kinds of GNSS blocks
*/
class GNSSBlockFactory
{
public:

View File

@ -5,7 +5,7 @@
*
* -------------------------------------------------------------------------
*
* Copyright (C) 2010-2012 (see AUTHORS file for a list of contributors)
* Copyright (C) 2010-2013 (see AUTHORS file for a list of contributors)
*
* GNSS-SDR is a software defined Global Navigation
* Satellite Systems receiver
@ -493,6 +493,7 @@ void Gnss_Satellite::set_block(std::string system_, unsigned int PRN_ )
}
if (system_.compare("Galileo") == 0)
{
// Check http://igs.org/mgex/Status_GAL.htm
switch ( PRN_ )
{
case 11 :
@ -501,6 +502,12 @@ void Gnss_Satellite::set_block(std::string system_, unsigned int PRN_ )
case 12 :
block = std::string("IOV"); // Galileo In-Orbit Validation (IOV) satellite FM2 (Flight Model 2) also known as GSAT0102, launched the same day
break;
case 19 :
block = std::string("IOV"); // Galileo In-Orbit Validation (IOV) satellite FM3 (Flight Model 3)
break;
case 20 :
block = std::string("IOV"); // Galileo In-Orbit Validation (IOV) satellite FM4 (Flight Model 4)
break;
default:
block = std::string("Unknown");
}

View File

@ -38,7 +38,7 @@
#include <map>
/*
/*!
* \brief This class represents a GNSS satellite.
*
* It contains information about the space vehicles currently operational

View File

@ -34,7 +34,8 @@
#include "gnss_satellite.h"
#include <string>
/*
/*!
* \brief This class represents a GNSS signal.
*
* It contains information about the space vehicle and the specific signal.
@ -48,10 +49,10 @@ public:
Gnss_Signal();
Gnss_Signal(Gnss_Satellite satellite_, std::string signal_);
~Gnss_Signal();
std::string get_signal() const;
Gnss_Satellite get_satellite() const;
friend bool operator== (const Gnss_Signal &, const Gnss_Signal &); // operator== for comparison
friend std::ostream& operator<<(std::ostream &, const Gnss_Signal &); // operator<< for pretty printing
std::string get_signal() const; //!< Get the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}
Gnss_Satellite get_satellite() const; //!< Get the Gnss_Satellite associated to the signal
friend bool operator== (const Gnss_Signal &, const Gnss_Signal &); //!< operator== for comparison
friend std::ostream& operator<<(std::ostream &, const Gnss_Signal &); //!< operator<< for pretty printing
};
#endif