On Thu, Dec 03, 2009 at 11:16:01AM -0600, Mir M. Ali wrote:
> Hi,
> I developed a gnuradio block that takes 2 inputs. Input_01 is coming from a
> source that repeats and Input_02 is coming from a source that exhausts after
> a while. The output should only be generated when there is data on both the
> input lines. I see in my flowgraph that even when the data on input_02
> exhausts output is still generated even though I see no problem with my C++
> code. Its a simple operation in which for each input in Input_02 line the
> block outputs 'N' items from Input_01. Once, the data source (in this case
> is a file_source in non-repeat mode) for Input_02 exhausts i.e. the file is
> read completely the output should stop being generated as there is nothing
> coming on Input_02. I expect the previous data stored in the buffer for
> Input_02 is flushed by the scheduler after one work() cycle.
> 
> Any  help would be appreciated.
> Thanks,
> Mir

GNU Radio does work the way you described.  You can confirm this by 
doing something like:

  src1 = gr.vector_source_f((1,2,3,4,5,6), False)
  src2 = gr.vector_source_f((10,11,12,13,14,15), True)
  op = gr.add_ff()
  dst = gr.vector_sink_f()

  tb.connect(src1, (op, 0))
  tb.connect(src2, (op, 1))
  tb.connect(op, dst)

  tb.run()

This will halt.

There is most likely a problem in your block.  If you're subclassing
gr_block, are you calling consume or consume_each?


Eric


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to