discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Shutting down a usrp_sink_s


From: Johnathan Corgan
Subject: Re: [Discuss-gnuradio] Shutting down a usrp_sink_s
Date: Mon, 16 Mar 2009 09:09:57 -0700

On Mon, Mar 16, 2009 at 7:43 AM, Mattias Kjellsson <address@hidden> wrote:

> If I install a signal handler which catches ctrl+c and sets a flag, and then
> use (still the same configuration) uses something like:
>
> top_block->start();
> while(!signaled)
>   asm(" nop");
> top_block->stop();
>
> The flow- graph is run as long as ctrl+c isn't pressed and the destructor of
> top_block is run as well.

This is the right way.  Unless you call top_block.run(), you are
responsible for your own SIGINT handler.

> Why is the destructor so important? It's important because if I don't add
> the two following statements in there:
>
> d_tx0->write_io (d_side, -129, 224);
> d_tx0->write_io (d_side, -129, 128);
> (where d_tx0 is a usrp_sink_s_sptr)
>
> I end up with a pike in the spectrum at the tuned center frequency.

This is an open bug (ticket #348), not your code.  It's not clear yet
why it happens, but one theory is that we are shutting down the USRP
transmit pipeline before it has a chance to drain, and leaving a DC
value as input to the CORDIC, resulting in a carrier tone.  Your
workaround is appropriate.

Johnathan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]