USRP Hardware Driver and USRP Manual  Version: 003.008.003-0-g87dfdc3c
UHD and USRP Manual
uhd::usrp::multi_usrp Class Referenceabstract

#include <uhd/usrp/multi_usrp.hpp>

Inheritance diagram for uhd::usrp::multi_usrp:

Public Types

typedef boost::shared_ptr< multi_usrpsptr
 

Public Member Functions

virtual ~multi_usrp (void)=0
 
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(). More...
 
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(). More...
 
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. More...
 
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. More...
 
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. More...
 
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
 
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
 
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. More...
 
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. More...
 
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. More...
 
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
 
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. More...
 
static const size_t ALL_CHANS = size_t(~0)
 A wildcard channel index. More...
 
static const std::string ALL_GAINS
 A wildcard gain element name. More...
 

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:

  • Channel mapping is determined by the frontend specifications
  • All channels share a common RX sample rate
  • All channels share a common TX sample rate

When using multiple devices in a configuration:

  • Channel mapping is determined by the device address arguments
  • All boards share a common RX sample rate
  • All boards share a common TX sample rate
  • All boards share a common RX frontend specification size
  • All boards share a common TX frontend specification size
  • All boards must have synchronized times (see the set_time_*() calls)

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

◆ sptr

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

Constructor & Destructor Documentation

◆ ~multi_usrp()

virtual uhd::usrp::multi_usrp::~multi_usrp ( void  )
pure virtual

Member Function Documentation

◆ clear_command_time()

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

◆ get_clock_source()

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

◆ get_clock_sources()

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.

Parameters
mboardwhich motherboard to get the list
Returns
a vector of strings for possible settings

◆ get_device()

virtual device::sptr uhd::usrp::multi_usrp::get_device ( void  )
pure virtual

Get the underlying device object. This is needed to get access to the streaming API and properties.

Returns
the device object within this single usrp

◆ get_fe_rx_freq_range()

virtual freq_range_t uhd::usrp::multi_usrp::get_fe_rx_freq_range ( size_t  chan = 0)
pure virtual

Get the center frequency range of the RF frontend.

Parameters
chanthe channel index 0 to N-1
Returns
a frequency range object

◆ get_fe_tx_freq_range()

virtual freq_range_t uhd::usrp::multi_usrp::get_fe_tx_freq_range ( size_t  chan = 0)
pure virtual

Get the center frequency range of the TX frontend.

Parameters
chanthe channel index 0 to N-1
Returns
a frequency range object

◆ get_gpio_attr()

virtual boost::uint32_t uhd::usrp::multi_usrp::get_gpio_attr ( const std::string &  bank,
const std::string &  attr,
const size_t  mboard = 0 
)
pure virtual

Get a GPIO attribute on a particular GPIO bank. Possible attribute names:

  • CTRL - 1 for ATR mode 0 for GPIO mode
  • DDR - 1 for output 0 for input
  • OUT - GPIO output level (not ATR mode)
  • ATR_0X - ATR idle state
  • ATR_RX - ATR receive only state
  • ATR_TX - ATR transmit only state
  • ATR_XX - ATR full duplex state
  • READBACK - readback input GPIOs
    Parameters
    bankthe name of a GPIO bank
    attrthe name of a GPIO attribute
    mboardthe motherboard index 0 to M-1
    Returns
    the value set for this attribute

◆ get_gpio_banks()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_gpio_banks ( const size_t  mboard)
pure virtual

Enumerate gpio banks on the specified device.

Parameters
mboardthe motherboard index 0 to M-1
Returns
a list of string for each bank name

◆ get_master_clock_rate()

virtual double uhd::usrp::multi_usrp::get_master_clock_rate ( size_t  mboard = 0)
pure virtual

Get the master clock rate.

Parameters
mboardthe motherboard index 0 to M-1
Returns
the master clock rate in Hz.

◆ get_mboard_name()

virtual std::string uhd::usrp::multi_usrp::get_mboard_name ( size_t  mboard = 0)
pure virtual

Get canonical name for this USRP motherboard.

Parameters
mboardwhich motherboard to query
Returns
a string representing the name

◆ get_mboard_sensor()

virtual sensor_value_t uhd::usrp::multi_usrp::get_mboard_sensor ( const std::string &  name,
size_t  mboard = 0 
)
pure virtual

Get a motherboard sensor value.

Parameters
namethe name of the sensor
mboardthe motherboard index 0 to M-1
Returns
a sensor value object

◆ get_mboard_sensor_names()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_mboard_sensor_names ( size_t  mboard = 0)
pure virtual

Get a list of possible motherboard sensor names.

Parameters
mboardthe motherboard index 0 to M-1
Returns
a vector of sensor names

◆ get_num_mboards()

virtual size_t uhd::usrp::multi_usrp::get_num_mboards ( void  )
pure virtual

Get the number of USRP motherboards in this configuration.

◆ get_pp_string()

virtual std::string uhd::usrp::multi_usrp::get_pp_string ( void  )
pure virtual

Get a printable summary for this USRP configuration.

Returns
a printable string

◆ get_rx_antenna()

virtual std::string uhd::usrp::multi_usrp::get_rx_antenna ( size_t  chan = 0)
pure virtual

Get the selected RX antenna on the frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the antenna name

◆ get_rx_antennas()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_rx_antennas ( size_t  chan = 0)
pure virtual

Get a list of possible RX antennas on the frontend.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of antenna names

◆ get_rx_bandwidth()

virtual double uhd::usrp::multi_usrp::get_rx_bandwidth ( size_t  chan = 0)
pure virtual

Get the RX bandwidth on the frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the bandwidth in Hz

◆ get_rx_bandwidth_range()

virtual meta_range_t uhd::usrp::multi_usrp::get_rx_bandwidth_range ( size_t  chan = 0)
pure virtual

Get the range of the possible RX bandwidth settings.

Parameters
chanthe channel index 0 to N-1
Returns
a range of bandwidths in Hz

◆ get_rx_dboard_iface()

virtual dboard_iface::sptr uhd::usrp::multi_usrp::get_rx_dboard_iface ( size_t  chan = 0)
pure virtual

Get the dboard interface object for the RX frontend. The dboard interface gives access to GPIOs, SPI, I2C, low-speed ADC and DAC. Use at your own risk!

Parameters
chanthe channel index 0 to N-1
Returns
the dboard interface sptr

◆ get_rx_freq()

virtual double uhd::usrp::multi_usrp::get_rx_freq ( size_t  chan = 0)
pure virtual

Get the RX center frequency.

Parameters
chanthe channel index 0 to N-1
Returns
the frequency in Hz

◆ get_rx_freq_range()

virtual freq_range_t uhd::usrp::multi_usrp::get_rx_freq_range ( size_t  chan = 0)
pure virtual

Get the RX center frequency range. This range includes the overall tunable range of the RX chain, including frontend chain and digital down conversion chain. This tunable limit does not include the baseband bandwidth; users should assume that the actual range is +/- samp_rate/2.

Parameters
chanthe channel index 0 to N-1
Returns
a frequency range object

◆ get_rx_gain() [1/2]

virtual double uhd::usrp::multi_usrp::get_rx_gain ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get the RX gain value for the specified gain element. For an empty name, sum across all gain elements.

Parameters
namethe name of the gain element
chanthe channel index 0 to N-1
Returns
the gain in dB

◆ get_rx_gain() [2/2]

double uhd::usrp::multi_usrp::get_rx_gain ( size_t  chan = 0)
inline

A convenience wrapper for getting overall RX gain.

◆ get_rx_gain_names()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_rx_gain_names ( size_t  chan = 0)
pure virtual

Get the names of the gain elements in the RX chain. Gain elements are ordered from antenna to FPGA.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of gain element names

◆ get_rx_gain_range() [1/2]

