Hi Jon,

I'll try to structure this and reply in-text, so we can get to a mutual
understanding faster :)

> My application buffers a bunch of data and then performs some signal
processing on it that can take up to 500ms.

Does that mean it takes up to 0.5s worth of sampled signal, or does just
the computation take that long? Is there something like a minimum block
size of samples that your algorithm needs?
Here, a bit of info on what you're actually doing would be nice.

> Once processing is complete, the processing thread waits a certain
amount of time before reading the buffer and then processing again,
meanwhile the main trhread is consuming samples and advancing a sample
counter.

GNU Radio will do exactly that for you: you just write a block that
transforms a set of input items to a set of output items, and GNU Radio
cares about how to fill your input buffer, when to call you, how to
inform you how much items there are to process, and how to notify your
downstream flowgraph neighbors about new data.

> I was wondering what the best way to implement this as a GRC block.

Depends on what you do in that block. I have my doubts about your 500ms
computation step not being split into smaller processing steps; but the
feasibility of that completely depends on the actual thing you want to do...

> Currently I am creating the thread in the the block constructor and
killing it in the destructor.

That sounds a bit like you're doing GNU Radio wrong. Your block is
already running in a thread of its own -- that's what the
thread-per-block scheduler does for you ;)

Greetings,
Marcus

On 01/16/2015 06:13 PM, Jon West wrote:
> I'm new to gnu radio, but I am trying to port a thread SDR application
> in to  a GRC block. My application buffers a bunch of data and then
> performs some signal processing on it that can take up to 500ms. Once
> processing is complete, the processing thread waits a certain amount
> of time before reading the buffer and then processing again, meanwhile
> the main trhread is consuming samples and advancing a sample counter.
> I was wondering what the best way to implement this as a GRC block.
> Currently I am creating the thread in the the block constructor and
> killing it in the destructor. I've done a search to try and find a
> solution to this but not finding much, or constantly be directed at
> the same results that don't help
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to