[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