aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2018-01-04 07:21:00 -0800
committerMartin Braun <martin.braun@ettus.com>2018-01-08 15:03:48 -0800
commitab83e9259b6fc45ae8258bd0b4252e3b6d7260c5 (patch)
tree510b21acb15b3b62835f2cf8b492a9d0548c808f /host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
parentaeb18f50a0598395d3b0a6179414f6dbfcad2d44 (diff)
downloaduhd-ab83e9259b6fc45ae8258bd0b4252e3b6d7260c5.tar.gz
uhd-ab83e9259b6fc45ae8258bd0b4252e3b6d7260c5.tar.bz2
uhd-ab83e9259b6fc45ae8258bd0b4252e3b6d7260c5.zip
mg: Use enums for all bands, move freq mapping to single location
This removes the need to re-implement the band checks (in particular, the low band check) in multiple places, potentially causing confusion. Signed-off-by: Trung Tran <trung.tran@ettus.com> Reviewed-by: Trung Tran <trung.tran@ettus.com>
Diffstat (limited to 'host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp')
-rw-r--r--host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp b/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
index f54112ac8..09b6dd710 100644
--- a/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
+++ b/host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp
@@ -25,6 +25,7 @@ using namespace uhd;
using namespace uhd::usrp;
using namespace uhd::rfnoc;
using namespace uhd::math::fp_compare;
+
namespace {
/**************************************************************************
* ADF4351 Controls
@@ -227,7 +228,7 @@ double magnesium_radio_ctrl_impl::set_tx_frequency(
UHD_ASSERT_THROW(adf4351_source == "internal");
double coerced_if_freq = freq;
- if (fp_compare_epsilon<double>(freq) < MAGNESIUM_LOWBAND_FREQ) { // Low band
+ if (_map_freq_to_tx_band(freq) == tx_band::LOWBAND) {
_is_low_band[TX_DIRECTION] = true;
const double desired_low_freq = MAGNESIUM_TX_IF_FREQ - freq;
coerced_if_freq =
@@ -273,7 +274,7 @@ void magnesium_radio_ctrl_impl::_update_freq(
this->get_tx_lo_source(MAGNESIUM_LO1, chan) :
this->get_rx_lo_source(MAGNESIUM_LO1, chan)
;
-
+
const double ad9371_freq = ad9371_source == "external" ?
_ad9371_freq[dir]/2 :
_ad9371_freq[dir]
@@ -325,7 +326,7 @@ double magnesium_radio_ctrl_impl::set_rx_frequency(
UHD_ASSERT_THROW(adf4351_source == "internal");
double coerced_if_freq = freq;
- if (fp_compare_epsilon<double>(freq) < MAGNESIUM_LOWBAND_FREQ) { // Low band
+ if (_map_freq_to_rx_band(freq) == rx_band::LOWBAND) {
_is_low_band[RX_DIRECTION] = true;
const double desired_low_freq = MAGNESIUM_RX_IF_FREQ - freq;
coerced_if_freq =
@@ -828,7 +829,7 @@ bool magnesium_radio_ctrl_impl::get_lo_lock_status(
_rpc_prefix + "get_ad9371_lo_lock", trx);
UHD_LOG_TRACE(unique_id(),
"AD9371 " << trx << " LO reports lock: " << (lo_lock ? "Yes" : "No"));
- if (lo_lock && fp_compare_epsilon<double>(freq) < MAGNESIUM_LOWBAND_FREQ) {
+ if (lo_lock and _map_freq_to_rx_band(freq) == rx_band::LOWBAND) {
lo_lock = lo_lock && _rpcc->request_with_token<bool>(
_rpc_prefix + "get_lowband_lo_lock", trx);
UHD_LOG_TRACE(unique_id(),