Processing block with conditional number of output items

Hello all,

I’m a grad student writing my first GNU Radio processing block, and I’m
a little stuck. I’m not sure how to tell GNU Radio the input output
relationship of my block.

The block takes 2 inputs. One is an index, and the other is data (I may
use stream tags to indicate index in the future). The block also has
one output port of processed data. The block needs to buffer a small
history of inputs then search through for matching indexes. When it
finds a matching pair of indexes, it processes the 2 pieces of data
corresponding to the two matching indexes (i.e. has the same position in
the buffer) and produces 1 output. The trouble is, there is no
guarantee it will find a match. The result is that sometimes there is
no output, and sometimes there are multiple outputs. I’m not sure how
to setup GNU Radio’s buffers to accommodate this.

I’m getting close to a solution, but I thought I’d ask here. So, if I
wanted to buffer say 8 index and 8 data items, and then arbitrarily
pluck matching data from the input buffer to process and put on the
output buffer, how would you recommend I go about it?


Hi Nate,

I met the same kind of problem: the ratio between input and output of my
block is gonna change depending on the content of the data.Have you
solved it?