summaryrefslogtreecommitdiff
path: root/gr-blocks/grc
diff options
context:
space:
mode:
authormhostetter <mhostetter@users.noreply.github.com>2017-03-19 09:53:21 -0400
committerMatt Hostetter <matthostetter@gmail.com>2017-03-29 21:40:04 -0400
commitcb749aea614c21e41204d4d48ded33ccf5604aee (patch)
treec0d733a2062ea947a439591b4cd16453443aea88 /gr-blocks/grc
parent1d477a701487dc111c88ae595fbfecadb5d871ac (diff)
blocks: Add tag share block
The tag share block is used to transfer or share tags from one stream to another. The block takes two inputs and one output. The Input 0 stream is propagated to Output 0. In addition, the tags from Input 1 are added to the Input 0 stream. This is useful for transferring a detection tag from a correlate_access_code_bb block to the main complex stream, for example.
Diffstat (limited to 'gr-blocks/grc')
-rw-r--r--gr-blocks/grc/blocks_block_tree.xml1
-rw-r--r--gr-blocks/grc/blocks_tag_share.xml96
2 files changed, 97 insertions, 0 deletions
diff --git a/gr-blocks/grc/blocks_block_tree.xml b/gr-blocks/grc/blocks_block_tree.xml
index d0bb252a47..ef2703f695 100644
--- a/gr-blocks/grc/blocks_block_tree.xml
+++ b/gr-blocks/grc/blocks_block_tree.xml
@@ -194,6 +194,7 @@
<name>Stream Tag Tools</name>
<block>blocks_tag_debug</block>
<block>blocks_tag_gate</block>
+ <block>blocks_tag_share</block>
<block>blocks_tagged_file_sink</block>
<block>blocks_tagged_stream_mux</block>
<block>blocks_tagged_stream_align</block>
diff --git a/gr-blocks/grc/blocks_tag_share.xml b/gr-blocks/grc/blocks_tag_share.xml
new file mode 100644
index 0000000000..21827d0591
--- /dev/null
+++ b/gr-blocks/grc/blocks_tag_share.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<block>
+ <name>Tag Share</name>
+ <key>blocks_tag_share</key>
+ <import>from gnuradio import blocks</import>
+ <make>blocks.tag_share($io_type.size, $share_type.size, $vlen)</make>
+
+ <param>
+ <name>IO Type</name>
+ <key>io_type</key>
+ <type>enum</type>
+ <hide>part</hide>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>size:gr.sizeof_gr_complex</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>float</key>
+ <opt>size:gr.sizeof_float</opt>
+ </option>
+ <option>
+ <name>Int</name>
+ <key>int</key>
+ <opt>size:gr.sizeof_int</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>short</key>
+ <opt>size:gr.sizeof_short</opt>
+ </option>
+ <option>
+ <name>Byte</name>
+ <key>byte</key>
+ <opt>size:gr.sizeof_char</opt>
+ </option>
+ </param>
+ <param>
+ <name>Share Type</name>
+ <key>share_type</key>
+ <type>enum</type>
+ <hide>part</hide>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>size:gr.sizeof_gr_complex</opt>
+ </option>
+ <option>
+ <name>Float</name>
+ <key>float</key>
+ <opt>size:gr.sizeof_float</opt>
+ </option>
+ <option>
+ <name>Int</name>
+ <key>int</key>
+ <opt>size:gr.sizeof_int</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>short</key>
+ <opt>size:gr.sizeof_short</opt>
+ </option>
+ <option>
+ <name>Byte</name>
+ <key>byte</key>
+ <opt>size:gr.sizeof_char</opt>
+ </option>
+ </param>
+ <param>
+ <name>Vec Length</name>
+ <key>vlen</key>
+ <value>1</value>
+ <type>int</type>
+ <hide>part</hide>
+ </param>
+
+ <check>$vlen &gt; 0</check>
+
+ <sink>
+ <name>in</name>
+ <type>$io_type</type>
+ <vlen>$vlen</vlen>
+ </sink>
+ <sink>
+ <name>share</name>
+ <type>$share_type</type>
+ <vlen>$vlen</vlen>
+ </sink>
+
+ <source>
+ <name>out</name>
+ <type>$io_type</type>
+ <vlen>$vlen</vlen>
+ </source>
+</block>