diff options
Diffstat (limited to 'gr-uhd/lib/usrp_source_impl.cc')
-rw-r--r-- | gr-uhd/lib/usrp_source_impl.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc index fa910f1a9f..33edea4ab0 100644 --- a/gr-uhd/lib/usrp_source_impl.cc +++ b/gr-uhd/lib/usrp_source_impl.cc @@ -100,12 +100,13 @@ usrp_source_impl::set_center_freq(const ::uhd::tune_request_t tune_request, size ::uhd::tune_result_t usrp_source_impl::_set_center_freq_from_internals(size_t chan, pmt::pmt_t direction) { - _chans_to_tune.reset(chan); if (pmt::eqv(direction, ant_direction_tx())) { // TODO: what happens if the TX device is not instantiated? Catch error? - return _dev->set_tx_freq(_curr_tune_req[chan], _stream_args.channels[chan]); + _tx_chans_to_tune.reset(chan); + return _dev->set_tx_freq(_curr_tx_tune_req[chan], _stream_args.channels[chan]); } else { - return _dev->set_rx_freq(_curr_tune_req[chan], _stream_args.channels[chan]); + _rx_chans_to_tune.reset(chan); + return _dev->set_rx_freq(_curr_rx_tune_req[chan], _stream_args.channels[chan]); } } @@ -121,10 +122,14 @@ double usrp_source_impl::get_center_freq(size_t chan) return _dev->get_rx_freq_range(chan); } -void usrp_source_impl::set_gain(double gain, size_t chan) +void usrp_source_impl::set_gain(double gain, size_t chan, pmt::pmt_t direction) { chan = _stream_args.channels[chan]; - return _dev->set_rx_gain(gain, chan); + if (pmt::eqv(direction, ant_direction_tx())) { + return _dev->set_tx_gain(gain, chan); + } else { + return _dev->set_rx_gain(gain, chan); + } } void usrp_source_impl::set_gain(double gain, const std::string& name, size_t chan) |