aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/dboard/db_wbx_simple.cpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-11-16 10:36:59 -0800
committerJosh Blum <josh@joshknows.com>2011-11-16 10:36:59 -0800
commit65b6acc1ac877849eb6cbe1a654562ca22e42c07 (patch)
treebeca09db5794eb5a797c1c94e6ed4ad523a17f84 /host/lib/usrp/dboard/db_wbx_simple.cpp
parenteb11b05298dde8df750e903fe7d791050666278d (diff)
parent95568c8b30490f630a72b665b135c46549ee5882 (diff)
downloaduhd-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.cpp26
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);
+ }
}