Skip to content

Release v3.9.1.0

Compare
Choose a tag to compare
@willcode willcode released this 22 Mar 23:15
· 439 commits to maint-3.9 since this release

[3.9.1.0] - 2021-03-17 "Luck-O-The-Radio"

API is compatible with C++ code written against previous v3.9 releases.

ABI (link time) compatibility is not guaranteed. Out-of-tree C++ code
linked to previous v3.9 releases should be rebuilt against this version.

Project Scope

  • (internal) Build system improvements and fixes
  • (internal) Use C++14 features instead of Boost where possible
  • Fewer compiler warnings (due to fixed code, not removal of warnings!)

OOT Support

  • cmake: standard FindGSL used in lieu of custom one, so OOTs should no longer
    copy this module from the GNU Radio tree if needed
  • modtool: better exception/error handling
  • modtool: will non-interactively add blocks with no parameters
    (--argument-list="")
  • PyBind11 header hash hotfixer
    (gr-utils/bindtool/scripts/binding-hash-hotfixer.zsh) makes life easier

GRC

  • Block param values can be shown as expressions and/or evaluated values. Under
    the View menu, see "Show parameter ..." options.
  • Better handling of gui hints, avoid hiding widgets in cases where some have
    GUI hints and some do not
  • Ensure that strings are valid utf8 when evaluating parameters
  • Save embedded python blocks/modules to hier_block_directory
  • Save config and update recent file sub-menu before executing flowgraph
  • Revert to previous "block id" display behavior
  • Fix drag n' drop issue with Quartz (macOS) backend
  • C++ generated code: remove gnuradio prefix from linked libraries
  • Python generated code: prefix generated modules with flowgraph id
  • connect() will be called for hier blocks even if they don't have ports
  • Check for PyYAML 3.11 (was checking for 3.10 even though 3.11 was required)

gnuradio-runtime

  • Default buffer size can be adjusted by setting buffer_size in the
    [Default] section of the GNU Radio config file. Otherwise, the longstanding
    default of 32768 is used.
  • Windows/Python: add DLL search path, as required by newer versions of Python

gr-audio

  • Windows: reduce priority of Windows native audio to LOW, preferring Portaudio

gr-blocks

  • Message Debug: prints warning when a non-PDU message is received on the
    Print PDU port
  • File Source handles EOF properly in non-seekable files (e.g., pipes)
  • Several bounds checking and boundary condition improvements
  • Remove DC Spike AutoSync algorithm fixed

gr-digital

  • MSK timing error detector improvement
  • Python bindings include control_loop parent class in child class
  • Correlation Estimator parameter threshold well documented

gr-fft

  • New window types: Nuttall, Blackman Nuttall, Nuttall CFD, Welch, Parzen,
    Exponential, Riemann, Gaussian and Tukey

gr-filter

  • Taps blocks (e.g., Low Pass Filter Taps) now propagate parameter changes
  • Filter Designer: IIR/Band Pass/Bessel works

gr-qtgui

  • Add toggling label and icon on plot play/stop button
  • Time Raster Sink: axis labels and ranges are configurable
  • Qt Chooser: label improvements

gr-uhd

  • DEPRECATION: UHD blocks currently accept control messages (e.g. for
    frequency change) as PMT pairs and tuples, in addition to the intended
    PMT dict format. In v3.11, only the dict format will be accepted.
  • Command note: freq messages in this version must be dicts. Additionally,
    the direction key must be present and set to TX or RX.
    Python example: pmt.to_pmt({'freq':100e6,'direction':'RX'})
    The original behavior may be restored in an update, but code should be
    converted to use the dict format in preparation for future versions.
  • set_filter() adds chan parameter
  • Python generated code improved for FE corrections
  • Allow control of frequency and gain in both directions at the same moment
  • Add command handler for mtune ("manual tune")
  • Add GPIO control via messages
  • Add start time param to GRC blocks
  • Support streaming modes: STREAM_MODE_START_CONTINUOUS,
    STREAM_MODE_STOP_CONTINUOUS, STREAM_MODE_NUM_SAMPS_AND_DONE,
    STREAM_MODE_NUM_SAMPS_AND_MORE
  • Documentation improvements
  • Tag sink demo example
  • Better logging of over/underflows, time errors and time tags
  • Added Python binding for ALL_LOS (all local oscillators)
  • uhd_fft application X11/Qt related cleanups

QA

  • waitFor(condition, ...) available for tests that use timeouts

Contributors

At LEAST the following authors contributed to this release.