virtual gain_range_t uhd::usrp::multi_usrp::get_rx_gain_range ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get the RX gain range for the specified gain element. For an empty name, calculate the overall gain range.

Parameters
namethe name of the gain element
chanthe channel index 0 to N-1
Returns
a gain range object

◆ get_rx_gain_range() [2/2]

gain_range_t uhd::usrp::multi_usrp::get_rx_gain_range ( size_t  chan = 0)
inline

A convenience wrapper for getting overall RX gain range.

◆ get_rx_num_channels()

virtual size_t uhd::usrp::multi_usrp::get_rx_num_channels ( void  )
pure virtual

Get the number of RX channels in this configuration. This is the number of USRPs times the number of RX channels per board, where the number of RX channels per board is homogeneous among all USRPs.

◆ get_rx_rate()

virtual double uhd::usrp::multi_usrp::get_rx_rate ( size_t  chan = 0)
pure virtual

Gets the RX sample rate.

Parameters
chanthe channel index 0 to N-1
Returns
the rate in Sps

◆ get_rx_rates()

virtual meta_range_t uhd::usrp::multi_usrp::get_rx_rates ( size_t  chan = 0)
pure virtual

Get a range of possible RX rates.

Parameters
chanthe channel index 0 to N-1
Returns
the meta range of rates

◆ get_rx_sensor()

virtual sensor_value_t uhd::usrp::multi_usrp::get_rx_sensor ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get an RX frontend sensor value.

Parameters
namethe name of the sensor
chanthe channel index 0 to N-1
Returns
a sensor value object

◆ get_rx_sensor_names()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_rx_sensor_names ( size_t  chan = 0)
pure virtual

Get a list of possible RX frontend sensor names.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of sensor names

◆ get_rx_stream()

virtual rx_streamer::sptr uhd::usrp::multi_usrp::get_rx_stream ( const stream_args_t args)
pure virtual

Convenience method to get a RX streamer. See also uhd::device::get_rx_stream().

◆ get_rx_subdev_name()

virtual std::string uhd::usrp::multi_usrp::get_rx_subdev_name ( size_t  chan = 0)
pure virtual

Get the name of the RX frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the frontend name

◆ get_rx_subdev_spec()

virtual uhd::usrp::subdev_spec_t uhd::usrp::multi_usrp::get_rx_subdev_spec ( size_t  mboard = 0)
pure virtual

Get the RX frontend specification.

Parameters
mboardthe motherboard index 0 to M-1
Returns
the frontend specification in use

◆ get_time_last_pps()

virtual time_spec_t uhd::usrp::multi_usrp::get_time_last_pps ( size_t  mboard = 0)
pure virtual

Get the time when the last pps pulse occured.

Parameters
mboardwhich motherboard to query
Returns
a timespec representing the last pps

◆ get_time_now()

virtual time_spec_t uhd::usrp::multi_usrp::get_time_now ( size_t  mboard = 0)
pure virtual

Get the current time in the usrp time registers.

Parameters
mboardwhich motherboard to query
Returns
a timespec representing current usrp time

◆ get_time_source()

virtual std::string uhd::usrp::multi_usrp::get_time_source ( const size_t  mboard)
pure virtual

Get the currently set time source.

Parameters
mboardwhich motherboard to get the config
Returns
the string representing the time source

◆ get_time_sources()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_time_sources ( const size_t  mboard)
pure virtual

Get a list of possible time sources.

Parameters
mboardwhich motherboard to get the list
Returns
a vector of strings for possible settings

◆ get_time_synchronized()

virtual bool uhd::usrp::multi_usrp::get_time_synchronized ( void  )
pure virtual

Are the times across all motherboards in this configuration synchronized? Checks that all time registers are approximately close but not exact, given that the RTT may varying for a control packet transaction.

Returns
true when all motherboards time registers are in sync

◆ get_tx_antenna()

virtual std::string uhd::usrp::multi_usrp::get_tx_antenna ( size_t  chan = 0)
pure virtual

Get the selected TX antenna on the frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the antenna name

◆ get_tx_antennas()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_tx_antennas ( size_t  chan = 0)
pure virtual

Get a list of possible TX antennas on the frontend.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of antenna names

◆ get_tx_bandwidth()

virtual double uhd::usrp::multi_usrp::get_tx_bandwidth ( size_t  chan = 0)
pure virtual

Get the TX bandwidth on the frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the bandwidth in Hz

◆ get_tx_bandwidth_range()

virtual meta_range_t uhd::usrp::multi_usrp::get_tx_bandwidth_range ( size_t  chan = 0)
pure virtual

Get the range of the possible TX bandwidth settings.

Parameters
chanthe channel index 0 to N-1
Returns
a range of bandwidths in Hz

◆ get_tx_dboard_iface()

virtual dboard_iface::sptr uhd::usrp::multi_usrp::get_tx_dboard_iface ( size_t  chan = 0)
pure virtual

Get the dboard interface object for the TX frontend. The dboard interface gives access to GPIOs, SPI, I2C, low-speed ADC and DAC. Use at your own risk!

Parameters
chanthe channel index 0 to N-1
Returns
the dboard interface sptr

◆ get_tx_freq()

virtual double uhd::usrp::multi_usrp::get_tx_freq ( size_t  chan = 0)
pure virtual

Get the TX center frequency.

Parameters
chanthe channel index 0 to N-1
Returns
the frequency in Hz

◆ get_tx_freq_range()

virtual freq_range_t uhd::usrp::multi_usrp::get_tx_freq_range ( size_t  chan = 0)
pure virtual

Get the TX center frequency range. This range includes the overall tunable range of the TX chain, including frontend chain and digital up conversion chain. This tunable limit does not include the baseband bandwidth; users should assume that the actual range is +/- samp_rate/2.

Parameters
chanthe channel index 0 to N-1
Returns
a frequency range object

◆ get_tx_gain() [1/2]

virtual double uhd::usrp::multi_usrp::get_tx_gain ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get the TX gain value for the specified gain element. For an empty name, sum across all gain elements.

Parameters
namethe name of the gain element
chanthe channel index 0 to N-1
Returns
the gain in dB

◆ get_tx_gain() [2/2]

double uhd::usrp::multi_usrp::get_tx_gain ( size_t  chan = 0)
inline

A convenience wrapper for getting overall TX gain.

◆ get_tx_gain_names()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_tx_gain_names ( size_t  chan = 0)
pure virtual

Get the names of the gain elements in the TX chain. Gain elements are ordered from antenna to FPGA.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of gain element names

◆ get_tx_gain_range() [1/2]

virtual gain_range_t uhd::usrp::multi_usrp::get_tx_gain_range ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get the TX gain range for the specified gain element. For an empty name, calculate the overall gain range.

Parameters
namethe name of the gain element
chanthe channel index 0 to N-1
Returns
a gain range object

◆ get_tx_gain_range() [2/2]

gain_range_t uhd::usrp::multi_usrp::get_tx_gain_range ( size_t  chan = 0)
inline

A convenience wrapper for getting overall TX gain range.

◆ get_tx_num_channels()

virtual size_t uhd::usrp::multi_usrp::get_tx_num_channels ( void  )
pure virtual

Get the number of TX channels in this configuration. This is the number of USRPs times the number of TX channels per board, where the number of TX channels per board is homogeneous among all USRPs.

◆ get_tx_rate()

virtual double uhd::usrp::multi_usrp::get_tx_rate ( size_t  chan = 0)
pure virtual

Gets the TX sample rate.

Parameters
chanthe channel index 0 to N-1
Returns
the rate in Sps

◆ get_tx_rates()

virtual meta_range_t uhd::usrp::multi_usrp::get_tx_rates ( size_t  chan = 0)
pure virtual

Get a range of possible TX rates.

Parameters
chanthe channel index 0 to N-1
Returns
the meta range of rates

