; MASTER configuration file
; This file should be updated with the latest changes in the configuration parameters, as a sample configuration file.
; use RELATIVE file path in this configuration file
; Sample for a configuration file for GNSS-SDR

[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

;######### SIGNAL_SOURCE CONFIG ############
;#implementation: Use only File_Signal_Source in this version
SignalSource.implementation=File_Signal_Source

;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=../data/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

;#sampling_frequency: Original Signal sampling frequency in [Hz] 
SignalSource.sampling_frequency=4000000

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

;#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 ############
;## Enables and configures a real-time resampler. Please disable it in this version.
;implementation: Pass_Through disables this block
SignalConditioner.implementation=Pass_Through
SignalConditioner.item_type=gr_complex
SignalConditioner.sample_freq_in=4000000
SignalConditioner.sample_freq_out=4000000
SignalConditioner.dump=false

;######### CHANNELS CONFIGURATION CONFIG ############
;#count: Number of avalable satellite channels.
Channels.count=4

;######### ACQUISITION GLOBAL CONFIG ############

;#dump: Enable or disable the acquisition internal data file logging [true] or [false] 
Acquisition.dump=false

;#filename: Log path and filename
Acquisition.dump_filename=./acq_dump.dat

;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition.item_type=gr_complex


;#if: Signal intermediate frequency in [Hz] 
Acquisition.if=0

;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition.sampled_ms=1

;######### ACQUISITION CHANNELS CONFIG ######

;######### ACQUISITION CH 0 CONFIG ############
;#implementation: Acquisition algorithm selection for this channel: [GPS_L1_CA_PCPS_Acquisition]
Acquisition0.implementation=GPS_L1_CA_PCPS_Acquisition

;#threshold: Acquisition threshold
Acquisition0.threshold=70

;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition0.doppler_max=10000

;#doppler_max: Doppler step in the grid search [Hz]
Acquisition0.doppler_step=250

;#satellite: Satellite PRN ID for this channel. Disable this option to random search
;Acquisition0.satellite=14

;#repeat_satellite: Use only jointly with the satellte PRN ID option. 
;#Enable repeat_satellite to keep searching the same satellite during the runtime.
;Acquisition0.repeat_satellite=true

;######### ACQUISITION CH 1 CONFIG ############
Acquisition1.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition1.threshold=70
Acquisition1.doppler_max=10000
Acquisition1.doppler_step=250
;Acquisition1.satellite=32
;Acquisition1.repeat_satellite=true

;######### ACQUISITION CH 2 CONFIG ############
Acquisition2.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition2.threshold=70
Acquisition2.doppler_max=10000
Acquisition2.doppler_step=250
;Acquisition2.satellite=11
;Acquisition2.repeat_satellite=true

;######### ACQUISITION CH 3 CONFIG ############
Acquisition3.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition3.threshold=70
Acquisition3.doppler_max=10000
Acquisition3.doppler_step=250
;Acquisition3.satellite=1
;Acquisition3.repeat_satellite=true

;######### ACQUISITION CH 4 CONFIG ############
Acquisition4.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition4.threshold=70
Acquisition4.doppler_max=10000
Acquisition4.doppler_step=250
;Acquisition4.satellite=31
;Acquisition4.repeat_satellite=true

;######### ACQUISITION CH 5 CONFIG ############
Acquisition5.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition5.threshold=70
Acquisition5.doppler_max=10000
Acquisition5.doppler_step=250
;Acquisition5.satellite=20
;Acquisition5.repeat_satellite=true

;######### ACQUISITION CH 6 CONFIG ############
Acquisition6.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition6.threshold=70
Acquisition6.doppler_max=10000
Acquisition6.doppler_step=250
;Acquisition6.satellite=22
;Acquisition6.repeat_satellite=true

;######### ACQUISITION CH 7 CONFIG ############
Acquisition7.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition7.threshold=70
Acquisition7.doppler_max=10000
Acquisition7.doppler_step=250
;Acquisition7.satellite=23
;Acquisition7.repeat_satellite=true

;######### TRACKING GLOBAL CONFIG ############

;#implementatiion: Selected tracking algorithm: [GPS_L1_CA_DLL_PLL_Tracking] or [GPS_L1_CA_DLL_FLL_PLL_Tracking]
Tracking.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.item_type=gr_complex

;#sampling_frequency: Signal Intermediate Frequency in [Hz] 
Tracking.if=0

;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false] 
Tracking.dump=false

;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking.dump_filename=./tracking_ch_

;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking.pll_bw_hz=50.0;

;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking.dll_bw_hz=2.0;

;#fll_bw_hz: FLL loop filter bandwidth [Hz]
Tracking.fll_bw_hz=20.0;

;#order: PLL/DLL loop filter order [2] or [3]
Tracking.order=2;

;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking.early_late_space_chips=0.5;

;######### TELEMETRY DECODER CONFIG ############
;#implementation: Use [GPS_L1_CA_Telemetry_Decoder] for GPS L1 C/A.
TelemetryDecoder.implementation=GPS_L1_CA_Telemetry_Decoder

;#fs_in: Signal sampling frequency in [Hz] 
TelemetryDecoder.fs_in=4000000

;######### OBSERVABLES CONFIG ############
;#implementation: Use [GPS_L1_CA_Observables] for GPS L1 C/A.
Observables.implementation=GPS_L1_CA_Observables

;#output_rate_ms: Period between two psudoranges outputs. Notice that the minimum period is equal to the tracking integration time (for GPS CA L1 is 1ms) [ms]
Observables.output_rate_ms=100

;#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=2

;#flag_average: Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false] 
PVT.flag_averaging=true

;#dump: Enable or disable the PVT internal binary data file logging [true] or [false] 
PVT.dump=true

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

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