From b39358f490a24ffe4b8b29227736b8d2eb40b956 Mon Sep 17 00:00:00 2001 From: Derek Kozel Date: Tue, 10 Jul 2018 16:51:14 +0000 Subject: uhd: Expose DC Offset range via multi_usrp interface --- host/lib/usrp/cores/rx_frontend_core_200.cpp | 9 +++++++++ host/lib/usrp/cores/rx_frontend_core_3000.cpp | 9 +++++++++ host/lib/usrp/cores/tx_frontend_core_200.cpp | 9 +++++++++ 3 files changed, 27 insertions(+) (limited to 'host/lib/usrp/cores') diff --git a/host/lib/usrp/cores/rx_frontend_core_200.cpp b/host/lib/usrp/cores/rx_frontend_core_200.cpp index 38710db15..f0556e4b0 100644 --- a/host/lib/usrp/cores/rx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_200.cpp @@ -6,6 +6,7 @@ // #include +#include #include #include @@ -21,6 +22,11 @@ using namespace uhd; #define OFFSET_SET (1ul << 30) #define FLAG_MASK (OFFSET_FIXED | OFFSET_SET) +namespace { + static const double DC_OFFSET_MIN = -1.0; + static const double DC_OFFSET_MAX = 1.0; +} + static uint32_t fs_to_bits(const double num, const size_t bits){ return int32_t(boost::math::round(num * (1 << (bits-1)))); } @@ -71,6 +77,9 @@ public: void populate_subtree(uhd::property_tree::sptr subtree) { + subtree->create("dc_offset/range") + .set(meta_range_t(DC_OFFSET_MIN, DC_OFFSET_MAX)) + ; subtree->create >("dc_offset/value") .set(DEFAULT_DC_OFFSET_VALUE) .set_coercer(boost::bind(&rx_frontend_core_200::set_dc_offset, this, _1)) diff --git a/host/lib/usrp/cores/rx_frontend_core_3000.cpp b/host/lib/usrp/cores/rx_frontend_core_3000.cpp index cf1a105d8..841a72d9b 100644 --- a/host/lib/usrp/cores/rx_frontend_core_3000.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_3000.cpp @@ -6,6 +6,7 @@ // #include +#include #include #include #include @@ -34,6 +35,11 @@ using namespace uhd; #define OFFSET_SET (1ul << 30) #define FLAG_MASK (OFFSET_FIXED | OFFSET_SET) +namespace { + static const double DC_OFFSET_MIN = -1.0; + static const double DC_OFFSET_MAX = 1.0; +} + using namespace uhd::usrp; static uint32_t fs_to_bits(const double num, const size_t bits){ @@ -138,6 +144,9 @@ public: } void populate_subtree(uhd::property_tree::sptr subtree) { + subtree->create("dc_offset/range") + .set(meta_range_t(DC_OFFSET_MIN, DC_OFFSET_MAX)) + ; subtree->create >("dc_offset/value") .set(DEFAULT_DC_OFFSET_VALUE) .set_coercer(boost::bind(&rx_frontend_core_3000::set_dc_offset, this, _1)) diff --git a/host/lib/usrp/cores/tx_frontend_core_200.cpp b/host/lib/usrp/cores/tx_frontend_core_200.cpp index 7e23e2515..d44a618bc 100644 --- a/host/lib/usrp/cores/tx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/tx_frontend_core_200.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -23,6 +24,11 @@ using namespace uhd; const std::complex tx_frontend_core_200::DEFAULT_DC_OFFSET_VALUE = std::complex(0.0, 0.0); const std::complex tx_frontend_core_200::DEFAULT_IQ_BALANCE_VALUE = std::complex(0.0, 0.0); +namespace { + static const double DC_OFFSET_MIN = -1.0; + static const double DC_OFFSET_MAX = 1.0; +} + static uint32_t fs_to_bits(const double num, const size_t bits){ return int32_t(boost::math::round(num * (1 << (bits-1)))); } @@ -67,6 +73,9 @@ public: void populate_subtree(uhd::property_tree::sptr subtree) { + subtree->create("dc_offset/range") + .set(meta_range_t(DC_OFFSET_MIN, DC_OFFSET_MAX)) + ; subtree->create< std::complex >("dc_offset/value") .set(DEFAULT_DC_OFFSET_VALUE) .set_coercer(boost::bind(&tx_frontend_core_200::set_dc_offset, this, _1)) -- cgit v1.2.3