Hey list,
I have put together a project on github with all (but a few) of the
various features I have created for GNU Radio in the past 6 months or
so. I have probably posted a link a few times, but I have been waiting
to find the time to clean it up, make a wiki page, and announce. So here
it is: GR Extras - Misc GNU Radio Blocks and Features
Most of the description is in the wiki page:
And here is a handy coding guide for more detail:
So among the features listed on that wiki page, I think the most
prominent and useful features to users may be the ability to code blocks
in python, and the message passing API.
Coding blocks in python gives you access to the all the typical gr_block
C++ API stuff, but from python. The scheduler thread itself will
actually call into your python work() function.
Message passing builds on top of the existing GNU Radio stream tags - to
give the user an API to simply pass tags (without the streams) as
messages between blocks. The user can use this feature to implement a
packet layer in gnuradio, or even do control plane stuff - but all the
while, sticking to the standard block flow graph model that users are
familiar with.
Previously, many of these features were implemented on branches as
changesets against gnuradio. I think this was a barrier for people to
get started. What changeset to cherry-pick, what branch to merge etc. So
I am pleased to point out that all of GrExtras can be compiled against a
standard GNU Radio install. No special branches or changesets are
necessary.
I hope that somebody may find this work useful. Happy coding!
-josh