On Tue, May 20, 2014 at 2:17 AM, Francois Gervais <[email protected]
> wrote:

> Hi,
>
> I'm making a block which takes bit from a bit slicer and output packets as
> input comes in. My block will output bytes so it can emulate a usb adapter
> that receives the RF signal and output a packet stream through an FTDI.
> That way I can use the stack that comes with the adapter without owning
> one. I'll use a FIFO file so other than not issuing the serail
> configuration the stack should be used pretty much as is.
>
> However, I'm not sure what I should do about the the number of outputs.
> Let say I'm waiting for the preamble, I won't output anything. When I get
> the preamble and the sync I'll send a sync byte of my own. From here every
> 8 inputs I'll output a byte. So basically my block will output 0 or 1
> output.
>
> Can someone help me a little with the use of forecast and noutput_items in
> my case? Also do I need to use the consume_each function?
>

If your block emulates a USB adapter, defines it as a source block, then
you don't need to touch forecast().
If your block takes input from another block, then it is not source block.
I don't really understand your requirements.

The number of outputs (referred as noutput_items) is determined by the
scheduler, not yourself.
Says, when you have X bytes to send out,
    if X > noutput_items:  Send out noutput_items number of output, and
return noutput_items
    if X < noutput_items:  Send out X number of output, and return X
    if X == noutput_items: (either one of above)

When you send out a sync byte, add that to the output count.

When you are waiting for the preamble, you may want to send out a series of
zeros, rather than just producing no output.
Producing no output may cause the downstream blocks to become unresponsive.
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to