22 #ifndef INCLUDED_GR_UHD_USRP_SOURCE_H
23 #define INCLUDED_GR_UHD_USRP_SOURCE_H
27 #include <uhd/usrp/multi_usrp.hpp>
29 #ifndef INCLUDED_UHD_STREAM_HPP
33 const std::string &cpu =
"",
34 const std::string &otw =
""
39 std::string cpu_format;
40 std::string otw_format;
42 std::vector<size_t> channels;
45 # define INCLUDED_UHD_STREAM_HPP
47 # define GR_UHD_USE_STREAM_API
83 const uhd::device_addr_t &device_addr,
84 const uhd::io_type_t &io_type,
111 const uhd::device_addr_t &device_addr,
129 virtual void set_start_time(
const uhd::time_spec_t &time) = 0;
142 virtual void issue_stream_cmd(
const uhd::stream_cmd_t &cmd) = 0;
151 virtual uhd::dict<std::string, std::string> get_usrp_info(
size_t chan = 0) = 0;
158 virtual void set_subdev_spec(
const std::string &spec,
size_t mboard = 0) = 0;
165 virtual std::string get_subdev_spec(
size_t mboard = 0) = 0;
171 virtual void set_samp_rate(
double rate) = 0;
178 virtual double get_samp_rate(
void) = 0;
184 virtual uhd::meta_range_t get_samp_rates(
void) = 0;
192 virtual uhd::tune_result_t set_center_freq(
193 const uhd::tune_request_t tune_request,
size_t chan = 0
205 return set_center_freq(uhd::tune_request_t(freq), chan);
213 virtual double get_center_freq(
size_t chan = 0) = 0;
220 virtual uhd::freq_range_t get_freq_range(
size_t chan = 0) = 0;
227 virtual void set_gain(
double gain,
size_t chan = 0) = 0;
235 virtual void set_gain(
double gain,
const std::string &name,
size_t chan = 0) = 0;
242 virtual double get_gain(
size_t chan = 0) = 0;
250 virtual double get_gain(
const std::string &name,
size_t chan = 0) = 0;
257 virtual std::vector<std::string> get_gain_names(
size_t chan = 0) = 0;
264 virtual uhd::gain_range_t get_gain_range(
size_t chan = 0) = 0;
272 virtual uhd::gain_range_t get_gain_range(
const std::string &name,
size_t chan = 0) = 0;
279 virtual void set_antenna(
const std::string &ant,
size_t chan = 0) = 0;
286 virtual std::string get_antenna(
size_t chan = 0) = 0;
293 virtual std::vector<std::string> get_antennas(
size_t chan = 0) = 0;
300 virtual void set_bandwidth(
double bandwidth,
size_t chan = 0) = 0;
307 virtual double get_bandwidth(
size_t chan = 0) = 0;
314 virtual uhd::freq_range_t get_bandwidth_range(
size_t chan = 0) = 0;
328 virtual void set_auto_dc_offset(
const bool enb,
size_t chan = 0) = 0;
337 virtual void set_dc_offset(
const std::complex<double> &offset,
size_t chan = 0) = 0;
346 virtual void set_iq_balance(
const std::complex<double> &correction,
size_t chan = 0) = 0;
354 virtual uhd::sensor_value_t get_sensor(
const std::string &name,
size_t chan = 0) = 0;
361 virtual std::vector<std::string> get_sensor_names(
size_t chan = 0) = 0;
365 return this->get_sensor(name, chan);
370 return this->get_sensor_names(chan);
379 virtual uhd::sensor_value_t get_mboard_sensor(
const std::string &name,
size_t mboard = 0) = 0;
386 virtual std::vector<std::string> get_mboard_sensor_names(
size_t mboard = 0) = 0;
394 virtual void set_clock_config(
const uhd::clock_config_t &clock_config,
size_t mboard = 0) = 0;
404 virtual void set_time_source(
const std::string &source,
const size_t mboard = 0) = 0;
411 virtual std::string get_time_source(
const size_t mboard) = 0;
418 virtual std::vector<std::string> get_time_sources(
const size_t mboard) = 0;
427 virtual void set_clock_source(
const std::string &source,
const size_t mboard = 0) = 0;
434 virtual std::string get_clock_source(
const size_t mboard) = 0;
441 virtual std::vector<std::string> get_clock_sources(
const size_t mboard) = 0;
448 virtual double get_clock_rate(
size_t mboard = 0) = 0;
455 virtual void set_clock_rate(
double rate,
size_t mboard = 0) = 0;
462 virtual uhd::time_spec_t get_time_now(
size_t mboard = 0) = 0;
469 virtual uhd::time_spec_t get_time_last_pps(
size_t mboard = 0) = 0;
476 virtual void set_time_now(
const uhd::time_spec_t &time_spec,
size_t mboard = 0) = 0;
482 virtual void set_time_next_pps(
const uhd::time_spec_t &time_spec) = 0;
488 virtual void set_time_unknown_pps(
const uhd::time_spec_t &time_spec) = 0;
500 virtual void set_command_time(
const uhd::time_spec_t &time_spec,
size_t mboard = 0) = 0;
507 virtual void clear_command_time(
size_t mboard = 0) = 0;
513 virtual uhd::usrp::dboard_iface::sptr get_dboard_iface(
size_t chan = 0) = 0;
519 virtual uhd::usrp::multi_usrp::sptr get_device(
void) = 0;
528 virtual void set_user_register(
const uint8_t addr,
const uint32_t data,
size_t mboard = 0) = 0;
538 virtual std::vector<std::complex<float> > finite_acquisition(
const size_t nsamps) = 0;
549 virtual std::vector<std::vector<std::complex<float> > > finite_acquisition_v(
const size_t nsamps) = 0;