; This is a GNSS-SDR configuration file
; The configuration API is described at https://gnss-sdr.org/docs/sp-blocks/
; SPDX-License-Identifier: GPL-3.0-or-later
; SPDX-FileCopyrightText: (C) 2010-2020  (see AUTHORS file for a list of contributors)

; 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_sps: Internal signal sampling frequency after the signal conditioning stage [samples per second].
GNSS-SDR.internal_fs_sps=5000000
GNSS-SDR.Galileo_banned_prns=14,18


;######### SUPL RRLP GPS assistance configuration #####
; Check https://www.mcc-mnc.com/
; On Android: https://play.google.com/store/apps/details?id=net.its_here.cellidinfo&hl=en
GNSS-SDR.SUPL_gps_enabled=false
GNSS-SDR.SUPL_read_gps_assistance_xml=true
GNSS-SDR.SUPL_gps_ephemeris_server=supl.google.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_MNC=5
GNSS-SDR.SUPL_LAC=0x59e2
GNSS-SDR.SUPL_CI=0x31b0

;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Flexiband_Signal_Source
SignalSource.flag_read_file=true
SignalSource.signal_file=/media/javier/SISTEMA/signals/fraunhofer/L125_III1b_210s.usb ; <- PUT YOUR FILE HERE
SignalSource.item_type=gr_complex
SignalSource.firmware_file=flexiband_III-1b.bit
SignalSource.RF_channels=3
;#frontend channels gain. Not usable yet!
SignalSource.gain1=0
SignalSource.gain2=0
SignalSource.gain3=0
SignalSource.AGC=true
SignalSource.usb_packet_buffer=128

;######################################################
;######### RF CHANNEL 0 SIGNAL CONDITIONER ############
;######################################################

;######### SIGNAL_CONDITIONER 0 CONFIG ############
SignalConditioner0.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER 0 CONFIG ############
DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=gr_complex

;######### INPUT_FILTER 0 CONFIG ############
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.dump_filename=./input_filter_ch0.dat
InputFilter0.input_item_type=gr_complex
InputFilter0.output_item_type=gr_complex
InputFilter0.taps_item_type=float
InputFilter0.number_of_taps=5
InputFilter0.number_of_bands=2
InputFilter0.band1_begin=0.0
InputFilter0.band1_end=0.45
InputFilter0.band2_begin=0.55
InputFilter0.band2_end=1.0
InputFilter0.ampl1_begin=1.0
InputFilter0.ampl1_end=1.0
InputFilter0.ampl2_begin=0.0
InputFilter0.ampl2_end=0.0
InputFilter0.band1_error=1.0
InputFilter0.band2_error=1.0
InputFilter0.filter_type=bandpass
InputFilter0.grid_density=16
InputFilter0.IF=0
InputFilter0.decimation_factor=4

;######### RESAMPLER CONFIG 0 ############
Resampler0.implementation=Pass_Through


;######################################################
;######### RF CHANNEL 1 SIGNAL CONDITIONER ############
;######################################################

;######### SIGNAL_CONDITIONER 1 CONFIG ############
SignalConditioner1.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER 1 CONFIG ############
DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=gr_complex

;######### INPUT_FILTER 1 CONFIG ############
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.dump_filename=./input_filter_ch1.dat
InputFilter1.input_item_type=gr_complex
InputFilter1.output_item_type=gr_complex
InputFilter1.taps_item_type=float
InputFilter1.number_of_taps=5
InputFilter1.number_of_bands=2
InputFilter1.band1_begin=0.0
InputFilter1.band1_end=0.45
InputFilter1.band2_begin=0.55
InputFilter1.band2_end=1.0
InputFilter1.ampl1_begin=1.0
InputFilter1.ampl1_end=1.0
InputFilter1.ampl2_begin=0.0
InputFilter1.ampl2_end=0.0
InputFilter1.band1_error=1.0
InputFilter1.band2_error=1.0
InputFilter1.filter_type=bandpass
InputFilter1.grid_density=16
InputFilter1.IF=0
InputFilter1.decimation_factor=4

;######### RESAMPLER CONFIG 1 ############
Resampler1.implementation=Pass_Through


;######################################################
;######### RF CHANNEL 2 SIGNAL CONDITIONER ############
;######################################################

;######### SIGNAL_CONDITIONER 2 CONFIG ############
SignalConditioner2.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER 2 CONFIG ############
DataTypeAdapter2.implementation=Pass_Through
DataTypeAdapter2.item_type=gr_complex

