Porting Existing Flowgraphs to a Newer Version
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.
From 3.8 to 3.9
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:
The remedy is to click on the Window pull-down and re-select "Hamming".
From 3.9 to 3.10 or master
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
Becsuse 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.