Python Block with Vectors: Difference between revisions
Mattcarrick (talk | contribs) |
Mattcarrick (talk | contribs) |
||
Line 34: | Line 34: | ||
The ''Embedded Python Block'' needs to be modified to accept vector inputs, produce vector outputs and change the data type to ''float''. Double-click on the block to edit the source code. | The ''Embedded Python Block'' needs to be modified to accept vector inputs, produce vector outputs and change the data type to ''float''. Double-click on the block to edit the source code. | ||
Change ''example_param'' in the function definition to ''vectorSize'': | |||
<pre>def __init__(self, vectorSize=16):</pre> | |||
[[File:PythonVectorDefineBlock.png|700px]] | [[File:PythonVectorDefineBlock.png|700px]] | ||
* TODO: make note when vectorsize default param doesnt match other values |
Revision as of 14:13, 31 January 2022
This tutorial describes how the Python Embedded Block can be modified to accept vector inputs and outputs, and how the input_items vector indexing is different between vectors and streams.
The previous tutorial, Creating Your First Block, demonstrates how to create a Python block using the Embedded Python Block. The next tutorial, Python Block Message Passing describes how to send and receive messages using the Embedded Python Block.
Starting the Flowgraph
This tutorial uses vectors, please complete the Streams and Vectors tutorial before moving on.
Add the following blocks to the flowgraph:
- Signal Source
- Throttle
- Stream to Vector
- Embedded Python Block
- Vector to Stream
- QT GUI Time Sink (two copies)
- Variable
Modify the following block properties:
- Signal Source, Frequency: 100
- Variable
- Id: vectorLength
- Value: 16
- Stream to Vector, Num Items: vectorLength
- Vector to Stream, Num Items: vectorLength
- QT GUI Time Sink (both copies), Autoscale: Yes
Connect the blocks according to the following flowgraph:
Accepting Vector Inputs and Outputs
The Embedded Python Block needs to be modified to accept vector inputs, produce vector outputs and change the data type to float. Double-click on the block to edit the source code.
Change example_param in the function definition to vectorSize:
def __init__(self, vectorSize=16):
- TODO: make note when vectorsize default param doesnt match other values