27 #ifndef GNSS_SDR_GNSS_FLOWGRAPH_H 28 #define GNSS_SDR_GNSS_FLOWGRAPH_H 35 #include <gnuradio/blocks/null_sink.h> 36 #include <gnuradio/runtime_types.h> 121 void set_configuration(
const std::shared_ptr<ConfigurationInterface>& configuration);
123 bool connected()
const 151 void priorize_satellites(
const std::vector<std::pair<int, Gnss_Satellite>>& visible_satellites);
154 void start_acquisition_helper();
156 void perform_hw_reset();
161 void set_signals_list();
162 void set_channels_state();
164 Gnss_Signal search_next_signal(
const std::string& searched_signal,
166 bool& is_primary_frequency,
167 bool& assistance_available,
168 float& estimated_doppler,
174 double project_doppler(
const std::string& searched_signal,
double primary_freq_doppler_hz);
175 bool is_multiband()
const;
177 std::vector<std::string> split_string(
const std::string& s,
char delim);
179 gr::top_block_sptr top_block_;
181 std::shared_ptr<ConfigurationInterface> configuration_;
182 std::shared_ptr<Concurrent_Queue<pmt::pmt_t>> queue_;
184 std::vector<std::shared_ptr<GNSSBlockInterface>> sig_source_;
185 std::vector<std::shared_ptr<GNSSBlockInterface>> sig_conditioner_;
186 std::vector<std::shared_ptr<ChannelInterface>> channels_;
187 std::shared_ptr<GNSSBlockInterface> observables_;
188 std::shared_ptr<GNSSBlockInterface> pvt_;
190 std::map<std::string, gr::basic_block_sptr> acq_resamplers_;
191 std::vector<gr::blocks::null_sink::sptr> null_sinks_;
193 gr::basic_block_sptr GnssSynchroMonitor_;
194 channel_status_msg_receiver_sptr channels_status_;
195 gnss_sdr_sample_counter_sptr ch_out_sample_counter_;
197 gnss_sdr_fpga_sample_counter_sptr ch_out_fpga_sample_counter_;
200 std::vector<unsigned int> channels_state_;
202 std::list<Gnss_Signal> available_GPS_1C_signals_;
203 std::list<Gnss_Signal> available_GPS_2S_signals_;
204 std::list<Gnss_Signal> available_GPS_L5_signals_;
205 std::list<Gnss_Signal> available_SBAS_1C_signals_;
206 std::list<Gnss_Signal> available_GAL_1B_signals_;
207 std::list<Gnss_Signal> available_GAL_5X_signals_;
208 std::list<Gnss_Signal> available_GAL_7X_signals_;
209 std::list<Gnss_Signal> available_GLO_1G_signals_;
210 std::list<Gnss_Signal> available_GLO_2G_signals_;
211 std::list<Gnss_Signal> available_BDS_B1_signals_;
212 std::list<Gnss_Signal> available_BDS_B3_signals_;
228 std::map<std::string, StringValue> mapStringValues_;
230 std::string config_file_;
232 std::mutex signal_list_mutex_;
236 int acq_channels_count_;
237 int max_acq_channels_;
242 bool enable_monitor_;
245 #endif // GNSS_SDR_GNSS_FLOWGRAPH_H Interface of a thread-safe std::queue.
void stop()
Stop the flow graph.
This class represents an interface to a PVT block.
This class represents a GNSS flow graph.
void disconnect()
Disconnect the blocks in the flow graph.
bool send_telemetry_msg(const pmt::pmt_t &msg)
Sends a GNU Radio asynchronous message from telemetry to PVT.
~GNSSFlowgraph()
Destructor.
Simple block to report the current receiver time based on the output of the tracking or telemetry blo...
void wait()
Wait for a flowgraph to complete.
This class represents an interface to a PVT block.
Implementation of the Gnss_Signal class.
void acquisition_manager(unsigned int who)
Manage satellite acquisition.
This abstract class represents an interface to configuration parameters.
Simple block to report the current receiver time based on the output of the tracking or telemetry blo...
void set_configuration(const std::shared_ptr< ConfigurationInterface > &configuration)
Set flow graph configuratiob.
This class represents a GNSS satellite.
GNSSFlowgraph(std::shared_ptr< ConfigurationInterface > configuration, std::shared_ptr< Concurrent_Queue< pmt::pmt_t >> queue)
Constructor that initializes the receiver flow graph.
This abstract class represents an interface to a channel GNSS block.
std::shared_ptr< PvtInterface > get_pvt()
Returns a smart pointer to the PVT object.
void connect()
Connects the defined blocks in the flow graph.
This class represents a GNSS signal.
This abstract class represents an interface to GNSS blocks.
GNU Radio block that receives asynchronous channel messages from acquisition and tracking blocks...
void start()
Start the flow graph.
void apply_action(unsigned int who, unsigned int what)
Applies an action to the flow graph.
void priorize_satellites(const std::vector< std::pair< int, Gnss_Satellite >> &visible_satellites)
Priorize visible satellites in the specified vector.