mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-30 23:03:05 +00:00 
			
		
		
		
	Expose tracking lock detectors smoothers control parameters in config files
This commit is contained in:
		| @@ -171,6 +171,13 @@ GalileoE1DllPllVemlTracking::GalileoE1DllPllVemlTracking( | |||||||
|     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); |     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); | ||||||
|     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); |     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     if (item_type == "gr_complex") |     if (item_type == "gr_complex") | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -254,6 +254,14 @@ GalileoE1DllPllVemlTrackingFpga::GalileoE1DllPllVemlTrackingFpga( | |||||||
|     trk_param_fpga.extended_correlation_in_fpga = false; |     trk_param_fpga.extended_correlation_in_fpga = false; | ||||||
|     trk_param_fpga.extend_fpga_integration_periods = 1;  // (number of FPGA integrations that are combined in the SW) |     trk_param_fpga.extend_fpga_integration_periods = 1;  // (number of FPGA integrations that are combined in the SW) | ||||||
|     trk_param_fpga.fpga_integration_period = 1;          // (number of symbols that are effectively integrated in the FPGA) |     trk_param_fpga.fpga_integration_period = 1;          // (number of symbols that are effectively integrated in the FPGA) | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |  | ||||||
|     //################# MAKE TRACKING GNURadio object ################### |     //################# MAKE TRACKING GNURadio object ################### | ||||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); |     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||||
|     channel_ = 0; |     channel_ = 0; | ||||||
|   | |||||||
| @@ -166,6 +166,13 @@ GalileoE5aDllPllTracking::GalileoE5aDllPllTracking( | |||||||
|     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); |     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); | ||||||
|     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); |     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     if (item_type == "gr_complex") |     if (item_type == "gr_complex") | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -262,6 +262,13 @@ GalileoE5aDllPllTrackingFpga::GalileoE5aDllPllTrackingFpga( | |||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); |     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||||
|     channel_ = 0; |     channel_ = 0; | ||||||
|   | |||||||
| @@ -172,6 +172,12 @@ GpsL1CaDllPllTracking::GpsL1CaDllPllTracking( | |||||||
|     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); |     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); | ||||||
|     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); |     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     if (item_type == "gr_complex") |     if (item_type == "gr_complex") | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -216,6 +216,13 @@ GpsL1CaDllPllTrackingFpga::GpsL1CaDllPllTrackingFpga( | |||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); |     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||||
|     channel_ = 0; |     channel_ = 0; | ||||||
|   | |||||||
| @@ -148,6 +148,13 @@ GpsL2MDllPllTracking::GpsL2MDllPllTracking( | |||||||
|     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); |     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); | ||||||
|     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); |     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     if (item_type == "gr_complex") |     if (item_type == "gr_complex") | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -168,6 +168,12 @@ GpsL5DllPllTracking::GpsL5DllPllTracking( | |||||||
|     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); |     trk_param.max_carrier_lock_fail = configuration->property(role + ".max_carrier_lock_fail", trk_param.max_carrier_lock_fail); | ||||||
|     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); |     trk_param.carrier_lock_th = configuration->property(role + ".carrier_lock_th", trk_param.carrier_lock_th); | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|     // ################# MAKE TRACKING GNURadio object ################### |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     if (item_type == "gr_complex") |     if (item_type == "gr_complex") | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -286,6 +286,13 @@ GpsL5DllPllTrackingFpga::GpsL5DllPllTrackingFpga( | |||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |     //tracking lock tests smoother parameters | ||||||
|  |     trk_param.cn0_smoother_samples = configuration->property(role + ".cn0_smoother_samples", trk_param.cn0_smoother_samples); | ||||||
|  |     trk_param.cn0_smoother_alpha = configuration->property(role + ".cn0_smoother_alpha", trk_param.cn0_smoother_alpha); | ||||||
|  |     trk_param.carrier_lock_test_smoother_samples = configuration->property(role + ".carrier_lock_test_smoother_samples", trk_param.carrier_lock_test_smoother_samples); | ||||||
|  |     trk_param.carrier_lock_test_smoother_alpha = configuration->property(role + ".carrier_lock_test_smoother_alpha", trk_param.carrier_lock_test_smoother_alpha); | ||||||
|  |  | ||||||
|  |     // ################# MAKE TRACKING GNURadio object ################### | ||||||
|     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); |     tracking_fpga_sc = dll_pll_veml_make_tracking_fpga(trk_param_fpga); | ||||||
|     channel_ = 0; |     channel_ = 0; | ||||||
|     DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; |     DLOG(INFO) << "tracking(" << tracking_fpga_sc->unique_id() << ")"; | ||||||
|   | |||||||
| @@ -445,16 +445,18 @@ dll_pll_veml_tracking::dll_pll_veml_tracking(const Dll_Pll_Conf &conf_) : gr::bl | |||||||
|     d_carrier_lock_threshold = trk_parameters.carrier_lock_th; |     d_carrier_lock_threshold = trk_parameters.carrier_lock_th; | ||||||
|     d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); |     d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); | ||||||
|     d_cn0_smoother = Exponential_Smoother(); |     d_cn0_smoother = Exponential_Smoother(); | ||||||
|  |     d_cn0_smoother.set_alpha(trk_parameters.cn0_smoother_alpha); | ||||||
|  |  | ||||||
|     if (d_code_period > 0.0) |     if (d_code_period > 0.0) | ||||||
|         { |         { | ||||||
|             d_cn0_smoother.set_samples_for_initialization(200 / static_cast<int>(d_code_period * 1000.0)); |             d_cn0_smoother.set_samples_for_initialization(trk_parameters.cn0_smoother_samples / static_cast<int>(d_code_period * 1000.0)); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     d_carrier_lock_test_smoother = Exponential_Smoother(); |     d_carrier_lock_test_smoother = Exponential_Smoother(); | ||||||
|     d_carrier_lock_test_smoother.set_alpha(0.002); |     d_carrier_lock_test_smoother.set_alpha(trk_parameters.carrier_lock_test_smoother_alpha); | ||||||
|     d_carrier_lock_test_smoother.set_min_value(-1.0); |     d_carrier_lock_test_smoother.set_min_value(-1.0); | ||||||
|     d_carrier_lock_test_smoother.set_offset(0.0); |     d_carrier_lock_test_smoother.set_offset(0.0); | ||||||
|     d_carrier_lock_test_smoother.set_samples_for_initialization(25); |     d_carrier_lock_test_smoother.set_samples_for_initialization(trk_parameters.carrier_lock_test_smoother_samples); | ||||||
|  |  | ||||||
|     d_acquisition_gnss_synchro = nullptr; |     d_acquisition_gnss_synchro = nullptr; | ||||||
|     d_channel = 0; |     d_channel = 0; | ||||||
|   | |||||||
| @@ -375,16 +375,17 @@ dll_pll_veml_tracking_fpga::dll_pll_veml_tracking_fpga(const Dll_Pll_Conf_Fpga & | |||||||
|     d_carrier_lock_threshold = trk_parameters.carrier_lock_th; |     d_carrier_lock_threshold = trk_parameters.carrier_lock_th; | ||||||
|     d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); |     d_Prompt_Data = static_cast<gr_complex *>(volk_gnsssdr_malloc(sizeof(gr_complex), volk_gnsssdr_get_alignment())); | ||||||
|     d_cn0_smoother = Exponential_Smoother(); |     d_cn0_smoother = Exponential_Smoother(); | ||||||
|  |     d_cn0_smoother.set_alpha(trk_parameters.cn0_smoother_alpha); | ||||||
|     if (d_code_period > 0.0) |     if (d_code_period > 0.0) | ||||||
|         { |         { | ||||||
|             d_cn0_smoother.set_samples_for_initialization(200 / static_cast<int>(d_code_period * 1000.0)); |             d_cn0_smoother.set_samples_for_initialization(trk_parameters.cn0_smoother_samples / static_cast<int>(d_code_period * 1000.0)); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     d_carrier_lock_test_smoother = Exponential_Smoother(); |     d_carrier_lock_test_smoother = Exponential_Smoother(); | ||||||
|     d_carrier_lock_test_smoother.set_alpha(0.002); |     d_carrier_lock_test_smoother.set_alpha(trk_parameters.carrier_lock_test_smoother_alpha); | ||||||
|     d_carrier_lock_test_smoother.set_min_value(-1.0); |     d_carrier_lock_test_smoother.set_min_value(-1.0); | ||||||
|     d_carrier_lock_test_smoother.set_offset(0.0); |     d_carrier_lock_test_smoother.set_offset(0.0); | ||||||
|     d_carrier_lock_test_smoother.set_samples_for_initialization(25); |     d_carrier_lock_test_smoother.set_samples_for_initialization(trk_parameters.carrier_lock_test_smoother_samples); | ||||||
|  |  | ||||||
|     d_acquisition_gnss_synchro = nullptr; |     d_acquisition_gnss_synchro = nullptr; | ||||||
|     d_channel = 0; |     d_channel = 0; | ||||||
|   | |||||||
| @@ -63,7 +63,10 @@ Dll_Pll_Conf::Dll_Pll_Conf() | |||||||
|     very_early_late_space_narrow_chips = 0.1; |     very_early_late_space_narrow_chips = 0.1; | ||||||
|     extend_correlation_symbols = 5; |     extend_correlation_symbols = 5; | ||||||
|     cn0_samples = FLAGS_cn0_samples; |     cn0_samples = FLAGS_cn0_samples; | ||||||
|     carrier_lock_det_mav_samples = FLAGS_cn0_samples; |     cn0_smoother_samples=200; | ||||||
|  |     cn0_smoother_alpha=0.002; | ||||||
|  |     carrier_lock_test_smoother_alpha=0.002; | ||||||
|  |     carrier_lock_test_smoother_samples=25; | ||||||
|     cn0_min = FLAGS_cn0_min; |     cn0_min = FLAGS_cn0_min; | ||||||
|     max_carrier_lock_fail = FLAGS_max_carrier_lock_fail; |     max_carrier_lock_fail = FLAGS_max_carrier_lock_fail; | ||||||
|     max_code_lock_fail = FLAGS_max_lock_fail; |     max_code_lock_fail = FLAGS_max_lock_fail; | ||||||
|   | |||||||
| @@ -68,7 +68,11 @@ public: | |||||||
|     int32_t extend_correlation_symbols; |     int32_t extend_correlation_symbols; | ||||||
|     bool high_dyn; |     bool high_dyn; | ||||||
|     int32_t cn0_samples; |     int32_t cn0_samples; | ||||||
|     int32_t carrier_lock_det_mav_samples; |     int32_t cn0_smoother_samples; | ||||||
|  |     float cn0_smoother_alpha; | ||||||
|  |     int32_t carrier_lock_test_smoother_samples; | ||||||
|  |     float carrier_lock_test_smoother_alpha; | ||||||
|  |     //int32_t carrier_lock_det_mav_samples; | ||||||
|     int32_t cn0_min; |     int32_t cn0_min; | ||||||
|     int32_t max_code_lock_fail; |     int32_t max_code_lock_fail; | ||||||
|     int32_t max_carrier_lock_fail; |     int32_t max_carrier_lock_fail; | ||||||
|   | |||||||
| @@ -65,6 +65,10 @@ Dll_Pll_Conf_Fpga::Dll_Pll_Conf_Fpga() | |||||||
|     very_early_late_space_narrow_chips = 0.1; |     very_early_late_space_narrow_chips = 0.1; | ||||||
|     extend_correlation_symbols = 5; |     extend_correlation_symbols = 5; | ||||||
|     cn0_samples = FLAGS_cn0_samples; |     cn0_samples = FLAGS_cn0_samples; | ||||||
|  |     cn0_smoother_samples=200; | ||||||
|  |     cn0_smoother_alpha=0.002; | ||||||
|  |     carrier_lock_test_smoother_alpha=0.002; | ||||||
|  |     carrier_lock_test_smoother_samples=25; | ||||||
|     cn0_min = FLAGS_cn0_min; |     cn0_min = FLAGS_cn0_min; | ||||||
|     max_carrier_lock_fail = FLAGS_max_carrier_lock_fail; |     max_carrier_lock_fail = FLAGS_max_carrier_lock_fail; | ||||||
|     max_code_lock_fail = FLAGS_max_lock_fail; |     max_code_lock_fail = FLAGS_max_lock_fail; | ||||||
|   | |||||||
| @@ -73,6 +73,12 @@ public: | |||||||
|     int32_t cn0_min; |     int32_t cn0_min; | ||||||
|     int32_t max_code_lock_fail; |     int32_t max_code_lock_fail; | ||||||
|     int32_t max_carrier_lock_fail; |     int32_t max_carrier_lock_fail; | ||||||
|  |  | ||||||
|  |     int32_t cn0_smoother_samples; | ||||||
|  |     float cn0_smoother_alpha; | ||||||
|  |     int32_t carrier_lock_test_smoother_samples; | ||||||
|  |     float carrier_lock_test_smoother_alpha; | ||||||
|  |  | ||||||
|     // int32_t max_lock_fail; |     // int32_t max_lock_fail; | ||||||
|     uint32_t smoother_length; |     uint32_t smoother_length; | ||||||
|     double carrier_lock_th; |     double carrier_lock_th; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Javier
					Javier