discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Multiple Inputs in Tagged Stream Block


From: Jingyi Sun
Subject: Re: [Discuss-gnuradio] Multiple Inputs in Tagged Stream Block
Date: Wed, 20 Apr 2016 17:57:18 -0400

Here's some extra information--looking in the source code gnuradio/gnuradio-runtime/lib/tagged_stream_block.cc, this block of code is specifically what seems to cause the error message. 

Specifically, I'm wondering what Line 117 does, because it looks suspiciously like it's setting d_n_input_items_reqd= -1 based on something input_items.size(), which would cause a runtime error in the next for-loop, which matches the error I get exactly.  I tried to find out what ".assign" does but I don't know where to look for that, because I don't know what sort of thing d_n_input_items_reqd is, and I haven't been successful in finding "tagged_stream_block.h", in github. 

^If anyone knows about this, please let me know!

There's nowhere else I suspect where the value of d_n_input_items_reqd changes from its initial value of input_signature->min_streams()


I'm not anything close to a software engineer being a software engineer, so if anyone who knows this code can help me out, that'd be greatly appreciated. Apologies if I've said anything that's blatantly wrong...




 

On Wed, Apr 20, 2016 at 4:58 PM, Jingyi Sun <address@hidden> wrote:
Hello everyone,

I am trying to create an out-of-tree tagged stream block with multiple (3)  input ports.  Am I coding the private constructor incorrectly, or is there something else?

Here's my process:

First, I got the block to work with just one input port.  Then, I added additional inputs by changing the number of min and max inputs, as follows,
 
: gr::tagged_stream_block("geese_vcvc",
gr::io_signature::make(3, 3, sizeof(gr_complex) * fft_len),
gr::io_signature::make(1, 1, sizeof(gr_complex) * fft_len), tsb_key),

add two more inputs in work, as follows,

const gr_complex *a = (const gr_complex *) input_items[0];
const gr_complex *d = (const gr_complex *) input_items[1];
const gr_complex *x = (const gr_complex *) input_items[2];


gr_complex *out = (gr_complex *) output_items[0];

and finally change the xml file to add two more sinks. 

Before these changes (highlighted in yellow), the block is able to run without runtime errors. However, after these changes, I get the following output: 

Showing: "/home/jenny//Tutorials/rx_ofdm.grc"
Generating: "/home/jenny/Tutorials/rx_ofdm.py"
Executing: "/home/jenny/Tutorials/rx_ofdm.py"
Using Volk machine: sse4_2_64_orc
gr::log :FATAL: geese_vcvc0 - Missing a required length tag on port 1 at item #0
thread[thread-per-block[46]: <block geese_vcvc (1)>]: Missing length tag.

Thanks,
Jenny


reply via email to

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