diff options
author | Josh Blum <josh@joshknows.com> | 2011-11-16 10:36:59 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-11-16 10:36:59 -0800 |
commit | 65b6acc1ac877849eb6cbe1a654562ca22e42c07 (patch) | |
tree | beca09db5794eb5a797c1c94e6ed4ad523a17f84 /host/lib/usrp/dboard/db_wbx_simple.cpp | |
parent | eb11b05298dde8df750e903fe7d791050666278d (diff) | |
parent | 95568c8b30490f630a72b665b135c46549ee5882 (diff) | |
download | uhd-65b6acc1ac877849eb6cbe1a654562ca22e42c07.tar.gz uhd-65b6acc1ac877849eb6cbe1a654562ca22e42c07.tar.bz2 uhd-65b6acc1ac877849eb6cbe1a654562ca22e42c07.zip |
Merge branch 'calibration'
Diffstat (limited to 'host/lib/usrp/dboard/db_wbx_simple.cpp')
-rw-r--r-- | host/lib/usrp/dboard/db_wbx_simple.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/host/lib/usrp/dboard/db_wbx_simple.cpp b/host/lib/usrp/dboard/db_wbx_simple.cpp index f46ea70d1..3d633a672 100644 --- a/host/lib/usrp/dboard/db_wbx_simple.cpp +++ b/host/lib/usrp/dboard/db_wbx_simple.cpp @@ -36,9 +36,9 @@ using namespace boost::assign; /*********************************************************************** * The WBX Simple dboard constants **********************************************************************/ -static const std::vector<std::string> wbx_tx_antennas = list_of("TX/RX"); +static const std::vector<std::string> wbx_tx_antennas = list_of("TX/RX")("CAL"); -static const std::vector<std::string> wbx_rx_antennas = list_of("TX/RX")("RX2"); +static const std::vector<std::string> wbx_rx_antennas = list_of("TX/RX")("RX2")("CAL"); /*********************************************************************** * The WBX simple implementation @@ -132,10 +132,28 @@ void wbx_simple::set_rx_ant(const std::string &ant){ _rx_ant = ant; //write the new antenna setting to atr regs - this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, ((_rx_ant == "TX/RX")? ANT_TXRX : ANT_RX2), ANTSW_IO); + if (_rx_ant == "CAL") { + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, ANT_TXRX, ANTSW_IO); + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_TXRX, ANTSW_IO); + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, ANT_TXRX, ANTSW_IO); + } + else { + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, ANT_RX2, ANTSW_IO); + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_RX2, ANTSW_IO); + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, ((_rx_ant == "TX/RX")? ANT_TXRX : ANT_RX2), ANTSW_IO); + } } void wbx_simple::set_tx_ant(const std::string &ant){ assert_has(wbx_tx_antennas, ant, "wbx tx antenna name"); - //only one antenna option, do nothing + + //write the new antenna setting to atr regs + if (ant == "CAL") { + this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, ANT_RX, ANTSW_IO); + this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_RX, ANTSW_IO); + } + else { + this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, ANT_TX, ANTSW_IO); + this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_TX, ANTSW_IO); + } } |