Hi Experts,
I was reading tx_ofdm.py. I found this module use
‘set_tag_propagation_policy(TPP_DONT)’ to handle tags by itself, but I
cann’t find the code that used to handle tag in this module.
I knew this module will call ‘packet_header_ofdm.header_formatter()’ and
‘packet_header_default.header_formatter()’, but I also cann’t find the
handle tag code in these functions.
Anyone can help me figure out where does this module process tags?
Thanks
Tiankun
Hi Tiankun,
what’s your GNU Radio version [1]? Where did you find that tx_ofdm.py?
There is no tx_ofdm.py in my GNU Radio source tree (in none of v3.7.4,
v3.6.5 or v3.4.2). There is a tx_ofdm.grc, which can be used to generate
a tx_ofdm.py, but that does not (and shouldn’t) contain a
“set_tag_propagation_policy” line.
Greetings,
Marcus
[1] you can find out by running “gnuradio-config-info -v”
Hi Marcus,
My tx_ofdm.py is gen by tx_ofdm.grc, there are a
‘packet_headergenerator_bb’ module in it. This module use
‘set_tag_propagation_policy(TPP_DONT)’ to handle tags by itself.
I didn’t find any code has touch tags in this module, but when I connect
it to Tag Debug module, I can find the tags output.
In my opinion, if one module use ‘set_tag_propagation_policy(TPP_DONT)’,
and it does not handle it, tags will not pass down.
Thanks
Tiankun
于 2014年07月20日 21:15, Marcus Müller 写道:
Hi Tiankun,
On 20.07.2014 15:50, hutiantian wrote:
Hi Marcus,
My tx_ofdm.py is gen by tx_ofdm.grc, there are a
‘packet_headergenerator_bb’ module in it. This module use
‘set_tag_propagation_policy(TPP_DONT)’ to handle tags by itself.
Ah ok!
I didn’t find any code has touch tags in this module, but when I
connect it to Tag Debug module, I can find the tags output.
This is indeed strange. However, packet_headergenerator_bb is a subclass
of tagged_stream_block [1].
In my opinion, if one module use
‘set_tag_propagation_policy(TPP_DONT)’, and it does not handle it,
tags will not pass down.
That’s generally correct, but there’s the tagged stream block exception:
[1], “A note on tag propagation” tells us that one most of the time
would use TPP_DONT to handle all non-length tags, whilst length tags are
always passed forward.
Hope that helped!
Greetings,
Marcus
[1] http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html
Before myths about tagged stream blocks start perpetuating the webs:
TPP_DONT on a tagged stream blocks does the same as on any other type of
block; however, TSB tags still get through.
A closer inspection of packet_headergenerator_bb (either by reading the
source code or the manual page
(GNU Radio Manual and C++ API Reference: gr::digital::packet_headergenerator_bb Class Reference)
reveals that the actual processing is done in a separate kernel, the
header formatter object, which is user-defined. See
packet_header_default for an example.
M
Hi Martin,
What’s the TSB tags? Does the tags have the different types? I think the
tags just a pair of key-value.
Thanks
Tiankun
于 2014年07月21日 17:54, Martin B. 写道:
Hi Marcus,
What’s the “non-length tags” mean? the “length tags” you mentioned is
that input parameter, right? I only find this one tags.
When I remove ‘set_tag_propagation_policy(TPP_DONT)’, this module seems
still works fine. Why should we need set this flag in this module?
Thanks
Tiankun
于 2014年07月20日 22:54, Marcus Müller 写道:
On 07/21/2014 02:04 PM, hutiantian wrote:
Hi Martin,
What’s the TSB tags? Does the tags have the different types? I think the
tags just a pair of key-value.
http://gnuradio.org/doc/doxygen/page_tagged_stream_blocks.html
M