summaryrefslogtreecommitdiff
path: root/gr-blocks/grc
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2014-07-24 10:13:44 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2014-07-24 10:13:44 -0700
commit31e458fe396ac2fcee49599c1aec588eaf0b060b (patch)
treeeb89d6ebf87d1e2bd6de953754eee7e1398db4ad /gr-blocks/grc
parentf44d08e206d7ea81e6ffe26a8b5d7bea1545d7c7 (diff)
parent1e4ef3e31f7c24bfd466fbeebadc59c87fdd0bf9 (diff)
Merge remote-tracking branch 'martin/blocks/mult_matrix'
Diffstat (limited to 'gr-blocks/grc')
-rw-r--r--gr-blocks/grc/blocks_block_tree.xml1
-rw-r--r--gr-blocks/grc/blocks_multiply_matrix_xx.xml68
2 files changed, 69 insertions, 0 deletions
diff --git a/gr-blocks/grc/blocks_block_tree.xml b/gr-blocks/grc/blocks_block_tree.xml
index b0d7ff0687..c2910930e4 100644
--- a/gr-blocks/grc/blocks_block_tree.xml
+++ b/gr-blocks/grc/blocks_block_tree.xml
@@ -94,6 +94,7 @@
<block>blocks_multiply_xx</block>
<block>blocks_multiply_const_vxx</block>
<block>blocks_multiply_conjugate_cc</block>
+ <block>blocks_multiply_matrix_xx</block>
<block>blocks_sub_xx</block>
<block>blocks_conjugate_cc</block>
<block>blocks_integrate_xx</block>
diff --git a/gr-blocks/grc/blocks_multiply_matrix_xx.xml b/gr-blocks/grc/blocks_multiply_matrix_xx.xml
new file mode 100644
index 0000000000..070221446e
--- /dev/null
+++ b/gr-blocks/grc/blocks_multiply_matrix_xx.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<block>
+ <name>Multiply by Matrix</name>
+ <key>blocks_multiply_matrix_xx</key>
+ <import>from gnuradio import blocks</import>
+ <make>blocks.multiply_matrix_$(type.fcn)($A, $tag_propagation_policy)</make>
+ <callback>set_A($A)</callback>
+ <param>
+ <name>IO Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Float</name>
+ <key>float</key>
+ <opt>fcn:ff</opt>
+ </option>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>fcn:cc</opt>
+ </option>
+ </param>
+ <param>
+ <name>Matrix A</name>
+ <key>A</key>
+ <value>((1, 0), (0, 1))</value>
+ <type>raw</type>
+ </param>
+ <param>
+ <name>TPP</name>
+ <key>tag_propagation_policy</key>
+ <type>enum</type>
+ <option>
+ <name>All to All</name>
+ <key>gr.TPP_ALL_TO_ALL</key>
+ </option>
+ <option>
+ <name>One to One</name>
+ <key>gr.TPP_ONE_TO_ONE</key>
+ </option>
+ <option>
+ <name>No Propagation</name>
+ <key>gr.TPP_DONT</key>
+ </option>
+ <option>
+ <name>Matrix-Defined</name>
+ <key>999</key>
+ </option>
+ </param>
+ <check>len($A) > 0</check>
+ <check>len(${A}[0]) > 0</check>
+ <check>$tag_propagation_policy != gr.TPP_ONE_TO_ONE or (len($A) == len(${A}[0]))</check>
+ <sink>
+ <name>in</name>
+ <type>$type</type>
+ <nports>len(${A}[0])</nports>
+ </sink>
+ <sink>
+ <name>set_A</name>
+ <type>message</type>
+ <optional>1</optional>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>$type</type>
+ <nports>len($A)</nports>
+ </source>
+</block>