aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorDerek Kozel <derek.kozel@ettus.com>2016-07-19 09:27:38 -0700
committerMartin Braun <martin.braun@ettus.com>2016-07-19 09:28:03 -0700
commitb4412c79c026fef94affe8e7c9a1518ab4954183 (patch)
tree20f26a99b858f0e53f2742b30698056b257d11d5 /host/include
parent890a8e10d65dd35e2ad3449bf3a3dce79ccb6083 (diff)
downloaduhd-b4412c79c026fef94affe8e7c9a1518ab4954183.tar.gz
uhd-b4412c79c026fef94affe8e7c9a1518ab4954183.tar.bz2
uhd-b4412c79c026fef94affe8e7c9a1518ab4954183.zip
multi_usrp: Added LO control API
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/usrp/multi_usrp.hpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/host/include/uhd/usrp/multi_usrp.hpp b/host/include/uhd/usrp/multi_usrp.hpp
index 715a57242..ab757be8a 100644
--- a/host/include/uhd/usrp/multi_usrp.hpp
+++ b/host/include/uhd/usrp/multi_usrp.hpp
@@ -31,6 +31,7 @@
#define UHD_USRP_MULTI_USRP_GPIO_API
#define UHD_USRP_MULTI_USRP_REGISTER_API
#define UHD_USRP_MULTI_USRP_FILTER_API
+#define UHD_USRP_MULTI_USRP_LO_CONFIG_API
#include <uhd/config.hpp>
#include <uhd/device.hpp>
@@ -112,6 +113,9 @@ public:
//! A wildcard gain element name
static const std::string ALL_GAINS;
+ //! A wildcard gain element name
+ static const std::string ALL_LOS;
+
/*!
* Make a new multi usrp from the device address.
* \param dev_addr the device address
@@ -487,6 +491,82 @@ public:
virtual freq_range_t get_fe_rx_freq_range(size_t chan = 0) = 0;
/*!
+ * Get a list of possible LO stage names
+ * \param chan the channel index 0 to N-1
+ * \return a vector of strings for possible LO names
+ */
+ virtual std::vector<std::string> get_rx_lo_names(size_t chan = 0) = 0;
+
+ /*!
+ * Set the LO source for the usrp device.
+ * For usrps that support selectable LOs, this function
+ * allows switching between them.
+ * Typical options for source: internal, external.
+ * \param src a string representing the LO source
+ * \param name the name of the LO stage to update
+ * \param chan the channel index 0 to N-1
+ */
+ virtual void set_rx_lo_source(const std::string &src, const std::string &name = ALL_LOS, size_t chan = 0) = 0;
+
+ /*!
+ * Get the currently set LO source.
+ * \param name the name of the LO stage to query
+ * \param chan the channel index 0 to N-1
+ * \return the configured LO source
+ */
+ virtual const std::string get_rx_lo_source(const std::string &name = ALL_LOS, size_t chan = 0) = 0;
+
+ /*!
+ * Get a list of possible LO sources.
+ * \param name the name of the LO stage to query
+ * \param chan the channel index 0 to N-1
+ * \return a vector of strings for possible settings
+ */
+ virtual std::vector<std::string> get_rx_lo_sources(const std::string &name = ALL_LOS, size_t chan = 0) = 0;
+
+ /*!
+ * 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.
+ * \param enabled if true then export the LO
+ * \param name the name of the LO stage to update
+ * \param chan the channel index 0 to N-1 for the source channel
+ */
+ virtual void set_rx_lo_export_enabled(bool enabled, const std::string &name = ALL_LOS, size_t chan = 0) = 0;
+
+ /*!
+ * Returns true if the currently selected LO is being exported.
+ * \param name the name of the LO stage to query
+ * \param chan the channel index 0 to N-1
+ */
+ virtual bool get_rx_lo_export_enabled(const std::string &name = ALL_LOS, size_t chan = 0) = 0;
+
+ /*!
+ * Set the RX LO frequency (Advanced).
+ * \param freq the frequency to set the LO to
+ * \param name the name of the LO stage to update
+ * \param chan the channel index 0 to N-1
+ * \return a coerced LO frequency
+ */
+ virtual double set_rx_lo_freq(double freq, const std::string &name, size_t chan = 0) = 0;
+
+ /*!
+ * Get the current RX LO frequency (Advanced).
+ * \param name the name of the LO stage to query
+ * \param chan the channel index 0 to N-1
+ * \return the configured LO frequency
+ */
+ virtual double get_rx_lo_freq(const std::string &name, size_t chan = 0) = 0;
+
+ /*!
+ * Get the LO frequency range of the RX LO.
+ * \param name the name of the LO stage to query
+ * \param chan the channel index 0 to N-1
+ * \return a frequency range object
+ */
+ virtual freq_range_t get_rx_lo_freq_range(const std::string &name, size_t chan = 0) = 0;
+
+ /*!
* Set the RX gain value for the specified gain element.
* For an empty name, distribute across all gain elements.
* \param gain the gain in dB