20 #ifndef GNSS_SDR_HYBRID_OBSERVABLES_GS_H 21 #define GNSS_SDR_HYBRID_OBSERVABLES_GS_H 25 #include <boost/circular_buffer.hpp> 26 #include <gnuradio/block.h> 27 #include <gnuradio/types.h> 50 using hybrid_observables_gs_sptr = gnss_shared_ptr<hybrid_observables_gs>;
52 hybrid_observables_gs_sptr hybrid_observables_gs_make(
const Obs_Conf& conf_);
61 void forecast(
int noutput_items, gr_vector_int& ninput_items_required);
62 int general_work(
int noutput_items, gr_vector_int& ninput_items,
63 gr_vector_const_void_star& input_items, gr_vector_void_star& output_items);
66 friend hybrid_observables_gs_sptr hybrid_observables_gs_make(
const Obs_Conf& conf_);
70 const size_t d_double_type_hash_code =
typeid(double).hash_code();
72 void msg_handler_pvt_to_observables(
const pmt::pmt_t& msg);
74 bool interp_trk_obs(
Gnss_Synchro& interpolated_obs, uint32_t ch, uint64_t rx_clock)
const;
75 void update_TOW(
const std::vector<Gnss_Synchro>& data);
76 void compute_pranges(std::vector<Gnss_Synchro>& data)
const;
77 void smooth_pseudoranges(std::vector<Gnss_Synchro>& data);
78 int32_t save_matfile()
const;
98 std::map<std::string, StringValue_> d_mapStringValues;
100 std::unique_ptr<Gnss_circular_deque<Gnss_Synchro>> d_gnss_synchro_history;
102 boost::circular_buffer<uint64_t> d_Rx_clock_buffer;
104 std::vector<bool> d_channel_last_pll_lock;
105 std::vector<double> d_channel_last_pseudorange_smooth;
106 std::vector<double> d_channel_last_carrier_phase_rads;
108 std::string d_dump_filename;
110 std::ofstream d_dump_file;
112 double d_smooth_filter_M;
114 uint32_t d_T_rx_TOW_ms;
115 uint32_t d_T_rx_step_ms;
116 uint32_t d_T_status_report_timer_ms;
117 uint32_t d_nchannels_in;
118 uint32_t d_nchannels_out;
127 #endif // GNSS_SDR_HYBRID_OBSERVABLES_GS_H This class implements a block that computes observables.
This is the class that contains the information that is shared by the processing blocks.
This interface represents a GNSS block.
Class that contains all the configuration parameters for generic observables block.