1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-14 04:00:34 +00:00

Merge branch 'multisignals' of https://github.com/gnss-sdr/gnss-sdr into multisignals

This commit is contained in:
Carles Fernandez 2015-05-07 22:44:04 +02:00
commit 74d437a709
10 changed files with 102 additions and 76 deletions

View File

@ -175,7 +175,21 @@ Channel.system=GPS, Galileo
;#signal: ;#signal:
;#if the option is disabled by default is assigned "1C" GPS L1 C/A ;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel.signal=1B Channel1.signal=1C
Channel2.signal=1C
Channel3.signal=1C
Channel4.signal=1C
Channel5.signal=1C
Channel6.signal=1C
Channel7.signal=1C
Channel8.signal=1B
Channel9.signal=1B
Channel10.signal=1B
Channel11.signal=1B
Channel12.signal=1B
Channel13.signal=1B
Channel14.signal=1B
Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############ ;######### GPS ACQUISITION CONFIG ############

View File

@ -162,7 +162,22 @@ Channel.system=GPS, Galileo
;#signal: ;#signal:
;#if the option is disabled by default is assigned "1C" GPS L1 C/A ;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel.signal=1B Channel0.signal=1C
Channel1.signal=1C
Channel2.signal=1C
Channel3.signal=1C
Channel4.signal=1C
Channel5.signal=1C
Channel6.signal=1C
Channel7.signal=1C
Channel8.signal=1B
Channel9.signal=1B
Channel10.signal=1B
Channel11.signal=1B
Channel12.signal=1B
Channel13.signal=1B
Channel14.signal=1B
Channel15.signal=1B
;######### GPS ACQUISITION CONFIG ############ ;######### GPS ACQUISITION CONFIG ############

View File

@ -175,7 +175,15 @@ Channel.system=GPS, Galileo
;#signal: ;#signal:
;#if the option is disabled by default is assigned "1C" GPS L1 C/A ;#if the option is disabled by default is assigned "1C" GPS L1 C/A
Channel.signal=1B Channel0.signal=1C
Channel1.signal=1C
Channel2.signal=1C
Channel3.signal=1C
Channel4.signal=1B
Channel5.signal=1B
Channel6.signal=1B
Channel7.signal=1B
;######### GPS ACQUISITION CONFIG ############ ;######### GPS ACQUISITION CONFIG ############

View File

@ -58,8 +58,7 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
DLOG(INFO) << "role " << role; DLOG(INFO) << "role " << role;
item_type_ = configuration_->property(role + ".item_type", item_type_ = configuration_->property(role + ".item_type", default_item_type);
default_item_type);
//float pfa = configuration_->property(role + ".pfa", 0.0); //float pfa = configuration_->property(role + ".pfa", 0.0);
fs_in_ = configuration_->property("GNSS-SDR.internal_fs_hz", 2048000); fs_in_ = configuration_->property("GNSS-SDR.internal_fs_hz", 2048000);
@ -79,12 +78,10 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
max_dwells_ = 2; max_dwells_ = 2;
} }
dump_filename_ = configuration_->property(role + ".dump_filename", dump_filename_ = configuration_->property(role + ".dump_filename", default_dump_filename);
default_dump_filename);
//--- Find number of samples per spreading code ------------------------- //--- Find number of samples per spreading code -------------------------
code_length_ = round(fs_in_ code_length_ = round(fs_in_ / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
/ (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
vector_length_ = code_length_ * sampled_ms_; vector_length_ = code_length_ * sampled_ms_;

View File

@ -30,7 +30,7 @@
* ------------------------------------------------------------------------- * -------------------------------------------------------------------------
*/ */
#include "GPS_L2C.h" #include <gps_l2c_signal.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include <cmath> #include <cmath>
@ -44,11 +44,11 @@ int32_t gps_l2c_m_shift(int32_t x)
void gps_l2c_m_code(int32_t * _dest, unsigned int _prn) void gps_l2c_m_code(int32_t * _dest, unsigned int _prn)
{ {
int32_t x; int32_t x;
x= GPS_L2C_M_INIT_REG[_prn-1]; x = GPS_L2C_M_INIT_REG[ _prn - 1];
for (int n=0; n<GPS_L2_M_CODE_LENGTH_CHIPS; n++) for (int n = 0; n < GPS_L2_M_CODE_LENGTH_CHIPS; n++)
{ {
_dest[n]=(int8_t)(x&1); _dest[n] = (int8_t)(x&1);
x= gps_l2c_m_shift(x); x = gps_l2c_m_shift(x);
} }
} }
@ -63,9 +63,9 @@ void gps_l2c_m_code_gen_complex(std::complex<float>* _dest, unsigned int _prn)
gps_l2c_m_code(_code, _prn); gps_l2c_m_code(_code, _prn);
} }
for (signed int i=0; i<GPS_L2_M_CODE_LENGTH_CHIPS; i++) for (signed int i = 0; i < GPS_L2_M_CODE_LENGTH_CHIPS; i++)
{ {
_dest[i] = std::complex<float>(1.0-2.0*_code[i],0); _dest[i] = std::complex<float>(1.0 - 2.0 * _code[i], 0);
} }
} }
@ -77,7 +77,7 @@ void gps_l2c_m_code_gen_complex_sampled(std::complex<float>* _dest, unsigned int
{ {
int32_t _code[GPS_L2_M_CODE_LENGTH_CHIPS]; int32_t _code[GPS_L2_M_CODE_LENGTH_CHIPS];
if (_prn>0 and _prn<51) if (_prn > 0 and _prn < 51)
{ {
gps_l2c_m_code(_code, _prn); gps_l2c_m_code(_code, _prn);
} }
@ -95,7 +95,9 @@ void gps_l2c_m_code_gen_complex_sampled(std::complex<float>* _dest, unsigned int
_ts = 1/(float)_fs; // Sampling period in sec _ts = 1/(float)_fs; // Sampling period in sec
_tc = 1/(float)_codeFreqBasis; // C/A chip period in sec _tc = 1/(float)_codeFreqBasis; // C/A chip period in sec
for (signed int i=0; i<_samplesPerCode; i++) float aux;
for (signed int i = 0; i < _samplesPerCode; i++)
{ {
//=== Digitizing ======================================================= //=== Digitizing =======================================================
@ -105,7 +107,9 @@ void gps_l2c_m_code_gen_complex_sampled(std::complex<float>* _dest, unsigned int
// millisecond). // millisecond).
//TODO: Check this formula! Seems to start with an extra sample //TODO: Check this formula! Seems to start with an extra sample
_codeValueIndex = ceil((_ts * ((float)i + 1)) / _tc) - 1; // _codeValueIndex = ceil((_ts * ((float)i + 1)) / _tc) - 1;
aux = (_ts * (i + 1)) / _tc;
_codeValueIndex = static_cast<int>(static_cast<long>(aux)) - 1;
//--- Make the digitized version of the C/A code ----------------------- //--- Make the digitized version of the C/A code -----------------------
// The "upsampled" code is made by selecting values form the CA code // The "upsampled" code is made by selecting values form the CA code
@ -113,12 +117,12 @@ void gps_l2c_m_code_gen_complex_sampled(std::complex<float>* _dest, unsigned int
if (i == _samplesPerCode - 1) if (i == _samplesPerCode - 1)
{ {
//--- Correct the last index (due to number rounding issues) ----------- //--- Correct the last index (due to number rounding issues) -----------
_dest[i] = std::complex<float>(1.0-2.0*_code[_codeLength - 1],0); _dest[i] = std::complex<float>(1.0 - 2.0 * _code[_codeLength - 1], 0);
} }
else else
{ {
_dest[i] = std::complex<float>(1.0-2.0*_code[_codeValueIndex],0);; //repeat the chip -> upsample _dest[i] = std::complex<float>(1.0 - 2.0 * _code[_codeValueIndex], 0);; //repeat the chip -> upsample
} }
} }
} }

View File

@ -227,7 +227,7 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetObservables(std::shared
{ {
Galileo_channels = configuration->property("Channels_1B.count", 0); Galileo_channels = configuration->property("Channels_1B.count", 0);
} }
Galileo_channels += configuration->property("Channels_5I.count", 0); Galileo_channels += configuration->property("Channels_5X.count", 0);
unsigned int GPS_channels = configuration->property("Channels_GPS.count", 0); // DEPRECATED unsigned int GPS_channels = configuration->property("Channels_GPS.count", 0); // DEPRECATED
if(GPS_channels == 0) if(GPS_channels == 0)
{ {
@ -250,7 +250,7 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetPVT(std::shared_ptr<Con
{ {
Galileo_channels = configuration->property("Channels_1B.count", 0); Galileo_channels = configuration->property("Channels_1B.count", 0);
} }
Galileo_channels += configuration->property("Channels_5I.count", 0); Galileo_channels += configuration->property("Channels_5X.count", 0);
unsigned int GPS_channels = configuration->property("Channels_GPS.count", 0); // DEPRECATED unsigned int GPS_channels = configuration->property("Channels_GPS.count", 0); // DEPRECATED
if(GPS_channels == 0) if(GPS_channels == 0)
{ {
@ -397,7 +397,7 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_1B(
} }
//********* GALILEO E5a CHANNEL ***************** //********* GALILEO E5a CHANNEL *****************
std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_5I( std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_5X(
std::shared_ptr<ConfigurationInterface> configuration, std::shared_ptr<ConfigurationInterface> configuration,
std::string acq, std::string trk, std::string tlm, int channel, std::string acq, std::string trk, std::string tlm, int channel,
boost::shared_ptr<gr::msg_queue> queue) boost::shared_ptr<gr::msg_queue> queue)
@ -409,15 +409,15 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_5I(
<< acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm; << acq << ", Tracking Implementation: " << trk << ", Telemetry Decoder implementation: " << tlm;
std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(configuration, "Channel", "Pass_Through", 1, 1, queue); std::unique_ptr<GNSSBlockInterface> pass_through_ = GetBlock(configuration, "Channel", "Pass_Through", 1, 1, queue);
std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_5I", acq, 1, 1, queue); std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_5X", acq, 1, 1, queue);
std::unique_ptr<TrackingInterface> trk_ = GetTrkBlock(configuration, "Tracking_5I", trk, 1, 1, queue); std::unique_ptr<TrackingInterface> trk_ = GetTrkBlock(configuration, "Tracking_5X", trk, 1, 1, queue);
std::unique_ptr<TelemetryDecoderInterface> tlm_ = GetTlmBlock(configuration, "TelemetryDecoder_5I", tlm, 1, 1, queue); std::unique_ptr<TelemetryDecoderInterface> tlm_ = GetTlmBlock(configuration, "TelemetryDecoder_5X", tlm, 1, 1, queue);
std::unique_ptr<GNSSBlockInterface> channel_(new Channel(configuration.get(), channel, pass_through_.release(), std::unique_ptr<GNSSBlockInterface> channel_(new Channel(configuration.get(), channel, pass_through_.release(),
acq_.release(), acq_.release(),
trk_.release(), trk_.release(),
tlm_.release(), tlm_.release(),
"Channel", "5I", queue)); "Channel", "5X", queue));
return channel_; return channel_;
} }
@ -659,20 +659,20 @@ std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GNSSBlockFacto
//**************** GALILEO E5a I (F/NAV OS) CHANNELS ********************** //**************** GALILEO E5a I (F/NAV OS) CHANNELS **********************
channel_count = configuration->property("Channels_5I.count", 0); channel_count = configuration->property("Channels_5X.count", 0);
LOG(INFO) << "Getting " << channel_count << " GALILEO E5a I (F/NAV OS) channels"; LOG(INFO) << "Getting " << channel_count << " GALILEO E5a I (F/NAV OS) channels";
tracking_implementation = configuration->property("Tracking_5I.implementation", default_implementation); tracking_implementation = configuration->property("Tracking_5X.implementation", default_implementation);
telemetry_decoder_implementation = configuration->property("TelemetryDecoder_5I.implementation", default_implementation); telemetry_decoder_implementation = configuration->property("TelemetryDecoder_5X.implementation", default_implementation);
acquisition_implementation = configuration->property("Acquisition_5I.implementation", default_implementation); acquisition_implementation = configuration->property("Acquisition_5X.implementation", default_implementation);
for (unsigned int i = 0; i < channel_count; i++) for (unsigned int i = 0; i < channel_count; i++)
{ {
// Search for specific implementation of that particular channel in config file // Search for specific implementation of that particular channel in config file
//(i.e. Acquisition_5I0.implementation=xxxx) //(i.e. Acquisition_5X0.implementation=xxxx)
std::string acquisition_implementation_specific = configuration->property( std::string acquisition_implementation_specific = configuration->property(
"Acquisition_5I" + boost::lexical_cast<std::string>(i) + ".implementation", "Acquisition_5X" + boost::lexical_cast<std::string>(i) + ".implementation",
default_implementation); default_implementation);
if(acquisition_implementation_specific.compare(default_implementation) != 0) if(acquisition_implementation_specific.compare(default_implementation) != 0)
@ -680,9 +680,9 @@ std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GNSSBlockFacto
acquisition_implementation = acquisition_implementation_specific; acquisition_implementation = acquisition_implementation_specific;
} }
//(i.e. Tracking_5I0.implementation=xxxx) //(i.e. Tracking_5X0.implementation=xxxx)
std::string tracking_implementation_specific = configuration->property( std::string tracking_implementation_specific = configuration->property(
"Tracking_5I" + boost::lexical_cast<std::string>(i) + ".implementation", "Tracking_5X" + boost::lexical_cast<std::string>(i) + ".implementation",
default_implementation); default_implementation);
if(tracking_implementation_specific.compare(default_implementation) != 0) if(tracking_implementation_specific.compare(default_implementation) != 0)
@ -691,9 +691,9 @@ std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GNSSBlockFacto
} }
//(i.e. TelemetryDecoder_5I0.implementation=xxxx) //(i.e. TelemetryDecoder_5X0.implementation=xxxx)
std::string telemetry_decoder_implementation_specific = configuration->property( std::string telemetry_decoder_implementation_specific = configuration->property(
"TelemetryDecoder_5I" + boost::lexical_cast<std::string>(i) + ".implementation", "TelemetryDecoder_5X" + boost::lexical_cast<std::string>(i) + ".implementation",
default_implementation); default_implementation);
if(telemetry_decoder_implementation_specific.compare(default_implementation) != 0) if(telemetry_decoder_implementation_specific.compare(default_implementation) != 0)

View File

@ -93,7 +93,7 @@ public:
std::string acq, std::string trk, std::string tlm, int channel, std::string acq, std::string trk, std::string tlm, int channel,
boost::shared_ptr<gr::msg_queue> queue); boost::shared_ptr<gr::msg_queue> queue);
std::unique_ptr<GNSSBlockInterface> GetChannel_5I(std::shared_ptr<ConfigurationInterface> configuration, std::unique_ptr<GNSSBlockInterface> GetChannel_5X(std::shared_ptr<ConfigurationInterface> configuration,
std::string acq, std::string trk, std::string tlm, int channel, std::string acq, std::string trk, std::string tlm, int channel,
boost::shared_ptr<gr::msg_queue> queue); boost::shared_ptr<gr::msg_queue> queue);

View File

@ -227,14 +227,14 @@ void GNSSFlowgraph::connect()
for (int j = 0; j < RF_Channels; j++) for (int j = 0; j < RF_Channels; j++)
{ {
//Connect the multichannel signal source to multiple signal conditioners //Connect the multichannel signal source to multiple signal conditioners
// GNURADIO max_streams=-1 means infinite ports! // GNURADIO max_streams=-1 means infinite ports!
LOG(WARNING)<<"sig_source_.at(i)->get_right_block()->output_signature()->max_streams()="<<sig_source_.at(i)->get_right_block()->output_signature()->max_streams(); LOG(INFO) << "sig_source_.at(i)->get_right_block()->output_signature()->max_streams()=" << sig_source_.at(i)->get_right_block()->output_signature()->max_streams();
LOG(WARNING)<<"sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()="<<sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()->max_streams(); LOG(INFO) << "sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()=" << sig_conditioner_.at(signal_conditioner_ID)->get_left_block()->input_signature()->max_streams();
if (sig_source_.at(i)->get_right_block()->output_signature()->max_streams() > 1) if (sig_source_.at(i)->get_right_block()->output_signature()->max_streams() > 1)
{ {
LOG(WARNING)<<"connecting sig_source_ "<<i<<" stream "<<j<<" to conditioner "<<j; LOG(INFO) << "connecting sig_source_ " << i << " stream " << j << " to conditioner " << j;
top_block_->connect(sig_source_.at(i)->get_right_block(), j, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); top_block_->connect(sig_source_.at(i)->get_right_block(), j, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0);
} }
@ -243,13 +243,13 @@ void GNSSFlowgraph::connect()
if (j == 0) if (j == 0)
{ {
// RF_channel 0 backward compatibility with single channel sources // RF_channel 0 backward compatibility with single channel sources
LOG(WARNING) << "connecting sig_source_ " << i <<" stream "<<0<<" to conditioner "<<j<<std::endl; LOG(INFO) << "connecting sig_source_ " << i << " stream " << 0 << " to conditioner " << j;
top_block_->connect(sig_source_.at(i)->get_right_block(), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); top_block_->connect(sig_source_.at(i)->get_right_block(), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0);
} }
else else
{ {
// Multiple channel sources using multiple output blocks of single channel (requires RF_channel selector in call) // Multiple channel sources using multiple output blocks of single channel (requires RF_channel selector in call)
LOG(WARNING)<<"connecting sig_source_ "<<i<<" stream "<<j<<" to conditioner " << j << std::endl; LOG(INFO) << "connecting sig_source_ " << i << " stream " << j << " to conditioner " << j;
top_block_->connect(sig_source_.at(i)->get_right_block(j), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0); top_block_->connect(sig_source_.at(i)->get_right_block(j), 0, sig_conditioner_.at(signal_conditioner_ID)->get_left_block(), 0);
} }
} }
@ -303,18 +303,10 @@ void GNSSFlowgraph::connect()
return; return;
} }
//discriminate between systems
//std::string default_system = configuration_->property("Channel.system", std::string("GPS"));
std::string default_signal = configuration_->property("Channel.signal", std::string("1C")); std::string default_signal = configuration_->property("Channel.signal", std::string("1C"));
//std::string gnss_system = (configuration_->property("Channel" std::string gnss_signal = (configuration_->property("Channel" + boost::lexical_cast<std::string>(i) + ".signal", default_signal));
// + boost::lexical_cast<std::string>(i) + ".system",
// default_system)); while (gnss_signal != available_GNSS_signals_.front().get_signal() )
std::string gnss_signal = (configuration_->property("Channel"
+ boost::lexical_cast<std::string>(i) + ".signal",
default_signal));
//TODO: add a specific string member to the channel template, and not re-use the implementation field!
while (channels_.at(i)->implementation() != available_GNSS_signals_.front().get_satellite().get_system()
or gnss_signal != available_GNSS_signals_.front().get_signal() )
{ {
available_GNSS_signals_.push_back(available_GNSS_signals_.front()); available_GNSS_signals_.push_back(available_GNSS_signals_.front());
available_GNSS_signals_.pop_front(); available_GNSS_signals_.pop_front();
@ -327,13 +319,11 @@ void GNSSFlowgraph::connect()
if (channels_state_[i] == 1) if (channels_state_[i] == 1)
{ {
channels_.at(i)->start_acquisition(); channels_.at(i)->start_acquisition();
LOG(INFO) << "Channel " << i LOG(INFO) << "Channel " << i << " connected to observables and ready for acquisition";
<< " connected to observables and ready for acquisition";
} }
else else
{ {
LOG(INFO) << "Channel " << i LOG(INFO) << "Channel " << i << " connected to observables in standby mode";
<< " connected to observables in standby mode";
} }
} }
@ -655,7 +645,7 @@ void GNSSFlowgraph::set_signals_list()
} }
} }
if ((configuration_->property("Channels_5I.count", 0) > 0) ) if ((configuration_->property("Channels_5X.count", 0) > 0) )
{ {
/* /*
* Loop to create the list of Galileo E1 B signals * Loop to create the list of Galileo E1 B signals
@ -667,7 +657,7 @@ if ((configuration_->property("Channels_5I.count", 0) > 0) )
// available_GNSS_signals_.push_back(Gnss_Signal(Gnss_Satellite(std::string("Galileo"), // available_GNSS_signals_.push_back(Gnss_Signal(Gnss_Satellite(std::string("Galileo"),
// *available_gnss_prn_iter), std::string("1B"))); // *available_gnss_prn_iter), std::string("1B")));
available_GNSS_signals_.push_back(Gnss_Signal(Gnss_Satellite(std::string("Galileo"), available_GNSS_signals_.push_back(Gnss_Signal(Gnss_Satellite(std::string("Galileo"),
*available_gnss_prn_iter), std::string("5I"))); *available_gnss_prn_iter), std::string("5X")));
} }
} }
@ -677,6 +667,8 @@ if ((configuration_->property("Channels_5I.count", 0) > 0) )
std::list<Gnss_Signal>::iterator gnss_it = available_GNSS_signals_.begin(); std::list<Gnss_Signal>::iterator gnss_it = available_GNSS_signals_.begin();
// Preassignation if not defined at ChannelX.signal=1C ...? In what order?
for (unsigned int i = 0; i < channels_count_; i++) for (unsigned int i = 0; i < channels_count_; i++)
{ {
std::string gnss_system = (configuration_->property("Channel" std::string gnss_system = (configuration_->property("Channel"
@ -699,7 +691,7 @@ if ((configuration_->property("Channels_5I.count", 0) > 0) )
else else
{ {
if((gnss_signal.compare("1C") == 0) or (gnss_signal.compare("2S") == 0) ) gnss_system = "GPS"; if((gnss_signal.compare("1C") == 0) or (gnss_signal.compare("2S") == 0) ) gnss_system = "GPS";
if((gnss_signal.compare("1B") == 0) or (gnss_signal.compare("5I") == 0) ) gnss_system = "Galileo"; if((gnss_signal.compare("1B") == 0) or (gnss_signal.compare("5X") == 0) ) gnss_system = "Galileo";
Gnss_Signal signal_value = Gnss_Signal(Gnss_Satellite(gnss_system, sat), gnss_signal); Gnss_Signal signal_value = Gnss_Signal(Gnss_Satellite(gnss_system, sat), gnss_signal);
DLOG(INFO) << "Channel " << i << " " << signal_value; DLOG(INFO) << "Channel " << i << " " << signal_value;
available_GNSS_signals_.remove(signal_value); available_GNSS_signals_.remove(signal_value);

View File

@ -1,6 +1,6 @@
/*! /*!
* \file GPS_L2C.h * \file GPS_L2C.h
* \brief Defines system parameters for GPS L1 C/A signal and NAV data * \brief Defines system parameters for GPS L2C signal
* \author Javier Arribas, 2015. jarribas(at)cttc.es * \author Javier Arribas, 2015. jarribas(at)cttc.es
* *
* ------------------------------------------------------------------------- * -------------------------------------------------------------------------
@ -32,23 +32,19 @@
#ifndef GNSS_SDR_GPS_L2C_H_ #ifndef GNSS_SDR_GPS_L2C_H_
#define GNSS_SDR_GPS_L2C_H_ #define GNSS_SDR_GPS_L2C_H_
#include <complex> #include <stdint.h>
#include <vector>
#include <utility> // std::pair
#include <gnss_satellite.h>
#include "MATH_CONSTANTS.h"
// carrier and code frequencies // carrier and code frequencies
const double GPS_L2_FREQ_HZ = 1.2276e9; //!< L2 [Hz] const double GPS_L2_FREQ_HZ = 1.2276e9; //!< L2 [Hz]
const double GPS_L2_M_CODE_RATE_HZ = 0.5115e6; //!< GPS L2 M code rate [chips/s] const double GPS_L2_M_CODE_RATE_HZ = 0.5115e6; //!< GPS L2 M code rate [chips/s]
const int GPS_L2_M_CODE_LENGTH_CHIPS = 10230; //!< GPS L2 M code length [chips] const int GPS_L2_M_CODE_LENGTH_CHIPS = 10230; //!< GPS L2 M code length [chips]
const double GPS_L2_M_PERIOD = 0.02; //!< GPS L2 M code period [seconds] const double GPS_L2_M_PERIOD = 0.02; //!< GPS L2 M code period [seconds]
const double GPS_L2_L_CODE_RATE_HZ = 0.5115e6; //!< GPS L2 L code rate [chips/s] const double GPS_L2_L_CODE_RATE_HZ = 0.5115e6; //!< GPS L2 L code rate [chips/s]
const int GPS_L2_L_CODE_LENGTH_CHIPS = 767250; //!< GPS L2 L code length [chips] const int GPS_L2_L_CODE_LENGTH_CHIPS = 767250; //!< GPS L2 L code length [chips]
const double GPS_L2_L_PERIOD = 1.5; //!< GPS L2 L code period [seconds] const double GPS_L2_L_PERIOD = 1.5; //!< GPS L2 L code period [seconds]
const int32_t GPS_L2C_M_INIT_REG[115] = const int32_t GPS_L2C_M_INIT_REG[115] =

View File

@ -255,7 +255,7 @@ TEST_F(GpsL2MPcpsAcquisitionTest, ValidationOfResults)
stop_queue(); stop_queue();
unsigned long int Acq_samplestamp_samples = gnss_synchro.Acq_samplestamp_samples; //unsigned long int Acq_samplestamp_samples = gnss_synchro.Acq_samplestamp_samples;
std::cout << "Acquisition process runtime duration: " << (end - begin) << " microseconds" << std::endl; std::cout << "Acquisition process runtime duration: " << (end - begin) << " microseconds" << std::endl;
std::cout << "gnss_synchro.Acq_doppler_hz = " << gnss_synchro.Acq_doppler_hz << " Hz" << std::endl; std::cout << "gnss_synchro.Acq_doppler_hz = " << gnss_synchro.Acq_doppler_hz << " Hz" << std::endl;