USRP Hardware Driver and USRP Manual  Version: 4.7.0.0
UHD and USRP Manual
uhd::rfnoc::rf_control::core_iface Class Referenceabstract

#include <uhd/rfnoc/rf_control/core_iface.hpp>

Inheritance diagram for uhd::rfnoc::rf_control::core_iface:
uhd::extension::extension uhd::rfnoc::radio_control uhd::rfnoc::rf_control::antenna_radio_control_mixin uhd::rfnoc::rf_control::nameless_gain_mixin

Public Types

using sptr = std::shared_ptr< core_iface >
 

Public Member Functions

virtual ~core_iface ()=default
 
virtual std::string get_tx_antenna (const size_t chan) const =0
 
virtual std::vector< std::string > get_tx_antennas (const size_t chan) const =0
 
virtual void set_tx_antenna (const std::string &ant, const size_t chan)=0
 
virtual std::string get_rx_antenna (const size_t chan) const =0
 
virtual std::vector< std::string > get_rx_antennas (const size_t chan) const =0
 
virtual void set_rx_antenna (const std::string &ant, const size_t chan)=0
 
virtual double get_tx_frequency (const size_t chan)=0
 
virtual double set_tx_frequency (const double freq, size_t chan)=0
 
virtual void set_tx_tune_args (const uhd::device_addr_t &args, const size_t chan)=0
 
virtual uhd::freq_range_t get_tx_frequency_range (const size_t chan) const =0
 
virtual double get_rx_frequency (const size_t chan)=0
 
virtual double set_rx_frequency (const double freq, const size_t chan)=0
 
virtual void set_rx_tune_args (const uhd::device_addr_t &args, const size_t chan)=0
 
virtual uhd::freq_range_t get_rx_frequency_range (const size_t chan) const =0
 
virtual std::vector< std::string > get_tx_gain_names (const size_t chan) const =0
 
virtual uhd::gain_range_t get_tx_gain_range (const size_t chan) const =0
 
virtual uhd::gain_range_t get_tx_gain_range (const std::string &name, const size_t chan) const =0
 
virtual double get_tx_gain (const size_t chan)=0
 
virtual double get_tx_gain (const std::string &name, const size_t chan)=0
 
virtual double set_tx_gain (const double gain, const size_t chan)=0
 
virtual double set_tx_gain (const double gain, const std::string &name, const size_t chan)=0
 
virtual std::vector< std::string > get_rx_gain_names (const size_t chan) const =0
 
virtual uhd::gain_range_t get_rx_gain_range (const size_t chan) const =0
 
virtual uhd::gain_range_t get_rx_gain_range (const std::string &name, const size_t chan) const =0
 
virtual double get_rx_gain (const size_t chan)=0
 
virtual double get_rx_gain (const std::string &name, const size_t chan)=0
 
virtual double set_rx_gain (const double gain, const size_t chan)=0
 
virtual double set_rx_gain (const double gain, const std::string &name, const size_t chan)=0
 
virtual void set_rx_agc (const bool enable, const size_t chan)=0
 
virtual meta_range_t get_tx_bandwidth_range (size_t chan) const =0
 
virtual double get_tx_bandwidth (const size_t chan)=0
 
virtual double set_tx_bandwidth (const double bandwidth, const size_t chan)=0
 
virtual meta_range_t get_rx_bandwidth_range (size_t chan) const =0
 
virtual double get_rx_bandwidth (const size_t chan)=0
 
virtual double set_rx_bandwidth (const double bandwidth, const size_t chan)=0
 
virtual std::vector< std::string > get_rx_lo_names (const size_t chan) const =0
 
virtual std::vector< std::string > get_rx_lo_sources (const std::string &name, const size_t chan) const =0
 
virtual freq_range_t get_rx_lo_freq_range (const std::string &name, const size_t chan) const =0
 
virtual void set_rx_lo_source (const std::string &src, const std::string &name, const size_t chan)=0
 
virtual std::string get_rx_lo_source (const std::string &name, const size_t chan)=0
 
virtual void set_rx_lo_export_enabled (bool enabled, const std::string &name, const size_t chan)=0
 
virtual bool get_rx_lo_export_enabled (const std::string &name, const size_t chan)=0
 
virtual double set_rx_lo_freq (double freq, const std::string &name, const size_t chan)=0
 
virtual double get_rx_lo_freq (const std::string &name, const size_t chan)=0
 
