Creating Your First Block: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
This tutorial will guide you through creating your first block with the ''Embedded Python Block''.
This tutorial will guide you through creating your first block with the ''Embedded Python Block''. The previous tutorial is here: [[Streams_and_Vectors|Streams and Vectors]]


== Embedded Python Block ==
== Embedded Python Block ==

Revision as of 15:48, 7 January 2022

This tutorial will guide you through creating your first block with the Embedded Python Block. The previous tutorial is here: Streams and Vectors

Embedded Python Block

The Embedded Python Block is a tool to quickly prototype a block within a flowgraph. Search for the Python Block and add it to the workspace:

AddPythonBlockToWorkspace.png


Double-click the box to edit the properties. The Embedded Python Block has two properties,

  1. Code, a click-box which contains a link to the Python code for the block and
  2. Example_Param, an input parameter to the block.


Click on Open in Editor to edit the Python code:

EmbeddedPythonBlockProperties.png


You will be prompted with another choice for which editor to use to write the Python code. Click Use Default:

ClickUseDefault.png


An editor window will then display the Python code for the Embedded Python Block:

PythonCodeGedit.png


Editing Python Block Code

There are three important sections in the Python block code:

  1. import statements in green
  2. __init__ function in orange
  3. work function in red

PythonBlockCodeFunctions.png


The import statement includes the NumPy and GNU Radio libraries.

The __init__ statement:

  1. Accepts the example_param parameter with a default argument of 1.0
  2. Declares the block to have a np.complex64 input and output, which is the GNU Radio Complex Float 32 data type
  3. Stores the self.example_param variable from the input parameter

The work function:

  1. Has the input input_items and output output_items parameters
  2. Applies a mathematical operation to input_items and stores the result in output_items
  3. Returns the number of samples produced