Loading...
Searching...
No Matches
core_iface.hpp
Go to the documentation of this file.
//
// Copyright 2020 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#pragma once
#include <uhd/types/device_addr.hpp>
#include <uhd/types/ranges.hpp>
#include <stdint.h>
#include <memory>
#include <string>
#include <vector>
namespace uhd { namespace rfnoc { namespace rf_control {
class core_iface
{
public:
using sptr = std::shared_ptr<core_iface>;
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;
/**************************************************************************
* LO Controls
*************************************************************************/
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;
};
}}} // namespace uhd::rfnoc::rf_control
uhd::device_addr_t
Definition device_addr.hpp:39
uhd::rfnoc::rf_control::core_iface
Definition core_iface.hpp:26
uhd::rfnoc::rf_control::core_iface::set_rx_lo_freq
virtual double set_rx_lo_freq(double freq, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_bandwidth_range
virtual meta_range_t get_rx_bandwidth_range(size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_bandwidth
virtual double get_rx_bandwidth(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_antenna
virtual std::string get_rx_antenna(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_rx_lo_source
virtual void set_rx_lo_source(const std::string &src, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_lo_freq
virtual double set_tx_lo_freq(const double freq, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_frequency_range
virtual uhd::freq_range_t get_rx_frequency_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_gain
virtual double get_rx_gain(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_export_enabled
virtual bool get_tx_lo_export_enabled(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_gain
virtual double get_tx_gain(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_export_enabled
virtual bool get_rx_lo_export_enabled(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_bandwidth
virtual double get_tx_bandwidth(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_gain
virtual double set_tx_gain(const double gain, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_bandwidth
virtual double set_rx_bandwidth(const double bandwidth, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_gain
virtual double get_tx_gain(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_gain
virtual double set_rx_gain(const double gain, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_tune_args
virtual void set_rx_tune_args(const uhd::device_addr_t &args, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_gain
virtual double set_rx_gain(const double gain, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_lo_export_enabled
virtual void set_rx_lo_export_enabled(bool enabled, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_agc
virtual void set_rx_agc(const bool enable, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_lo_source
virtual void set_tx_lo_source(const std::string &src, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_antenna
virtual void set_rx_antenna(const std::string &ant, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_bandwidth_range
virtual meta_range_t get_tx_bandwidth_range(size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_frequency
virtual double get_tx_frequency(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_antenna
virtual std::string get_tx_antenna(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_names
virtual std::vector< std::string > get_rx_lo_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_gain_names
virtual std::vector< std::string > get_rx_gain_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_gain
virtual double get_rx_gain(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_gain_range
virtual uhd::gain_range_t get_rx_gain_range(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_bandwidth
virtual double set_tx_bandwidth(const double bandwidth, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_source
virtual std::string get_rx_lo_source(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_gain_range
virtual uhd::gain_range_t get_tx_gain_range(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_gain
virtual double set_tx_gain(const double gain, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_gain_names
virtual std::vector< std::string > get_tx_gain_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_gain_range
virtual uhd::gain_range_t get_rx_gain_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_frequency
virtual double set_tx_frequency(const double freq, size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_antennas
virtual std::vector< std::string > get_tx_antennas(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_frequency
virtual double get_rx_frequency(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::sptr
std::shared_ptr< core_iface > sptr
Definition core_iface.hpp:28
uhd::rfnoc::rf_control::core_iface::get_rx_lo_sources
virtual std::vector< std::string > get_rx_lo_sources(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_freq
virtual double get_tx_lo_freq(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_frequency_range
virtual uhd::freq_range_t get_tx_frequency_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_freq_range
virtual freq_range_t get_rx_lo_freq_range(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_sources
virtual std::vector< std::string > get_tx_lo_sources(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::~core_iface
virtual ~core_iface()=default
uhd::rfnoc::rf_control::core_iface::set_tx_tune_args
virtual void set_tx_tune_args(const uhd::device_addr_t &args, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_gain_range
virtual uhd::gain_range_t get_tx_gain_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_lo_export_enabled
virtual void set_tx_lo_export_enabled(const bool enabled, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_names
virtual std::vector< std::string > get_tx_lo_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_rx_frequency
virtual double set_rx_frequency(const double freq, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_antennas
virtual std::vector< std::string > get_rx_antennas(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_antenna
virtual void set_tx_antenna(const std::string &ant, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_source
virtual std::string get_tx_lo_source(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_freq_range
virtual freq_range_t get_tx_lo_freq_range(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_freq
virtual double get_rx_lo_freq(const std::string &name, const size_t chan)=0
device_addr.hpp
uhd::rfnoc::rf_control
Definition antenna_iface.hpp:17
uhd::rfnoc
Definition actions.hpp:24
uhd
Definition build_info.hpp:12
uhd::freq_range_t
meta_range_t freq_range_t
Definition ranges.hpp:131
uhd::gain_range_t
meta_range_t gain_range_t
Definition ranges.hpp:130
ranges.hpp
uhd::meta_range_t
Definition ranges.hpp:66