[hamradio-commits] [gnss-sdr] 46/251: Working in the new configuration system

Carles Fernandez carles_fernandez-guest at moszumanska.debian.org
Wed Sep 2 00:22:34 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 8d60aeab3daa6a7a885bc3cd8244f84006fc923e
Author: Carles Fernandez <carles.fernandez at gmail.com>
Date:   Fri May 8 13:11:41 2015 +0200

    Working in the new configuration system
---
 conf/gnss-sdr_GPS_L1_USRP_X300_realtime_new.conf | 405 +++++++++++++++++++++++
 src/algorithms/channel/adapters/channel.cc       |  17 +-
 src/core/receiver/gnss_block_factory.cc          |  24 +-
 src/core/receiver/gnss_flowgraph.cc              |  26 +-
 4 files changed, 444 insertions(+), 28 deletions(-)

diff --git a/conf/gnss-sdr_GPS_L1_USRP_X300_realtime_new.conf b/conf/gnss-sdr_GPS_L1_USRP_X300_realtime_new.conf
new file mode 100644
index 0000000..0261154
--- /dev/null
+++ b/conf/gnss-sdr_GPS_L1_USRP_X300_realtime_new.conf
@@ -0,0 +1,405 @@
+; Default configuration file
+; You can define your own receiver and invoke it by doing
+; gnss-sdr --config_file=my_GNSS_SDR_configuration.conf
+;
+
+[GNSS-SDR]
+
+;######### GLOBAL OPTIONS ##################
+;internal_fs_hz: Internal signal sampling frequency after the signal conditioning stage [Hz].
+GNSS-SDR.internal_fs_hz=4000000
+
+;######### CONTROL_THREAD CONFIG ############
+ControlThread.wait_for_flowgraph=false
+
+;######### SUPL RRLP GPS assistance configuration #####
+GNSS-SDR.SUPL_gps_enabled=false
+GNSS-SDR.SUPL_read_gps_assistance_xml=true
+GNSS-SDR.SUPL_gps_ephemeris_server=supl.nokia.com
+GNSS-SDR.SUPL_gps_ephemeris_port=7275
+GNSS-SDR.SUPL_gps_acquisition_server=supl.google.com
+GNSS-SDR.SUPL_gps_acquisition_port=7275
+GNSS-SDR.SUPL_MCC=244
+GNSS-SDR.SUPL_MNS=5
+GNSS-SDR.SUPL_LAC=0x59e2
+GNSS-SDR.SUPL_CI=0x31b0
+
+;######### SIGNAL_SOURCE CONFIG ############
+;#implementation: Use [File_Signal_Source] or [UHD_Signal_Source] or [GN3S_Signal_Source] (experimental)
+SignalSource.implementation=UHD_Signal_Source
+
+;#When left empty, the device discovery routines will search all vailable transports on the system (ethernet, usb...)
+SignalSource.device_address=192.168.40.2
+    
+;#filename: path to file with the captured GNSS signal samples to be processed
+SignalSource.filename=/media/DATALOGGER/Agilent GPS Generator/cap2/agilent_cap2.dat
+
+;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
+;SignalSource.item_type=gr_complex
+SignalSource.item_type=cshort
+
+;#sampling_frequency: Original Signal sampling frequency in [Hz] 
+SignalSource.sampling_frequency=4000000
+
+;#freq: RF front-end center frequency in [Hz] 
+SignalSource.freq=1575420000
+
+;#gain: Front-end Gain in [dB] 
+SignalSource.gain=40
+
+;#subdevice: UHD subdevice specification (for USRP1 use A:0 or B:0)
+SignalSource.subdevice=A:0
+
+;#samples: Number of samples to be processed. Notice that 0 indicates the entire file.
+SignalSource.samples=0
+
+;#repeat: Repeat the processing file. Disable this option in this version
+SignalSource.repeat=false
+
+;#dump: Dump the Signal source data to a file. Disable this option in this version
+SignalSource.dump=false
+
+SignalSource.dump_filename=../data/signal_source.dat
+
+
+;#enable_throttle_control: Enabling this option tells the signal source to keep the delay between samples in post processing.
+; it helps to not overload the CPU, but the processing time will be longer. 
+SignalSource.enable_throttle_control=false
+
+
+;######### SIGNAL_CONDITIONER CONFIG ############
+;## It holds blocks to change data type, filter and resample input data. 
+
+;#implementation: Use [Pass_Through] or [Signal_Conditioner]
+;#[Pass_Through] disables this block and the [DataTypeAdapter], [InputFilter] and [Resampler] blocks
+;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks
+SignalConditioner.implementation=Signal_Conditioner
+;SignalConditioner.implementation=Pass_Through
+
+;######### DATA_TYPE_ADAPTER CONFIG ############
+;## Changes the type of input data. Please disable it in this version.
+;#implementation: [Pass_Through] disables this block
+DataTypeAdapter.implementation=Pass_Through
+DataTypeAdapter.item_type=cshort
+;DataTypeAdapter.item_type=cbyte
+
+;######### INPUT_FILTER CONFIG ############
+;## Filter the input data. Can be combined with frequency translation for IF signals
+
+;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter]
+;#[Pass_Through] disables this block
+;#[Fir_Filter] enables a FIR Filter
+;#[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
+
+;#dump: Dump the filtered data to a file.
+InputFilter.dump=false
+
+;#dump_filename: Log path and filename.
+InputFilter.dump_filename=../data/input_filter.dat
+
+;#The following options are used in the filter design of Fir_Filter and Freq_Xlating_Fir_Filter implementation. 
+;#These options are based on parameters of gnuradio's function: gr_remez.
+;#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=cshort
+
+;#outut_item_type: Type and resolution for output filtered signal samples. Use only gr_complex in this version.
+InputFilter.output_item_type=gr_complex
+
+;#taps_item_type: Type and resolution for the taps of the filter. Use only float in this version.
+InputFilter.taps_item_type=float
+
+;#number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time
+InputFilter.number_of_taps=11
+
+;#number_of _bands: Number of frequency bands in the filter.
+InputFilter.number_of_bands=2
+
+;#bands: frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...].
+;#Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)
+;#The number of band_begin and band_end elements must match the number of bands
+
+InputFilter.band1_begin=0.0
+InputFilter.band1_end=0.48
+InputFilter.band2_begin=0.52
+InputFilter.band2_end=1.0
+
+;#ampl: desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...].
+;#The number of ampl_begin and ampl_end elements must match the number of bands
+
+InputFilter.ampl1_begin=1.0
+InputFilter.ampl1_end=1.0
+InputFilter.ampl2_begin=0.0
+InputFilter.ampl2_end=0.0
+
+;#band_error: weighting applied to each band (usually 1).
+;#The number of band_error elements must match the number of bands
+InputFilter.band1_error=1.0
+InputFilter.band2_error=1.0
+
+;#filter_type: one of "bandpass", "hilbert" or "differentiator" 
+InputFilter.filter_type=bandpass
+
+;#grid_density: determines how accurately the filter will be constructed.
+;The minimum value is 16; higher values are slower to compute the filter.
+InputFilter.grid_density=16
+
+;#The following options are used only in Freq_Xlating_Fir_Filter implementation.
+;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz
+
+InputFilter.sampling_frequency=4000000
+InputFilter.IF=0
+
+
+
+;######### RESAMPLER CONFIG ############
+;## Resamples the input data. 
+
+;#implementation: Use [Pass_Through] or [Direct_Resampler]
+;#[Pass_Through] disables this block
+;#[Direct_Resampler] enables a resampler that implements a nearest neigbourhood interpolation
+;Resampler.implementation=Direct_Resampler
+Resampler.implementation=Pass_Through
+
+;#dump: Dump the resampled data to a file.
+Resampler.dump=false
+;#dump_filename: Log path and filename.
+Resampler.dump_filename=../data/resampler.dat
+
+;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
+Resampler.item_type=gr_complex
+
+;#sample_freq_in: the sample frequency of the input signal
+Resampler.sample_freq_in=4000000
+
+;#sample_freq_out: the desired sample frequency of the output signal
+Resampler.sample_freq_out=4000000
+
+
+;######### CHANNELS GLOBAL CONFIG ############
+;#count: Number of available GPS satellite channels.
+Channels_1C.count=8
+;#count: Number of available Galileo satellite channels.
+Channels_1B.count=0
+;#in_acquisition: Number of channels simultaneously acquiring for the whole receiver
+Channels.in_acquisition=1
+;#system: GPS, GLONASS, GALILEO, SBAS or COMPASS
+;#if the option is disabled by default is assigned GPS
+;Channel.system=GPS
+Channel.signal=1C
+
+;#signal: 
+;# "1C" GPS L1 C/A
+;# "1P" GPS L1 P
+;# "1W" GPS L1 Z-tracking and similar (AS on)
+;# "1Y" GPS L1 Y
+;# "1M" GPS L1 M
+;# "1N" GPS L1 codeless
+;# "2C" GPS L2 C/A
+;# "2D" GPS L2 L1(C/A)+(P2-P1) semi-codeless
+;# "2S" GPS L2 L2C (M)
+;# "2L" GPS L2 L2C (L)
+;# "2X" GPS L2 L2C (M+L)
+;# "2P" GPS L2 P
+;# "2W" GPS L2 Z-tracking and similar (AS on)
+;# "2Y" GPS L2 Y
+;# "2M" GPS GPS L2 M
+;# "2N" GPS L2 codeless
+;# "5I" GPS L5 I
+;# "5Q" GPS L5 Q
+;# "5X" GPS L5 I+Q
+;# "1C" GLONASS G1 C/A
+;# "1P" GLONASS G1 P
+;# "2C" GLONASS G2 C/A  (Glonass M)
+;# "2P" GLONASS G2 P
+;# "1A" GALILEO E1 A (PRS)
+;# "1B" GALILEO E1 B (I/NAV OS/CS/SoL)
+;# "1C" GALILEO E1 C (no data)
+;# "1X" GALILEO E1 B+C
+;# "1Z" GALILEO E1 A+B+C
+;# "5I" GALILEO E5a I (F/NAV OS)
+;# "5Q" GALILEO E5a Q  (no data)
+;# "5X" GALILEO E5a I+Q
+;# "7I" GALILEO E5b I
+;# "7Q" GALILEO E5b Q
+;# "7X" GALILEO E5b I+Q
+;# "8I" GALILEO E5 I
+;# "8Q" GALILEO E5 Q
+;# "8X" GALILEO E5 I+Q
+;# "6A" GALILEO E6 A
+;# "6B" GALILEO E6 B
+;# "6C" GALILEO E6 C
+;# "6X" GALILEO E6 B+C
+;# "6Z" GALILEO E6 A+B+C
+;# "1C" SBAS L1 C/A
+;# "5I" SBAS L5 I
+;# "5Q" SBAS L5 Q
+;# "5X" SBAS L5 I+Q
+;# "2I" COMPASS E2 I
+;# "2Q" COMPASS E2 Q
+;# "2X" COMPASS E2 IQ
+;# "7I" COMPASS E5b I
+;# "7Q" COMPASS E5b Q
+;# "7X" COMPASS E5b IQ
+;# "6I" COMPASS E6 I
+;# "6Q" COMPASS E6 Q
+;# "6X" COMPASS E6 IQ
+;#if the option is disabled by default is assigned "1C" GPS L1 C/A
+
+;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=1C
+;Channel9.signal=1C
+;Channel10.signal=1C
+;Channel11.signal=1C
+
+;######### SPECIFIC CHANNELS CONFIG ######
+;#The following options are specific to each channel and overwrite the generic options 
+
+;######### CHANNEL 0 CONFIG ############
+
+;Channel0.system=GPS
+;Channel0.signal=1C
+
+;#satellite: Satellite PRN ID for this channel. Disable this option to random search
+;Channel0.satellite=11
+
+;######### CHANNEL 1 CONFIG ############
+
+;Channel1.system=GPS
+;Channel1.signal=1C
+;Channel1.satellite=18
+
+
+;######### ACQUISITION GLOBAL CONFIG ############
+
+;#dump: Enable or disable the acquisition internal data file logging [true] or [false] 
+Acquisition_1C.dump=false
+;#filename: Log path and filename
+Acquisition_1C.dump_filename=./acq_dump.dat
+;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
+Acquisition_1C.item_type=gr_complex
+;#if: Signal intermediate frequency in [Hz] 
+Acquisition_1C.if=0
+;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
+Acquisition_1C.coherent_integration_time_ms=1
+;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
+Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
+;#threshold: Acquisition threshold. It will be ignored if pfa is defined.
+Acquisition_1C.threshold=0.01
+;#pfa: Acquisition false alarm probability. This option overrides the threshold option. Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
+;Acquisition_1C.pfa=0.00001
+;#doppler_max: Maximum expected Doppler shift [Hz]
+Acquisition_1C.doppler_max=8000
+;#doppler_max: Doppler step in the grid search [Hz]
+Acquisition_1C.doppler_step=500
+;#bit_transition_flag: Enable or disable a strategy to deal with bit transitions in GPS signals: process two dwells and take
+maximum test statistics. Only use with implementation: [GPS_L1_CA_PCPS_Acquisition] (should not be used for Galileo_E1_PCPS_Ambiguous_Acquisition])
+Acquisition_1C.bit_transition_flag=false
+;#max_dwells: Maximum number of consecutive dwells to be processed. It will be ignored if bit_transition_flag=true
+Acquisition_1C.max_dwells=1
+
+
+;######### ACQUISITION CHANNELS CONFIG ######
+;#The following options are specific to each channel and overwrite the generic options
+
+
+;######### TRACKING GLOBAL CONFIG ############
+
+;#implementation: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking]
+Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
+;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
+Tracking_1C.item_type=gr_complex
+
+;#sampling_frequency: Signal Intermediate Frequency in [Hz] 
+Tracking_1C.if=0
+
+;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false] 
+Tracking_1C.dump=false
+
+;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
+Tracking_1C.dump_filename=./tracking_ch_
+
+;#pll_bw_hz: PLL loop filter bandwidth [Hz]
+Tracking_1C.pll_bw_hz=30.0;
+
+;#dll_bw_hz: DLL loop filter bandwidth [Hz]
+Tracking_1C.dll_bw_hz=4.0;
+
+;#fll_bw_hz: FLL loop filter bandwidth [Hz]
+Tracking_1C.fll_bw_hz=10.0;
+
+;#order: PLL/DLL loop filter order [2] or [3]
+Tracking_1C.order=3;
+
+;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
+Tracking_1C.early_late_space_chips=0.5;
+
+;######### TELEMETRY DECODER GPS CONFIG ############
+;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A
+TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
+TelemetryDecoder_1C.dump=false
+;#decimation factor
+TelemetryDecoder_1C.decimation_factor=1;
+
+;######### OBSERVABLES CONFIG ############
+;#implementation: Use [GPS_L1_CA_Observables] for GPS L1 C/A.
+Observables.implementation=GPS_L1_CA_Observables
+
+;#dump: Enable or disable the Observables internal binary data file logging [true] or [false] 
+Observables.dump=false
+
+;#dump_filename: Log path and filename.
+Observables.dump_filename=./observables.dat
+
+
+;######### PVT CONFIG ############
+;#implementation: Position Velocity and Time (PVT) implementation algorithm: Use [GPS_L1_CA_PVT] in this version.
+PVT.implementation=GPS_L1_CA_PVT
+
+;#averaging_depth: Number of PVT observations in the moving average algorithm
+PVT.averaging_depth=10
+
+;#flag_average: Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false] 
+PVT.flag_averaging=true
+
+;#output_rate_ms: Period between two PVT outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
+PVT.output_rate_ms=100
+
+;#display_rate_ms: Position console print (std::out) interval [ms]. Notice that output_rate_ms<=display_rate_ms.
+PVT.display_rate_ms=500
+
+;# RINEX, KML, and NMEA output configuration
+
+;#dump_filename: Log path and filename without extension. Notice that PVT will add ".dat" to the binary dump and ".kml" to GoogleEarth dump.
+PVT.dump_filename=./PVT
+
+;#nmea_dump_filename: NMEA log path and filename
+PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
+
+;#flag_nmea_tty_port: Enable or disable the NMEA log to a serial TTY port (Can be used with real hardware or virtual one)
+PVT.flag_nmea_tty_port=false;
+
+;#nmea_dump_devname: serial device descriptor for NMEA logging
+PVT.nmea_dump_devname=/dev/pts/4
+
+
+;#dump: Enable or disable the PVT internal binary data file logging [true] or [false] 
+PVT.dump=false
+
+;######### OUTPUT_FILTER CONFIG ############
+;# Receiver output filter: Leave this block disabled in this version
+OutputFilter.implementation=Null_Sink_Output_Filter
+OutputFilter.filename=data/gnss-sdr.dat
+OutputFilter.item_type=gr_complex
diff --git a/src/algorithms/channel/adapters/channel.cc b/src/algorithms/channel/adapters/channel.cc
index 8a025bf..235a9e4 100644
--- a/src/algorithms/channel/adapters/channel.cc
+++ b/src/algorithms/channel/adapters/channel.cc
@@ -68,28 +68,27 @@ Channel::Channel(ConfigurationInterface *configuration, unsigned int channel,
     acq_->set_gnss_synchro(&gnss_synchro_);
     trk_->set_gnss_synchro(&gnss_synchro_);
 
-// IMPORTANT: Do not change the order between set_doppler_max, set_doppler_step and set_threshold
-
-    unsigned int doppler_max = configuration->property("Acquisition_"+implementation_ + boost::lexical_cast<std::string>(channel_) + ".doppler_max", 0);
-    if(doppler_max == 0) doppler_max = configuration->property("Acquisition_"+implementation_+".doppler_max", 0);
+    // IMPORTANT: Do not change the order between set_doppler_max, set_doppler_step and set_threshold
+    unsigned int doppler_max = configuration->property("Acquisition_" + implementation_ + boost::lexical_cast<std::string>(channel_) + ".doppler_max", 0);
+    if(doppler_max == 0) doppler_max = configuration->property("Acquisition_" + implementation_+ ".doppler_max", 0);
     DLOG(INFO) << "Channel "<< channel_ << " Doppler_max = " << doppler_max;
 
     acq_->set_doppler_max(doppler_max);
 
-    unsigned int doppler_step = configuration->property("Acquisition_"+implementation_ + boost::lexical_cast<std::string>(channel_) + ".doppler_step" ,0);
-    if(doppler_step == 0) doppler_step = configuration->property("Acquisition_"+implementation_+".doppler_step", 500);
+    unsigned int doppler_step = configuration->property("Acquisition_" + implementation_ + boost::lexical_cast<std::string>(channel_) + ".doppler_step" ,0);
+    if(doppler_step == 0) doppler_step = configuration->property("Acquisition_" + implementation_+".doppler_step", 500);
     DLOG(INFO) << "Channel "<< channel_ << " Doppler_step = " << doppler_step;
 
     acq_->set_doppler_step(doppler_step);
 
-    float threshold = configuration->property("Acquisition_"+implementation_+ boost::lexical_cast<std::string>(channel_) + ".threshold", 0.0);
-    if(threshold == 0.0) threshold = configuration->property("Acquisition_"+implementation_+".threshold", 0.0);
+    float threshold = configuration->property("Acquisition_" + implementation_ + boost::lexical_cast<std::string>(channel_) + ".threshold", 0.0);
+    if(threshold == 0.0) threshold = configuration->property("Acquisition_" + implementation_ + ".threshold", 0.0);
 
     acq_->set_threshold(threshold);
 
     acq_->init();
 
-    repeat_ = configuration->property("Acquisition_"+implementation_+  boost::lexical_cast<std::string>(channel_) + ".repeat_satellite", false);
+    repeat_ = configuration->property("Acquisition_" + implementation_ + boost::lexical_cast<std::string>(channel_) + ".repeat_satellite", false);
     DLOG(INFO) << "Channel " << channel_ << " satellite repeat = " << repeat_;
 
     acq_->set_channel_queue(&channel_internal_queue_);
diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc
index 91b74d6..91edeea 100644
--- a/src/core/receiver/gnss_block_factory.cc
+++ b/src/core/receiver/gnss_block_factory.cc
@@ -282,7 +282,7 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_GPS(
               << 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_GPS", acq, 1, 1, queue);
+    std::unique_ptr<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_GPS", acq, 1, 0, queue);
     std::unique_ptr<TrackingInterface> trk_ = GetTrkBlock(configuration, "Tracking_GPS", trk, 1, 1, queue);
     std::unique_ptr<TelemetryDecoderInterface> tlm_ = GetTlmBlock(configuration, "TelemetryDecoder_GPS", tlm, 1, 1, queue);
 
@@ -306,7 +306,7 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_1C(
               << 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<AcquisitionInterface> acq_ = GetAcqBlock(configuration, "Acquisition_1C", acq, 1, 0, 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);
 
@@ -314,7 +314,7 @@ std::unique_ptr<GNSSBlockInterface> GNSSBlockFactory::GetChannel_1C(
             acq_.release(),
             trk_.release(),
             tlm_.release(),
-            "Channel", "GPS", queue));
+            "Channel", "1C", queue));
 
     return channel_;
 }
