From cc087a3417041c978d0be4ea155dbfc715c5b599 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Fri, 16 Jul 2010 13:11:10 -0700 Subject: uhd: include code_rate/2 as part of the tunable frequency range --- host/lib/usrp/mimo_usrp.cpp | 9 +++++++-- host/lib/usrp/simple_usrp.cpp | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/host/lib/usrp/mimo_usrp.cpp b/host/lib/usrp/mimo_usrp.cpp index b40f98226..fbb863022 100644 --- a/host/lib/usrp/mimo_usrp.cpp +++ b/host/lib/usrp/mimo_usrp.cpp @@ -33,6 +33,11 @@ using namespace uhd; using namespace uhd::usrp; +static inline freq_range_t add_dsp_shift(const freq_range_t &range, wax::obj dsp){ + double codec_rate = dsp[DSP_PROP_CODEC_RATE].as(); + return freq_range_t(range.min - codec_rate/2.0, range.max + codec_rate/2.0); +} + /*********************************************************************** * MIMO USRP Implementation **********************************************************************/ @@ -188,7 +193,7 @@ public: } freq_range_t get_rx_freq_range(size_t chan){ - return _rx_subdevs.at(chan)[SUBDEV_PROP_FREQ_RANGE].as(); + return add_dsp_shift(_rx_subdevs.at(chan)[SUBDEV_PROP_FREQ_RANGE].as(), _rx_dsps.at(chan)); } void set_rx_gain(size_t chan, float gain){ @@ -251,7 +256,7 @@ public: } freq_range_t get_tx_freq_range(size_t chan){ - return _tx_subdevs.at(chan)[SUBDEV_PROP_FREQ_RANGE].as(); + return add_dsp_shift(_tx_subdevs.at(chan)[SUBDEV_PROP_FREQ_RANGE].as(), _tx_dsps.at(chan)); } void set_tx_gain(size_t chan, float gain){ diff --git a/host/lib/usrp/simple_usrp.cpp b/host/lib/usrp/simple_usrp.cpp index 56e82d7ee..f06cc9135 100644 --- a/host/lib/usrp/simple_usrp.cpp +++ b/host/lib/usrp/simple_usrp.cpp @@ -30,6 +30,11 @@ using namespace uhd; using namespace uhd::usrp; +static inline freq_range_t add_dsp_shift(const freq_range_t &range, wax::obj dsp){ + double codec_rate = dsp[DSP_PROP_CODEC_RATE].as(); + return freq_range_t(range.min - codec_rate/2.0, range.max + codec_rate/2.0); +} + /*********************************************************************** * Simple USRP Implementation **********************************************************************/ @@ -126,7 +131,7 @@ public: } freq_range_t get_rx_freq_range(void){ - return _rx_subdev[SUBDEV_PROP_FREQ_RANGE].as(); + return add_dsp_shift(_rx_subdev[SUBDEV_PROP_FREQ_RANGE].as(), _rx_dsp); } void set_rx_gain(float gain){ @@ -181,7 +186,7 @@ public: } freq_range_t get_tx_freq_range(void){ - return _tx_subdev[SUBDEV_PROP_FREQ_RANGE].as(); + return add_dsp_shift(_tx_subdev[SUBDEV_PROP_FREQ_RANGE].as(), _tx_dsp); } void set_tx_gain(float gain){ -- cgit v1.2.3