From ab83e9259b6fc45ae8258bd0b4252e3b6d7260c5 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Thu, 4 Jan 2018 07:21:00 -0800 Subject: 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 Reviewed-by: Trung Tran --- host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp') 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(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(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(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( _rpc_prefix + "get_lowband_lo_lock", trx); UHD_LOG_TRACE(unique_id(), -- cgit v1.2.3