GNU Radio release 3.6.3 is available here:
http://gnuradio.org/releases/gnuradio/gnuradio-3.6.3.tar.gzhttp://gnuradio.org/releases/gnuradio/gnuradio-3.6.3rc0.tar.gz
Contributors this release:
Alick Z. [email protected]
Alexandru C. [email protected]
Ben H. [email protected]
Ben R. [email protected]
Brett L. Trotter [email protected]
Johnathan C. [email protected]
Josh B. [email protected]
Julien Olivain [email protected]
Martin B. [email protected]
Michael D. [email protected]
Nicholas C. [email protected]
Tim O’Shea [email protected]
Tim N. [email protected]
Tom R. [email protected]
Release 3.6.3 is a significant release, adding major new
capabilities and many bug fixes, while maintaining strict source
compatibility with user code already written for the 3.6 API.
Much of the code was the result of two events, the September 2012 GNU
Radio conference in Atlanta, GA, and the November 2012 GNU Radio
hackfest held at Ettus R. in Mountain View, CA. Additional work
(not discussed here) from these events has been incorporated into the
‘next’ branch of the code repository, and will become part of the 3.7
API release series.
New features include asynchronous message passing between blocks, new
blocks for interfacing with operating system networking stacks, the
ability to write new signal processing blocks in Python, enhanced file
source and sinks that can store metadata, flowgraph latency control,
improvements to documentation, and further conversion of existing code
into the 3.7 API organization (while leaving existing blocks in
place.)
Enjoy!
Johnathan C.
Corgan Labs
Detailed changelog:
Addition/upgrade of message passing infrastructure (Tim O’Shea, Tom
Rondeau, Johnathan C., Josh B.)
This introduces the ability to add and connect formally defined
asychronous message ports to signal processing blocks and
hierarchical blocks. These message ports can be connected to pass
asynchronous data in the form of PMTs (polymorphic types) among
blocks in a flowgraph. It is also possible to implement pure
message passing blocks that have no requirement for streaming
ports or work functions.
We've also introduced the concept of PDUs (Protocol Data Units) as
a convention for passing data+metadata using the new messaging
ports. A PDU is a PMT pair that combines a PMT dictionary of
metadata keys/values along with a PMT blob to hold a vector of
data in memory.
A few new general purpose blocks supporting these capabilties are
in gnuradio-core:
gr_message_debug
gr_message_strobe
gr_tagged_stream_to_pdu
gr_pdu_to_tagged_stream
Two new blocks for interfacing with networking stacks using the
new PDU semantics:
gr_socket_pdu
gr_tuntap_pdu
This new message passing capability and PDU convention is aimed at
providing the infrastructure to better support software radio
implementations using packet-oriented semantics, such as MAC-layer
processing.
Addition of new Python-based signal processing blocks (Josh B.)
This feature, originally introduced by Josh B. as part of
GrExtras, allows implementing signal processing blocks directly in
Python, and has now become a standard feature of GNU Radio.
Addition of gr-analog top-level component (Tom R.)
This implements the current gnuradio-core signal processing blocks
used for analog signal processing into their own top-level
component, gr-analog, and uses the new 3.7 API organization. The
original blocks in gnuradio-core will be removed on the 3.7 branch
prior to 3.7 release.
Addition of gr-blocks top-level component (Johnathan C.)
This implements a large portion of the gnuradio-core non-signal
processing blocks in the 3.7 API form. The original blocks in
gnuradio-core will be removed on the 3.7 branch prior to 3.7
release.
Metadata file source and sink blocks (Tom R.)
Two new blocks implement enhanced file source and sink blocks that
incorporate metadata passed using the stream tags feature in GNU
Radio. It is now possible to store things like frequency and
sample rate into capture files, or whatever key/value pairs you
tag onto data streams inside a flowgraph.
http://www.trondeau.com/home/2012/12/15/metadata-file-format.html
GNU Radio buffer latency control (Tim O’Shea, Tom R.)
For finer-grained control over latency inside a GNU Radio
flowgraph, it is now possible to adjust, on a per-block basis, the
maximum noutput_items that will be used to call a block work
function. In addition, it is possible to set the maximum size an
output buffer can grow to before a work function is called.
New GNU Radio Companion (GRC) capabilities
Added optional flag to pad source and sink (Josh B.)
Added wildcard type to pad source and sink (Josh B.)
Added ability to reload XML for block (Tim O'Shea)
Added ability to automatically create hier_blocks from a flowgraph
(Tim
Newman)
Added ability to open custom GRC hier block definitions (Tim O’Shea)
Added new grcc command line GRC-to-Python utility (Tom R.)
New Documentation Updates (Tom R.)
We are introducing documentation into the Doxygen manual
describing features and capabilities of GNU Radio, above and
beyond just documenting the API functions. Tom R. has
written about this here:
Some examples of commits where this has been done:
http://gnuradio.org/cgit/gnuradio.git/commit/?id=77ea309 (PMT type
usage)
gnuradio.git - GNU Radio (Message
passing interface)
gnuradio.git - GNU Radio (Metatdata
format)
gnuradio.git - GNU Radio (Max output
buffer control)
Other new features:
Allow file source to open new files while running (Brett L. Trotter)
Allow source blocks to return none/yield (Josh B.)
Improved capabilities of uhd_fft.grc example in gr-uhd (Ben H.)
Added parameter in qtgui sink's GRC block to set the update rate
(Julien Olivain)
Added source block hook in gr-uhd for issue stream cmd (Josh B.)
Added cmake package support for Ubuntu 12.10 (Nicholas C.)
Added gr::blocks::patterned_interleaver (Tim O’Shea)
Allow user to set Python path during cmake configuration (Tom
Rondeau)
Enabled serialize/deserialize for PMT vectors (Tom R.)
Added unsigned long long int support to the PMT sugar functions (Tom
Rondeau)
Allow using pmt_init_Xvector methods in python (Tom R.)
Bug fixes:
Numerous cmake related bug-fixes (Josh B., Johnathan C., Tom
Rondeau)
Overhaul of cmake include directory ordering (Michael D.)
Fixed parallel build failures in cmake (Tom R.)
Fixed segfaults due to old, no longer nedded SWIG workaround (Tom
Rondeau)
Fixed memory leak issue in arbitrary resampler blocks (Tom ROndeau)
Fixed use of default noise seed in channel model (Alick Z.)
Fixed scaling bug in QAM constellations (Ben R.)
Fixed installation of grc examples (Johnathan C.)
Fixed finding Qwt6 installed on OSX using MacPorts (Ben R.)
Fixed implicit assumption in skiphead (Josh B.)
Fixed include tag include usage throughout core (Josh B.)
Fixed incorrect private usage in gr_endian_swap (Josh B.)
Fixed segfault in gr-filter due to memory free bug (Josh B.)
Fixed UHD pmt tuple ref namespace issue (Josh B.)
Fixed gr_tag_debug to handle lacking srcid (Martin B.)
Fixed gr-analog for ‘sincos(f)’ on MacOSX (Michael D.)
Fixed gr-analog build issues on Windows (Nicholas C.)
Fixed qtgui time sink to take the bandwidth parameter to set x-axis
correctly (Tom R.)
Fixed float-in, complex-out fft block to use the right io sig (Tom
Rondeau)
Fixed Clang imcompatibility by removing ‘.version’ lines in ASM code
in
core (Tom R.)
Fixed file_meta_source/sink incompatibilities with MSVC (Nicholas
Corgan)
Fixed some unused parameter warnings (Alexandru C.)