diff options
Diffstat (limited to 'gr-uhd/lib/usrp_sink_impl.cc')
-rw-r--r-- | gr-uhd/lib/usrp_sink_impl.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc index 729db6a3d7..fbb0b876c2 100644 --- a/gr-uhd/lib/usrp_sink_impl.cc +++ b/gr-uhd/lib/usrp_sink_impl.cc @@ -84,7 +84,7 @@ double usrp_sink_impl::get_samp_rate(void) ::uhd::tune_result_t usrp_sink_impl::set_center_freq(const ::uhd::tune_request_t tune_request, size_t chan) { - _curr_tune_req[chan] = tune_request; + _curr_tx_tune_req[chan] = tune_request; chan = _stream_args.channels[chan]; return _dev->set_tx_freq(tune_request, chan); } @@ -92,12 +92,13 @@ usrp_sink_impl::set_center_freq(const ::uhd::tune_request_t tune_request, size_t ::uhd::tune_result_t usrp_sink_impl::_set_center_freq_from_internals(size_t chan, pmt::pmt_t direction) { - _chans_to_tune.reset(chan); if (pmt::eqv(direction, ant_direction_rx())) { // TODO: what happens if the RX device is not instantiated? Catch error? - 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]); } else { - 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]); } } @@ -113,10 +114,14 @@ double usrp_sink_impl::get_center_freq(size_t chan) return _dev->get_tx_freq_range(chan); } -void usrp_sink_impl::set_gain(double gain, size_t chan) +void usrp_sink_impl::set_gain(double gain, size_t chan, pmt::pmt_t direction) { chan = _stream_args.channels[chan]; - return _dev->set_tx_gain(gain, chan); + if (pmt::eqv(direction, ant_direction_rx())) { + return _dev->set_rx_gain(gain, chan); + } else { + return _dev->set_tx_gain(gain, chan); + } } void usrp_sink_impl::set_gain(double gain, const std::string& name, size_t chan) |