summaryrefslogtreecommitdiff
path: root/gr-blocks/grc/blocks_multiply_matrix_xx.block.yml
diff options
context:
space:
mode:
Diffstat (limited to 'gr-blocks/grc/blocks_multiply_matrix_xx.block.yml')
-rw-r--r--gr-blocks/grc/blocks_multiply_matrix_xx.block.yml47
1 files changed, 47 insertions, 0 deletions
diff --git a/gr-blocks/grc/blocks_multiply_matrix_xx.block.yml b/gr-blocks/grc/blocks_multiply_matrix_xx.block.yml
new file mode 100644
index 0000000000..21a66b4f8e
--- /dev/null
+++ b/gr-blocks/grc/blocks_multiply_matrix_xx.block.yml
@@ -0,0 +1,47 @@
+id: blocks_multiply_matrix_xx
+label: Multiply by Matrix
+
+parameters:
+- id: type
+ label: IO Type
+ dtype: enum
+ options: [float, complex]
+ option_attributes:
+ fcn: [ff, cc]
+ hide: part
+- id: A
+ label: Matrix A
+ dtype: raw
+ default: ((1, 0), (0, 1))
+ hide: part
+- id: tag_propagation_policy
+ label: TPP
+ dtype: enum
+ options: [gr.TPP_ALL_TO_ALL, gr.TPP_ONE_TO_ONE, gr.TPP_DONT, gr.TPP_CUSTOM]
+ option_labels: [All to All, One to One, No Propagation, Matrix-Defined]
+
+inputs:
+- domain: stream
+ dtype: ${ type }
+ multiplicity: ${ len(A[0]) }
+- domain: message
+ id: set_A
+ optional: true
+
+outputs:
+- domain: stream
+ dtype: ${ type }
+ multiplicity: ${ len(A) }
+
+asserts:
+- ${ len(A) > 0 }
+- ${ len(A[0]) > 0 }
+- ${ tag_propagation_policy != gr.TPP_ONE_TO_ONE or (len(A) == len(A[0])) }
+
+templates:
+ imports: from gnuradio import blocks
+ make: blocks.multiply_matrix_${type.fcn}(${A}, ${tag_propagation_policy})
+ callbacks:
+ - set_A(${A})
+
+file_format: 1