From 22052dd1b936ea2751a4d84f6136bb1c9a1d0198 Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 6 Feb 2021 16:17:56 +0800 Subject: [PATCH] Sample rate check in Linux --- uhd_cpp/uhd_spectrum/uhd_device.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/uhd_cpp/uhd_spectrum/uhd_device.cpp b/uhd_cpp/uhd_spectrum/uhd_device.cpp index edb11e8..74bf532 100644 --- a/uhd_cpp/uhd_spectrum/uhd_device.cpp +++ b/uhd_cpp/uhd_spectrum/uhd_device.cpp @@ -226,7 +226,7 @@ quint64 uhd_device::set_center_freq(const quint64 freq_in_hz) { double rate = usrp->get_rx_rate(m_channel); using uhd::tune_request_t; - tune_request_t tune_request_rx = tune_request_t((double)freq_in_hz,rate/2); + tune_request_t tune_request_rx = tune_request_t((double)freq_in_hz/*,rate/2*/); usrp->set_rx_freq(tune_request_rx,m_channel); return (quint64)(usrp->get_rx_freq(m_channel)); } @@ -258,11 +258,17 @@ double uhd_device::set_rx_gain(double gain) double uhd_device::set_rx_bandwidth(double bw) { - if (usrp) + if (usrp && bw>=200000) { usrp->set_rx_bandwidth(bw,m_channel); bw = usrp->get_rx_bandwidth(m_channel); } + else if (usrp ) + { + usrp->set_rx_bandwidth(usrp->get_rx_rate(m_channel),m_channel); + bw = usrp->get_rx_bandwidth(m_channel); + } + return bw; } -- GitLab