diff options
Diffstat (limited to 'gr-uhd/lib/usrp_source_impl.h')
-rw-r--r-- | gr-uhd/lib/usrp_source_impl.h | 47 |
1 files changed, 5 insertions, 42 deletions
diff --git a/gr-uhd/lib/usrp_source_impl.h b/gr-uhd/lib/usrp_source_impl.h index 0cbbe2b16b..9f6fc1a759 100644 --- a/gr-uhd/lib/usrp_source_impl.h +++ b/gr-uhd/lib/usrp_source_impl.h @@ -20,10 +20,10 @@ * Boston, MA 02110-1301, USA. */ +#include "usrp_block_impl.h" #include <gnuradio/uhd/usrp_source.h> #include <uhd/convert.hpp> #include <boost/thread/mutex.hpp> -#include "usrp_common.h" static const pmt::pmt_t TIME_KEY = pmt::string_to_symbol("rx_time"); static const pmt::pmt_t RATE_KEY = pmt::string_to_symbol("rx_rate"); @@ -51,15 +51,13 @@ namespace gr { /*********************************************************************** * UHD Multi USRP Source Impl **********************************************************************/ - class usrp_source_impl : public usrp_source, public usrp_common_impl + class usrp_source_impl : public usrp_source, public usrp_block_impl { public: usrp_source_impl(const ::uhd::device_addr_t &device_addr, const ::uhd::stream_args_t &stream_args); ~usrp_source_impl(); - void setup_rpc(); - // Get Commands ::uhd::dict<std::string, std::string> get_usrp_info(size_t chan); std::string get_subdev_spec(size_t mboard); @@ -77,17 +75,7 @@ namespace gr { std::vector<std::string> get_antennas(size_t chan); ::uhd::sensor_value_t get_sensor(const std::string &name, size_t chan); std::vector<std::string> get_sensor_names(size_t chan); - ::uhd::sensor_value_t get_mboard_sensor(const std::string &name, size_t mboard); - std::vector<std::string> get_mboard_sensor_names(size_t mboard); - std::string get_time_source(const size_t mboard); - std::vector<std::string> get_time_sources(const size_t mboard); - std::string get_clock_source(const size_t mboard); - std::vector<std::string> get_clock_sources(const size_t mboard); - double get_clock_rate(size_t mboard); - ::uhd::time_spec_t get_time_now(size_t mboard = 0); - ::uhd::time_spec_t get_time_last_pps(size_t mboard); ::uhd::usrp::dboard_iface::sptr get_dboard_iface(size_t chan); - ::uhd::usrp::multi_usrp::sptr get_device(void); // Set Commands void set_subdev_spec(const std::string &spec, size_t mboard); @@ -105,20 +93,10 @@ namespace gr { void set_dc_offset(const std::complex<double> &offset, size_t chan); void set_auto_iq_balance(const bool enable, size_t chan); void set_iq_balance(const std::complex<double> &correction, size_t chan); - void set_clock_config(const ::uhd::clock_config_t &clock_config, size_t mboard); - void set_time_source(const std::string &source, const size_t mboard); - void set_clock_source(const std::string &source, const size_t mboard); - void set_clock_rate(double rate, size_t mboard); - void set_time_now(const ::uhd::time_spec_t &time_spec, size_t mboard); - void set_time_next_pps(const ::uhd::time_spec_t &time_spec); - void set_time_unknown_pps(const ::uhd::time_spec_t &time_spec); - void set_command_time(const ::uhd::time_spec_t &time_spec, size_t mboard); - void set_user_register(const uint8_t addr, const uint32_t data, size_t mboard); void set_stream_args(const ::uhd::stream_args_t &stream_args); void set_start_time(const ::uhd::time_spec_t &time); void issue_stream_cmd(const ::uhd::stream_cmd_t &cmd); - void clear_command_time(size_t mboard); void flush(void); bool start(void); bool stop(void); @@ -129,9 +107,9 @@ namespace gr { gr_vector_void_star &output_items); private: - /*! \brief Run through all 'lock' sensors and make sure they are actually locked. - */ - bool _check_sensors_locked(); + //! Like set_center_freq(), but uses _curr_freq and _curr_lo_offset + ::uhd::tune_result_t _set_center_freq_from_internals(size_t chan); + #ifdef GR_UHD_USE_STREAM_API ::uhd::rx_streamer::sptr _rx_stream; size_t _samps_per_packet; @@ -145,21 +123,6 @@ namespace gr { double _center_freq; boost::recursive_mutex d_mutex; - - /****** Command interface related **********/ - //! Receives commands and handles them - void msg_handler_command(pmt::pmt_t msg); - //! Stores the last value we told the USRP to tune to for every channel - // (this is not necessarily the true value the USRP is currently tuned to!). - // We could theoretically ask the device, but during streaming, we want to minimize - // communication with the USRP. - std::vector<double> _curr_freq; - //! Stores the last value we told the USRP to have the LO offset for every channel. - std::vector<double> _curr_lo_offset; - //! Stores the last gain value we told the USRP to have for every channel. - std::vector<double> _curr_gain; - boost::dynamic_bitset<> _chans_to_tune; - bool _call_tune; }; } /* namespace uhd */ |