Hi Marcus,

I'm not sure about the steps required to translate the bit stream from the
RF receiver into a tagged stream.

I looked at the ofdm_rx example and from what I understand I'll need a
first block that takes the output of the demod/Clock Recovery/bit slicer
and find the packets inside the stream and tag it so the other blocks can
work with the tagged stream. This first block is a normal one that inherit
from the generic Block class it that it? Does this first block need to
output anything while waiting for the preamble of a packet to prevent the
downstream block from freezing?

Once the stream is packetized and tagged it seems pretty straight forward.

Thanks


On Tue, May 20, 2014 at 10:37 AM, Francois Gervais <
francoisgerv...@gmail.com> wrote:

> Thanks I'll take a closer look.
>
>
> On Tue, May 20, 2014 at 10:34 AM, Marcus Müller 
> <marcus.muel...@ettus.com>wrote:
>
>> Hi,
>>
>> PDU blocks are a *type* of blocks. Basically, you tag your sample stream
>> so that the blocks downstream know how long your packet is.
>> The tagged stream infrastructure is an innovation meant to simplify the
>> design of blocks dealing with packetized data.
>> Lool in the gr-digital/examples subfolder for how some implementations of
>> that principle are used.
>>
>> Greetings,
>> Marcus
>>
>>
>> On Tue, May 20, 2014 at 4:23 PM, Francois Gervais <
>> francoisgerv...@gmail.com> wrote:
>>
>>> Sorry about that I'll try to clarify thing.
>>>
>>> I'm using an rtl-sdr adapter to receive an RF signal. I demodulate it
>>> and send it through the MM clock recovery and bit slicer. Then the binary
>>> signal enters the block I'm talking about here.
>>>
>>> This block find a valid packet by matching the preamble and the sync
>>> pattern and translates the packet into another format that is understood by
>>> a software stack designed for these type of packets.
>>>
>>> Normally this stack would take it's input from a serial port but in my
>>> case I output the packets in the correct serial protocol through a file
>>> sink that is binded to a FIFO.
>>>
>>> I'll take a look at the PDU block but this translation needs to be done
>>> between two very specific protocol. I don't think a generic block can
>>> achieve that.
>>>
>>> Right now the development is mostly finished. All I need to make sure is
>>> that my block interface correctly with the scheduler since I don't have a
>>> fixed input to output number relationship. It's mostly 8:1 but that not
>>> always exactly the case.
>>>
>>> Hope it makes sense.
>>>
>>>
>>> On Tue, May 20, 2014 at 10:06 AM, Marcus Müller <mar...@hostalia.de>wrote:
>>>
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>>
>>>> Hi Francois,
>>>>
>>>> as Activecat, I'm kind of having a hard time understanidng your
>>>> requirements.
>>>> If you're emulating a hardware signal source, go for the source
>>>> approach.
>>>> If you're basically taking input from anywhere and packing it into
>>>> packets of varying length, that's exactly what the PDU block
>>>> infrastructure is for:
>>>> http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html
>>>>
>>>> Greetings,
>>>> Marcus
>>>>
>>>> On 20.05.2014 15:59, Francois Gervais wrote:
>>>> > Thanks Activecat you actually answered quite well to my question. I
>>>> > thought it might be better to send 0s, i'm glad you confirmed that.
>>>> > And thanks for the output algorithm.
>>>> >
>>>> > Could you tell me more about forecast? Most of the time I need 8
>>>> > input samples to produce one byte output so I set the forecast like
>>>> > so:
>>>> >
>>>> > ninput_items_required[0] = noutput_items*8;
>>>> >
>>>> > It seems pretty straight forward. Is this correct?
>>>> >
>>>> >
>>>> > On Mon, May 19, 2014 at 9:32 PM, Activecat <active...@gmail.com>
>>>> > wrote:
>>>> >
>>>> >> On Tue, May 20, 2014 at 2:17 AM, Francois Gervais <
>>>> >> francoisgerv...@gmail.com> 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 Discuss-gnuradio@gnu.org
>>>> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > _______________________________________________ Discuss-gnuradio
>>>> > mailing list Discuss-gnuradio@gnu.org
>>>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>> >
>>>> -----BEGIN PGP SIGNATURE-----
>>>> Version: GnuPG v1
>>>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>>>
>>>> iQEcBAEBAgAGBQJTe2FKAAoJEBQ6EdjyzlHtrvsH/3EhTVbESphbUfNeWmZe/rNU
>>>> YYOVD7XVYVndHzstznIwvYlNVRLugjJw74pPJ0DS050b1ggc9mDK/mW4975BICau
>>>> hQQktHxN3QReWk5qKwpAx6Y/+3bVpC+phyFzZO0+1TBwHNYexsVA+Zw0mkGrOuvA
>>>> 3pInPREkJxqxcMrbZZhMTYVVDfOpB5MEjxHSKOMWyAQqop2fg1ahlEwpKjVqDmmV
>>>> 9NhjSbIy29kpayTcEq525ha0QPMb5bRkRiP1sw4GqHDJZSHyUR4RWYYHiVfD3CvP
>>>> /Bmx74UyS69gnP6NmMxun3OjWngpNHkJNC0lN/GGHVhz7YjwVXINuXNkbYuEVaM=
>>>> =x2qL
>>>> -----END PGP SIGNATURE-----
>>>>
>>>> _______________________________________________
>>>> Discuss-gnuradio mailing list
>>>> Discuss-gnuradio@gnu.org
>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>
>>>
>>>
>>> _______________________________________________
>>> Discuss-gnuradio mailing list
>>> Discuss-gnuradio@gnu.org
>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>
>>>
>>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to