virtual std::vector< std::string > get_tx_lo_names (const size_t chan) const =0
 
virtual std::vector< std::string > get_tx_lo_sources (const std::string &name, const size_t chan) const =0
 
virtual freq_range_t get_tx_lo_freq_range (const std::string &name, const size_t chan)=0
 
virtual void set_tx_lo_source (const std::string &src, const std::string &name, const size_t chan)=0
 
virtual std::string get_tx_lo_source (const std::string &name, const size_t chan)=0
 
virtual void set_tx_lo_export_enabled (const bool enabled, const std::string &name, const size_t chan)=0
 
virtual bool get_tx_lo_export_enabled (const std::string &name, const size_t chan)=0
 
virtual double set_tx_lo_freq (const double freq, const std::string &name, const size_t chan)=0
 
virtual double get_tx_lo_freq (const std::string &name, const size_t chan)=0
 

Detailed Description

Interface for generic RF control functions

This interface contains all methods related directly to RF control which aren't contained in a different rf_control class. These methods are not usually accessed via this interface, but are usually accessed via an instance of radio_control, which implements this class.

Member Typedef Documentation

◆ sptr

Constructor & Destructor Documentation

◆ ~core_iface()

virtual uhd::rfnoc::rf_control::core_iface::~core_iface ( )
virtualdefault

Member Function Documentation

◆ get_rx_antenna()

virtual std::string uhd::rfnoc::rf_control::core_iface::get_rx_antenna ( const size_t  chan) const
pure virtual

Return the selected RX antenna for channel chan.

Returns
The selected antenna.

Implemented in uhd::rfnoc::rf_control::antenna_radio_control_mixin.

◆ get_rx_antennas()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_rx_antennas ( const size_t  chan) const
pure virtual

Return a list of valid RX antenna for channel chan.

Returns
The selected antenna.

Implemented in uhd::rfnoc::rf_control::antenna_radio_control_mixin.

◆ get_rx_bandwidth()

virtual double uhd::rfnoc::rf_control::core_iface::get_rx_bandwidth ( const size_t  chan)
pure virtual

Return the analog filter bandwidth channel chan

Returns
The actual bandwidth value

◆ get_rx_bandwidth_range()

virtual meta_range_t uhd::rfnoc::rf_control::core_iface::get_rx_bandwidth_range ( size_t  chan) const
pure virtual

Return a range of valid RX bandwidths

◆ get_rx_frequency()

virtual double uhd::rfnoc::rf_control::core_iface::get_rx_frequency ( const size_t  chan)
pure virtual

Return the current receive LO frequency on channel chan.

Returns
The current LO frequency.

◆ get_rx_frequency_range()

virtual uhd::freq_range_t uhd::rfnoc::rf_control::core_iface::get_rx_frequency_range ( const size_t  chan) const
pure virtual

Return the range of frequencies that chan can be tuned to.

Returns
The range of frequencies that we can tune the RX chan to

◆ get_rx_gain() [1/2]

virtual double uhd::rfnoc::rf_control::core_iface::get_rx_gain ( const size_t  chan)
pure virtual

Return the overall receive gain on channel chan

Returns
The actual gain value

Implemented in uhd::rfnoc::rf_control::nameless_gain_mixin.

◆ get_rx_gain() [2/2]

virtual double uhd::rfnoc::rf_control::core_iface::get_rx_gain ( const std::string &  name,
const size_t  chan 
)
pure virtual

Return the receive gain name on channel chan

Returns
The actual gain value

◆ get_rx_gain_names()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_rx_gain_names ( const size_t  chan) const
pure virtual

Return a list of valid RX gain names

◆ get_rx_gain_range() [1/2]

virtual uhd::gain_range_t uhd::rfnoc::rf_control::core_iface::get_rx_gain_range ( const size_t  chan) const
pure virtual

Return a range of valid RX gains

Implemented in uhd::rfnoc::rf_control::nameless_gain_mixin.

◆ get_rx_gain_range() [2/2]

virtual uhd::gain_range_t uhd::rfnoc::rf_control::core_iface::get_rx_gain_range ( const std::string &  name,
const size_t  chan 
) const
pure virtual

Return a range of valid RX gains

◆ get_rx_lo_export_enabled()

virtual bool uhd::rfnoc::rf_control::core_iface::get_rx_lo_export_enabled ( const std::string &  name,
const size_t  chan 
)
pure virtual

Returns true if the currently selected LO is being exported.

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1

