Creating C++ OOT with gr-modtool: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
Line 24: Line 24:
== Adding a New Block ==
== Adding a New Block ==


Move to the ''gr-customModule'' directory:
Move to the ''gr-customModule'' directory created in the [[Creating_Python_OOT_with_gr-modtool|Creating Python OOT with gr-modtool]] tutorial:
<pre>cd your-path/gr-customModule</pre>
<pre>cd your-path/gr-customModule</pre>



Revision as of 17:15, 9 March 2022

Beginner Tutorials

Introducing GNU Radio

  1. What is GNU Radio?
  2. Installing GNU Radio
  3. Your First Flowgraph

Flowgraph Fundamentals

  1. Python Variables in GRC
  2. Variables in Flowgraphs
  3. Runtime Updating Variables
  4. Signal Data Types
  5. Converting Data Types
  6. Packing Bits
  7. Streams and Vectors
  8. Hier Blocks and Parameters

Creating and Modifying Python Blocks

  1. Creating Your First Block
  2. Python Block With Vectors
  3. Python Block Message Passing
  4. Python Block Tags

DSP Blocks

  1. Low Pass Filter Example
  2. Designing Filter Taps
  3. Sample Rate Change

TODO: intro material

The previous tutorial, Creating Python OOT with gr-modtool, describes how to create a Python block in an OOT module. This c++ OOT tutorial builds upon the previous Python one, so it is is suggested to at least complete the Creating an OOT Module portion of that tutorial before completing this one.


TODO: pick up from python OOT tutorial

TODO: link back to python tutorial

Installation Note

This tutorial was written using GNU Radio v3.10.1.1 on Ubuntu 21.10, installed using the Ubuntu PPA from the Installation Wiki Page. The basic GNU Radio install using:

$ sudo apt-get install gnuradio

does not come with the proper libraries needed to compile and install OOT modules. Consider installing the following packages before continuing:

$ sudo apt-get install gnuradio-dev cmake libspdlog-dev clang-format

Adding a New Block

Move to the gr-customModule directory created in the Creating Python OOT with gr-modtool tutorial:

cd your-path/gr-customModule

Add a new block named multDivSelector:

$ gr_modtool add multDivSelector

The types of blocks will be displayed:

GNU Radio module name identified: customModule
('sink', 'source', 'sync', 'decimator', 'interpolator', 'general', 'tagged_stream', 'hier', 'noblock')

Enter sync as the block type:

Enter block type: sync

Enter cpp as the language:

Language (python/cpp): cpp
Language: C++
Block/code identifier: multDivSelector

Enter the name or organization of the copyright holder:

Please specify the copyright holder: YourName