aboutsummaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2018-02-08 10:05:55 -0800
committerMartin Braun <martin.braun@ettus.com>2018-02-08 22:33:18 +0100
commit31d81ecb2fc4a06c1a71ccc2071c63f934647049 (patch)
tree6bf9bb9775c4a9e327b9875c0681f3da14310de9 /host
parent20a776bce3eec84c093b23e79d01b715f8756d72 (diff)
downloaduhd-31d81ecb2fc4a06c1a71ccc2071c63f934647049.tar.gz
uhd-31d81ecb2fc4a06c1a71ccc2071c63f934647049.tar.bz2
uhd-31d81ecb2fc4a06c1a71ccc2071c63f934647049.zip
rfnoc: Add TX bandwidth APIs to radio_ctrl
Diffstat (limited to 'host')
-rw-r--r--host/include/uhd/rfnoc/radio_ctrl.hpp17
-rw-r--r--host/lib/rfnoc/radio_ctrl_impl.cpp12
-rw-r--r--host/lib/rfnoc/radio_ctrl_impl.hpp3
3 files changed, 32 insertions, 0 deletions
diff --git a/host/include/uhd/rfnoc/radio_ctrl.hpp b/host/include/uhd/rfnoc/radio_ctrl.hpp
index 8d24f9868..3a887bf02 100644
--- a/host/include/uhd/rfnoc/radio_ctrl.hpp
+++ b/host/include/uhd/rfnoc/radio_ctrl.hpp
@@ -154,6 +154,23 @@ public:
*
* \return The actual bandwidth value
*/
+ virtual double get_tx_bandwidth(const size_t chan) = 0;
+
+ /*! Set the analog filter bandwidth channel \p chan
+ *
+ * This function will attempt to set the analog bandwidth.
+ *
+ * \return The actual bandwidth value
+ */
+ virtual double set_tx_bandwidth(
+ const double bandwidth,
+ const size_t chan
+ ) = 0;
+
+ /*! Return the analog filter bandwidth channel \p chan
+ *
+ * \return The actual bandwidth value
+ */
virtual double get_rx_bandwidth(const size_t chan) = 0;
/*! Set the analog filter bandwidth channel \p chan
diff --git a/host/lib/rfnoc/radio_ctrl_impl.cpp b/host/lib/rfnoc/radio_ctrl_impl.cpp
index 8d77ff36b..827443ffd 100644
--- a/host/lib/rfnoc/radio_ctrl_impl.cpp
+++ b/host/lib/rfnoc/radio_ctrl_impl.cpp
@@ -184,6 +184,13 @@ double radio_ctrl_impl::set_rx_gain(const double gain, const size_t chan)
return _rx_gain[chan] = gain;
}
+double radio_ctrl_impl::set_tx_bandwidth(
+ const double bandwidth,
+ const size_t chan
+) {
+ return _tx_bandwidth[chan] = bandwidth;
+}
+
double radio_ctrl_impl::set_rx_bandwidth(const double bandwidth, const size_t chan)
{
return _rx_bandwidth[chan] = bandwidth;
@@ -229,6 +236,11 @@ double radio_ctrl_impl::get_rx_gain(const size_t chan) /* const */
return _rx_gain[chan];
}
+double radio_ctrl_impl::get_tx_bandwidth(const size_t chan) /* const */
+{
+ return _tx_bandwidth[chan];
+}
+
double radio_ctrl_impl::get_rx_bandwidth(const size_t chan) /* const */
{
return _rx_bandwidth[chan];
diff --git a/host/lib/rfnoc/radio_ctrl_impl.hpp b/host/lib/rfnoc/radio_ctrl_impl.hpp
index 9d6f43008..85ae860d4 100644
--- a/host/lib/rfnoc/radio_ctrl_impl.hpp
+++ b/host/lib/rfnoc/radio_ctrl_impl.hpp
@@ -49,6 +49,7 @@ public:
virtual double set_rx_frequency(const double freq, const size_t chan);
virtual double set_tx_gain(const double gain, const size_t chan);
virtual double set_rx_gain(const double gain, const size_t chan);
+ virtual double set_tx_bandwidth(const double bandwidth, const size_t chan);
virtual double set_rx_bandwidth(const double bandwidth, const size_t chan);
virtual double get_rate() const;
@@ -58,6 +59,7 @@ public:
virtual double get_rx_frequency(const size_t) /* const */;
virtual double get_tx_gain(const size_t) /* const */;
virtual double get_rx_gain(const size_t) /* const */;
+ virtual double get_tx_bandwidth(const size_t) /* const */;
virtual double get_rx_bandwidth(const size_t) /* const */;
virtual std::vector<std::string> get_rx_lo_names(const size_t chan);
@@ -231,6 +233,7 @@ private:
std::map<size_t, double> _rx_freq;
std::map<size_t, double> _tx_gain;
std::map<size_t, double> _rx_gain;
+ std::map<size_t, double> _tx_bandwidth;
std::map<size_t, double> _rx_bandwidth;
std::vector<bool> _continuous_streaming;