◆ get_rx_lo_freq()

virtual double uhd::rfnoc::rf_control::core_iface::get_rx_lo_freq ( const std::string &  name,
const size_t  chan 
)
pure virtual

Get the current RX LO frequency (Advanced). If the channel does not have independently configurable LOs the current rf frequency will be returned.

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
the configured LO frequency

◆ get_rx_lo_freq_range()

virtual freq_range_t uhd::rfnoc::rf_control::core_iface::get_rx_lo_freq_range ( const std::string &  name,
const size_t  chan 
) const
pure virtual

Get the LO frequency range of the RX LO. If the channel does not have independently configurable LOs the rf frequency range will be returned.

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
a frequency range object

◆ get_rx_lo_names()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_rx_lo_names ( const size_t  chan) const
pure virtual

Get a list of possible LO stage names

Parameters
chanthe channel index 0 to N-1
Returns
a vector of strings for possible LO names

◆ get_rx_lo_source()

virtual std::string uhd::rfnoc::rf_control::core_iface::get_rx_lo_source ( const std::string &  name,
const size_t  chan 
)
pure virtual

Get the currently set LO source. Channels without controllable LO sources will return "internal"

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
the configured LO source

◆ get_rx_lo_sources()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_rx_lo_sources ( const std::string &  name,
const size_t  chan 
) const
pure virtual

Get a list of possible LO sources.

Channels which do not have controllable LO sources will return "internal".

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
a vector of strings for possible settings

◆ get_tx_antenna()

virtual std::string uhd::rfnoc::rf_control::core_iface::get_tx_antenna ( const size_t  chan) const
pure virtual

Return the selected TX antenna for channel chan.

Returns
The selected antenna.

Implemented in uhd::rfnoc::rf_control::antenna_radio_control_mixin.

◆ get_tx_antennas()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_tx_antennas ( const size_t  chan) const
pure virtual

Return a list of valid TX antenna for channel chan.

Returns
The selected antenna.

Implemented in uhd::rfnoc::rf_control::antenna_radio_control_mixin.

◆ get_tx_bandwidth()

virtual double uhd::rfnoc::rf_control::core_iface::get_tx_bandwidth ( const size_t  chan)
pure virtual

Return the analog filter bandwidth channel chan

Returns
The actual bandwidth value

◆ get_tx_bandwidth_range()

virtual meta_range_t uhd::rfnoc::rf_control::core_iface::get_tx_bandwidth_range ( size_t  chan) const
pure virtual

Return a range of valid TX bandwidths

◆ get_tx_frequency()

virtual double uhd::rfnoc::rf_control::core_iface::get_tx_frequency ( const size_t  chan)
pure virtual

Return the current transmit LO frequency on channel chan.

Returns
The current LO frequency.

◆ get_tx_frequency_range()

virtual uhd::freq_range_t uhd::rfnoc::rf_control::core_iface::get_tx_frequency_range ( const size_t  chan) const
pure virtual

Return the range of frequencies that chan can be tuned to.

Returns
The range of frequencies that we can tune the TX chan to

◆ get_tx_gain() [1/2]

virtual double uhd::rfnoc::rf_control::core_iface::get_tx_gain ( const size_t  chan)
pure virtual

Return the overall transmit gain on channel chan

Returns
The actual gain value

Implemented in uhd::rfnoc::rf_control::nameless_gain_mixin.

◆ get_tx_gain() [2/2]

virtual double uhd::rfnoc::rf_control::core_iface::get_tx_gain ( const std::string &  name,
const size_t  chan 
)
pure virtual

Return the transmit gain name on channel chan

Returns
The actual gain value

◆ get_tx_gain_names()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_tx_gain_names ( const size_t  chan) const
pure virtual

Return a list of valid TX gain names

◆ get_tx_gain_range() [1/2]

virtual uhd::gain_range_t uhd::rfnoc::rf_control::core_iface::get_tx_gain_range ( const size_t  chan) const
pure virtual

Return a range of valid TX gains

Implemented in uhd::rfnoc::rf_control::nameless_gain_mixin.

◆ get_tx_gain_range() [2/2]

virtual uhd::gain_range_t uhd::rfnoc::rf_control::core_iface::get_tx_gain_range ( const std::string &  name,
const size_t  chan 
) const
pure virtual

Return a range of valid TX gains

◆ get_tx_lo_export_enabled()

