Porting Existing Flowgraphs to a Newer Version: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(→‎From 3.8 to 3.9: add example)
 
(4 intermediate revisions by the same user not shown)
Line 6: Line 6:
* WX GUI blocks: Since the WX GUI blocks are deprecated in version 3.8, the user must find corresponding blocks in the QT GUIs.
* WX GUI blocks: Since the WX GUI blocks are deprecated in version 3.8, the user must find corresponding blocks in the QT GUIs.
* If blocks have different names between versions 3.7 and 3.8, they must be replaced by hand.
* If blocks have different names between versions 3.7 and 3.8, they must be replaced by hand.
This is an example of a version 3.7 flowgraph opened in GRC version 3.8. It is an excerpt of [[Media:NBFM_Transceiver_GRC_3.7.grc]].
[[File:NBFM_37_excerpt_fg.png|800px]]


== From 3.8 to 3.9 ==
== From 3.8 to 3.9 ==
=== Enumerated types ===


There was a change in enumerated types from `firdes.h` to `window.h` which can affect items such as filters, QT GUI Waterfall Sink, and Signal Generators.
There was a change in enumerated types from `firdes.h` to `window.h` which can affect items such as filters, QT GUI Waterfall Sink, and Signal Generators.
Line 13: Line 19:
Here is a Band-pass Filter Taps block example:
Here is a Band-pass Filter Taps block example:


[[File:Band-pass_Filter_Taps_prop.png]]
[[File:Band-pass_Filter_Taps_prop.png|300px]]


The remedy is to click on the Window pull-down and re-select "Hamming".
The remedy is to click on the Window pull-down and re-select "Hamming".


== From 3.9 to master ==
=== Deprecated blocks ===
 
The 'Polyphase Clock Sync' has been replaced with the [[Symbol_Sync]], and the 'CMA Equalizer' has been replaced with the [[Linear_Equalizer]] and [[Adaptive_Algorithm]].
 
== From 3.9 to 3.10 ==
 
=== Embedded Python Block ===


* Embedded Python Block: If a flowgraph from version 3.9 containing an Embedded Python Block is executed without regenerating it, there will be an error that the `<flowgraph-name>epy_block_0.py` file can not be found. This is due to the change in the naming convention between version 3.9 and master.
If a flowgraph from version 3.9 containing an Embedded Python Block is executed without regenerating it, there will be an error that the "<flowgraph-name>epy_block_0.py" file can not be found. This is due to the change in the naming convention between version 3.9 and 3.10 or master.


For example:
For example:
Line 31: Line 43:


The remedy is to regenerate the flowgraph.
The remedy is to regenerate the flowgraph.
=== PDU blocks moved from gr-blocks to gr-pdu ===
Because of the growing number of in-tree PDU blocks, all the PDU-related blocks have been moved from gr-blocks to gr-pdu, which causes a name change of the id. For example, if a flowgraph created to version 3.9 is loaded in GRC version 3.10, any PDU blocks, such as the "PDU to Tagged Stream", will show as a "Missing Block".
The remedy is to replace the block from the GRC Block Tree Panel.
[[File:Pkt_xmt_v39_fg.png|800px]]
=== Deprecated blocks ===
[[Async_CRC32]] has been replaced by [[CRC_Append]] and [[CRC_Check]] blocks.

Latest revision as of 16:49, 12 March 2023

This page describes issues involved in porting a flowgraph to a newer version of GNU Radio.

From 3.7 to 3.8

When a flowgraph which has been generated by version 3.7 is opened in GRC version 3.8, much of the conversion process is done automatically. However, there are certain things which must be updated by hand.

  • WX GUI blocks: Since the WX GUI blocks are deprecated in version 3.8, the user must find corresponding blocks in the QT GUIs.
  • If blocks have different names between versions 3.7 and 3.8, they must be replaced by hand.

This is an example of a version 3.7 flowgraph opened in GRC version 3.8. It is an excerpt of Media:NBFM_Transceiver_GRC_3.7.grc.

NBFM 37 excerpt fg.png

From 3.8 to 3.9

Enumerated types

There was a change in enumerated types from `firdes.h` to `window.h` which can affect items such as filters, QT GUI Waterfall Sink, and Signal Generators.

Here is a Band-pass Filter Taps block example:

Band-pass Filter Taps prop.png

The remedy is to click on the Window pull-down and re-select "Hamming".

Deprecated blocks

The 'Polyphase Clock Sync' has been replaced with the Symbol_Sync, and the 'CMA Equalizer' has been replaced with the Linear_Equalizer and Adaptive_Algorithm.

From 3.9 to 3.10

Embedded Python Block

If a flowgraph from version 3.9 containing an Embedded Python Block is executed without regenerating it, there will be an error that the "<flowgraph-name>epy_block_0.py" file can not be found. This is due to the change in the naming convention between version 3.9 and 3.10 or master.

For example:

~/gr-control $ python3 -u xmt_rcv_switch.py
Traceback (most recent call last):
  File "xmt_rcv_switch.py", line 44, in <module>
    import xmt_rcv_switch_epy_block_0 as epy_block_0  # embedded python block
ModuleNotFoundError: No module named 'xmt_rcv_switch_epy_block_0'

The remedy is to regenerate the flowgraph.

PDU blocks moved from gr-blocks to gr-pdu

Because of the growing number of in-tree PDU blocks, all the PDU-related blocks have been moved from gr-blocks to gr-pdu, which causes a name change of the id. For example, if a flowgraph created to version 3.9 is loaded in GRC version 3.10, any PDU blocks, such as the "PDU to Tagged Stream", will show as a "Missing Block".

The remedy is to replace the block from the GRC Block Tree Panel.

Pkt xmt v39 fg.png

Deprecated blocks

Async_CRC32 has been replaced by CRC_Append and CRC_Check blocks.