aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/multi_usrp.cpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-03-10 11:56:52 -0800
committerJosh Blum <josh@joshknows.com>2011-03-10 11:56:52 -0800
commitaa619a76943c2c66060eb0673cd74d601caa08ba (patch)
treeb180f4c740a8a17a30d3035be491a15787456437 /host/lib/usrp/multi_usrp.cpp
parent1d9c3aa735c4447d79c4cdfa9664090cf76ef7da (diff)
downloaduhd-aa619a76943c2c66060eb0673cd74d601caa08ba.tar.gz
uhd-aa619a76943c2c66060eb0673cd74d601caa08ba.tar.bz2
uhd-aa619a76943c2c66060eb0673cd74d601caa08ba.zip
usrp: moved wrapper utils into multi-usrp
Diffstat (limited to 'host/lib/usrp/multi_usrp.cpp')
-rw-r--r--host/lib/usrp/multi_usrp.cpp45
1 files changed, 43 insertions, 2 deletions
diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp
index 565d35d1c..83cbf339b 100644
--- a/host/lib/usrp/multi_usrp.cpp
+++ b/host/lib/usrp/multi_usrp.cpp
@@ -15,7 +15,6 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
-#include "wrapper_utils.hpp"
#include <uhd/usrp/multi_usrp.hpp>
#include <uhd/usrp/tune_helper.hpp>
#include <uhd/usrp/mboard_iface.hpp>
@@ -31,6 +30,7 @@
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <iostream>
+#include <cmath>
using namespace uhd;
using namespace uhd::usrp;
@@ -38,7 +38,48 @@ using namespace uhd::usrp;
const std::string multi_usrp::ALL_GAINS = "";
/***********************************************************************
- * Simple USRP Implementation
+ * Helper methods
+ **********************************************************************/
+static inline uhd::freq_range_t add_dsp_shift(
+ const uhd::freq_range_t &range,
+ wax::obj dsp
+){
+ double codec_rate = dsp[uhd::usrp::DSP_PROP_CODEC_RATE].as<double>();
+ return uhd::freq_range_t(range.start() - codec_rate/2.0, range.stop() + codec_rate/2.0);
+}
+
+static inline void do_samp_rate_warning_message(
+ double target_rate,
+ double actual_rate,
+ const std::string &xx
+){
+ static const double max_allowed_error = 1.0; //Sps
+ if (std::abs(target_rate - actual_rate) > max_allowed_error){
+ uhd::warning::post(str(boost::format(
+ "The hardware does not support the requested %s sample rate:\n"
+ "Target sample rate: %f MSps\n"
+ "Actual sample rate: %f MSps\n"
+ ) % xx % (target_rate/1e6) % (actual_rate/1e6)));
+ }
+}
+
+static inline void do_tune_freq_warning_message(
+ double target_freq,
+ double actual_freq,
+ const std::string &xx
+){
+ static const double max_allowed_error = 1.0; //Hz
+ if (std::abs(target_freq - actual_freq) > max_allowed_error){
+ uhd::warning::post(str(boost::format(
+ "The hardware does not support the requested %s frequency:\n"
+ "Target frequency: %f MHz\n"
+ "Actual frequency: %f MHz\n"
+ ) % xx % (target_freq/1e6) % (actual_freq/1e6)));
+ }
+}
+
+/***********************************************************************
+ * Multi USRP Implementation
**********************************************************************/
class multi_usrp_impl : public multi_usrp{
public: