discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] cannot make new signal processing block


From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] cannot make new signal processing block
Date: Wed, 17 Oct 2012 13:41:12 -0400

On Wed, Oct 17, 2012 at 11:13 AM, nexy_sm <address@hidden> wrote:
> Ok, I suppose the best and fastest way to learn gnuradio is by exploring
> simple existing blocks, like adder for example.
> I was first thinking about adder and the opened gr_add_cc.h.
>
> I was immediately stuck in the constructor part
>
> gr_add_cc::gr_add_cc (size_t vlen)
>   : gr_sync_block ("add_cc",
>                    gr_make_io_signature (1, -1, sizeof (gr_complex)*vlen),
>                    gr_make_io_signature (1,  1, sizeof (gr_complex)*vlen)),
>   d_vlen (vlen)
> {
> }
>
> I was expecting something like:
>
> gr_add_cc::gr_add_cc (size_t vlen)
>   : gr_sync_block ("add_cc",
>                    gr_make_io_signature (1, vlen, sizeof (gr_complex)),
>                    gr_make_io_signature (1,  1, sizeof (gr_complex))),
>   d_vlen (vlen)
> {
> }
>
> I don't really understand this line:
>
>  gr_make_io_signature (1, -1, sizeof (gr_complex)*vlen)
>
> Can you just explain breafly what is idea behind, cause i was expecting
> something more simpler.
>
> Thanks

It is actually quite simple, you just have a misunderstanding of what
it's supposed to be doing.

The first call is to set the input signature:
   gr_make_io_signature(min inputs, max inputs, input item size)

The second one is for the output signature:
   gr_make_io_signature(min outputs, max outputs, output item size)

The min value specifies how many inputs MUST be connected. The max
value says how many CAN be connected. A value of -1 means it's
undefined and any number can be connected.

The item size is the size in bytes of each item. So for floats, this
is sizeof(float). If you want to handle vectors, you treat the vector
as an item. So a vector of vlen floats has a size
'sizeof(float)*vlen'.

Tom



reply via email to

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