UHD  003.007.002-0-unknown
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
uhd::usrp::multi_usrp Class Reference

#include <multi_usrp.hpp>

Public Types

typedef boost::shared_ptr
< multi_usrp
sptr

Public Member Functions

virtual device::sptr get_device (void)=0
virtual rx_streamer::sptr get_rx_stream (const stream_args_t &args)=0
 Convenience method to get a RX streamer. See also uhd::device::get_rx_stream().
virtual tx_streamer::sptr get_tx_stream (const stream_args_t &args)=0
 Convenience method to get a TX streamer. See also uhd::device::get_rx_stream().
virtual dict< std::string,
std::string > 
get_usrp_rx_info (size_t chan=0)=0
virtual dict< std::string,
std::string > 
get_usrp_tx_info (size_t chan=0)=0
virtual void set_master_clock_rate (double rate, size_t mboard=ALL_MBOARDS)=0
virtual double get_master_clock_rate (size_t mboard=0)=0
virtual std::string get_pp_string (void)=0
virtual std::string get_mboard_name (size_t mboard=0)=0
virtual time_spec_t get_time_now (size_t mboard=0)=0
virtual time_spec_t get_time_last_pps (size_t mboard=0)=0
virtual void set_time_now (const time_spec_t &time_spec, size_t mboard=ALL_MBOARDS)=0
virtual void set_time_next_pps (const time_spec_t &time_spec, size_t mboard=ALL_MBOARDS)=0
virtual void set_time_unknown_pps (const time_spec_t &time_spec)=0
virtual bool get_time_synchronized (void)=0
virtual void set_command_time (const uhd::time_spec_t &time_spec, size_t mboard=ALL_MBOARDS)=0
virtual void clear_command_time (size_t mboard=ALL_MBOARDS)=0
virtual void issue_stream_cmd (const stream_cmd_t &stream_cmd, size_t chan=ALL_CHANS)=0
virtual void set_clock_config (const clock_config_t &clock_config, size_t mboard=ALL_MBOARDS)=0
virtual void set_time_source (const std::string &source, const size_t mboard=ALL_MBOARDS)=0
virtual std::string get_time_source (const size_t mboard)=0
virtual std::vector< std::string > get_time_sources (const size_t mboard)=0
virtual void set_clock_source (const std::string &source, const size_t mboard=ALL_MBOARDS)=0
virtual std::string get_clock_source (const size_t mboard)=0
virtual std::vector< std::string > get_clock_sources (const size_t mboard)=0
virtual void set_clock_source_out (const bool enb, const size_t mboard=ALL_MBOARDS)=0
virtual void set_time_source_out (const bool enb, const size_t mboard=ALL_MBOARDS)=0
virtual size_t get_num_mboards (void)=0
virtual sensor_value_t get_mboard_sensor (const std::string &name, size_t mboard=0)=0
virtual std::vector< std::string > get_mboard_sensor_names (size_t mboard=0)=0
virtual void set_user_register (const boost::uint8_t addr, const boost::uint32_t data, size_t mboard=ALL_MBOARDS)=0
virtual void set_rx_subdev_spec (const uhd::usrp::subdev_spec_t &spec, size_t mboard=ALL_MBOARDS)=0
virtual uhd::usrp::subdev_spec_t get_rx_subdev_spec (size_t mboard=0)=0
virtual size_t get_rx_num_channels (void)=0
virtual std::string get_rx_subdev_name (size_t chan=0)=0
virtual void set_rx_rate (double rate, size_t chan=ALL_CHANS)=0
virtual double get_rx_rate (size_t chan=0)=0
virtual meta_range_t get_rx_rates (size_t chan=0)=0
virtual tune_result_t set_rx_freq (const tune_request_t &tune_request, size_t chan=0)=0
virtual double get_rx_freq (size_t chan=0)=0
virtual freq_range_t get_rx_freq_range (size_t chan=0)=0
virtual freq_range_t get_fe_rx_freq_range (size_t chan=0)=0
virtual void set_rx_gain (double gain, const std::string &name, size_t chan=0)=0
void set_rx_gain (double gain, size_t chan=0)
 A convenience wrapper for setting overall RX gain.
virtual double get_rx_gain (const std::string &name, size_t chan=0)=0
double get_rx_gain (size_t chan=0)
 A convenience wrapper for getting overall RX gain.
virtual gain_range_t get_rx_gain_range (const std::string &name, size_t chan=0)=0
gain_range_t get_rx_gain_range (size_t chan=0)
 A convenience wrapper for getting overall RX gain range.
