Loading...
Searching...
No Matches
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:
[legend]

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

using uhd::rfnoc::rf_control::core_iface::sptr = std::shared_ptr<core_iface>

## Constructor & Destructor Documentation

## ~core_iface()

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

virtual default

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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  chan | the 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

  name | the name of the LO stage to query
  chan | the 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

  name | the name of the LO stage to query
  chan | the 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_error | if 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_error | if `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.

Note that unlike the uhd::usrp::multi_usrp::set_rx_freq() API, this does not attempt to tune any attached digital frequency shifter, unless it is part of the radio. That is why this API only returns a double value (the actual frequency) instead of a uhd::tune_result_t. If a combined tuning of digital frequency correction and LO tuning is desired (the same way that uhd::usrp::multi_usrp does by default), then the caller has to either also call uhd::rfnoc::ddc_block_control::set_freq() with the residual frequency, or tune through the graph.

Parameters

  freq | Requested frequency
  chan | Channel 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

  enabled | if true then export the LO
  name | the name of the LO stage to update
  chan | the 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

  freq | the frequency to set the LO to
  name | the name of the LO stage to update
  chan | the 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

  src | a string representing the LO source
  name | the name of the LO stage to update
  chan | the 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 RX 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_error | if `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.

Note that unlike the uhd::usrp::multi_usrp::set_tx_freq() API, this does not attempt to tune any attached digital frequency shifter, unless it is part of the radio. That is why this API only returns a double value (the actual frequency) instead of a uhd::tune_result_t. If a combined tuning of digital frequency correction and LO tuning is desired (the same way that uhd::usrp::multi_usrp does by default), then the caller has to either also call uhd::rfnoc::dc_block_control::set_freq() with the residual frequency, or tune through the graph.

Parameters

  freq | Frequency in Hz
  chan | Channel 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

  enabled | if true then export the LO
  name | the name of the LO stage to update
  chan | the 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

  freq | the frequency to set the LO to
  name | the name of the LO stage to update
  chan | the 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

  src | a string representing the LO source
  name | the name of the LO stage to update
  chan | the 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:

- core_iface.hpp