virtual bool uhd::rfnoc::rf_control::core_iface::get_tx_lo_export_enabled ( const std::string &  name,
const size_t  chan 
)
pure virtual

Returns true if the currently selected LO is being exported.

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1

◆ get_tx_lo_freq()

virtual double uhd::rfnoc::rf_control::core_iface::get_tx_lo_freq ( const std::string &  name,
const size_t  chan 
)
pure virtual

Get the current TX LO frequency (Advanced).

See also multi_usrp::get_tx_lo_freq()

If the channel does not have independently configurable LOs the current RF frequency will be returned.

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
the configured LO frequency

◆ get_tx_lo_freq_range()

virtual freq_range_t uhd::rfnoc::rf_control::core_iface::get_tx_lo_freq_range ( const std::string &  name,
const size_t  chan 
)
pure virtual

Get the LO frequency range of the tx LO. If the channel does not have independently configurable LOs the rf frequency range will be returned.

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
a frequency range object

◆ get_tx_lo_names()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_tx_lo_names ( const size_t  chan) const
pure virtual

Get a list of possible LO stage names

Parameters
chanthe channel index 0 to N-1
Returns
a vector of strings for possible LO names

◆ get_tx_lo_source()

virtual std::string uhd::rfnoc::rf_control::core_iface::get_tx_lo_source ( const std::string &  name,
const size_t  chan 
)
pure virtual

Get the currently set LO source. Channels without controllable LO sources will return "internal"

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
the configured LO source

◆ get_tx_lo_sources()

virtual std::vector<std::string> uhd::rfnoc::rf_control::core_iface::get_tx_lo_sources ( const std::string &  name,
const size_t  chan 
) const
pure virtual

Get a list of possible LO sources.

Channels which do not have controllable LO sources will return "internal".

Parameters
namethe name of the LO stage to query
chanthe channel index 0 to N-1
Returns
a vector of strings for possible settings

◆ set_rx_agc()

virtual void uhd::rfnoc::rf_control::core_iface::set_rx_agc ( const bool  enable,
const size_t  chan 
)
pure virtual

Enable RX AGC on this radio

Exceptions
uhd::not_implemented_errorif this radio doesn't support RX AGC

◆ set_rx_antenna()

virtual void uhd::rfnoc::rf_control::core_iface::set_rx_antenna ( const std::string &  ant,
const size_t  chan 
)
pure virtual

Select RX antenna for channel chan.

Exceptions
uhd::value_errorif ant is not a valid value.

Implemented in uhd::rfnoc::rf_control::antenna_radio_control_mixin.

◆ set_rx_bandwidth()

virtual double uhd::rfnoc::rf_control::core_iface::set_rx_bandwidth ( const double  bandwidth,
const size_t  chan 
)
pure virtual

Set the analog filter bandwidth channel chan

This function will attempt to set the analog bandwidth.

Returns
The actual bandwidth value

◆ set_rx_frequency()

virtual double uhd::rfnoc::rf_control::core_iface::set_rx_frequency ( const double  freq,
const size_t  chan 
)
pure virtual

Tune the RX frequency for channel chan.

This function will attempt to tune as close as possible, and return a coerced value of the actual tuning result.

If there is a single LO in this radio, and we're doing direct conversion, then this is the LO frequency.

Parameters
freqRequested frequency
chanChannel number.
Returns
The actual frequency.

◆ set_rx_gain() [1/2]

virtual double uhd::rfnoc::rf_control::core_iface::set_rx_gain ( const double  gain,
const size_t  chan 
)
pure virtual

Set the overall receive gain on channel chan

This function will attempt to set the gain as close as possible, and return a coerced value of the actual gain value.

Returns
The actual gain value

Implemented in uhd::rfnoc::rf_control::nameless_gain_mixin.

◆ set_rx_gain() [2/2]

