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: Martin Braun
Subject: Re: [Discuss-gnuradio] Multiple Inputs in Tagged Stream Block
Date: Sun, 24 Apr 2016 11:19:45 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

On 04/23/2016 12:36 PM, Jingyi Sun wrote:
> Hi Martin and everyone,
> 
> I've pinpointed what causes this error to occur with 3 inputs, but not
> occur with just 1 input. 
> 
>     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.

Tagged streams carry tags to identify burst boundaries. Your input is
not seeing such a tag.

Now, you should never, ever manually handle those tags. Whatever your
upstream block is, it should thus be either a tagged_stream_block, or
have automatic tag propagation.


> The culprit seems to be the following block of code inside my
> geese_vcvc_impl.cc file. I have it in my code right now because I based
> my block on ofdm_frame_equalizer.cc.  I gather that it parses length of
> tags, and but seems to only do so for one input?  Unfortunately I am
> unsure how to exactly interpret what it is doing.

Well, yes, the original block only has one input. This is an advanced
functionality of tagged stream blocks. You rarely need to override it.
The only reason we do that here is because we allow the equalizer to run
either as a tagged stream block, or a fixed size (but non-tagged-steram)
block.

Just don't use the fixed-length feature, don't include this method, and
you'll be fine.

Also don't paste pictures of code -- how am I supposed to comment on it
inline.

Cheers,
M

> Martin, I notice you've worked on the ofdm_frame_equalizer block
> before--could you please help me go through what this piece of code
> does, and how I could change it to be compatible with a block with
> multiple inputs.  I'm not thoroughly familiar with c++, and also am not
> sure about the particular purposes of variables here, or what the
> specific characteristics of "tags" vector are.
> 
> *My goal is to do something similar to add two equalized input tagged
> streams together, and output the sum tagged stream, while also
> propagating tags through for tag debug.*
> 
> *I would tremendously appreciate if you could briefly walk me through
> the following lines. Is this code necessary for tag propagation, or can
> I do without it? I don't get the error if this code is commented out.*
> 
>
> 
> On Fri, Apr 22, 2016 at 12:15 PM, Jingyi Sun <address@hidden
> <mailto:address@hidden>> wrote:
> 
>     Hi Martin, Andrej and everyone,
> 
>     Revision on my last email: I found out why my out-of-tree copy of
>     tagged_stream_mux wasn't working and fixed the problem--it was a bug
>     with having the wrong variable name input in the blockt after
>     everything was built.  My copy now works like the original
>     tagged_stream_mux does!
> 
>     So I will work on slowly modifying this copy of tagged_stream_mux to
>     look like what I want until something breaks, and then update you
>     guys on that. Hopefully that will help!
> 
>     Thanks again for all your help!!
> 
>     Best,
>     Jenny
> 
>     On Thu, Apr 21, 2016 at 2:37 PM, Jingyi Sun <address@hidden
>     <mailto:address@hidden>> wrote:
> 
>         Hi Martin,
> 
>         I did more tests, including*trying to recreate
>         tagged_stream_mux* as an out-of-tree block. My block is called
>         mux, but everything else (.cc, .c, .xml), are exactly the same.
>         I copied and pasted everything from github, minus the name.
> 
>         *It gives me the same error. *
> 
>         I suspect the source code that my installed binary version of
>         GNU Radio is based on is different from the one used to
>         originally create tagged_stream_mux block that comes with GNU Radio.
> 
>         Do you know if there is a specific person I can contact who
>         would know about tagged_stream_block source code? Or do you
>         think there's something else I haven't thought of.
> 
>         I'm not sure what else I can try right now, and would be willing
>         to try anything you (or anyone else) might have to suggest.
> 
>         Thanks,
>         Jenny
> 
> 
>         On Thu, Apr 21, 2016 at 2:02 PM, Martin Braun
>         <address@hidden <mailto:address@hidden>> wrote:
> 
>             On 04/20/2016 04:48 PM, Jingyi Sun wrote:
>             > tagged_stream_mux works when substituted for my block, so I 
> think all of
>             > my inputs are tagged streams. Also, my inputs are coming from 
> the
>             > outputs of OFDM_frame_equalizer, which I think propagates 
> tagged streams?
> 
>             Yes.
> 
>             M
> 
>             > I think it's an error somewhere in the code, but the changes I 
> mentioned
>             > are the only changes I made between the block working and the 
> block not
>             > working.
>             >
>             > My code is based on OFDM_frame_equalizer, but without the 
> actual signal
>             > processing part. I will fill in my own signal processing after 
> I know I
>             > can at least pass one out of three inputs along so that the 
> outputs are
>             > the same as if this new block were bypassed.
>             >
>             >
>             >
>             >
>             > On Wed, Apr 20, 2016 at 6:24 PM, Martin Braun <address@hidden 
> <mailto:address@hidden>
>             > <mailto:address@hidden
>             <mailto:address@hidden>>> wrote:
>             >
>             >     The tagged_stream_mux is an example of this kind of
>             block. As Andrej
>             >     points out, you need to make sure every input signal
>             is actually a
>             >     tagged stream.
>             >
>             >     Cheers,
>             >     M
>             >
>             >     On 04/20/2016 03:12 PM, Andrej Rode wrote:
>             >     > Hello Jenny,
>             >     >
>             >     > I can try to help you, but I'm not quite sure if I
>             am right. If I
>             >     am wrong I
>             >     > will be corrected soon.
>             >     >
>             >     >>>> 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.
>             >     >
>             >     > This error tells you that your block is missing a
>             length tag in
>             >     one of his
>             >     > inputs. A Stream Tag on the first sample is a
>             requirement for a
>             >     tagged stream
>             >     > block. This Stream Tag has to provide information
>             about how much
>             >     input data
>             >     > your block has to process.
>             >     > I assume you don't have an tagged stream on each of
>             your inputs
>             >     and this
>             >     > causes a problem for your tagged stream block.
>             >     >
>             >     > Best you provide a screenshot of your example
>             flowgraph (the
>             >     relevant parts).
>             >     > Based on the error it is nothing inside of your
>             block but the way
>             >     you are
>             >     > trying to feed it with samples.
>             >     >
>             >     > Best Regards,
>             >     > Andrej
>             >     >
>             >     >
>             >     >
>             >     > _______________________________________________
>             >     > Discuss-gnuradio mailing list
>             >     > address@hidden
>             <mailto:address@hidden>
>             <mailto:address@hidden
>             <mailto:address@hidden>>
>             >     > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>             >     >
>             >
>             >
>             >
>             >     _______________________________________________
>             >     Discuss-gnuradio mailing list
>             >     address@hidden
>             <mailto:address@hidden>
>             <mailto:address@hidden
>             <mailto:address@hidden>>
>             >     https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>             >
>             >
> 
> 
>             _______________________________________________
>             Discuss-gnuradio mailing list
>             address@hidden <mailto:address@hidden>
>             https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
> 
> 
> 




reply via email to

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