コード例 #1
0
ファイル: topblock.hpp プロジェクト: sayguh/MastersProject
    TopBlock(double centerFreq, double sampleRate, double freqRes, double cycFreqRes, std::string fileName) :
        gr_top_block("Top Block"),
        Np(pow2roundup((int)sampleRate/freqRes)),
        L(Np/4),
        P(pow2roundup(sampleRate/cycFreqRes/L)),
        N(P*L),
        vector_length(N),
        source(osmosdr_make_source_c()), /* OsmoSDR Source */
        fileSource(gr_make_file_source(sizeof(float)*2, "/home/ylb/QAM16_44_1k.dat", false)),
        stv(gr_make_stream_to_vector(sizeof(float)*2, vector_length)), /* Stream to vector */
        /* autoFam - this does most of the interesting work */
        sink(make_autofam_sink(source, vector_length, centerFreq, sampleRate, freqRes, cycFreqRes, fileName))
    {

        /* Set up the OsmoSDR Source */
        source->set_sample_rate(sampleRate);
        source->set_center_freq(centerFreq);
        source->set_freq_corr(0.0);
        source->set_gain_mode(false);
        source->set_gain(30);
        source->set_if_gain(25.0);

        /* Set up the connections */
        connect(fileSource, 0, stv, 0);
        connect(stv, 0, sink, 0);
    }
コード例 #2
0
ファイル: receiver.cpp プロジェクト: JBTech/gqrx
/*! \brief Start playback of recorded I/Q data file.
 *  \param filename The file to play from. Must be raw file containing gr_complex samples.
 *  \param samprate The sample rate (currently fixed at 96ksps)
 */
receiver::status receiver::start_iq_playback(const std::string filename, float samprate)
{
#if 0
    if (samprate != d_bandwidth) {
        return STATUS_ERROR;
    }

    try {
        iq_src = gr_make_file_source(sizeof(gr_complex), filename.c_str(), false);
    }
    catch (std::runtime_error &e) {
        std::cout << "Error loading " << filename << ": " << e.what() << std::endl;
        return STATUS_ERROR;
    }

    tb->lock();

    /* disconenct hardware source */
    tb->disconnect(src, 0, nb, 0);
    tb->disconnect(src, 0, iq_sink, 0);

    /* connect I/Q source via throttle block */
    tb->connect(iq_src, 0, nb, 0);
    tb->connect(iq_src, 0, iq_sink, 0);
    tb->unlock();
#endif
    return STATUS_OK;
}