virtual std::vector< std::string > get_rx_gain_names (size_t chan=0)=0
virtual void set_rx_antenna (const std::string &ant, size_t chan=0)=0
virtual std::string get_rx_antenna (size_t chan=0)=0
virtual std::vector< std::string > get_rx_antennas (size_t chan=0)=0
UHD_DEPRECATED bool get_rx_lo_locked (size_t chan=0)
virtual void set_rx_bandwidth (double bandwidth, size_t chan=0)=0
virtual double get_rx_bandwidth (size_t chan=0)=0
virtual meta_range_t get_rx_bandwidth_range (size_t chan=0)=0
UHD_DEPRECATED double read_rssi (size_t chan=0)
virtual dboard_iface::sptr get_rx_dboard_iface (size_t chan=0)=0
virtual sensor_value_t get_rx_sensor (const std::string &name, size_t chan=0)=0
virtual std::vector< std::string > get_rx_sensor_names (size_t chan=0)=0
virtual void set_rx_dc_offset (const bool enb, size_t chan=ALL_CHANS)=0
virtual void set_rx_dc_offset (const std::complex< double > &offset, size_t chan=ALL_CHANS)=0
virtual void set_rx_iq_balance (const std::complex< double > &correction, size_t chan=ALL_CHANS)=0
virtual void set_tx_subdev_spec (const uhd::usrp::subdev_spec_t &spec, size_t mboard=ALL_MBOARDS)=0
virtual uhd::usrp::subdev_spec_t get_tx_subdev_spec (size_t mboard=0)=0
virtual size_t get_tx_num_channels (void)=0
virtual std::string get_tx_subdev_name (size_t chan=0)=0
virtual void set_tx_rate (double rate, size_t chan=ALL_CHANS)=0
virtual double get_tx_rate (size_t chan=0)=0
virtual meta_range_t get_tx_rates (size_t chan=0)=0
virtual tune_result_t set_tx_freq (const tune_request_t &tune_request, size_t chan=0)=0
virtual double get_tx_freq (size_t chan=0)=0
virtual freq_range_t get_tx_freq_range (size_t chan=0)=0
virtual freq_range_t get_fe_tx_freq_range (size_t chan=0)=0
virtual void set_tx_gain (double gain, const std::string &name, size_t chan=0)=0
void set_tx_gain (double gain, size_t chan=0)
 A convenience wrapper for setting overall TX gain.
virtual double get_tx_gain (const std::string &name, size_t chan=0)=0
double get_tx_gain (size_t chan=0)
 A convenience wrapper for getting overall TX gain.
virtual gain_range_t get_tx_gain_range (const std::string &name, size_t chan=0)=0
gain_range_t get_tx_gain_range (size_t chan=0)
 A convenience wrapper for getting overall TX gain range.
virtual std::vector< std::string > get_tx_gain_names (size_t chan=0)=0
virtual void set_tx_antenna (const std::string &ant, size_t chan=0)=0
virtual std::string get_tx_antenna (size_t chan=0)=0
virtual std::vector< std::string > get_tx_antennas (size_t chan=0)=0
UHD_DEPRECATED bool get_tx_lo_locked (size_t chan=0)
virtual void set_tx_bandwidth (double bandwidth, size_t chan=0)=0
virtual double get_tx_bandwidth (size_t chan=0)=0
virtual meta_range_t get_tx_bandwidth_range (size_t chan=0)=0
virtual dboard_iface::sptr get_tx_dboard_iface (size_t chan=0)=0
virtual sensor_value_t get_tx_sensor (const std::string &name, size_t chan=0)=0
virtual std::vector< std::string > get_tx_sensor_names (size_t chan=0)=0
virtual void set_tx_dc_offset (const std::complex< double > &offset, size_t chan=ALL_CHANS)=0
virtual void set_tx_iq_balance (const std::complex< double > &correction, size_t chan=ALL_CHANS)=0
virtual std::vector< std::string > get_gpio_banks (const size_t mboard)=0
virtual void set_gpio_attr (const std::string &bank, const std::string &attr, const boost::uint32_t value, const boost::uint32_t mask=0xffffffff, const size_t mboard=0)=0
virtual boost::uint32_t get_gpio_attr (const std::string &bank, const std::string &attr, const size_t mboard=0)=0

Static Public Member Functions

static sptr make (const device_addr_t &dev_addr)

Static Public Attributes

static const size_t ALL_MBOARDS = size_t(~0)
 A wildcard motherboard index.
static const size_t ALL_CHANS = size_t(~0)
 A wildcard channel index.
static const std::string ALL_GAINS
 A wildcard gain element name.

Detailed Description

The Multi-USRP device class:

This class facilitates ease-of-use for most use-case scenarios. The wrapper provides convenience functions to tune the devices, set the dboard gains, antennas, filters, and other properties. This class can be used to interface with a single USRP with one or more channels, or multiple USRPs in a homogeneous setup. All members take an optional parameter for board number or channel number. In the single device, single channel case, these parameters can be unspecified.

When using a single device with multiple channels:

When using multiple devices in a configuration:

Example to setup channel mapping for multiple devices:

//create a multi_usrp with two boards in the configuration
device_addr_t dev_addr;
dev_addr["addr0"] = "192.168.10.2"
dev_addr["addr1"] = "192.168.10.3";
multi_usrp::sptr dev = multi_usrp::make(dev_addr);
//set the board on 10.2 to use the A RX frontend (RX channel 0)
dev->set_rx_subdev_spec("A:A", 0);
//set the board on 10.3 to use the B RX frontend (RX channel 1)
dev->set_rx_subdev_spec("A:B", 1);
//set both boards to use the AB TX frontend (TX channels 0 and 1)
dev->set_tx_subdev_spec("A:AB", multi_usrp::ALL_MBOARDS);
//now that all the channels are mapped, continue with configuration...
 

Member Typedef Documentation

typedef boost::shared_ptr<multi_usrp> uhd::usrp::multi_usrp::sptr

Member Function Documentation

virtual void uhd::usrp::multi_usrp::clear_command_time ( size_t  mboard = ALL_MBOARDS)
pure virtual

Clear the command time so future commands are sent ASAP.

Parameters
mboardwhich motherboard to set the config
virtual std::string uhd::usrp::multi_usrp::get_clock_source ( const size_t  mboard)
pure virtual

Get the currently set clock source.

Parameters
mboardwhich motherboard to get the config
Returns
the string representing the clock source
virtual std::vector<std::string> uhd::usrp::multi_usrp::get_clock_sources ( const size_t  mboard)
pure virtual

Get a list of possible clock sources)