;######### INPUT_FILTER 2 CONFIG ############
InputFilter2.implementation=Freq_Xlating_Fir_Filter
InputFilter2.dump=false
InputFilter2.dump_filename=./input_filter_ch2.dat
InputFilter2.input_item_type=gr_complex
InputFilter2.output_item_type=gr_complex
InputFilter2.taps_item_type=float
InputFilter2.number_of_taps=5
InputFilter2.number_of_bands=2
InputFilter2.band1_begin=0.0
InputFilter2.band1_end=0.45
InputFilter2.band2_begin=0.55
InputFilter2.band2_end=1.0
InputFilter2.ampl1_begin=1.0
InputFilter2.ampl1_end=1.0
InputFilter2.ampl2_begin=0.0
InputFilter2.ampl2_end=0.0
InputFilter2.band1_error=1.0
InputFilter2.band2_error=1.0
InputFilter2.filter_type=bandpass
InputFilter2.grid_density=16
InputFilter2.IF=0
InputFilter2.decimation_factor=8


;######### RESAMPLER CONFIG 2 ############
Resampler2.implementation=Pass_Through


;######### CHANNELS GLOBAL CONFIG ############
Channels_1C.count=10
Channels_1B.count=10
Channels_2S.count=10
Channels_5X.count=2
Channels_L5.count=2

;#GPS.prns=7,8
;Channels.in_acquisition=2

;# CHANNEL CONNECTION

Channel0.RF_channel_ID=0
Channel1.RF_channel_ID=0
Channel2.RF_channel_ID=0
Channel3.RF_channel_ID=0
Channel4.RF_channel_ID=0
Channel5.RF_channel_ID=0
Channel6.RF_channel_ID=0
Channel7.RF_channel_ID=0
Channel8.RF_channel_ID=0
Channel9.RF_channel_ID=0
Channel10.RF_channel_ID=1
Channel11.RF_channel_ID=1
Channel12.RF_channel_ID=1
Channel13.RF_channel_ID=1
Channel14.RF_channel_ID=1
Channel15.RF_channel_ID=1
Channel16.RF_channel_ID=1
Channel17.RF_channel_ID=1
Channel18.RF_channel_ID=1
Channel19.RF_channel_ID=1
Channel20.RF_channel_ID=0
Channel21.RF_channel_ID=0
Channel22.RF_channel_ID=0
Channel23.RF_channel_ID=0
Channel24.RF_channel_ID=0
Channel25.RF_channel_ID=0
Channel26.RF_channel_ID=0
Channel27.RF_channel_ID=0
Channel28.RF_channel_ID=0
Channel29.RF_channel_ID=0
Channel30.RF_channel_ID=2
Channel31.RF_channel_ID=2
Channel32.RF_channel_ID=2
Channel33.RF_channel_ID=2
Channel34.RF_channel_ID=2
Channel35.RF_channel_ID=2
Channel36.RF_channel_ID=2
Channel37.RF_channel_ID=2
Channel38.RF_channel_ID=2
Channel39.RF_channel_ID=2
Channel40.RF_channel_ID=2
Channel41.RF_channel_ID=2
Channel42.RF_channel_ID=2

;Channel20.satellite=7


;# GPS L1 CA
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=250
Acquisition_1C.bit_transition_flag=false
Acquisition_1C.max_dwells=1
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat


;# Galileo E1
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.item_type=gr_complex
Acquisition_1B.coherent_integration_time_ms=4
;Acquisition_1B.threshold=0
Acquisition_1B.pfa=0.0000002
Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=125
Acquisition_1B.dump_filename=./acq_dump.dat


;# GPS L2C M
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
Acquisition_2S.pfa=0.01
;Acquisition_2S.pfa=0.001
Acquisition_2S.doppler_max=5000
Acquisition_2S.doppler_min=-5000
Acquisition_2S.doppler_step=60
Acquisition_2S.max_dwells=1
Acquisition_2S.dump=false
Acquisition_2S.dump_filename=./acq_dump.dat


;# GALILEO E5a
Acquisition_5X.implementation=Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
Acquisition_5X.item_type=gr_complex
Acquisition_5X.coherent_integration_time_ms=1
Acquisition_5X.threshold=0.009
Acquisition_5X.doppler_max=5000
Acquisition_5X.doppler_step=125
Acquisition_5X.bit_transition_flag=false
Acquisition_5X.max_dwells=1
Acquisition_5X.CAF_window_hz=0 ;  **Only for E5a** Resolves doppler ambiguity averaging the specified BW in the winner code delay. If set to 0 CAF filter is deactivated. Recommended value 3000 Hz
Acquisition_5X.Zero_padding=0 ; **Only for E5a** Avoids power loss and doppler ambiguity in bit transitions by correlating one code with twice the input data length, ensuring that at least one full code is present without transitions. If set to 1 it is ON, if set to 0 it is OFF.
Acquisition_5X.dump=false
Acquisition_5X.dump_filename=./acq_dump.dat


;# GPS L5
Acquisition_L5.implementation=GPS_L5i_PCPS_Acquisition
Acquisition_L5.item_type=gr_complex
Acquisition_L5.pfa=0.01
;Acquisition_L5.pfa=0.001
Acquisition_L5.doppler_max=5000
Acquisition_L5.doppler_min=-5000
Acquisition_L5.doppler_step=125
Acquisition_L5.max_dwells=1
Acquisition_L5.dump=false
Acquisition_L5.dump_filename=./acq_dump.dat



;######### TRACKING CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.pll_bw_hz=35.0;
Tracking_1C.dll_bw_hz=2.0;
Tracking_1C.order=3;
Tracking_1C.early_late_space_chips=0.5;
Tracking_1C.dump=false
Tracking_1C.dump_filename=./epl_tracking_ch_

;######### GALILEO E1 TRK CONFIG ############
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.item_type=gr_complex
Tracking_1B.pll_bw_hz=15.0;
Tracking_1B.dll_bw_hz=2.0;
Tracking_1B.order=3;
Tracking_1B.early_late_space_chips=0.15;
Tracking_1B.very_early_late_space_chips=0.6;
Tracking_1B.dump=false
Tracking_1B.dump_filename=./veml_tracking_ch_


;######### GPS L2C GENERIC TRACKING CONFIG ############
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
Tracking_2S.pll_bw_hz=2.0;
Tracking_2S.dll_bw_hz=0.25;
Tracking_2S.order=2;
Tracking_2S.early_late_space_chips=0.5;
Tracking_2S.dump=false
Tracking_2S.dump_filename=./tracking_ch_

;######### GALILEO E5 TRK CONFIG ############
Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
Tracking_5X.item_type=gr_complex
Tracking_5X.track_pilot=true
Tracking_5X.pll_bw_hz=15.0;
Tracking_5X.dll_bw_hz=2.0;
Tracking_5X.pll_bw_narrow_hz=5.0;
Tracking_5X.dll_bw_narrow_hz=1.0;
Tracking_5X.order=2;
Tracking_5X.early_late_space_chips=0.5;
Tracking_5X.dump=false
Tracking_5X.dump_filename=./tracking_ch_

;######### GALILEO E5 TRK CONFIG ############
Tracking_L5.implementation=GPS_L5_DLL_PLL_Tracking
Tracking_L5.item_type=gr_complex
Tracking_L5.track_pilot=true
Tracking_L5.pll_bw_hz=15.0;
Tracking_L5.dll_bw_hz=2.0;
Tracking_L5.pll_bw_narrow_hz=4.0;
Tracking_L5.dll_bw_narrow_hz=1.0;
Tracking_L5.order=2;
Tracking_L5.early_late_space_chips=0.5;
Tracking_L5.dump=false
Tracking_L5.dump_filename=./tracking_ch_


;######### TELEMETRY DECODER CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false

TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false

TelemetryDecoder_2S.implementation=GPS_L2C_Telemetry_Decoder
TelemetryDecoder_2S.dump=false

TelemetryDecoder_5X.implementation=Galileo_E5a_Telemetry_Decoder
TelemetryDecoder_5X.dump=false

TelemetryDecoder_L5.implementation=GPS_L5_Telemetry_Decoder
TelemetryDecoder_L5.dump=false


;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat


;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=PPP_Static  ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.iono_model=Broadcast ; options: OFF, Broadcast, SBAS, Iono-Free-LC, Estimate_STEC, IONEX
PVT.trop_model=Saastamoinen ; options: OFF, Saastamoinen, SBAS, Estimate_ZTD, Estimate_ZTD_Grad
PVT.output_rate_ms=10
PVT.display_rate_ms=100
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
PVT.flag_nmea_tty_port=false;
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=false
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.dump=false
PVT.dump_filename=./PVT
