Runtime Updating Variables

From GNU Radio
Revision as of 21:47, 11 January 2022 by Mattcarrick (talk | contribs)
Jump to navigation Jump to search

Template:TutorialNavigation

This tutorial describes how to update variables while a flowgraph is running using QT GUI Widgets. Please review the previous tutorial, Variables in Flowgraphs, for an introduction to variables.

QT GUI Range

The GNU Radio block library comes with a handful of QT GUI widgets which allow a user to interact and change a flowgraph while it is running. The QT GUI Range creates a slider bar that can be used to update a variable.

Search for range in the block library:

SearchQTGUIRange.png


Drag and drop the QT GUI Range block into the workspace:

DragDropQTGUIRange.png


The QT GUI Range acts similarly to a variable block. The default parameters for the QT GUI Range need to be set. Double-click on it to edit the properties. The QT GUI Range block will replace the frequency variable, so first change the Id field to frequency.

The Default Value is the value when the flowgraph starts. This can be set to 0. The Start and Stop are the start and stop values of the slider. Enter -samp_rate/2 as the start value, and samp_rate/2 as the stop value. The Step value is the resolution of the slider. In this example the Step is set to 100 Hz:

SetRangeProperties.png


You will notice the message, ID "frequency" is not unique. This is because there is a variable and QT GUI Range both using the name frequency, which will be addressed shortly. Click OK to save the properties.

Right click on the variable block and select Disable, or press D:

DisableVariableBlock.png

The block is now ignored and the error is resolved.

VariableBlockDisabled.png


Run the flowgraph by pressing the arrow or Play button:

RunFlowgraphButton.png


The flowgraph will start with a frequency of 0, which is the default value entered into the QT GUI Range block:

QTGUIRangeDefaultValue.png


The frequency parameter can then be updated by:

  1. Dragging the slider bar
  2. Entering a value
  3. Click up or down arrows (which moves by the Step size)

QTGUIRangeDragSlider.png

The frequency has been updated to -5000 which is reflected in the frequency spectrum plot.

QT GUI Chooser

The QT GUI Chooser allows a user to create a drop-down menu of options for a variable. Navigate the block library: Core, GUI Widgets, QT, and drag and drop QT GUI Chooser into the workspace.

QTGUIChooserLibraryBlock.png


The default parameters for the Chooser need to be updated. The Chooser allows the user to create a pre-made list of options for a user to select from in real time. As an example, three frequencies will be used: 0, 1000 and -2000. Update the following properties:

  1. Id: frequency
  2. Default Option: 0
  3. Option 0: 0
  4. Label 0: Frequency: 0
  5. Option 1: 1000
  6. Label 1: Frequency: 1000
  7. Option 2: -2000
  8. Label 2: Frequency: -2000

The Option field is the actual value of the variable, whereas Label is a text description that will be displayed to the user in a drop-down menu.

QTGUIChooserUpdateProperties.png


Click OK to save the parameters. Running the flowgraph will select the default value, Frequency: 0 which can be seen in the frequency spectrum as well as the drop-down box in the upper left hand corner:

QTGUIChooserDefaultValue.png


The values can be selected drop-down menu by clicking on the drop-down menu. In this case, click on Frequency: 1000:

SelectFromQTGUIChooser.png


The frequency is then updated to the value entered into the QT GUI Chooser, which is 1000, seen in the frequency spectrum:

QTGUIChooserOptionSelected.png


The next tutorial, Signal Data Types, will discuss data types and representing complex and real signals in GNU Radio.