Esempio n. 1
0
/**
 * @brief Update list of sample rates based on selected device.
 * @param rate The current sample rate from the configuration.
 */
void CIoConfig::updateInputSampleRates(int rate)
{
    ui->inSrCombo->clear();

    if (ui->inDevEdit->text().isEmpty())
        return;

    if (ui->inDevEdit->text().contains("fcd"))
    {
        if (ui->inDevCombo->currentText().contains("V2"))   // V2.0 or V2_0
        {
            ui->inSrCombo->addItem("192000");
        }
        else
        {
            ui->inSrCombo->addItem("96000");
        }
    }
    else if (ui->inDevEdit->text().contains("rtl") || ui->inDevEdit->text().contains("rtl_tcp"))
    {
        ui->inSrCombo->addItem("240000");
        ui->inSrCombo->addItem("300000");
        ui->inSrCombo->addItem("960000");
        ui->inSrCombo->addItem("1152000");
        ui->inSrCombo->addItem("1200000");
        ui->inSrCombo->addItem("1440000");
        ui->inSrCombo->addItem("1600000");
        ui->inSrCombo->addItem("1800000");
        ui->inSrCombo->addItem("1920000");
        ui->inSrCombo->addItem("2400000");
        ui->inSrCombo->addItem("2880000");
        ui->inSrCombo->addItem("3200000");
        if (rate > 0)
        {
            ui->inSrCombo->addItem(QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(12);
        }
        else
        {
            ui->inSrCombo->setCurrentIndex(7);
        }
    }
    else if (ui->inDevEdit->text().contains("uhd"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("2000000");
        ui->inSrCombo->addItem("4000000");
        ui->inSrCombo->addItem("8000000");
    }
    else if (ui->inDevEdit->text().contains("hackrf"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("8000000");
        ui->inSrCombo->addItem("10000000");
        ui->inSrCombo->addItem("12500000");
        ui->inSrCombo->addItem("16000000");
        ui->inSrCombo->addItem("20000000");
    }
    else if (ui->inDevEdit->text().contains("bladerf"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("5000000");
        ui->inSrCombo->addItem("8000000");
        ui->inSrCombo->addItem("10000000");
        ui->inSrCombo->addItem("15000000");
        ui->inSrCombo->addItem("20000000");
        ui->inSrCombo->addItem("25000000");
        ui->inSrCombo->addItem("30000000");
        ui->inSrCombo->addItem("35000000");
        ui->inSrCombo->addItem("40000000");
    }
    else if (ui->inDevEdit->text().contains("sdr-iq"))
    {
        ui->inSrCombo->addItem("8138");
        ui->inSrCombo->addItem("16276");
        ui->inSrCombo->addItem("37793");
        ui->inSrCombo->addItem("55556");
        ui->inSrCombo->addItem("111111");
        ui->inSrCombo->addItem("158730");
        ui->inSrCombo->addItem("196078");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(4); // select 111.111 kHz
    }
    else if (ui->inDevEdit->text().contains("sdr-ip"))
    {
        ui->inSrCombo->addItem("31250");
        ui->inSrCombo->addItem("32000");
        ui->inSrCombo->addItem("40000");
        ui->inSrCombo->addItem("50000");
        ui->inSrCombo->addItem("62500");
        ui->inSrCombo->addItem("64000");
        ui->inSrCombo->addItem("80000");
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("125000");
        ui->inSrCombo->addItem("160000");
        ui->inSrCombo->addItem("200000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("320000");
        ui->inSrCombo->addItem("400000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("800000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1600000");
        ui->inSrCombo->addItem("2000000");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(11); // select 250 kHz
    }
    else if (ui->inDevEdit->text().contains("netsdr"))
    {
        ui->inSrCombo->addItem("32000");
        ui->inSrCombo->addItem("40000");
        ui->inSrCombo->addItem("50000");
        ui->inSrCombo->addItem("62500");
        ui->inSrCombo->addItem("78125");
        ui->inSrCombo->addItem("80000");
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("125000");
        ui->inSrCombo->addItem("156250");
        ui->inSrCombo->addItem("160000");
        ui->inSrCombo->addItem("200000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("312500");
        ui->inSrCombo->addItem("400000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("625000");
        ui->inSrCombo->addItem("800000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1250000");
        ui->inSrCombo->addItem("2000000");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(11); // select 250 kHz
    }
    else if (ui->inDevEdit->text().contains("cloudiq"))
    {
        ui->inSrCombo->addItem("48000");
        ui->inSrCombo->addItem("61440");
        ui->inSrCombo->addItem("96000");
        ui->inSrCombo->addItem("122880");
        ui->inSrCombo->addItem("240000");
        ui->inSrCombo->addItem("256000");
        ui->inSrCombo->addItem("370120");
        ui->inSrCombo->addItem("495483");
        ui->inSrCombo->addItem("512000");
        ui->inSrCombo->addItem("614400");
        ui->inSrCombo->addItem("1024000");
        ui->inSrCombo->addItem("1228800");
        ui->inSrCombo->addItem("1807058");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(4); // select 240 kHz
    }
    else if (ui->inDevEdit->text().contains("airspyhf"))
    {
        ui->inSrCombo->addItem("768000");
    }
    // NB: must list airspyhf first
    else if (ui->inDevEdit->text().contains("airspy"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));

        ui->inSrCombo->addItem("2500000");
        ui->inSrCombo->addItem("3000000");
        ui->inSrCombo->addItem("6000000");
        ui->inSrCombo->addItem("10000000");
    }
    else if (ui->inDevEdit->text().contains("redpitaya"))
    {
        ui->inSrCombo->addItem("20000");
        ui->inSrCombo->addItem("50000");
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("1250000");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(3); // select 250 kHz
    }
    else if (ui->inDevEdit->text().contains("sdrplay"))
    {
        ui->inSrCombo->addItem("62500");
        ui->inSrCombo->addItem("125000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("2000000");
        ui->inSrCombo->addItem("3000000");
        ui->inSrCombo->addItem("4000000");
        ui->inSrCombo->addItem("5000000");
        ui->inSrCombo->addItem("6000000");
        ui->inSrCombo->addItem("7000000");
        ui->inSrCombo->addItem("8000000");
        ui->inSrCombo->addItem("9000000");
        ui->inSrCombo->addItem("10000000");
        if (rate > 0)
        {
            if (rate < 62500)
                rate = 62500;
            if (rate > 10000000)
                rate = 10000000;
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(5); // select 2 MHz
    }
    else if (ui->inDevEdit->text().contains("lime"))
    {
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("2500000");
        ui->inSrCombo->addItem("5000000");
        ui->inSrCombo->addItem("10000000");
        ui->inSrCombo->addItem("20000000");
        ui->inSrCombo->addItem("50000000");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(4); // select 5 MHz
    }
    else if (ui->inDevEdit->text().contains("plutosdr"))
    {
        ui->inSrCombo->addItem("600000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1500000");
        ui->inSrCombo->addItem("2000000");
        ui->inSrCombo->addItem("3000000");
        ui->inSrCombo->addItem("6000000");
        ui->inSrCombo->addItem("16000000");
        ui->inSrCombo->addItem("20000000");
        ui->inSrCombo->addItem("56000000");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(2); // select 2 MHz
    }
    else if (ui->inDevEdit->text().contains("perseus"))
    {
        ui->inSrCombo->addItem("48000");
        ui->inSrCombo->addItem("95000");
        ui->inSrCombo->addItem("96000");
        ui->inSrCombo->addItem("125000");
        ui->inSrCombo->addItem("192000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1600000");
        ui->inSrCombo->addItem("2000000");
        if (rate > 0)
        {
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(0);
        }
        else
            ui->inSrCombo->setCurrentIndex(4); // select 192 kHz
    }
    else
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
    }

    updateDecimations();
}
Esempio n. 2
0
/**
 * @brief Sample changed, either by selection of direct entry.
 * @param text The new sample rate.
 */
void CIoConfig::inputRateChanged(const QString &text)
{
    (void) text;
    updateDecimations();
}
Esempio n. 3
0
/**
 * @brief Update list of sample rates based on selected device.
 * @param rate The current sample rate from the configuration.
 */
void CIoConfig::updateInputSampleRates(int rate)
{
    ui->inSrCombo->clear();

    if (ui->inDevEdit->text().isEmpty())
    {
        return;
    }

    /** FIXME: this code crashes on RTL device so we use fixed rates **/
    //osmosdr_source_c_sptr src = osmosdr_make_source_c(ui->inDevEdit->text().toStdString());
    //osmosdr::meta_range_t rates = src->get_sample_rates();
    //BOOST_FOREACH(osmosdr::range_t &rate, rates)
    //{
    //    ui->inSrCombo->addItem(QString("%1 kHz").arg(rate.start()/1000, 0, 'f', 0));
    //}
    //src.reset();

    if (ui->inDevEdit->text().contains("fcd"))
    {
        if (ui->inDevCombo->currentText().contains("V2"))   // V2.0 or V2_0
        {
            ui->inSrCombo->addItem("192000");
        }
        else
        {
            ui->inSrCombo->addItem("96000");
        }
    }
    else if (ui->inDevEdit->text().contains("rtl") || ui->inDevEdit->text().contains("rtl_tcp"))
    {
        ui->inSrCombo->addItem("240000");
        ui->inSrCombo->addItem("300000");
        ui->inSrCombo->addItem("960000");
        ui->inSrCombo->addItem("1152000");
        ui->inSrCombo->addItem("1200000");
        ui->inSrCombo->addItem("1440000");
        ui->inSrCombo->addItem("1600000");
        ui->inSrCombo->addItem("1800000");
        ui->inSrCombo->addItem("1920000");
        ui->inSrCombo->addItem("2400000");
        ui->inSrCombo->addItem("2880000");
        ui->inSrCombo->addItem("3200000");
        if (rate > 0)
        {
            ui->inSrCombo->addItem(QString("%1").arg(rate));
            ui->inSrCombo->setCurrentIndex(12);
        }
        else
        {
            ui->inSrCombo->setCurrentIndex(7);
        }
    }
    else if (ui->inDevEdit->text().contains("uhd"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("2000000");
        ui->inSrCombo->addItem("4000000");
        ui->inSrCombo->addItem("8000000");
    }
    else if (ui->inDevEdit->text().contains("hackrf"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("8000000");
        ui->inSrCombo->addItem("10000000");
        ui->inSrCombo->addItem("12500000");
        ui->inSrCombo->addItem("16000000");
        ui->inSrCombo->addItem("20000000");
    }
    else if (ui->inDevEdit->text().contains("bladerf"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("160000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("2000000");
        ui->inSrCombo->addItem("5000000");
        ui->inSrCombo->addItem("8000000");
        ui->inSrCombo->addItem("10000000");
        ui->inSrCombo->addItem("15000000");
        ui->inSrCombo->addItem("20000000");
        ui->inSrCombo->addItem("25000000");
        ui->inSrCombo->addItem("30000000");
        ui->inSrCombo->addItem("35000000");
        ui->inSrCombo->addItem("40000000");
    }
    else if (ui->inDevEdit->text().contains("sdr-iq"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));

        ui->inSrCombo->addItem("8138");
        ui->inSrCombo->addItem("16276");
        ui->inSrCombo->addItem("37793");
        ui->inSrCombo->addItem("55556");
        ui->inSrCombo->addItem("111111");
        ui->inSrCombo->addItem("158730");
        ui->inSrCombo->addItem("196078");
    }
    else if (ui->inDevEdit->text().contains("sdr-ip"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));

        ui->inSrCombo->addItem("31250");
        ui->inSrCombo->addItem("32000");
        ui->inSrCombo->addItem("40000");
        ui->inSrCombo->addItem("50000");
        ui->inSrCombo->addItem("62500");
        ui->inSrCombo->addItem("64000");
        ui->inSrCombo->addItem("80000");
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("125000");
        ui->inSrCombo->addItem("160000");
        ui->inSrCombo->addItem("200000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("320000");
        ui->inSrCombo->addItem("400000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("800000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1600000");
        ui->inSrCombo->addItem("2000000");
    }
    else if (ui->inDevEdit->text().contains("netsdr"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));

        ui->inSrCombo->addItem("32000");
        ui->inSrCombo->addItem("40000");
        ui->inSrCombo->addItem("50000");
        ui->inSrCombo->addItem("62500");
        ui->inSrCombo->addItem("78125");
        ui->inSrCombo->addItem("80000");
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("125000");
        ui->inSrCombo->addItem("156250");
        ui->inSrCombo->addItem("160000");
        ui->inSrCombo->addItem("200000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("312500");
        ui->inSrCombo->addItem("400000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("625000");
        ui->inSrCombo->addItem("800000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1250000");
        ui->inSrCombo->addItem("2000000");
    }
    else if (ui->inDevEdit->text().contains("cloudiq"))
    {
        ui->inSrCombo->addItem("48000");
        ui->inSrCombo->addItem("61440");
        ui->inSrCombo->addItem("96000");
        ui->inSrCombo->addItem("122880");
        ui->inSrCombo->addItem("240000");
        ui->inSrCombo->addItem("256000");
        ui->inSrCombo->addItem("370120");
        ui->inSrCombo->addItem("495483");
        ui->inSrCombo->addItem("512000");
        ui->inSrCombo->addItem("614400");
        ui->inSrCombo->addItem("1024000");
        ui->inSrCombo->addItem("1228800");
        ui->inSrCombo->addItem("1807058");
        if (rate > 0)
            ui->inSrCombo->insertItem(0, QString("%1").arg(rate));
        else
            ui->inSrCombo->setCurrentIndex(4); // select 370 kHz
    }
    else if (ui->inDevEdit->text().contains("airspy"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));

        ui->inSrCombo->addItem("2500000");
        ui->inSrCombo->addItem("3000000");
        ui->inSrCombo->addItem("6000000");
        ui->inSrCombo->addItem("10000000");
    }
    else if (ui->inDevEdit->text().contains("redpitaya"))
    {
        ui->inSrCombo->addItem("20000");
        ui->inSrCombo->addItem("50000");
        ui->inSrCombo->addItem("100000");
        ui->inSrCombo->addItem("250000");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("1250000");
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        else
            ui->inSrCombo->setCurrentIndex(3); // select 250 kHz
    }
    else if (ui->inDevEdit->text().contains("sdrplay"))
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
        ui->inSrCombo->addItem("222222");
        ui->inSrCombo->addItem("333333");
        ui->inSrCombo->addItem("428571");
        ui->inSrCombo->addItem("500000");
        ui->inSrCombo->addItem("571429");
        ui->inSrCombo->addItem("750000");
        ui->inSrCombo->addItem("875000");
        ui->inSrCombo->addItem("1000000");
        ui->inSrCombo->addItem("1536000");
        ui->inSrCombo->addItem("2048000");
        ui->inSrCombo->addItem("5000000");
        ui->inSrCombo->addItem("6000000");
        ui->inSrCombo->addItem("7000000");
        ui->inSrCombo->addItem("8000000");
        ui->inSrCombo->addItem("9000000");
        ui->inSrCombo->addItem("10000000");
        ui->inSrCombo->addItem("11000000");
        ui->inSrCombo->addItem("12000000");
        if (rate == 0)
            ui->inSrCombo->setCurrentIndex(9); // select 2048 kHz
    }
    else
    {
        if (rate > 0)
            ui->inSrCombo->addItem(QString("%1").arg(rate));
    }

    updateDecimations();
}