Creating Your First Block: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
No edit summary
Line 49: Line 49:
# Returns the number of samples produced
# Returns the number of samples produced


 
The example block we are creating will either add or multiply the two blocks based on the input parameter ''example_param''. In order to do this, the ''work'' function will need to be modified.
The example block we are going to create will either add or multiply the two blocks based on the input parameter ''example_param''. In order to do this, the ''work'' function will need to be modified.

Revision as of 18:22, 10 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

The example block we are creating will either add or multiply the two blocks based on the input parameter example_param. In order to do this, the work function will need to be modified.