virtual double uhd::rfnoc::rf_control::core_iface::set_rx_gain ( const double  gain,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set the receive gain on channel chan

This function will attempt to set the gain as close as possible, and return a coerced value of the actual gain value.

Returns
The actual gain value

◆ set_rx_lo_export_enabled()

virtual void uhd::rfnoc::rf_control::core_iface::set_rx_lo_export_enabled ( bool  enabled,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set whether the LO used by the usrp device is exported For usrps that support exportable LOs, this function configures if the LO used by chan is exported or not.

Parameters
enabledif true then export the LO
namethe name of the LO stage to update
chanthe channel index 0 to N-1 for the source channel

◆ set_rx_lo_freq()

virtual double uhd::rfnoc::rf_control::core_iface::set_rx_lo_freq ( double  freq,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set the RX LO frequency (Advanced).

Parameters
freqthe frequency to set the LO to
namethe name of the LO stage to update
chanthe channel index 0 to N-1
Returns
a coerced LO frequency

◆ set_rx_lo_source()

virtual void uhd::rfnoc::rf_control::core_iface::set_rx_lo_source ( const std::string &  src,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set the LO source for a channel. For usrps that support selectable LOs, this function allows switching between them. Typical options for source: internal, external.

Parameters
srca string representing the LO source
namethe name of the LO stage to update
chanthe channel index 0 to N-1

◆ set_rx_tune_args()

virtual void uhd::rfnoc::rf_control::core_iface::set_rx_tune_args ( const uhd::device_addr_t args,
const size_t  chan 
)
pure virtual

Set the TX tune args, if supported by the hardware.

◆ set_tx_antenna()

virtual void uhd::rfnoc::rf_control::core_iface::set_tx_antenna ( const std::string &  ant,
const size_t  chan 
)
pure virtual

Select TX antenna for channel chan.

Exceptions
uhd::value_errorif ant is not a valid value.

Implemented in uhd::rfnoc::rf_control::antenna_radio_control_mixin.

◆ set_tx_bandwidth()

virtual double uhd::rfnoc::rf_control::core_iface::set_tx_bandwidth ( const double  bandwidth,
const size_t  chan 
)
pure virtual

Set the analog filter bandwidth channel chan

This function will attempt to set the analog bandwidth.

Returns
The actual bandwidth value

◆ set_tx_frequency()

virtual double uhd::rfnoc::rf_control::core_iface::set_tx_frequency ( const double  freq,
size_t  chan 
)
pure virtual

Tune the TX frequency for channel chan.

This function will attempt to tune as close as possible, and return a coerced value of the actual tuning result.

If there is a single LO in this radio, and we're doing direct conversion, then this is the LO frequency.

Parameters
freqFrequency in Hz
chanChannel to tune
Returns
The actual frequency.

◆ set_tx_gain() [1/2]

virtual double uhd::rfnoc::rf_control::core_iface::set_tx_gain ( const double  gain,
const size_t  chan 
)
pure virtual

Set the transmit gain on channel chan

This function will attempt to set the gain as close as possible, and return a coerced value of the actual gain value.

This method will set the overall gain. To set a specific gain, use set_tx_gain(const double, const std::string&, const size_t).

Returns
The actual gain value

Implemented in uhd::rfnoc::rf_control::nameless_gain_mixin.

◆ set_tx_gain() [2/2]

virtual double uhd::rfnoc::rf_control::core_iface::set_tx_gain ( const double  gain,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set the transmit gain name on channel chan

This function will attempt to set the gain as close as possible, and return a coerced value of the actual gain value.

Returns
The actual gain value

◆ set_tx_lo_export_enabled()

virtual void uhd::rfnoc::rf_control::core_iface::set_tx_lo_export_enabled ( const bool  enabled,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set whether the LO used by the usrp device is exported For usrps that support exportable LOs, this function configures if the LO used by chan is exported or not.

Parameters
enabledif true then export the LO
namethe name of the LO stage to update
chanthe channel index 0 to N-1 for the source channel

◆ set_tx_lo_freq()

virtual double uhd::rfnoc::rf_control::core_iface::set_tx_lo_freq ( const double  freq,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set the tx LO frequency (Advanced).

See also multi_usrp::set_tx_lo_freq().

Parameters
freqthe frequency to set the LO to
namethe name of the LO stage to update
chanthe channel index 0 to N-1
Returns
a coerced LO frequency

◆ set_tx_lo_source()

virtual void uhd::rfnoc::rf_control::core_iface::set_tx_lo_source ( const std::string &  src,
const std::string &  name,
const size_t  chan 
)
pure virtual

Set the LO source for a channel. For usrps that support selectable LOs, this function allows switching between them. Typical options for source: internal, external.

Parameters
srca string representing the LO source
namethe name of the LO stage to update
chanthe channel index 0 to N-1

◆ set_tx_tune_args()

virtual void uhd::rfnoc::rf_control::core_iface::set_tx_tune_args ( const uhd::device_addr_t args,
const size_t  chan 
)
pure virtual

Set the TX tune args, if supported by the hardware.


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