@@ -515,9 +515,17 @@ std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GNSSBlockFacto
                 {
                     telemetry_decoder_implementation = telemetry_decoder_implementation_specific;
                 }
-
-            channels->push_back(std::move(GetChannel_GPS(configuration,
-                    acquisition_implementation, tracking_implementation, telemetry_decoder_implementation, channel_absolute_id, queue)));
+            
+            if(configuration->property("Channels_GPS.count", 0) > 0)
+               {
+                     channels->push_back(std::move(GetChannel_GPS(configuration, 
+                         acquisition_implementation, tracking_implementation, telemetry_decoder_implementation, channel_absolute_id, queue)));
+               }
+            if(configuration->property("Channels_1C.count", 0) > 0)
+               {
+                     channels->push_back(std::move(GetChannel_1C(configuration, 
+                         acquisition_implementation, tracking_implementation, telemetry_decoder_implementation, channel_absolute_id, queue)));
+               }
 
             channel_absolute_id++;
         }
@@ -701,7 +709,7 @@ std::unique_ptr<std::vector<std::unique_ptr<GNSSBlockInterface>>> GNSSBlockFacto
                     telemetry_decoder_implementation = telemetry_decoder_implementation_specific;
                 }
 
-            channels->push_back(std::move(GetChannel_GPS(configuration,
+            channels->push_back(std::move(GetChannel_5X(configuration,
                     acquisition_implementation, tracking_implementation, telemetry_decoder_implementation, channel_absolute_id, queue)));
             channel_absolute_id++;
         }
@@ -1122,7 +1130,7 @@ std::unique_ptr<AcquisitionInterface> GNSSBlockFactory::GetAcqBlock(
         std::shared_ptr<ConfigurationInterface> configuration,
         std::string role,
         std::string implementation, unsigned int in_streams,
-        unsigned int out_streams, gr::msg_queue::sptr queue)
+        unsigned int out_streams, boost::shared_ptr<gr::msg_queue> queue)
 {
     std::unique_ptr<AcquisitionInterface> block;
     // ACQUISITION BLOCKS ---------------------------------------------------------
diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc
index b532737..d2f0224 100644
--- a/src/core/receiver/gnss_flowgraph.cc
+++ b/src/core/receiver/gnss_flowgraph.cc
@@ -396,14 +396,18 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what)
         available_GNSS_signals_.push_back(channels_.at(who)->get_signal());
 
         //TODO: Optimize the channel and signal matching!
-        while (channels_.at(who)->get_signal().get_satellite().get_system() != available_GNSS_signals_.front().get_satellite().get_system()
-        		or channels_.at(who)->get_signal().get_signal() != available_GNSS_signals_.front().get_signal() )
+        while (//channels_.at(who)->get_signal().get_satellite().get_system() != available_GNSS_signals_.front().get_satellite().get_system()
+        		 channels_.at(who)->get_signal().get_signal() != available_GNSS_signals_.front().get_signal() )
             {
                 available_GNSS_signals_.push_back(available_GNSS_signals_.front());
                 available_GNSS_signals_.pop_front();
             }
         channels_.at(who)->set_signal(available_GNSS_signals_.front());
         available_GNSS_signals_.pop_front();
+
+
+
+
         channels_.at(who)->start_acquisition();
 
         break;
@@ -701,16 +705,16 @@ if ((configuration_->property("Channels_5X.count", 0) > 0) )
         }
 
 
-    //    **** FOR DEBUGGING THE LIST OF GNSS SIGNALS ****
+        //    **** FOR DEBUGGING THE LIST OF GNSS SIGNALS ****
 
-        std::cout << "default_system=" << default_system << std::endl;
-        std::cout << "default_signal=" << default_signal << std::endl;
-            std::list<Gnss_Signal>::iterator available_gnss_list_iter;
-            for (available_gnss_list_iter = available_GNSS_signals_.begin(); available_gnss_list_iter
-            != available_GNSS_signals_.end(); available_gnss_list_iter++)
-            {
-              std::cout << *available_gnss_list_iter << std::endl;
-            }
+        // std::cout << "default_system=" << default_system << std::endl;
+        // std::cout << "default_signal=" << default_signal << std::endl;
+        //    std::list<Gnss_Signal>::iterator available_gnss_list_iter;
+        //    for (available_gnss_list_iter = available_GNSS_signals_.begin(); available_gnss_list_iter
+        //    != available_GNSS_signals_.end(); available_gnss_list_iter++)
+        //    {
+        //      std::cout << *available_gnss_list_iter << std::endl;
+        //    }
 }
 
 

-- 
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