Hi all,
I’d like to know if it’s possible to create a block with two inputs (or
two
outputs) having different sizes.
For example, a block that takes a vector of N numbers on one of its two
inputs
and a stream (a vector which has only one element) on the other input.
I already tried to create a block with these characteristics, but I
failed.
Please tell me if this is possible.
Best Regards,
Elettra.
On Thu, Feb 25, 2010 at 9:26 AM, [email protected]
[email protected] wrote:
Elettra.
Yes, this is possible (in C++ blocks). You will make the IO signature
using “gr_make_io_signature2”, which takes the standard (min inputs,
max inputs) as the first two arguments and the next two arguments are
the item sizes for the different inputs/outputs. You can also use
“gr_make_io_signature3” or “gr_make_io_signaturev”, which takes a
vector for the signature to have different stream sizes for any number
of ports.
We used this extensively in the OFDM code. For example, in
gr_ofdm_sampler, on the input, we take in a stream of complex values
on input 0 and a stream of characters (that act as flags) on input 1.
The IO signature looks like:
gr_make_io_signature2 (2, 2, sizeof (gr_complex), sizeof(char))
Tom
On Thu, Feb 25, 2010 at 11:41:23AM -0800, Josh B. wrote:
gr_make_io_signature2 and 3? Common mr gnuradio, with your fancy c++
and your smart pointers and your swig. How-about replacing this with
a single gr_make_io_signature with some parameter defaults:
gr_make_io_signature(min, max, io_size0, io_size1=0, io_size2=0,
io_size2=0… io_size7=0)
There’s a *v version that will take an unbounded number of specs.
It’s the “real primitive” and is available from python as
gr.make_io_signaturev. (See gr_io_signature.i)
E.g.,
gr.make_io_signaturev(3, 3, (gr.sizeof_float, gr.sizeof_char,
gr.sizeof_int))
Eric
gr_make_io_signature2 and 3? Common mr gnuradio, with your fancy c++ and
your smart pointers and your swig. How-about replacing this with a
single gr_make_io_signature with some parameter defaults:
gr_make_io_signature(min, max, io_size0, io_size1=0, io_size2=0,
io_size2=0… io_size7=0)
-Josh