diff options
author | Josh Blum <josh@joshknows.com> | 2012-02-24 17:44:57 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2012-03-11 15:56:06 -0700 |
commit | 72d78c6f10ecac9120a75aa9b49fed58ef8cec40 (patch) | |
tree | 1ed47c4186dee82887547dae00926716a54c8e02 /host | |
parent | b2c0d1f55a1c2190a6a6fd5967eb0a6ffd60b272 (diff) | |
download | uhd-72d78c6f10ecac9120a75aa9b49fed58ef8cec40.tar.gz uhd-72d78c6f10ecac9120a75aa9b49fed58ef8cec40.tar.bz2 uhd-72d78c6f10ecac9120a75aa9b49fed58ef8cec40.zip |
uhd: added fullscale option stream arg
Diffstat (limited to 'host')
-rw-r--r-- | host/include/uhd/stream.hpp | 7 | ||||
-rw-r--r-- | host/lib/usrp/cores/rx_dsp_core_200.cpp | 2 | ||||
-rw-r--r-- | host/lib/usrp/cores/tx_dsp_core_200.cpp | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/host/include/uhd/stream.hpp b/host/include/uhd/stream.hpp index cec2eee79..1fb846955 100644 --- a/host/include/uhd/stream.hpp +++ b/host/include/uhd/stream.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011 Ettus Research LLC +// Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -79,6 +79,11 @@ struct UHD_API stream_args_t{ * The args parameter is used to pass arbitrary key/value pairs. * Possible keys used by args (depends on implementation): * + * - fullscale: specifies the full-scale amplitude when using floats. + * By default, the fullscale amplitude under floating point is 1.0. + * Set the "fullscale" to scale the samples in the host to the + * expected input range and/or output range of your application. + * * - peak: specifies a fractional sample level to calculate scaling with the sc8 wire format. * When using sc8 samples over the wire, the device must scale samples * (both on the host and in the device) to satisfy the dynamic range needs. diff --git a/host/lib/usrp/cores/rx_dsp_core_200.cpp b/host/lib/usrp/cores/rx_dsp_core_200.cpp index 0996952ff..4b60f111c 100644 --- a/host/lib/usrp/cores/rx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_200.cpp @@ -241,6 +241,8 @@ public: } else throw uhd::value_error("USRP RX cannot handle requested wire format: " + stream_args.otw_format); + _host_extra_scaling *= stream_args.args.cast<double>("fullscale", 1.0); + this->update_scalar(); _iface->poke32(REG_RX_CTRL_FORMAT, format_word); diff --git a/host/lib/usrp/cores/tx_dsp_core_200.cpp b/host/lib/usrp/cores/tx_dsp_core_200.cpp index 7f02d59ca..2faf7c28b 100644 --- a/host/lib/usrp/cores/tx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_200.cpp @@ -192,6 +192,8 @@ public: } else throw uhd::value_error("USRP TX cannot handle requested wire format: " + stream_args.otw_format); + _host_extra_scaling /= stream_args.args.cast<double>("fullscale", 1.0); + this->update_scalar(); _iface->poke32(REG_TX_CTRL_FORMAT, format_word); |