◆ get_tx_sensor()

virtual sensor_value_t uhd::usrp::multi_usrp::get_tx_sensor ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get an TX frontend sensor value.

Parameters
namethe name of the sensor
chanthe channel index 0 to N-1
Returns
a sensor value object

◆ get_tx_sensor_names()

virtual std::vector<std::string> uhd::usrp::multi_usrp::get_tx_sensor_names ( size_t  chan = 0)
pure virtual

Get a list of possible TX frontend sensor names.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of sensor names

◆ get_tx_stream()

virtual tx_streamer::sptr uhd::usrp::multi_usrp::get_tx_stream ( const stream_args_t args)
pure virtual

Convenience method to get a TX streamer. See also uhd::device::get_rx_stream().

◆ get_tx_subdev_name()

virtual std::string uhd::usrp::multi_usrp::get_tx_subdev_name ( size_t  chan = 0)
pure virtual

Get the name of the TX frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the frontend name

◆ get_tx_subdev_spec()

virtual uhd::usrp::subdev_spec_t uhd::usrp::multi_usrp::get_tx_subdev_spec ( size_t  mboard = 0)
pure virtual

Get the TX frontend specification.

Parameters
mboardthe motherboard index 0 to M-1
Returns
the frontend specification in use

◆ get_usrp_rx_info()

virtual dict<std::string, std::string> uhd::usrp::multi_usrp::get_usrp_rx_info ( size_t  chan = 0)
pure virtual

Returns identifying information about this USRP's configuration. Returns motherboard ID, name, and serial. Returns daughterboard RX ID, subdev name and spec, serial, and antenna.

Parameters
chanchannel index 0 to N-1
Returns
RX info

◆ get_usrp_tx_info()

virtual dict<std::string, std::string> uhd::usrp::multi_usrp::get_usrp_tx_info ( size_t  chan = 0)
pure virtual

Returns identifying information about this USRP's configuration. Returns motherboard ID, name, and serial. Returns daughterboard TX ID, subdev name and spec, serial, and antenna.

Parameters
chanchannel index 0 to N-1
Returns
TX info

◆ issue_stream_cmd()

virtual void uhd::usrp::multi_usrp::issue_stream_cmd ( const stream_cmd_t stream_cmd,
size_t  chan = ALL_CHANS 
)
pure virtual

Issue a stream command to the usrp device. This tells the usrp to send samples into the host. See the documentation for stream_cmd_t for more info.

With multiple devices, the first stream command in a chain of commands should have a time spec in the near future and stream_now = false; to ensure that the packets can be aligned by their time specs.

Parameters
stream_cmdthe stream command to issue
chanthe channel index 0 to N-1

◆ make()

static sptr uhd::usrp::multi_usrp::make ( const device_addr_t dev_addr)
static

Make a new multi usrp from the device address.

Parameters
dev_addrthe device address
Returns
a new single usrp object

◆ set_clock_config()

