diff --git a/src/algorithms/observables/adapters/hybrid_observables.cc b/src/algorithms/observables/adapters/hybrid_observables.cc index e502fa12c..a07882481 100644 --- a/src/algorithms/observables/adapters/hybrid_observables.cc +++ b/src/algorithms/observables/adapters/hybrid_observables.cc @@ -40,6 +40,7 @@ HybridObservables::HybridObservables(const ConfigurationInterface* configuration conf.nchannels_out = out_streams_; conf.observable_interval_ms = configuration->property("GNSS-SDR.observable_interval_ms", conf.observable_interval_ms); conf.enable_carrier_smoothing = configuration->property(role + ".enable_carrier_smoothing", conf.enable_carrier_smoothing); + conf.always_output_gs = configuration->property("PVT.an_output_enabled", conf.always_output_gs) || configuration->property(role + ".always_output_gs", conf.always_output_gs); if (FLAGS_carrier_smoothing_factor == DEFAULT_CARRIER_SMOOTHING_FACTOR) { diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc index ae79807fd..3dada88c4 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.cc @@ -61,6 +61,7 @@ hybrid_observables_gs::hybrid_observables_gs(const Obs_Conf &conf_) d_nchannels_in(conf_.nchannels_in), d_nchannels_out(conf_.nchannels_out), d_T_rx_TOW_set(false), + d_always_output_gs(conf_.always_output_gs), d_dump(conf_.dump), d_dump_mat(conf_.dump_mat && d_dump) { @@ -749,5 +750,14 @@ int hybrid_observables_gs::general_work(int noutput_items __attribute__((unused) return 1; } } + if (d_always_output_gs) + { + Gnss_Synchro empty_gs{}; + for (uint32_t n = 0; n < d_nchannels_out; n++) + { + out[n][0] = empty_gs; + } + return 1; + } return 0; } diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h index ff174312e..eb45ec232 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_gs.h @@ -119,6 +119,7 @@ private: uint32_t d_nchannels_out; bool d_T_rx_TOW_set; // rx time follow GPST + bool d_always_output_gs; bool d_dump; bool d_dump_mat; }; diff --git a/src/algorithms/observables/libs/obs_conf.h b/src/algorithms/observables/libs/obs_conf.h index 3c0e644e4..22da24476 100644 --- a/src/algorithms/observables/libs/obs_conf.h +++ b/src/algorithms/observables/libs/obs_conf.h @@ -38,6 +38,7 @@ public: uint32_t nchannels_out{0U}; uint32_t observable_interval_ms{20U}; bool enable_carrier_smoothing{false}; + bool always_output_gs{false}; bool dump{false}; bool dump_mat{false}; };