diff options
| author | Josh Blum <josh@joshknows.com> | 2010-07-16 13:11:10 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2010-07-16 13:11:10 -0700 | 
| commit | cc087a3417041c978d0be4ea155dbfc715c5b599 (patch) | |
| tree | 3aca5504ac7372161f0ea278634711a3ec44476a | |
| parent | bbf57e94e9f18b5f31a2ab784f97428898901492 (diff) | |
| download | uhd-cc087a3417041c978d0be4ea155dbfc715c5b599.tar.gz uhd-cc087a3417041c978d0be4ea155dbfc715c5b599.tar.bz2 uhd-cc087a3417041c978d0be4ea155dbfc715c5b599.zip | |
uhd: include code_rate/2 as part of the tunable frequency range
| -rw-r--r-- | host/lib/usrp/mimo_usrp.cpp | 9 | ||||
| -rw-r--r-- | 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<double>(); +    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<freq_range_t>(); +        return add_dsp_shift(_rx_subdevs.at(chan)[SUBDEV_PROP_FREQ_RANGE].as<freq_range_t>(), _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<freq_range_t>(); +        return add_dsp_shift(_tx_subdevs.at(chan)[SUBDEV_PROP_FREQ_RANGE].as<freq_range_t>(), _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<double>(); +    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<freq_range_t>(); +        return add_dsp_shift(_rx_subdev[SUBDEV_PROP_FREQ_RANGE].as<freq_range_t>(), _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<freq_range_t>(); +        return add_dsp_shift(_tx_subdev[SUBDEV_PROP_FREQ_RANGE].as<freq_range_t>(), _tx_dsp);      }      void set_tx_gain(float gain){ | 
