feat: add multichannel support for ntlab adapter

This commit is contained in:
pedromiguelcp
2025-07-11 14:36:26 +01:00
parent ef01835b28
commit f1eaf5253e
6 changed files with 127 additions and 142 deletions
+81 -101
View File
@@ -10,7 +10,7 @@
[GNSS-SDR]
;######### GLOBAL OPTIONS ##################
GNSS-SDR.internal_fs_sps=39750000
GNSS-SDR.internal_fs_sps=9937500
GNSS-SDR.telecommand_enabled=true
GNSS-SDR.telecommand_tcp_port=3333
GNSS-SDR.osnma_enable=false
@@ -33,41 +33,44 @@ GNSS-SDR.SUPL_CI=0x31b0
;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=NTLab_File_Signal_Source
SignalSource.filename=./ntlab.bin ; <- PUT YOUR FILE HERE
SignalSource.item_type=byte
SignalSource.big_endian_bytes=false
SignalSource.sample_type=real
SignalSource.filename=ntlab.bin ; <- PUT YOUR FILE HERE
SignalSource.sampling_frequency=79500000
SignalSource.samples=0
SignalSource.repeat=false
SignalSource.dump=false
SignalSource.dump_filename=./signal_source.dat
SignalSource.sample_type=real
SignalSource.item_type=byte
SignalSource.RF_channels=4
SignalSource.enable_throttle_control=false
SignalSource.dump=false
;######### SIGNAL_CONDITIONER CONFIG ############
; RF CHANNEL 0
SignalConditioner0.implementation=Signal_Conditioner
; RF CHANNEL 1
SignalConditioner1.implementation=Signal_Conditioner
; RF CHANNEL 2
SignalConditioner2.implementation=Signal_Conditioner
; RF CHANNEL 3
SignalConditioner3.implementation=Signal_Conditioner
;######### DATA_TYPE_ADAPTER CONFIG ############
; RF CHANNEL 0
DataTypeAdapter0.implementation=Pass_Through
DataTypeAdapter0.item_type=float
DataTypeAdapter0.inverted_spectrum=true
; RF CHANNEL 1
DataTypeAdapter1.implementation=Pass_Through
DataTypeAdapter1.item_type=float
; RF CHANNEL 2
DataTypeAdapter2.implementation=Pass_Through
DataTypeAdapter2.item_type=float
DataTypeAdapter2.inverted_spectrum=true
; RF CHANNEL 3
DataTypeAdapter3.implementation=Pass_Through
DataTypeAdapter3.item_type=float
;######### INPUT_FILTER CONFIG ############
; CHANNEL 0
; RF CHANNEL 0
InputFilter0.implementation=Freq_Xlating_Fir_Filter
InputFilter0.dump=false
InputFilter0.input_item_type=float
@@ -88,9 +91,9 @@ InputFilter0.band2_error=1.0
InputFilter0.filter_type=bandpass
InputFilter0.grid_density=16
InputFilter0.sampling_frequency=79500000
InputFilter0.IF=-14580000
InputFilter0.decimation_factor=2
; CHANNEL 1
InputFilter0.IF=14580000
InputFilter0.decimation_factor=8
; RF CHANNEL 1
InputFilter1.implementation=Freq_Xlating_Fir_Filter
InputFilter1.dump=false
InputFilter1.input_item_type=float
@@ -111,9 +114,9 @@ InputFilter1.band2_error=1.0
InputFilter1.filter_type=bandpass
InputFilter1.grid_density=16
InputFilter1.sampling_frequency=79500000
InputFilter1.IF=-14580000
InputFilter1.decimation_factor=2
; CHANNEL 2
InputFilter1.IF=0
InputFilter1.decimation_factor=8
; RF CHANNEL 2
InputFilter2.implementation=Freq_Xlating_Fir_Filter
InputFilter2.dump=false
InputFilter2.input_item_type=float
@@ -134,9 +137,9 @@ InputFilter2.band2_error=1.0
InputFilter2.filter_type=bandpass
InputFilter2.grid_density=16
InputFilter2.sampling_frequency=79500000
InputFilter2.IF=-23550000
InputFilter2.decimation_factor=2
; CHANNEL 3
InputFilter2.IF=23550000
InputFilter2.decimation_factor=8
; RF CHANNEL 3
InputFilter3.implementation=Freq_Xlating_Fir_Filter
InputFilter3.dump=false
InputFilter3.input_item_type=float
@@ -157,108 +160,49 @@ InputFilter3.band2_error=1.0
InputFilter3.filter_type=bandpass
InputFilter3.grid_density=16
InputFilter3.sampling_frequency=79500000
InputFilter3.IF=-2355000000
InputFilter3.decimation_factor=2
InputFilter3.IF=27600000
InputFilter3.decimation_factor=8
;######### RESAMPLER CONFIG ############
; RF CHANNEL 0
Resampler0.implementation=Pass_Through
Resampler0.item_type=gr_complex
; RF CHANNEL 1
Resampler1.implementation=Pass_Through
Resampler1.item_type=gr_complex
; RF CHANNEL 2
Resampler2.implementation=Pass_Through
Resampler2.item_type=gr_complex
; RF CHANNEL 3
Resampler3.implementation=Pass_Through
Resampler3.item_type=gr_complex
;######### CHANNELS GLOBAL CONFIG ############
Channels_1C.count=8
Channels_1B.count=8
Channels_5X.count=8
Channels_L5.count=8
Channels.in_acquisition=1
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=2
Channel9.RF_channel_ID=2
Channel10.RF_channel_ID=2
Channel11.RF_channel_ID=2
Channel12.RF_channel_ID=2
Channel13.RF_channel_ID=2
Channel14.RF_channel_ID=2
Channel15.RF_channel_ID=2
Channel16.RF_channel_ID=0
Channel17.RF_channel_ID=0
Channel18.RF_channel_ID=0
Channel19.RF_channel_ID=0
Channel20.RF_channel_ID=0
Channel21.RF_channel_ID=0
Channel22.RF_channel_ID=0
Channel23.RF_channel_ID=0
Channel24.RF_channel_ID=2
Channel25.RF_channel_ID=2
Channel26.RF_channel_ID=2
Channel27.RF_channel_ID=2
Channel28.RF_channel_ID=2
Channel29.RF_channel_ID=2
Channel30.RF_channel_ID=2
Channel31.RF_channel_ID=2
;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=L5
;Channel9.signal=L5
;Channel10.signal=L5
;Channel11.signal=L5
;Channel12.signal=L5
;Channel13.signal=L5
;Channel14.signal=L5
;Channel15.signal=L5
;
;Channel16.signal=1B
;Channel17.signal=1B
;Channel18.signal=1B
;Channel19.signal=1B
;Channel20.signal=1B
;Channel21.signal=1B
;Channel22.signal=1B
;Channel23.signal=1B
;
;Channel24.signal=5X
;Channel25.signal=5X
;Channel26.signal=5X
;Channel27.signal=5X
;Channel28.signal=5X
;Channel29.signal=5X
;Channel30.signal=5X
;Channel31.signal=5X
Channels_1C.count=8 ;# GPS L1
Channels_L5.count=8 ;# GPS L5
Channels_2S.count=8 ;# GPS L2C
Channels_1B.count=8 ;# Galileo E1b
Channels_5X.count=8 ;# Galileo E5a
Channels_B1.count=8 ;# Beidou B1I
; RF CHANNEL MAPPING
Channels_1C.RF_channel_ID=0
Channels_L5.RF_channel_ID=2
Channels_2S.RF_channel_ID=3
Channels_1B.RF_channel_ID=0
Channels_5X.RF_channel_ID=2
Channels_B1.RF_channel_ID=0
;######### ACQUISITION CONFIG ############
;# GPS L1
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_L5.threshold=2
Acquisition_1C.threshold=2
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=500
Acquisition_1C.doppler_step=125
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat
;# GPS L5
@@ -268,6 +212,13 @@ Acquisition_L5.threshold=2
Acquisition_L5.doppler_max=5000
Acquisition_L5.doppler_step=125
Acquisition_L5.dump=false
;# GPS L2C
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=gr_complex
Acquisition_2S.threshold=2
Acquisition_2S.doppler_max=5000
Acquisition_2S.doppler_step=150
Acquisition_2S.dump=false
;# Galileo E1b
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.item_type=gr_complex
@@ -282,6 +233,13 @@ Acquisition_5X.threshold=2
Acquisition_5X.doppler_max=5000
Acquisition_5X.doppler_step=125
Acquisition_5X.dump=false
;# Beidou B1
Acquisition_B1.implementation=BEIDOU_B1I_PCPS_Acquisition
Acquisition_B1.item_type=gr_complex
Acquisition_B1.threshold=2
Acquisition_B1.doppler_max=5000
Acquisition_B1.doppler_step=150
Acquisition_B1.dump=false
;######### TRACKING CONFIG ############
@@ -289,12 +247,17 @@ Acquisition_5X.dump=false
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.dump=false
Tracking_1C.dump_filename=./epl_tracking_ch_
Tracking_1C.dump_mat=false
;# GPS L5
Tracking_L5.implementation=GPS_L5_DLL_PLL_Tracking
Tracking_L5.item_type=gr_complex
Tracking_L5.dump=false
Tracking_L5.dump_mat=false
;# GPS L2C
Tracking_2S.implementation=GPS_L2_M_DLL_PLL_Tracking
Tracking_2S.item_type=gr_complex
Tracking_2S.dump=false
Tracking_2S.dump_mat=false
;# Galileo E1b
Tracking_1B.implementation=Galileo_E1_DLL_PLL_VEML_Tracking
Tracking_1B.item_type=gr_complex
@@ -305,21 +268,38 @@ Tracking_5X.implementation=Galileo_E5a_DLL_PLL_Tracking
Tracking_5X.item_type=gr_complex
Tracking_5X.dump=false
Tracking_5X.dump_mat=false
;# Beidou B1
Tracking_B1.implementation=BEIDOU_B1I_DLL_PLL_Tracking
Tracking_B1.item_type=gr_complex
Tracking_B1.dump=false
Tracking_B1.dump_mat=false
;######### TELEMETRY DECODER CONFIG ############
;# GPS L1
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
TelemetryDecoder_1C.dump_mat=false
;# GPS L5
TelemetryDecoder_L5.implementation=GPS_L5_Telemetry_Decoder
TelemetryDecoder_L5.dump=false
TelemetryDecoder_L5.dump_mat=false
;# GPS L2C
TelemetryDecoder_2S.implementation=GPS_L2C_Telemetry_Decoder
TelemetryDecoder_2S.dump=false
TelemetryDecoder_2S.dump_mat=false
;# Galileo E1b
TelemetryDecoder_1B.implementation=Galileo_E1B_Telemetry_Decoder
TelemetryDecoder_1B.dump=false
TelemetryDecoder_1B.dump_mat=false
;# Galileo E5a
TelemetryDecoder_5X.implementation=Galileo_E5a_Telemetry_Decoder
TelemetryDecoder_5X.dump=false
TelemetryDecoder_5X.dump_mat=false
;# Beidou B1
TelemetryDecoder_B1.implementation=BEIDOU_B1I_Telemetry_Decoder
TelemetryDecoder_B1.dump=false
TelemetryDecoder_B1.dump_mat=false
;######### OBSERVABLES CONFIG ############