diff --git a/uhd_cpp/uhd_spectrum/qtgui/freqctrl.cpp b/uhd_cpp/uhd_spectrum/qtgui/freqctrl.cpp index cecd1d1947fb14e60c25fc876c2dbbce3a1deb9f..2e26b59a18ad7ca001dc25c7e131c76570e62095 100644 --- a/uhd_cpp/uhd_spectrum/qtgui/freqctrl.cpp +++ b/uhd_cpp/uhd_spectrum/qtgui/freqctrl.cpp @@ -58,7 +58,7 @@ CFreqCtrl::CFreqCtrl(QWidget *parent) : m_DigitColor = QColor(0xFF, 0xFF, 0xFF, 0xFF); m_HighlightColor = QColor(0x5A, 0x5A, 0x5A, 0xFF); m_UnitsColor = Qt::gray; - m_freq = 146123456; + m_freq = 0; setup(0, 1, 6000000000U, 1, FCTL_UNIT_NONE); m_Oldfreq = 0; m_LastLeadZeroPos = 0; diff --git a/uhd_cpp/uhd_spectrum/specwidget.cpp b/uhd_cpp/uhd_spectrum/specwidget.cpp index 6111541a6786e4a74793163b2df4bacb388eb892..15a3c802c9b709143d5d0eb9f01ad0d2c0ba880a 100644 --- a/uhd_cpp/uhd_spectrum/specwidget.cpp +++ b/uhd_cpp/uhd_spectrum/specwidget.cpp @@ -118,6 +118,8 @@ void specWidget::setBookmarksEnabled(bool enabled){ ui->plotter->setBookmarksEnabled(enabled); } void specWidget::setCenterFreq(quint64 f){ + if (f<=0) + return; f = set_center_freq(f); ui->plotter->setCenterFreq(f); if (ui->doubleSpinBox_center->value() * 1e6 !=ui->freqCtrl->getFrequency()) diff --git a/uhd_cpp/uhd_spectrum/uhd_device.cpp b/uhd_cpp/uhd_spectrum/uhd_device.cpp index 0a5a7e3b29d2f3deb8c3eac46e3b593cce91c4fc..edb11e85c7845d21f216dac8140f67d70325a600 100644 --- a/uhd_cpp/uhd_spectrum/uhd_device.cpp +++ b/uhd_cpp/uhd_spectrum/uhd_device.cpp @@ -224,8 +224,9 @@ quint64 uhd_device::set_center_freq(const quint64 freq_in_hz) { if (usrp) { + 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); + 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)); } diff --git a/uhd_cpp/uhd_spectrum/uhd_device_win32.cpp b/uhd_cpp/uhd_spectrum/uhd_device_win32.cpp index 06fa1e4f7b35b0a757242a4b5d13980442228912..30deb80fbf2f086adba8ba07c4668d07eba7a0f9 100644 --- a/uhd_cpp/uhd_spectrum/uhd_device_win32.cpp +++ b/uhd_cpp/uhd_spectrum/uhd_device_win32.cpp @@ -252,15 +252,18 @@ quint64 uhd_device::set_center_freq(const quint64 freq_in_hz) { if (!usrp) return freq_in_hz; - fprintf(stderr, "Setting RX frequency: %f MHz...\n", freq_in_hz/1e6); + double srate = 0; + UHD_DO(uhd_usrp_get_rx_rate(usrp, m_channel, &srate)); + + fprintf(stderr, "Setting RX frequency: %f MHz...\n", freq_in_hz/1e6); uhd_tune_result_t rx_tune_result; uhd_tune_request_t rx_tune_request = { /*.target_freq =*/ (double)freq_in_hz, /*.rf_freq_policy =*/ UHD_TUNE_REQUEST_POLICY_AUTO, /*.rf_freq =*/ 0, - /*.dsp_freq_policy = */UHD_TUNE_REQUEST_POLICY_AUTO, - /*.dsp_freq =*/ 0, + /*.dsp_freq_policy = */UHD_TUNE_REQUEST_POLICY_MANUAL, + /*.dsp_freq =*/ srate/2, /*.args =*/ 0 }; UHD_DO(uhd_usrp_set_rx_freq(usrp, &rx_tune_request, m_channel, &rx_tune_result));