summaryrefslogtreecommitdiff
path: root/gr-uhd/lib/usrp_source_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-uhd/lib/usrp_source_impl.h')
-rw-r--r--gr-uhd/lib/usrp_source_impl.h47
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 */