23 #ifndef GNSS_SDR_HYBRID_OBSERVABLES_GS_H 24 #define GNSS_SDR_HYBRID_OBSERVABLES_GS_H 27 #include <boost/circular_buffer.hpp> 28 #include <gnuradio/block.h> 29 #include <gnuradio/types.h> 38 #if GNURADIO_USES_STD_POINTERS 40 #include <boost/shared_ptr.hpp> 49 #if GNURADIO_USES_STD_POINTERS 50 using hybrid_observables_gs_sptr = std::shared_ptr<hybrid_observables_gs>;
52 using hybrid_observables_gs_sptr = boost::shared_ptr<hybrid_observables_gs>;
55 hybrid_observables_gs_sptr hybrid_observables_gs_make(
const Obs_Conf& conf_);
64 void forecast(
int noutput_items, gr_vector_int& ninput_items_required);
65 int general_work(
int noutput_items, gr_vector_int& ninput_items,
66 gr_vector_const_void_star& input_items, gr_vector_void_star& output_items);
69 friend hybrid_observables_gs_sptr hybrid_observables_gs_make(
const Obs_Conf& conf_);
73 const size_t d_double_type_hash_code =
typeid(double).hash_code();
75 void msg_handler_pvt_to_observables(
const pmt::pmt_t& msg);
77 bool interp_trk_obs(
Gnss_Synchro& interpolated_obs, uint32_t ch, uint64_t rx_clock)
const;
78 void update_TOW(
const std::vector<Gnss_Synchro>& data);
79 void compute_pranges(std::vector<Gnss_Synchro>& data)
const;
80 void smooth_pseudoranges(std::vector<Gnss_Synchro>& data);
81 int32_t save_matfile()
const;
99 std::map<std::string, StringValue_> d_mapStringValues;
101 std::unique_ptr<Gnss_circular_deque<Gnss_Synchro>> d_gnss_synchro_history;
103 boost::circular_buffer<uint64_t> d_Rx_clock_buffer;
105 std::vector<bool> d_channel_last_pll_lock;
106 std::vector<double> d_channel_last_pseudorange_smooth;
107 std::vector<double> d_channel_last_carrier_phase_rads;
109 std::string d_dump_filename;
111 std::ofstream d_dump_file;
113 double d_smooth_filter_M;
115 uint32_t d_T_rx_TOW_ms;
116 uint32_t d_T_rx_step_ms;
117 uint32_t d_T_status_report_timer_ms;
118 uint32_t d_nchannels_in;
119 uint32_t d_nchannels_out;
126 #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.
Class that contains all the configuration parameters for generic observables block.