virtual void uhd::usrp::multi_usrp::set_clock_config ( const clock_config_t clock_config,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the clock configuration for the usrp device. DEPRECATED in favor of set time and clock source calls. This tells the usrp how to get a 10MHz reference and PPS clock. See the documentation for clock_config_t for more info.

Parameters
clock_configthe clock configuration to set
mboardwhich motherboard to set the config

◆ set_clock_source()

virtual void uhd::usrp::multi_usrp::set_clock_source ( const std::string &  source,
const size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the clock source for the usrp device. This sets the source for a 10 MHz reference clock. Typical options for source: internal, external, MIMO.

Parameters
sourcea string representing the clock source
mboardwhich motherboard to set the config

◆ set_clock_source_out()

virtual void uhd::usrp::multi_usrp::set_clock_source_out ( const bool  enb,
const size_t  mboard = ALL_MBOARDS 
)
pure virtual

Send the clock source to an output connector. This call is only applicable on devices with reference outputs. By default, the reference output will be enabled for ease of use. This call may be used to enable or disable the output.

Parameters
enbtrue to output the clock source.
mboardwhich motherboard to set

◆ set_command_time()

virtual void uhd::usrp::multi_usrp::set_command_time ( const uhd::time_spec_t time_spec,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the time at which the control commands will take effect.

A timed command will back-pressure all subsequent timed commands, assuming that the subsequent commands occur within the time-window. If the time spec is late, the command will be activated upon arrival.

Parameters
time_specthe time at which the next command will activate
mboardwhich motherboard to set the config

◆ set_gpio_attr()

virtual void uhd::usrp::multi_usrp::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 
)
pure virtual

Set a GPIO attribute on a particular GPIO bank. Possible attribute names:

  • CTRL - 1 for ATR mode 0 for GPIO mode
  • DDR - 1 for output 0 for input
  • OUT - GPIO output level (not ATR mode)
  • ATR_0X - ATR idle state
  • ATR_RX - ATR receive only state
  • ATR_TX - ATR transmit only state
  • ATR_XX - ATR full duplex state
    Parameters
    bankthe name of a GPIO bank
    attrthe name of a GPIO attribute
    valuethe new value for this GPIO bank
    maskthe bit mask to effect which pins are changed
    mboardthe motherboard index 0 to M-1

◆ set_master_clock_rate()

virtual void uhd::usrp::multi_usrp::set_master_clock_rate ( double  rate,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the master clock rate. This controls the rate of the clock that feeds the FPGA DSP. On some devices, this re-tunes the clock to the specified rate. If the specified rate is not available, this method will throw. On other devices, this method notifies the software of the rate, but requires the the user has made the necessary hardware change.

Parameters
ratethe new master clock rate in Hz
mboardthe motherboard index 0 to M-1

◆ set_rx_antenna()

virtual void uhd::usrp::multi_usrp::set_rx_antenna ( const std::string &  ant,
size_t  chan = 0 
)
pure virtual

Select the RX antenna on the frontend.

Parameters
antthe antenna name
chanthe channel index 0 to N-1

◆ set_rx_bandwidth()

virtual void uhd::usrp::multi_usrp::set_rx_bandwidth ( double  bandwidth,
size_t  chan = 0 
)
pure virtual

Set the RX bandwidth on the frontend.

Parameters
bandwidththe bandwidth in Hz
chanthe channel index 0 to N-1

◆ set_rx_dc_offset() [1/2]

virtual void uhd::usrp::multi_usrp::set_rx_dc_offset ( const bool  enb,
size_t  chan = ALL_CHANS 
)
pure virtual

Enable/disable the automatic RX DC offset correction. The automatic correction subtracts out the long-run average.

When disabled, the averaging option operation is halted. Once halted, the average value will be held constant until the user re-enables the automatic correction or overrides the value by manually setting the offset.

Parameters
enbtrue to enable automatic DC offset correction
chanthe channel index 0 to N-1

◆ set_rx_dc_offset() [2/2]

virtual void uhd::usrp::multi_usrp::set_rx_dc_offset ( const std::complex< double > &  offset,
size_t  chan = ALL_CHANS 
)
pure virtual

Set a constant RX DC offset value. The value is complex to control both I and Q. Only set this when automatic correction is disabled.

Parameters
offsetthe dc offset (1.0 is full-scale)
chanthe channel index 0 to N-1

◆ set_rx_freq()

virtual tune_result_t uhd::usrp::multi_usrp::set_rx_freq ( const tune_request_t tune_request,
size_t  chan = 0 
)
pure virtual

Set the RX center frequency.

Parameters
tune_requesttune request instructions
chanthe channel index 0 to N-1
Returns
a tune result object

◆ set_rx_gain() [1/2]

virtual void uhd::usrp::multi_usrp::set_rx_gain ( double  gain,
const std::string &  name,
size_t  chan = 0 
)
pure virtual

Set the RX gain value for the specified gain element. For an empty name, distribute across all gain elements.

Parameters
gainthe gain in dB
namethe name of the gain element
chanthe channel index 0 to N-1

◆ set_rx_gain() [2/2]

void uhd::usrp::multi_usrp::set_rx_gain ( double  gain,
size_t  chan = 0 
)
inline

A convenience wrapper for setting overall RX gain.

◆ set_rx_iq_balance()

virtual void uhd::usrp::multi_usrp::set_rx_iq_balance ( const std::complex< double > &  correction,
size_t  chan = ALL_CHANS 
)
pure virtual

Set the RX frontend IQ imbalance correction. Use this to adjust the magnitude and phase of I and Q.

Parameters
correctionthe complex correction (1.0 is full-scale)
chanthe channel index 0 to N-1

◆ set_rx_rate()

virtual void uhd::usrp::multi_usrp::set_rx_rate ( double  rate,
size_t  chan = ALL_CHANS 
)
pure virtual

Set the RX sample rate.

Parameters
ratethe rate in Sps
chanthe channel index 0 to N-1

◆ set_rx_subdev_spec()

virtual void uhd::usrp::multi_usrp::set_rx_subdev_spec ( const uhd::usrp::subdev_spec_t spec,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the RX frontend specification: The subdev spec maps a physical part of a daughter-board to a channel number. Set the subdev spec before calling into any methods with a channel number. The subdev spec must be the same size across all motherboards.

Parameters
specthe new frontend specification
mboardthe motherboard index 0 to M-1

◆ set_time_next_pps()

virtual void uhd::usrp::multi_usrp::set_time_next_pps ( const time_spec_t time_spec,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the time registers on the usrp at the next pps tick. The values will not be latched in until the pulse occurs. It is recommended that the user sleep(1) after calling to ensure that the time registers will be in a known state prior to use.

Note: Because this call sets the time on the "next" pps, the seconds in the time spec should be current seconds + 1.

Parameters
time_specthe time to latch into the usrp device
mboardthe motherboard index 0 to M-1

◆ set_time_now()

virtual void uhd::usrp::multi_usrp::set_time_now ( const time_spec_t time_spec,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Sets the time registers on the usrp immediately.

If only one MIMO master is present in your configuration, set_time_now is safe to use because the slave's time automatically follows the master's time. Otherwise, this call cannot set the time synchronously across multiple devices. Please use the set_time_next_pps or set_time_unknown_pps calls with a PPS signal.

Parameters
time_specthe time to latch into the usrp device
mboardthe motherboard index 0 to M-1

◆ set_time_source()

virtual void uhd::usrp::multi_usrp::set_time_source ( const std::string &  source,
const size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the time source for the usrp device. This sets the method of time synchronization, typically a pulse per second or an encoded time. Typical options for source: external, MIMO.

Parameters
sourcea string representing the time source
mboardwhich motherboard to set the config

◆ set_time_source_out()

virtual void uhd::usrp::multi_usrp::set_time_source_out ( const bool  enb,
const size_t  mboard = ALL_MBOARDS 
)
pure virtual

Send the time source to an output connector. This call is only applicable on devices with PPS outputs. By default, the PPS output will be enabled for ease of use. This call may be used to enable or disable the output.

Parameters
enbtrue to output the time source.
mboardwhich motherboard to set

◆ set_time_unknown_pps()

virtual void uhd::usrp::multi_usrp::set_time_unknown_pps ( const time_spec_t time_spec)
pure virtual

Synchronize the times across all motherboards in this configuration. Use this method to sync the times when the edge of the PPS is unknown.

Ex: Host machine is not attached to serial port of GPSDO and can therefore not query the GPSDO for the PPS edge.

This is a 2-step process, and will take at most 2 seconds to complete. Upon completion, the times will be synchronized to the time provided.

  • Step1: wait for the last pps time to transition to catch the edge
  • Step2: set the time at the next pps (synchronous for all boards)
Parameters
time_specthe time to latch at the next pps after catching the edge

◆ set_tx_antenna()

virtual void uhd::usrp::multi_usrp::set_tx_antenna ( const std::string &  ant,
size_t  chan = 0 
)
pure virtual

Select the TX antenna on the frontend.

Parameters
antthe antenna name
chanthe channel index 0 to N-1

◆ set_tx_bandwidth()

virtual void uhd::usrp::multi_usrp::set_tx_bandwidth ( double  bandwidth,
size_t  chan = 0 
)
pure virtual

Set the TX bandwidth on the frontend.

Parameters
bandwidththe bandwidth in Hz
chanthe channel index 0 to N-1

◆ set_tx_dc_offset()

virtual void uhd::usrp::multi_usrp::set_tx_dc_offset ( const std::complex< double > &  offset,
size_t  chan = ALL_CHANS 
)
pure virtual

Set a constant TX DC offset value. The value is complex to control both I and Q.

Parameters
offsetthe dc offset (1.0 is full-scale)
chanthe channel index 0 to N-1

◆ set_tx_freq()

virtual tune_result_t uhd::usrp::multi_usrp::set_tx_freq ( const tune_request_t tune_request,
size_t  chan = 0 
)
pure virtual

Set the TX center frequency.

Parameters
tune_requesttune request instructions
chanthe channel index 0 to N-1
Returns
a tune result object

◆ set_tx_gain() [1/2]

virtual void uhd::usrp::multi_usrp::set_tx_gain ( double  gain,
const std::string &  name,
size_t  chan = 0 
)
pure virtual

Set the TX gain value for the specified gain element. For an empty name, distribute across all gain elements.

Parameters
gainthe gain in dB
namethe name of the gain element
chanthe channel index 0 to N-1

◆ set_tx_gain() [2/2]

void uhd::usrp::multi_usrp::set_tx_gain ( double  gain,
size_t  chan = 0 
)
inline

A convenience wrapper for setting overall TX gain.

◆ set_tx_iq_balance()

virtual void uhd::usrp::multi_usrp::set_tx_iq_balance ( const std::complex< double > &  correction,
size_t  chan = ALL_CHANS 
)
pure virtual

Set the TX frontend IQ imbalance correction. Use this to adjust the magnitude and phase of I and Q.

Parameters
correctionthe complex correction (1.0 is full-scale)
chanthe channel index 0 to N-1

◆ set_tx_rate()

virtual void uhd::usrp::multi_usrp::set_tx_rate ( double  rate,
size_t  chan = ALL_CHANS 
)
pure virtual

Set the TX sample rate.

Parameters
ratethe rate in Sps
chanthe channel index 0 to N-1

◆ set_tx_subdev_spec()

virtual void uhd::usrp::multi_usrp::set_tx_subdev_spec ( const uhd::usrp::subdev_spec_t spec,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Set the TX frontend specification: The subdev spec maps a physical part of a daughter-board to a channel number. Set the subdev spec before calling into any methods with a channel number. The subdev spec must be the same size across all motherboards.

Parameters
specthe new frontend specification
mboardthe motherboard index 0 to M-1

◆ set_user_register()

virtual void uhd::usrp::multi_usrp::set_user_register ( const boost::uint8_t  addr,
const boost::uint32_t  data,
size_t  mboard = ALL_MBOARDS 
)
pure virtual

Perform write on the user configuration register bus. These only exist if the user has implemented custom setting registers in the device FPGA.

Parameters
addr8-bit register address
data32-bit register value
mboardwhich motherboard to set the user register

Member Data Documentation

◆ ALL_CHANS

const size_t uhd::usrp::multi_usrp::ALL_CHANS = size_t(~0)
static

A wildcard channel index.

◆ ALL_GAINS

const std::string uhd::usrp::multi_usrp::ALL_GAINS
static

A wildcard gain element name.

◆ ALL_MBOARDS

const size_t uhd::usrp::multi_usrp::ALL_MBOARDS = size_t(~0)
static

A wildcard motherboard index.


The documentation for this class was generated from the following file: