diff options
| -rw-r--r-- | host/lib/usrp/dboard/db_basic_and_lf.cpp | 29 | ||||
| -rw-r--r-- | host/lib/usrp/dboard/db_dbsrx.cpp | 4 | ||||
| -rw-r--r-- | host/lib/usrp/dboard/db_rfx.cpp | 21 | ||||
| -rw-r--r-- | host/lib/usrp/dboard/db_tvrx.cpp | 10 | ||||
| -rw-r--r-- | host/lib/usrp/dboard/db_unknown.cpp | 23 | ||||
| -rw-r--r-- | host/lib/usrp/dboard/db_wbx.cpp | 21 | ||||
| -rw-r--r-- | host/lib/usrp/dboard/db_xcvr2450.cpp | 8 | 
7 files changed, 107 insertions, 9 deletions
| diff --git a/host/lib/usrp/dboard/db_basic_and_lf.cpp b/host/lib/usrp/dboard/db_basic_and_lf.cpp index 41f6f8002..5a87f4ecf 100644 --- a/host/lib/usrp/dboard/db_basic_and_lf.cpp +++ b/host/lib/usrp/dboard/db_basic_and_lf.cpp @@ -20,6 +20,7 @@  #include <uhd/types/ranges.hpp>  #include <uhd/utils/assert.hpp>  #include <uhd/utils/static.hpp> +#include <uhd/utils/warning.hpp>  #include <uhd/usrp/dboard_base.hpp>  #include <uhd/usrp/dboard_manager.hpp>  #include <boost/assign/list_of.hpp> @@ -68,11 +69,11 @@ static const uhd::dict<std::string, subdev_conn_t> sd_name_to_conn = map_list_of   * Register the basic and LF dboards   **********************************************************************/  static dboard_base::sptr make_basic_rx(dboard_base::ctor_args_t args){ -    return dboard_base::sptr(new basic_rx(args, 90e9)); +    return dboard_base::sptr(new basic_rx(args, 250e6));  }  static dboard_base::sptr make_basic_tx(dboard_base::ctor_args_t args){ -    return dboard_base::sptr(new basic_tx(args, 90e9)); +    return dboard_base::sptr(new basic_tx(args, 250e6));  }  static dboard_base::sptr make_lf_rx(dboard_base::ctor_args_t args){ @@ -161,6 +162,10 @@ void basic_rx::rx_get(const wax::obj &key_, wax::obj &val){          val = true; //there is no LO, so it must be true!          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 2*_max_freq; //we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -185,6 +190,14 @@ void basic_rx::rx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("%s: No tunable bandwidth, fixed filtered to %0.2fMHz") +                % get_rx_id().to_pp_string() % _max_freq +            ) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } @@ -260,6 +273,10 @@ void basic_tx::tx_get(const wax::obj &key_, wax::obj &val){          val = true; //there is no LO, so it must be true!          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 2*_max_freq; //we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -284,6 +301,14 @@ void basic_tx::tx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("%s: No tunable bandwidth, fixed filtered to %0.2fMHz") +                % get_tx_id().to_pp_string() % _max_freq +            ) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } diff --git a/host/lib/usrp/dboard/db_dbsrx.cpp b/host/lib/usrp/dboard/db_dbsrx.cpp index aecd7249d..10e7f292b 100644 --- a/host/lib/usrp/dboard/db_dbsrx.cpp +++ b/host/lib/usrp/dboard/db_dbsrx.cpp @@ -563,7 +563,7 @@ void dbsrx::rx_get(const wax::obj &key_, wax::obj &val){          return;      case SUBDEV_PROP_BANDWIDTH: -        val = _bandwidth; +        val = 2*_bandwidth; //_bandwidth is low-pass, we want complex double-sided          return;      default: UHD_THROW_PROP_GET_ERROR(); @@ -588,7 +588,7 @@ void dbsrx::rx_set(const wax::obj &key_, const wax::obj &val){          return; //always enabled      case SUBDEV_PROP_BANDWIDTH: -        this->set_bandwidth(val.as<double>()); +        this->set_bandwidth(val.as<double>()/2.0); //complex double-sided, we want low-pass          return;      default: UHD_THROW_PROP_SET_ERROR(); diff --git a/host/lib/usrp/dboard/db_rfx.cpp b/host/lib/usrp/dboard/db_rfx.cpp index 3c24d90db..0eeb0bfdf 100644 --- a/host/lib/usrp/dboard/db_rfx.cpp +++ b/host/lib/usrp/dboard/db_rfx.cpp @@ -43,6 +43,7 @@  #include <uhd/utils/assert.hpp>  #include <uhd/utils/static.hpp>  #include <uhd/utils/algorithm.hpp> +#include <uhd/utils/warning.hpp>  #include <uhd/usrp/dboard_id.hpp>  #include <uhd/usrp/dboard_base.hpp>  #include <uhd/usrp/dboard_manager.hpp> @@ -456,6 +457,10 @@ void rfx_xcvr::rx_get(const wax::obj &key_, wax::obj &val){          val = this->get_locked(dboard_iface::UNIT_RX);          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 2*20.0e6; //30MHz low-pass, we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -481,6 +486,12 @@ void rfx_xcvr::rx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("RFX: No tunable bandwidth, fixed filtered to 40MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } @@ -543,6 +554,10 @@ void rfx_xcvr::tx_get(const wax::obj &key_, wax::obj &val){          val = this->get_locked(dboard_iface::UNIT_TX);          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 2*20.0e6; //30MHz low-pass, we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -568,6 +583,12 @@ void rfx_xcvr::tx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("RFX: No tunable bandwidth, fixed filtered to 40MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } diff --git a/host/lib/usrp/dboard/db_tvrx.cpp b/host/lib/usrp/dboard/db_tvrx.cpp index d39dc3bf8..c7aecf195 100644 --- a/host/lib/usrp/dboard/db_tvrx.cpp +++ b/host/lib/usrp/dboard/db_tvrx.cpp @@ -459,6 +459,10 @@ void tvrx::rx_get(const wax::obj &key_, wax::obj &val){          val = true;          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 6.0e6; //30MHz low-pass, we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -479,6 +483,12 @@ void tvrx::rx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("TVRX: No tunable bandwidth, fixed filtered to 6MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } diff --git a/host/lib/usrp/dboard/db_unknown.cpp b/host/lib/usrp/dboard/db_unknown.cpp index ec7ab440b..11293a1ba 100644 --- a/host/lib/usrp/dboard/db_unknown.cpp +++ b/host/lib/usrp/dboard/db_unknown.cpp @@ -19,6 +19,7 @@  #include <uhd/types/ranges.hpp>  #include <uhd/utils/assert.hpp>  #include <uhd/utils/static.hpp> +#include <uhd/utils/warning.hpp>  #include <uhd/usrp/dboard_base.hpp>  #include <uhd/usrp/dboard_manager.hpp>  #include <boost/assign/list_of.hpp> @@ -134,6 +135,10 @@ void unknown_rx::rx_get(const wax::obj &key_, wax::obj &val){          val = true; //there is no LO, so it must be true!          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 0.0; +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -158,12 +163,18 @@ void unknown_rx::rx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("Unknown Daughterboard: No tunable bandwidth, fixed filtered to 0.0MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  }  /*********************************************************************** - * Basic and LF TX dboard + * Unknown TX dboard   **********************************************************************/  unknown_tx::unknown_tx(ctor_args_t args) : tx_dboard_base(args){      /* NOP */ @@ -230,6 +241,10 @@ void unknown_tx::tx_get(const wax::obj &key_, wax::obj &val){          val = true; //there is no LO, so it must be true!          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 0.0; +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -254,6 +269,12 @@ void unknown_tx::tx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("Unknown Daughterboard: No tunable bandwidth, fixed filtered to 0.0MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } diff --git a/host/lib/usrp/dboard/db_wbx.cpp b/host/lib/usrp/dboard/db_wbx.cpp index 907268aac..b07f179a3 100644 --- a/host/lib/usrp/dboard/db_wbx.cpp +++ b/host/lib/usrp/dboard/db_wbx.cpp @@ -71,6 +71,7 @@  #include <uhd/utils/assert.hpp>  #include <uhd/utils/static.hpp>  #include <uhd/utils/algorithm.hpp> +#include <uhd/utils/warning.hpp>  #include <uhd/usrp/dboard_base.hpp>  #include <uhd/usrp/dboard_manager.hpp>  #include <boost/assign/list_of.hpp> @@ -525,6 +526,10 @@ void wbx_xcvr::rx_get(const wax::obj &key_, wax::obj &val){          val = this->get_locked(dboard_iface::UNIT_RX);          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 2*30.0e6; //20MHz low-pass, we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -550,6 +555,12 @@ void wbx_xcvr::rx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("WBX: No tunable bandwidth, fixed filtered to 40MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } @@ -616,6 +627,10 @@ void wbx_xcvr::tx_get(const wax::obj &key_, wax::obj &val){          val = this->get_locked(dboard_iface::UNIT_TX);          return; +    case SUBDEV_PROP_BANDWIDTH: +        val = 2*30.0e6; //20MHz low-pass, we want complex double-sided +        return; +      default: UHD_THROW_PROP_GET_ERROR();      }  } @@ -641,6 +656,12 @@ void wbx_xcvr::tx_set(const wax::obj &key_, const wax::obj &val){      case SUBDEV_PROP_ENABLED:          return; //always enabled +    case SUBDEV_PROP_BANDWIDTH: +        uhd::print_warning( +            str(boost::format("WBX: No tunable bandwidth, fixed filtered to 40MHz")) +        ); +        return; +      default: UHD_THROW_PROP_SET_ERROR();      }  } diff --git a/host/lib/usrp/dboard/db_xcvr2450.cpp b/host/lib/usrp/dboard/db_xcvr2450.cpp index fb1367113..be0e42b92 100644 --- a/host/lib/usrp/dboard/db_xcvr2450.cpp +++ b/host/lib/usrp/dboard/db_xcvr2450.cpp @@ -626,7 +626,7 @@ void xcvr2450::rx_get(const wax::obj &key_, wax::obj &val){          return;      case SUBDEV_PROP_BANDWIDTH: -        val = _rx_bandwidth; +        val = 2*_rx_bandwidth; //_tx_bandwidth is low-pass, we want complex double-sided          return;      default: UHD_THROW_PROP_GET_ERROR(); @@ -652,7 +652,7 @@ void xcvr2450::rx_set(const wax::obj &key_, const wax::obj &val){          return;      case SUBDEV_PROP_BANDWIDTH: -        this->set_rx_bandwidth(val.as<double>()); +        this->set_rx_bandwidth(val.as<double>()/2.0); //complex double-sided, we want low-pass          return;      case SUBDEV_PROP_ENABLED: @@ -725,7 +725,7 @@ void xcvr2450::tx_get(const wax::obj &key_, wax::obj &val){          return;      case SUBDEV_PROP_BANDWIDTH: -        val = _tx_bandwidth; +        val = 2*_tx_bandwidth; //_tx_bandwidth is low-pass, we want complex double-sided          return;      default: UHD_THROW_PROP_GET_ERROR(); @@ -747,7 +747,7 @@ void xcvr2450::tx_set(const wax::obj &key_, const wax::obj &val){          return;      case SUBDEV_PROP_BANDWIDTH: -        this->set_tx_bandwidth(val.as<double>()); +        this->set_tx_bandwidth(val.as<double>()/2.0); //complex double-sided, we want low-pass          return;      case SUBDEV_PROP_ANTENNA: | 
