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 |
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...