[hamradio-commits] [gnss-sdr] 29/251: Merge branch 'next' into multisignals
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Wed Sep 2 00:22:33 UTC 2015
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch master
in repository gnss-sdr.
commit 04b6507267bd51de6b0c63b6b9a790755c770529
Merge: f31122a f03336d
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date: Wed May 6 18:10:11 2015 +0200
Merge branch 'next' into multisignals
# Conflicts:
# src/core/receiver/gnss_block_factory.cc
CMakeLists.txt | 4 +-
conf/gnss-sdr.conf | 16 +-
conf/gnss-sdr_GPS_L1_gr_complex.conf | 6 +-
...channel_GPS_L2_M_Flexiband_bin_file_III_1a.conf | 477 +++++++++++
...channel_GPS_L2_M_Flexiband_bin_file_III_1b.conf | 915 +++++++++++++++++++++
src/algorithms/acquisition/adapters/CMakeLists.txt | 1 +
.../adapters/gps_l1_ca_pcps_acquisition.cc | 12 +-
...acquisition.cc => gps_l2_m_pcps_acquisition.cc} | 78 +-
.../adapters/gps_l2_m_pcps_acquisition.h | 176 ++++
.../gnuradio_blocks/pcps_acquisition_cc.cc | 18 +-
src/algorithms/libs/CMakeLists.txt | 1 +
src/algorithms/libs/gps_l2c_signal.cc | 128 +++
src/algorithms/libs/gps_l2c_signal.h | 48 ++
src/algorithms/libs/gps_sdr_signal_processing.cc | 1 +
.../telemetry_decoder/adapters/CMakeLists.txt | 1 +
.../adapters/gps_l2_m_telemetry_decoder.cc | 122 +++
.../adapters/gps_l2_m_telemetry_decoder.h | 96 +++
.../gnuradio_blocks/CMakeLists.txt | 1 +
.../gps_l1_ca_telemetry_decoder_cc.cc | 3 +-
...oder_cc.cc => gps_l2_m_telemetry_decoder_cc.cc} | 33 +-
.../gps_l2_m_telemetry_decoder_cc.h | 152 ++++
src/algorithms/tracking/adapters/CMakeLists.txt | 1 +
.../tracking/adapters/gps_l2_m_dll_pll_tracking.cc | 154 ++++
.../tracking/adapters/gps_l2_m_dll_pll_tracking.h | 114 +++
.../tracking/gnuradio_blocks/CMakeLists.txt | 3 +-
.../gps_l1_ca_dll_pll_tracking_cc.cc | 34 +-
...cking_cc.cc => gps_l2_m_dll_pll_tracking_cc.cc} | 130 +--
.../gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.h | 187 +++++
src/core/receiver/gnss_block_factory.cc | 76 +-
src/core/receiver/gnss_block_factory.h | 4 +
src/core/receiver/gnss_flowgraph.cc | 67 +-
src/core/system_parameters/GPS_L2C.h | 85 ++
src/tests/data/gps_l2c_m_prn7_5msps.dat | Bin 0 -> 8000000 bytes
src/tests/gnss_block/galileo_e5a_tracking_test.cc | 2 +-
...g_test.cc => gps_l2_m_dll_pll_tracking_test.cc} | 75 +-
.../gnss_block/gps_l2_m_pcps_acquisition_test.cc | 275 +++++++
src/tests/test_main.cc | 2 +
37 files changed, 3272 insertions(+), 226 deletions(-)
diff --cc CMakeLists.txt
index f9d9a2d,f9d9a2d..f22c839
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -1027,11 -1027,11 +1027,11 @@@ if(ENABLE_GPERFTOOLS
endif(ENABLE_GPERFTOOLS)
if(ENABLE_GPROF)
-- if(CMAKE_COMPILER_IS_GNUCXX)
++ #if(CMAKE_COMPILER_IS_GNUCXX)
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -pg")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg")
-- endif(CMAKE_COMPILER_IS_GNUCXX)
++ #endif(CMAKE_COMPILER_IS_GNUCXX)
endif(ENABLE_GPROF)
diff --cc conf/gnss-sdr.conf
index fefbb27,fefbb27..8fb0a37
--- a/conf/gnss-sdr.conf
+++ b/conf/gnss-sdr.conf
@@@ -33,8 -33,8 +33,8 @@@ SignalSource.implementation=File_Signal
SignalSource.filename=../../../Documents/workspace/code2/trunk/data/2013_04_04_GNSS_SIGNAL_at_CTTC_SPAIN.dat
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
--;SignalSource.item_type=short
--SignalSource.item_type=byte
++SignalSource.item_type=short
++;SignalSource.item_type=byte
;#sampling_frequency: Original Signal sampling frequency in [Hz]
SignalSource.sampling_frequency=4000000
@@@ -77,10 -77,10 +77,10 @@@ SignalConditioner.implementation=Signal
;######### DATA_TYPE_ADAPTER CONFIG ############
;## Changes the type of input data. Please disable it in this version.
;#implementation: [Pass_Through] disables this block
--;DataTypeAdapter.implementation=Ishort_To_Complex
++DataTypeAdapter.implementation=Ishort_To_Complex
;DataTypeAdapter.implementation=Ibyte_To_Cbyte
--DataTypeAdapter.implementation=Pass_Through
--DataTypeAdapter.item_type=byte
++;DataTypeAdapter.implementation=Pass_Through
++;DataTypeAdapter.item_type=byte
;######### INPUT_FILTER CONFIG ############
;## Filter the input data. Can be combined with frequency translation for IF signals
@@@ -91,8 -91,8 +91,8 @@@
;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz.
;InputFilter.implementation=Fir_Filter
--InputFilter.implementation=Freq_Xlating_Fir_Filter
--;InputFilter.implementation=Pass_Through
++;InputFilter.implementation=Freq_Xlating_Fir_Filter
++InputFilter.implementation=Pass_Through
;#dump: Dump the filtered data to a file.
InputFilter.dump=false
@@@ -105,7 -105,7 +105,7 @@@ InputFilter.dump_filename=../data/input
;#These function calculates the optimal (in the Chebyshev/minimax sense) FIR filter inpulse reponse given a set of band edges, the desired reponse on those bands, and the weight given to the error in those bands.
;#input_item_type: Type and resolution for input signal samples. Use only gr_complex in this version.
--InputFilter.input_item_type=byte
++InputFilter.input_item_type=gr_complex
;#outut_item_type: Type and resolution for output filtered signal samples. Use only gr_complex in this version.
InputFilter.output_item_type=gr_complex
diff --cc src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
index 4c3b259,4c3b259..579b0a6
--- a/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
+++ b/src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.cc
@@@ -90,6 -90,6 +90,11 @@@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcqu
code_= new gr_complex[vector_length_];
++ std::complex<float>* code = new std::complex<float>[code_length_];
++
++ gps_l1_ca_code_gen_complex_sampled(code, gnss_synchro_->PRN, fs_in_, 0);
++
++
// if (item_type_.compare("gr_complex") == 0 )
// {
item_size_ = sizeof(gr_complex);
@@@ -145,10 -145,10 +150,7 @@@ void GpsL1CaPcpsAcquisition::set_thresh
if(pfa == 0.0)
{
-- pfa = configuration_->property(role_+".pfa", 0.0);
-- }
-- if(pfa == 0.0)
-- {
++ pfa = configuration_->property(role_ + ".pfa", 0.0);
threshold_ = threshold;
}
else
@@@ -156,7 -156,7 +158,7 @@@
threshold_ = calculate_threshold(pfa);
}
-- DLOG(INFO) <<"Channel "<<channel_<<" Threshold = " << threshold_;
++ DLOG(INFO) << "Channel " << channel_ << " Threshold = " << threshold_;
// if (item_type_.compare("gr_complex") == 0)
// {
diff --cc src/core/receiver/gnss_block_factory.cc
index e31d4c2,a193501..9736650
--- a/src/core/receiver/gnss_block_factory.cc
+++ b/src/core/receiver/gnss_block_factory.cc
@@@ -275,35 -277,6 +277,35 @@@ std::unique_ptr<GNSSBlockInterface> GNS
}
+
- //********* GPS CHANNEL *****************
++//********* GPS L1 C/A CHANNEL *****************
+std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_1C(
+ std::shared_ptr<ConfigurationInterface> configuration,
+ std::string acq, std::string trk, std::string tlm, int channel,
+ boost::shared_ptr<gr::msg_queue> queue)
+{
+ std::stringstream stream;
+ stream << channel;
+ std::string id = stream.str();
+ LOG(INFO) << "Instantiating Channel " << id << " with Acquisition Implementation: "
+ << 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<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_1C", acq, 1, 1, queue);
+ std::unique_ptr<TrackingInterface> trk_ = GetTrkBlock(configuration, "Tracking_1C", trk, 1, 1, queue);
+ std::unique_ptr<TelemetryDecoderInterface> tlm_ = GetTlmBlock(configuration, "TelemetryDecoder_1C", tlm, 1, 1, queue);
+
+ std::unique_ptr<GNSSBlockInterface> channel_(new Channel(configuration.get(), channel, pass_through_.release(),
+ acq_.release(),
+ trk_.release(),
+ tlm_.release(),
+ "Channel", "GPS", queue));
+
+ return channel_;
+}
+
+
+
//********* GALILEO CHANNEL *****************
std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_Galileo(
std::shared_ptr<ConfigurationInterface> configuration,
@@@ -368,34 -314,16 +370,34 @@@ std::unique_ptr<std::vector<std::unique
std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> channels(new std::vector<std::unique_ptr<GNSSBlockInterface>>());
- unsigned int channel_absolute_id=0;
+ unsigned int channel_absolute_id = 0;
- //**************** GPS CHANNELS **********************
- channel_count= configuration->property("Channels_GPS.count", 0);
+ //**************** GPS L1 C/A CHANNELS **********************
+ channel_count = configuration->property("Channels_GPS.count", 0);
+ if (channel_count == 0)
+ {
+ channel_count = configuration->property("Channels_1C.count", 0);
+ }
- LOG(INFO) << "Getting " << channel_count << " GPS channels";
+ LOG(INFO) << "Getting " << channel_count << " GPS L1 C/A channels";
- tracking = configuration->property("Tracking_GPS.implementation", default_implementation);
+ tracking_implementation = configuration->property("Tracking_GPS.implementation", default_implementation);
+ if (default_implementation.compare(tracking) == 0)
+ {
+ tracking = configuration->property("Tracking_1C.implementation", default_implementation);
+ }
+
telemetry_decoder = configuration->property("TelemetryDecoder_GPS.implementation", default_implementation);
+ if(default_implementation.compare(telemetry_decoder) == 0)
+ {
+ telemetry_decoder = configuration->property("TelemetryDecoder_1C.implementation", default_implementation);
+ }
+
acquisition_implementation = configuration->property("Acquisition_GPS.implementation", default_implementation);
+ if (default_implementation.compare(acquisition_implementation) == 0)
+ {
+ acquisition_implementation = configuration->property("Acquisition_1C.implementation", default_implementation);
+ }
for (unsigned int i = 0; i < channel_count; i++)
{
@@@ -407,45 -337,35 +411,61 @@@
acquisition_implementation = acquisition_implementation_specific;
}
+ std::string tracking_implementation_specific = configuration->property(
+ "Tracking_GPS" + boost::lexical_cast<std::string>(i) + ".implementation",
+ default_implementation);
+ if(tracking_implementation_specific.compare(default_implementation) != 0)
+ {
+ tracking_implementation = tracking_implementation_specific;
+ }
+
+ std::string telemetry_decoder_implementation_specific = configuration->property(
+ "TelemetryDecoder_GPS" + boost::lexical_cast<std::string>(i) + ".implementation",
+ default_implementation);
+ if(telemetry_decoder_implementation_specific.compare(default_implementation) != 0)
+ {
+ telemetry_decoder = telemetry_decoder_implementation_specific;
+ }
+
- channels->push_back(std::move(GetChannel_GPS(configuration,
+ acquisition_implementation_specific = configuration->property(
+ "Acquisition_1C" + boost::lexical_cast<std::string>(i) + ".implementation",
+ default_implementation);
+ if(acquisition_implementation_specific.compare(default_implementation) != 0)
+ {
+ acquisition_implementation = acquisition_implementation_specific;
+ }
+
+ channels->push_back(std::move(GetChannel_1C(configuration,
- acquisition_implementation, tracking, telemetry_decoder, channel_absolute_id, queue)));
+ acquisition_implementation, tracking_implementation, telemetry_decoder, channel_absolute_id, queue)));
channel_absolute_id++;
}
- //**************** GALILEO CHANNELS **********************
- channel_count= configuration->property("Channels_Galileo.count", 0);
+ //**************** GALILEO E1 B CHANNELS **********************
+ channel_count = configuration->property("Channels_Galileo.count", 0);
+ if (channel_count == 0)
+ {
+ channel_count = configuration->property("Channels_1B.count", 0);
+ }
- LOG(INFO) << "Getting " << channel_count << " Galileo channels";
+ LOG(INFO) << "Getting " << channel_count << " Galileo E1B channels";
- tracking = configuration->property("Tracking_Galileo.implementation", default_implementation);
+ tracking_implementation = configuration->property("Tracking_Galileo.implementation", default_implementation);
+ if (default_implementation.compare(tracking) == 0)
+ {
+ tracking = configuration->property("Tracking_1B.implementation", default_implementation);
+ }
+
telemetry_decoder = configuration->property("TelemetryDecoder_Galileo.implementation", default_implementation);
+ if (default_implementation.compare(telemetry_decoder) == 0)
+ {
+ telemetry_decoder = configuration->property("TelemetryDecoder_1B.implementation", default_implementation);
+ }
+
acquisition_implementation = configuration->property("Acquisition_Galileo.implementation", default_implementation);
+ if (default_implementation.compare(acquisition_implementation) == 0)
+ {
+ acquisition_implementation = configuration->property("Acquisition_1B.implementation", default_implementation);
+ }
for (unsigned int i = 0; i < channel_count; i++)
{
@@@ -457,15 -379,17 +479,25 @@@
acquisition_implementation = acquisition_implementation_specific;
}
+ std::string tracking_implementation_specific = configuration->property(
+ "Tracking_Galileo" + boost::lexical_cast<std::string>(i) + ".implementation",
+ default_implementation);
+ if(tracking_implementation_specific.compare(default_implementation) != 0)
+ {
+ tracking_implementation = tracking_implementation_specific;
+ }
+
+
- channels->push_back(std::move(GetChannel_Galileo(configuration,
++
+ acquisition_implementation_specific = configuration->property(
+ "Acquisition_1B" + boost::lexical_cast<std::string>(i) + ".implementation",
+ default_implementation);
+ if(acquisition_implementation_specific.compare(default_implementation) != 0)
+ {
+ acquisition_implementation = acquisition_implementation_specific;
+ }
+ channels->push_back(std::move(GetChannel_1B(configuration,
- acquisition_implementation, tracking, telemetry_decoder, channel_absolute_id, queue)));
+ acquisition_implementation, tracking_implementation, telemetry_decoder, channel_absolute_id, queue)));
channel_absolute_id++;
}
return channels;
diff --cc src/core/receiver/gnss_block_factory.h
index 608067b,7f68076..f4b4afc
--- a/src/core/receiver/gnss_block_factory.h
+++ b/src/core/receiver/gnss_block_factory.h
@@@ -76,11 -75,6 +76,15 @@@ public
std::string acq, std::string trk, std::string tlm, int channel,
boost::shared_ptr<gr::msg_queue> queue);
+ std::unique_ptr<GNSSBlockInterface> GetChannel_1C(std::shared_ptr<ConfigurationInterface> configuration,
+ std::string acq, std::string trk, std::string tlm, int channel,
+ boost::shared_ptr<gr::msg_queue> queue);
++
++ std::unique_ptr<GNSSBlockInterface> GetChannel_2S(std::shared_ptr<ConfigurationInterface> configuration,
++ std::string acq, std::string trk, std::string tlm, int channel,
++ boost::shared_ptr<gr::msg_queue> queue);
+
+ //DEPRECATED
std::unique_ptr<GNSSBlockInterface> GetChannel_Galileo(std::shared_ptr<ConfigurationInterface> configuration,
std::string acq, std::string trk, std::string tlm, int channel,
boost::shared_ptr<gr::msg_queue> queue);
diff --cc src/tests/gnss_block/galileo_e5a_tracking_test.cc
index 9d8df8f,9d8df8f..108941a
--- a/src/tests/gnss_block/galileo_e5a_tracking_test.cc
+++ b/src/tests/gnss_block/galileo_e5a_tracking_test.cc
@@@ -105,7 -105,7 +105,7 @@@ TEST_F(GalileoE5aTrackingTest, Validati
long long int begin = 0;
long long int end = 0;
int fs_in = 32000000;
-- int nsamples = 32000000*1.5;
++ int nsamples = 32000000*5;
init();
queue = gr::msg_queue::make(0);
top_block = gr::make_top_block("Tracking test");
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list