discuss-gnuradio
[Top][All Lists]
Advanced

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

[Discuss-gnuradio] Detecting EOF of previous block


From: Martin Lülf
Subject: [Discuss-gnuradio] Detecting EOF of previous block
Date: Thu, 14 Feb 2013 14:37:43 +0100
User-agent: SquirrelMail/1.4.22

Dear list,

I have another question regarding stopping the flowgraph. This time it is
about streaming blocks, no messages involved at all.

My flowgraph looks like this  (block A) --byte--> (block B) --byte--> ...

Block A is a byte source that signals EOF at a certain point, lets assume
after sending out 11 bytes.

Block B is a ratio 1:1 sync block which works on groups of input items,
say 5 bytes. If B's work is provided with less than 5 samples it will
return 0 and wait to get more samples.

Unfortunatley the blocksize of block B is not fixed but based on a state,
so I can't call set_output_multiple to tell the scheduler to only provide
me with multiples of 5 bytes because a few items later it might change to
6 bytes.

As you can see from the example above B will process the first 10 bytes
like expected, but then there is still one byte left to be processed by B.
The problem I have is to detect whether block B is asked to process only
one byte, because that's all the scheduler has so far (but A will produce
more), or if it is asked to process this one sample because that is the
last one available (A has already signaled EOF).

Is there any build in way to detect that the previous block in the
flowgraph has already signaled EOF? The only way I could think of is to
attach an EOF stream tag to the stream in the previous block A and
evaluate the tags in block B. Are there any other approaches/ideas? Might
a general EOF tag be a good idea for gnuradio (so that file source and
head or even the scheduler itself attach the EOF tag)?

Martin





reply via email to

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